-
Sziasztok!
Sokat próbálkoztam, de sajnos nem igen sikerül :(
Azt szeretném megoldani hogy ez a parancs ne CMD:szr legyen hanem: if(strcmp(cmd, \"/szr\", true) == 0)
Akár hányszor próbálgattam átírni mindig valamibe belekötött :(
Elõre is köszönöm!
Script:
CMD:szr(playerid, params[])
{
new nev[MAX_PLAYER_NAME], szoveg[256], string[256];
if(PlayerInfo[playerid][munka] == 0) return SendClientMessage(playerid, PIROS, \"Nem használhatod ezt a parancsot!\");
if(sscanf(params, \"s\", szoveg)) return SendClientMessage(playerid, PIROS, \"Használat: /szr [szöveg]\");
GetPlayerName(playerid, nev, sizeof(nev));
if(PlayerInfo[playerid][munka] == SZERELO) format(string, sizeof(string), \"Szerelõ,{28ad00}%s(%s): (({f8faf7}%s))\", nev, Munkarang(playerid), szoveg);
for(new i; i <MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[playerid][munka] == PlayerInfo[munka])
{
SendClientMessage(i, 0xffffffAA, string);
if(hang[playerid] == true) PlayerPlaySound(playerid, 1190, 0, 0, 0);
}
}
}
return 1;
}
-
OPCT-nél nincs alapból darabolva paraméter, azért nem mûködik úgy. Ha már van sscanfod, nem lesz nehéz dolgod.
new cmd, params[144];
sscanf(cmdtext, \"s[32]S()[32]\", cmd, params);
if(!strcmp(\"/szr\", cmd)) {
if(!strlen(params)) //Nincs beírva paraméter.
//Itt már darabolhatod a PARAMÉTEREKET tovább sscanffal.
return 1;
}
Sok szerencsét, további jó scriptelést! :thumbsup:
U.i.: a zcmd sokkal gyorsabb lesz, azt javaslom, hogy használd.
-
Gondolom azért akarsz egy alap parancsfeldolgozó-t használni mert a ZCMD-t nem tudtad kitanulni sscanf-al.
Annyi a hiba a scriptben hogy ez helyett:
if(sscanf(params, \"s\", szoveg))
így:
if(sscanf(params, \"s[256]\", szoveg))
-
Nem hinném. Az sscanf attól mûködik (32-nek veszi), csak warningot dob.
-
Sziasztok!
Sokat próbálkoztam, de sajnos nem igen sikerül :(
Azt szeretném megoldani hogy ez a parancs ne CMD:szr legyen hanem: if(strcmp(cmd, \"/szr\", true) == 0)
Akár hányszor próbálgattam átírni mindig valamibe belekötött :(
Elõre is köszönöm!
Script:
CMD:szr(playerid, params[])
{
new nev[MAX_PLAYER_NAME], szoveg[256], string[256];
if(PlayerInfo[playerid][munka] == 0) return SendClientMessage(playerid, PIROS, \"Nem használhatod ezt a parancsot!\");
if(sscanf(params, \"s\", szoveg)) return SendClientMessage(playerid, PIROS, \"Használat: /szr [szöveg]\");
GetPlayerName(playerid, nev, sizeof(nev));
if(PlayerInfo[playerid][munka] == SZERELO) format(string, sizeof(string), \"Szerelõ,{28ad00}%s(%s): (({f8faf7}%s))\", nev, Munkarang(playerid), szoveg);
for(new i; i <MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[playerid][munka] == PlayerInfo[munka])
{
SendClientMessage(i, 0xffffffAA, string);
if(hang[playerid] == true) PlayerPlaySound(playerid, 1190, 0, 0, 0);
}
}
}
return 1;
}
-
OPCT-nél nincs alapból darabolva paraméter, azért nem mûködik úgy. Ha már van sscanfod, nem lesz nehéz dolgod.
new cmd, params[144];
sscanf(cmdtext, \"s[32]S()[32]\", cmd, params);
if(!strcmp(\"/szr\", cmd)) {
if(!strlen(params)) //Nincs beírva paraméter.
//Itt már darabolhatod a PARAMÉTEREKET tovább sscanffal.
return 1;
}
Sok szerencsét, további jó scriptelést! :thumbsup:
U.i.: a zcmd sokkal gyorsabb lesz, azt javaslom, hogy használd.
-
Gondolom azért akarsz egy alap parancsfeldolgozó-t használni mert a ZCMD-t nem tudtad kitanulni sscanf-al.
Annyi a hiba a scriptben hogy ez helyett:
if(sscanf(params, \"s\", szoveg))
így:
if(sscanf(params, \"s[256]\", szoveg))
-
Nem hinném. Az sscanf attól mûködik (32-nek veszi), csak warningot dob.