Szerző Téma: Playerids-s parancsok  (Megtekintve 692 alkalommal)

Playerids-s parancsok
« Dátum: 2012. Augusztus 27. - 19:35:20 »
0 Show voters
Azt szeretném megkérdezni tõletek hogy hogy kell playerid-is parancsokat írni? :)
Például ilyet hogy /givemoney összeg playerid
Elõre is köszönöm :)
« Utoljára szerkesztve: 2012. Augusztus 29. - 08:21:40 írta Benceee »

Playerids-s parancsok
« Válasz #1 Dátum: 2012. Augusztus 27. - 19:47:23 »
0 Show voters
[mod]A téma neve utaljon a problémádra.[/mod]


Egyébként ZCMD és sscanf.
http://sampforum.hu/index.php?topic=4400.0

Playerids-s parancsok
« Válasz #2 Dátum: 2012. Augusztus 27. - 20:42:35 »
0 Show voters
kell hozzá sscanf, vagy strtok.
egy változó, amiben tárolod.
 
new player1;
sscanf(params, \"d\", player1)) return 1;

 
magyarázat. \'params\' karakterláncot darabolja, kiveszi belõle a számot \'d\', és tárolja a \'player1\' változóba


tmp = strtok(cmdtext, idx);
new player1 = strval(tmp);

 
magyarázat. az \'strtok\' függvény darabolja a \'cmdtext\' karakterláncot, tehát amit beírtál parancsnak. a \'tmp\' változó is egy karakterlánc, amibõl \'strval\' függvénnyel számot csinálunk, és eltároljuk a \'player1\' változóba


gyakorlat.
strtok + strcmp
 
public OnPlayerCommandText(playerid, cmdtext[]) {
new cmd[256],
    idx;
cmd = strtok(cmdtext, idx);
if(strcmp(cmd, \"/select\", true) == 0) {
new tmp[256], // darabolt karakterlánc
    string[128], //üzenet karakterlánca
    pName[MAX_PLAYER_NAME]; // játékosnév karakterlánc
tmp = strtok(cmdtext, idx); // darabolás
new player1 = strval(tmp); //darabolt karaterlánc számmá alakítása
if(!strlen(tmp)) return SendClientMessage(playerid, -1, \"<HASZNÁLAT>:/select [játékosid]\"); // ha nem írt be semmit a parancs után
if(!IsPlayerConnected(player1)) return SendClientMessage(playerid, -1, \"Nincs ilyen játékos!\"); // ha rössz IDt adott meg
GetPlayerName(player1, pName, sizeof(pName)); // név lekérdezése
format(string, sizeof(string), \"Kiválasztottad %s [%d] játékost!\", pName, player1); // üzenet formázása
SendClientMessageToAll(-1, string); // üzenet elküldése
return 1;
}
return 0;
}

 
sscanf + zcmd
 
CMD:select(playerid, params[]) {
new player1, // játékosIDre hivatkozó változó
   string[128], //üzenet karakterlánca
pName[MAX_PLAYER_NAME]; // játékosnév karakterlánc
if(sscanf(params, \"d\", player1)) SendClientMessage(playerid, -1, \"<HASZNÁLAT>:/select [játékosid]\"); // ha nem írt be semmit a parancs után
if(!IsPlayerConnected(player1)) return SendClientMessage(playerid, -1, \"Nincs ilyen játékos!\"); // ha rössz IDt adott meg
GetPlayerName(player1, pName, sizeof(pName)); // név lekérdezése
format(string, sizeof(string), \"Kiválasztottad %s [%d] játékost!\", pName, player1); // üzenet formázása
SendClientMessageToAll(-1, string); // üzenet elküldése
return 1;
}

 


Ha valamit elírtam, akkor sry, még soha nem írtam tutot :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal