Szerző Téma: Mi a kulonbseg? print - printf [kezdo]  (Megtekintve 1087 alkalommal)

Nem elérhető KrisT

  • 106
    • Profil megtekintése
Mi a kulonbseg? print - printf [kezdo]
« Dátum: 2014. Augusztus 07. - 01:29:14 »
0 Show voters
Sziasztok! Kezdo vagyok, bocsassatok meg.
Mi a print es a printf kozott a kulonbseg?
Mikor printf-et hasznalok, a suerveren kiirja a chat: Unknpwn command
« Utoljára szerkesztve: 2014. Október 19. - 16:33:51 írta Flash »

Nem elérhető BackUP

  • 908
    • Profil megtekintése
Mi a kulonbseg? print - printf [kezdo]
« Válasz #1 Dátum: 2014. Augusztus 07. - 08:48:31 »
0 Show voters
Csak annyi a külömbség, hogy a printf egyben egy kis format függvény is. (printf(ormat)) :) Tehát nem kell külön megformáznod a szöveget, hanem egy sorban kiírhatod, és meg is formázhatod. Példa:
 
new valtozo = 255;
printf(\"A változó értéke: %d\",valtozo);

 
Print pedig csak simán kiírja, olyan mintha SendClientMessage lenne. Annyi különbséggel, hogy a print, és a printf a konzolba(valamint szerver logba) írja ki a szöveget, és nem a Chatbe. Például az elõzõ példát print függvénnyel így oldhatod meg:
 
new valtozo = 255;
new str[25];
format(str,sizeof(str),\"A változó értéke: %d\",valtozo);
print(str);

Nem elérhető KrisT

  • 106
    • Profil megtekintése
Mi a kulonbseg? print - printf [kezdo]
« Válasz #2 Dátum: 2014. Augusztus 07. - 10:01:46 »
0 Show voters
Ez sokat segített, köszönöm!
 
CMD:full(playerid,params[])
{
new uzenet[256];
SetPlayerSkin(playerid, 286);
SetPlayerArmour(playerid, 100);
SetPlayerHealth(playerid, 100);
GivePlayerWeapon(playerid,31 , 5000);
GivePlayerWeapon(playerid,27 , 300);
GivePlayerWeapon(playerid, 24, 5000);
GivePlayerWeapon( playerid,4, 1);
GivePlayerWeapon( playerid,16, 600);
GivePlayerWeapon(playerid, 29, 5000);
    GivePlayerWeapon(playerid, 46, 1);
format(uzenet,sizeof(uzenet),\"Sikeresen fullos lettél, kedves %s!\",nev);
SendClientMessage(playerid,COLOR_YELLOW2,uzenet);
printf(\"%s használta a /full parancsot!\");
return 1;
}

 
Ha ezt beírom a chatbe, mármint a parancsot, akkor a végére a SendClientMessage után kiírja, hogy: Unknown command.
Ugye ezt a printf-re írja ki. Ha a kód elejére rakom a printf-t, akkor a feladat elvégzésének 1. lépése az hogy logba beírja(printf), és a chatembe kiírja hogy: Unknown command. Mi lehet ez a hiba? Nem kellene neki kiírnia semmit, ha használom a printf-t.
[mod]Javítottam a

taget

tagre![/mod]
« Utoljára szerkesztve: 2014. Augusztus 07. - 12:22:57 írta Dfoglalo »

Nem elérhető Cube.

Mi a kulonbseg? print - printf [kezdo]
« Válasz #3 Dátum: 2014. Augusztus 07. - 10:10:25 »
0 Show voters
a printf-ben nem adtad meg a változód értékét, jelen esetben a játékos nevét.
 

printf(%s használta a /full parancsot!\",GetPlayerName(playerid, MAX_PLAYER_NAME));

Nem elérhető divkn

  • 3259
    • Profil megtekintése
Mi a kulonbseg? print - printf [kezdo]
« Válasz #4 Dátum: 2014. Augusztus 07. - 10:20:19 »
0 Show voters
Helyett
 

new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,pname,MAX_PLAYER_NAME);
printf(\"%s használta a /full parancsot!\",pname);

 
GetPlayerName a játékosnév hosszúságával tér vissza, vagy 0-val ha nem elérhetõ, nem pedig a játékos nevével mint karaterláncban.
De úgy látom hogy már van egy \'nev\' változó a szkriptben format funkciónál, szóval csak elég lesz így is.
 
printf(\"%s használta a /full parancsot!\",nev);

Nem elérhető gbr333

  • 670
    • Profil megtekintése
Mi a kulonbseg? print - printf [kezdo]
« Válasz #5 Dátum: 2014. Augusztus 07. - 10:29:02 »
0 Show voters
Ha ZCMD-t használsz:
 

public OnPlayerCommandPerformed(playerid, cmdtext[], success){
if(success){
        new name[MAX_PLAYER_NAME+1];
        GetPlayerName(playerid, name, sizeof(name));
printf(\"%s használta a %s parancsot\",name,cmdtext);
}
return 1;
}

 
Ha ezt beteszed akkor nem kell minden parancshoz oda írogatni a printet :D

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
Mi a kulonbseg? print - printf [kezdo]
« Válasz #6 Dátum: 2014. Augusztus 07. - 15:51:10 »
0 Show voters
Használj inkább stockot a név lekérdezéshez.. sokkal egyszerûbb :)
 
stock pName( playerid )
{
  new name[ 24 ];
  GetPlayerName( playerid, name, sizeof( name ) );
  return name;
}

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Mi a kulonbseg? print - printf [kezdo]
« Válasz #7 Dátum: 2014. Szeptember 03. - 11:23:01 »
0 Show voters
[mod]Régi téma, Zártam![/mod]

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal