Jump to content
  • 0
Baseball

pomoc Info hráče

Dotaz

Popis problému:

Zdravím,

po dlouhé době jsem otevřel svůj starý mód a řekl si že přidám info (ten mod je fakt celkem blbovina spíš 4fun, než na použití). Na serveru se zobrazí první dva řádky, bez hodnoty..

 

Chyby/varování kompilátoru a při běhu:

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

 

//tedy bez chyb / varování

 

Kód:

 

[code=auto:954]
if(dialogid == 2)
	{
	    new info[1000], string[1000], jmeno[MAX_PLAYER_NAME];
     	GetPlayerName(playerid, jmeno, sizeof(jmeno));
        if(listitem == 0)
        {
            strcat(string, "Peníze banka: %d\n",Banka[playerid]);
            strcat(string, "Peníze v ruce: %d\n",GetPlayerMoney(playerid));
            strcat(string, "Administrační úroveň: %d\n",Admin[playerid]);
            format(info,sizeof(info),string);
            ShowPlayerDialog(playerid, 3, DIALOG_STYLE_MSGBOX, jmeno, info,"OK","");
			//https://pawno.cz/topic/48115-player-info/
        }
[/code] 

 

 

 

Dodatečné poznámky:

Děkuji za pomoc.

Sdílet tento příspěvek


Link to post
Share on other sites

8 odpovědí na tuto otázku

Recommended Posts

  • 0

Je to tim ze si to prepisujes naformatuejs sice jeden radek ale tim druhym ten prvni premazes.

 

Existuje dve reseni, ktere muzes pouzit.

 

Toto je vhodne pouzit pokud je radku min kod je rychlejsi

    if(dialogid == 2)
    {
        new string[2048],jmeno[MAX_PLAYER_NAME];
        GetPlayerName(playerid,jmeno,sizeof(jmeno));
        if(listitem == 0)
        {
            format(string,sizeof(string),"Peníze banka: %d",Banka[playerid]);
            format(string,sizeof(string),"%s\nPeníze v ruce: %d",string,GetPlayerMoney(playerid));
            format(string,sizeof(string),"%s\nAdministrační úroveň: %d",string,Admin[playerid]);
            ShowPlayerDialog(playerid,3,DIALOG_STYLE_MSGBOX,jmeno,string,"OK","");
        }
    }

Tent odruhy zpusob je dobre pouzit pokud tec hradku v dialogu bude hodne. Protoze je zase v tomhle pripade rychlejsi tento druhy

	if(dialogid == 2)
	{
		new string[2048],str[128],jmeno[MAX_PLAYER_NAME];
	 	GetPlayerName(playerid,jmeno,sizeof(jmeno));
		if(listitem == 0)
		{
			format(string,sizeof(string),"Peníze banka: %d",Banka[playerid]);
			format(string,sizeof(string),"\nPeníze v ruce: %d",GetPlayerMoney(playerid));
			strcat(string,str);
			format(string,sizeof(string),"\nAdministrační úroveň: %d",Admin[playerid]);
			strcat(string,str);
			ShowPlayerDialog(playerid,3,DIALOG_STYLE_MSGBOX,jmeno,string,"OK","");
		}
	}
Edited by ATomas

Sdílet tento příspěvek


Link to post
Share on other sites
  • 0

Atomas, určite sa dá použiť strcat týmto spôsobom: "strcat(string,"%s\nPeníze v ruce: %d",string,GetPlayerMoney(playerid));"?

Mám dojem, že strcat nemá variabilný počet parametrov a skôr by sa mala použiť funkcia format. 

http://wiki.sa-mp.com/wiki/Strcat

Skôr určite by sa mal použiť format().

new data[size];
format(data, sizeof size, "Admin Level : %s\nBanka : %i\nCash : %i", Admin[playerid], Banka[playerid], GetPlayerMoney(playerid));
ShowPlayerDialog(playerid, dialogid, style, head, data, button, button);
Edited by Matthew_Bennet

Sdílet tento příspěvek


Link to post
Share on other sites
  • 0

 

Skôr určite by sa mal použiť format().

new data[size];
format(data, sizeof size, "Admin Level : %s\nBanka : %i\nCash : %i", Admin[playerid], Banka[playerid], GetPlayerMoney(playerid));
ShowPlayerDialog(playerid, dialogid, style, head, data, button, button);

Díky a našel by jsi nějaký trik aby se nemuselo vše psát do jednoho dlouhého řádku? Protože se to přepíše, když dám dva pod sebe.

Sdílet tento příspěvek


Link to post
Share on other sites
  • 0

Díky a našel by jsi nějaký trik aby se nemuselo vše psát do jednoho dlouhého řádku? Protože se to přepíše, když dám dva pod sebe.

new data[size];
format(data, sizeof data, "AdminLevel : %i\n\
                           Banka : %i\n\
                           Cash : %i\n\
                           Niečo : %s",
                           AdminLevel[playerid],
                           Banka[playerid],
                           GetPlayerMoney(playerid),
                           Niečo[playerid]);
ShowPlayerDialog(playerid, dialogid, style, "head", data, "button", "button");

Ak ti ide len o to, že je to dlhé tak nech sa páči.  Alebo ak niekto pozná iný spôsob nech ho napíše. Neviem teda ako tebe, ale mne osobne sa to nepáči keď je to v MSGBOXe. Skôr v TABLISTe, ale tak ako každý má svoje oči však?

 

http://wiki.sa-mp.com/wiki/Dialog_Styles

Edited by Matthew_Bennet

Sdílet tento příspěvek


Link to post
Share on other sites
  • 0

Díky a našel by jsi nějaký trik aby se nemuselo vše psát do jednoho dlouhého řádku? Protože se to přepíše, když dám dva pod sebe.

 

Ako dá sa to aj na viac riadkov, ale je to zbytočné icon_e_biggrin.gif

Každopádne keď chceš, ukážem ti ako...

new string[pocet_znakov];
new nieco1 = 5, nieco2 = 18, nieco3 = 1;
format(string, sizeof(string), "nieco1 %d", nieco1); // naformatujeme text
format(string, sizeof(string), "%s\nnieco2 %d", string, nieco2); // teraz naformatujeme text tak, že na začiatok vložíme pôvodný text a doplníme ďalšiu časť
format(string, sizeof(string), "%s\nnieco3 %d", string, nieco3); // opäť dáme pôvodný text, teraz už však rozšírený o NIECO2 a doplníme ďalšiu časť a takto pokračuješ
// výsledny textu bude: 
//nieco1 5
//nieco2 18
//nieco3 1

Edited by Quiter

Sdílet tento příspěvek


Link to post
Share on other sites
  • 0

Díky a našel by jsi nějaký trik aby se nemuselo vše psát do jednoho dlouhého řádku? Protože se to přepíše, když dám dva pod sebe.

format(data, sizeof size, "Admin Level : %s\nBanka : %i\nCash : %i", 
	Admin[playerid], Banka[playerid], GetPlayerMoney(playerid));

Sdílet tento příspěvek


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Odpovědět na dotaz...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Obnovili jsme váš původní obsah (obsah napsaný před zavřením).   Smazat obnovený obsah

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...