GetCommandParams Üdvözöllek titeket. Ma egy egyszerû, ám nagyszerû függvényt akarok nektek bemutatni. Ha nincs kedvetek áttérni parancs feldolgozó függvénykönyvtárakra, és szeretnél maradni a régi és könnyû parancsoknál akkor ezt neked találták ki! A neve GetCommandParams. Ennek a segítségével könnyen feldarabolhatod az OnPlayerCommandTextben meghívott parancsokat. Használata igen egyszerû:
public OnPlayerCommandText(playerid, cmdtext[])
{
GetCommandParams(cmdtext);
if(!strcmp(funcname, \"/tesztparancs\", false))
{
print(par);
return 1;
}
return 0;
}
Amint láthatjátok a parancsot nem a cmdtextben keressük, hanem az ún. \"funcname\" változóban. Ha a bevitt parancsnak van paraméterei akkor azt könnyen fellehet darabolni. A paramétereket a \"par\" nevû változóban tárolja!
Nézzünk egy példát:
public OnPlayerCommandText(playerid, cmdtext[])
{
GetCommandParams(cmdtext);
if(!strcmp(funcname, \"/givemoney\", false))
{
new
penz,
jatekos,
string[128];
if(sscanf(par, \"dd\", jatekos, penz)) return SendClientMessage(playerid, 0xFFFFFF, \"HASZNÁLAT: /givemoney [játékos id] [pénz]\");
else if(penz <= 0) return SendClientMessage(playerid, 0xFFFFFF, \"HIBA: A pénz összeg nem megfelelõ!\");
else if(!IsPlayerConnected(jatekos)) return SendClientMessage(playerid, 0xFFFFFF, \"A játékos nem elérhetõ!\");
else
{
format(string, sizeof(string), \"Sikeresen adtál %d$-t a következõ játékosnak: %dID\", penz, jatekos);
SendClientMessage(playerid, 0xFFFFFF, string);
format(string, sizeof(string), \"Kaptál %d$-t!\", penz);
SendClientMessage(jatekos, 0xFFFFFF, string);
}
return 1;
}
return 0;
}
Letöltés:SolidFilesPasteBin