Jump to content
  • 0

pomoc Inputtext do proměnné


Deejva

Dotaz

Zdravím, chci udělat, aby se text, co hráč zadá v inputtextu uložil do proměnné, ale hází mi to error ..

new Tag[MAX_PLAYERS_EX][20];
Tag[playerid] = inputtext;
C:\Users\Kristina\Desktop\Samp\gamemodes\dmOLD.pwn(1315) : error 047: array sizes do not match, or destination array is too small

Díky za pomoc

Link to comment
Share on other sites

17 odpovědí na tuto otázku

Recommended Posts

  • 0
  • Hlavní moderátor

normální přiřazení string1 = string2 můžeš použít jen tehdy, když je délka zdrojového řetězce menší nebo stejná jako velikost cílového řetězce, takže v tomhle případě ti to nepůjde, zkus tohle:

 

strcat((Tag[playerid][0]='\0',Tag[playerid]),inputtext);

 

dalo by se to použít i přes format, ovšem to ti nedoporučuji

Link to comment
Share on other sites

  • 0

Super, díky .. teď si chci dát, aby se to, co zadal ukládalo, načítalo a pak nastavovalo jako tag .. takže sem si dal do OnPlayerConnect:7

Tag[playerid] = "0";

A pak mam podmínku:


if(Tag[playerid] = "0")
{
 
}else{
 
}

Warning:   warning 211: possibly unintended assignment

Vím, že warning nevadí, ale nechci ho tam


+ mám DOF2_SetString(soubor,"Tag",Tag[playerid]); a uložilo se pouze 0 ...

Link to comment
Share on other sites

  • 0

Atomas:

C:\Users\Kristina\Desktop\Samp\gamemodes\dmOLD.pwn(604) : error 033: array must be indexed (variable "Tag")


Použiju ten strcmp :)


Takže to mám takto:

 

  if(strcmp(Tag[playerid],"0",false) != 0)
{
 
}else{
 
}
 
Vše jde, teď je teda ještě problém, proč se to neuložilo, ale uložilo ses 0 ..

//Dobrý, už to jde, díky moc, kdyžtak napíšu :)

Link to comment
Share on other sites

  • 0

Dobře, díky .. teď ještě poslední taková chybička .. do inputu zadam Hlavní Administrátor, ale uloží se jen Hlavní Administráto .. V Tag[..][30] mam pole 30, to je dostačující, nevím, kde je problém

Link to comment
Share on other sites

  • 0

string funguje tak, ze do pole ulozi na kazdy index jeden znak a za posledni znak jeste 0 coz znaci konec stringu (pozor 0 jako hodnota jako '\0'. '0' neni hodnota 0 ale znak 0 :d)

Takze zvetsit pole +1 :)

new Test[] = "Hlavní Administrátor";
printf("%d",sizeof(Test));
Link to comment
Share on other sites

  • 0

//Už to mam :d díky moc


Ještě mam takový dotaz .. Napřed si člověk vybere barvu tagu, tim mu uložim do proměnný tu barvu..

               case 0: TagColor[playerid] = 0x00FFFFFF;
            case 1: TagColor[playerid] = 0x00AEFFFF;
            case 2: TagColor[playerid] = 0x0043FFFF;

Pak mu podle toho nastavím ten tag, vše funguje, tou barvou se mi i vypíše text, ale když se odpojuji

DOF2_SetString(soubor,"Color",TagColor[playerid]);

Tak se mi uloží tohle .. : Color = ÿ

Link to comment
Share on other sites

  • 0

Ne. bavil ses o ulozeni:

nastaveni jsi mnel spravne

TagColor[playerid] = 0x00FFFFFF;

jen to ulozeni do souboru

DOF2_SetInt(soubor,"Color",TagColor[playerid]);

nebo

DOF2_SetInteger(soubor,"Color",TagColor[playerid]);

nevim jak funguje dof2

 

kdyby jsi chtel barvu opet vypsat jako string tak musis pouzit

format(string,sizeof(string),"%x",TagColor[playerid]);
Link to comment
Share on other sites

  • 0

Tak já to zkusim, díky


Nejde to .. když jsem hex uložil jako číslo, tak se mi uložilo

 Color = 16777215

 a při načítání 

format(TagColor[playerid],80,"%x", DOF2_GetInt(soubor,"Color"));

 se vždy nastaví černá

Link to comment
Share on other sites

  • 0

Ale ne nacitani udelej takhle:

TagColor[playerid] = DOF2_GetInt(soubor,"Color");

tamto byl priklad jak ten integer zobrazit jako hexkod  :)

 

Chapu ze te to mate, ale barva je cislo (integer), takze s barvou pracujes uplne stejne jako by jsi pracoval s cislem :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...