Mikoo 8 Odesláno: 23. Únor, 2016 Share Odesláno: 23. Únor, 2016 Zdravím, Zkušal som robiť prikaz /say a /hp a vyskytol sa menši problem vždy keď napišem /say test tak mi tam nič nenapiše.. A keď napišem príkaz /hp id 100 tak mi tam da všeliake čisla... Tu je kod a foto.. dcmd_say(playerid, params[]) { #pragma unused params if(PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playerid,COLOR_RED,"[ ! ] Nemáš Admin Level 1 [ ! ]"); new string[300],text[148]; if(sscanf(params,"u",text)) return SendClientMessage(playerid, COLOR_RED," [ ! ] /say [TEXT] [ ! ]"); format(string,sizeof(string),"[ Admin: %s ] %s ",Jmeno(playerid),text); SendClientMessageToAll(COLOR_RED,string); return true; } //----- dcmd_hp(playerid, params[]) { #pragma unused params if(PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playerid,COLOR_RED,"[ ! ] Nemáš Admin Level 2 [ ! ]"); new id = strval(params),Float:health,string[128]; if(sscanf(params,"uf",id,health)) return SendClientMessage(playerid,COLOR_RED,"[ ! ] /hp [iD] [0-100] [ ! ]"); if(health > 100 || health < 0) return SendClientMessage(playerid,COLOR_RED,"[ ! ] [0-100] [ ! ]"); if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_RED,"[ ! ] Hráè není pripojený [ ! ]"); SetPlayerHealth(id,health); format(string,sizeof(string),"Administrátor %s nastavil hráèovy %s %d HP",Jmeno(playerid),Jmeno(id),health); SendClientMessageToAll(COLOR_RED,string); return true; } Link to comment Share on other sites More sharing options...
0 Amenadiel 286 Odesláno: 23. Únor, 2016 Share Odesláno: 23. Únor, 2016 je to float.. tudiž %f ne %d Link to comment Share on other sites More sharing options...
0 Mattsy 29 Odesláno: 23. Únor, 2016 Share Odesláno: 23. Únor, 2016 (upraveno) HP sa udáva vo floate....preto ti to dáva tie čísla a čo sa týka toho textu tak vo sscnaf namiesto "u" použi "s" http://forum.sa-mp.com/showthread.php?t=570927 Edited 23. Únor, 2016 by Mattsy Link to comment Share on other sites More sharing options...
0 Amenadiel 286 Odesláno: 23. Únor, 2016 Share Odesláno: 23. Únor, 2016 HP sa udáva vo floate....preto ti to dáva tie čísla a čo sa týka toho textu tak vo sscnaf namiesto "u" použi "s" http://forum.sa-mp.com/showthread.php?t=570927 jenže on to U má dobře.. sscanf má i vlastní parametry U můžeš zadat ID nebo jméno hráče. Link to comment Share on other sites More sharing options...
0 Mattsy 29 Odesláno: 23. Únor, 2016 Share Odesláno: 23. Únor, 2016 Veď presne, Meno alebo id hráča a nie vlastný text aspoň tak som to ja pochopil zo stránky na ktorú som dal link Link to comment Share on other sites More sharing options...
0 Amenadiel 286 Odesláno: 23. Únor, 2016 Share Odesláno: 23. Únor, 2016 Veď presne, Meno alebo id hráča a nie vlastný text aspoň tak som to ja pochopil zo stránky na ktorú som dal link new id = strval(params) jenže ono mu to ten sscanf stejně upraví.. Link to comment Share on other sites More sharing options...
0 Mattsy 29 Odesláno: 23. Únor, 2016 Share Odesláno: 23. Únor, 2016 (upraveno) new id = strval(params) jenže ono mu to ten sscanf stejně upraví.. ty experte....v prvom príkaze má #pragma unused params to čo si vytiahol ty je z druhého príkazu ja sa bavím celý čas o príkaze /say Edited 23. Únor, 2016 by Mattsy Link to comment Share on other sites More sharing options...
0 Lukasz 336 Odesláno: 23. Únor, 2016 Share Odesláno: 23. Únor, 2016 Ten /say mas napsany nejdebilneji jak to jen jde a /hp totez. V sscanf 'u' slouzi pro ziskani hrace, ne textu (na to je 's') a i tak.. chces z params vytahnout string do text. Cele params jsou string, takze v text budes mit params a cely sscanf je pak zbytecny. Proste pouzij misto text params a uprav si velikosti pole, protoze zprava fakt nemuze mit 300 znaku. U /hp mas spatne vypis, nastaveni by fungovat melo. Nicmene cely prikaz je taky smutnej. 1 Link to comment Share on other sites More sharing options...
0 Amenadiel 286 Odesláno: 23. Únor, 2016 Share Odesláno: 23. Únor, 2016 ty experte....v prvom príkaze má #pragma unused params to čo si vytiahol ty je z druhého príkazu ja sa bavím celý čas o príkaze /say tak do řitě.. u obou má U kdo se vtom má vyznat... Link to comment Share on other sites More sharing options...
0 Scydo 397 Odesláno: 23. Únor, 2016 Share Odesláno: 23. Únor, 2016 Ten /say mas napsany nejdebilneji jak to jen jde a /hp totez. V sscanf 'u' slouzi pro ziskani hrace, ne textu (na to je 's') a i tak.. chces z params vytahnout string do text. Cele params jsou string, takze v text budes mit params a cely sscanf je pak zbytecny. Proste pouzij misto text params a uprav si velikosti pole, protoze zprava fakt nemuze mit 300 znaku. U /hp mas spatne vypis, nastaveni by fungovat melo. Nicmene cely prikaz je taky smutnej. ~> Kdyby přidal ještě protest na dcmd , tak lépe bych to nenapsal... Autore: Když už kopíruješ, tak neříkej, že jsi to vytvářel ty. Je to pomalu trapnější, než se alespoň přiznat, že jsi to stáhnul... ~> Trochu jsem se nudil, tak jsem si řekl, že ti to udělám od znova, na nějaké alespoň přijatelnější úrovni: CMD:say(playerid, params[]) { if(PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playerid, 0xFF000000,"[ ! ] Nemáš Admin Level 1 [ ! ]"); new sString[144 + 1]; if(isnull(params)) return SendClientMessage(playerid, 0xFF000000," [ ! ] /say [TEXT] [ ! ]"); format(sString,sizeof(sString),"[ Admin: %s ] %s ", Jmeno(playerid), params); SendClientMessageToAll(0xFF000000, string); return (1); } CMD:hp(playerid, params[]) { if(PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playerid, 0xFF000000,"[ ! ] Nemáš Admin Level 2 [ ! ]"); new id, Float: fHealth; if(sscanf(params,"uf", id, fHealth)) return SendClientMessage(playerid, 0xFF000000, "[ ! ] /hp [ID/Jméno hráče] [0-100] [ ! ]"); if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF000000, "[ ! ] Hráè není pripojený [ ! ]"); if(fHealth > 100.0 || fHealth < 0.0) return SendClientMessage(playerid, 0xFF000000, "[ ! ] [0-100] [ ! ]"); SetPlayerHealth(id, fHealth); new sString[144 + 1]; format(sString, sizeof(sString),"Administrátor %s nastavil hráčovi %s %2.f HP", Jmeno(playerid), Jmeno(id), fHealth); SendClientMessageToAll(0xFF000000, sString); return (1); } Link to comment Share on other sites More sharing options...
0 Mikoo 8 Odesláno: 23. Únor, 2016 Author Share Odesláno: 23. Únor, 2016 (upraveno) Okj diky všem... Lock!! Edited 23. Únor, 2016 by Mikoo Link to comment Share on other sites More sharing options...
Dotaz
Mikoo 8
Zdravím,
Zkušal som robiť prikaz /say a /hp a vyskytol sa menši problem vždy keď napišem /say test tak mi tam nič nenapiše.. A keď napišem príkaz /hp id 100 tak mi tam da všeliake čisla... Tu je kod a foto..
dcmd_say(playerid, params[])
{
#pragma unused params
if(PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playerid,COLOR_RED,"[ ! ] Nemáš Admin Level 1 [ ! ]");
new string[300],text[148];
if(sscanf(params,"u",text)) return SendClientMessage(playerid, COLOR_RED," [ ! ] /say [TEXT] [ ! ]");
format(string,sizeof(string),"[ Admin: %s ] %s ",Jmeno(playerid),text);
SendClientMessageToAll(COLOR_RED,string);
return true;
}
//-----
dcmd_hp(playerid, params[])
{
#pragma unused params
if(PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playerid,COLOR_RED,"[ ! ] Nemáš Admin Level 2 [ ! ]");
new id = strval(params),Float:health,string[128];
if(sscanf(params,"uf",id,health)) return SendClientMessage(playerid,COLOR_RED,"[ ! ] /hp [iD] [0-100] [ ! ]");
if(health > 100 || health < 0) return SendClientMessage(playerid,COLOR_RED,"[ ! ] [0-100] [ ! ]");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_RED,"[ ! ] Hráè není pripojený [ ! ]");
SetPlayerHealth(id,health);
format(string,sizeof(string),"Administrátor %s nastavil hráèovy %s %d HP",Jmeno(playerid),Jmeno(id),health);
SendClientMessageToAll(COLOR_RED,string);
return true;
}
Link to comment
Share on other sites
10 odpovědí na tuto otázku
Recommended Posts