-
Sziasztok. Azt hogyan lehetne megcsinálni, hogy pl egy cmds-parancsot beír egy játékos, és akkor azt egy admin lássa hogy \"Jozsi beírt egy parancsot. (/cmds).\" Előre köszönöm.:)
-
mit használsz?
-
mit használsz?
ZCMD-t használok. :)
-
Mindegyik parancshoz oda kell írnod egyesével. Most hirtelen erre tudok gondolni, de tuti van másik megoldás.
for(new i; i < MAX_PLAYERS; i ++)
{
if(IsPlayerAdmin(i))
{
new string[256];
format(string,sizeof(string),\"%s a következő parancsot használta: /cmds\",Neve(playerid));
SendClientMessage(i,-1,string);
}
}
stock Neve(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
for(new i = 0; i < MAX_PLAYER_NAME; i++)
{
if(name == \'_\')
{
name = \' \';
}
}
return name;
}
Valami ilyesmi. Ezt most böngészőben írtam szóval nem 100%, hogy jó lesz. (A stock neve részt meg kicopyztam, de beleírhatod külön külön is, de így szerintem egyszerűbb)
-
stock Hasznalta(playerid, string[])
{
new neve[MAX_PLAYER_NAME], str[128], i=0; //létrehozzuk a változókat
GetPlayerName(playerid, neve, sizeof(neve)); // lekérjük a játékos nevét
format(str,sizeof(str), \"Szerver: %s [iD:%d] használta a \'/%s\' parancsot.\", neve, playerid, string); //formázzuk a kimenő stringet
for(; i<MAX_PLAYERS; i++) // végigmegyünk a játékoson
{
if(IsPlayerAdmin(i)) //ha a játékos admin, akkor
{
SendClientMessage(i, -1, str); //elküldjük az üzenetet
}
else return 0; //egyébként visszatérünk nullával
}
return 1;
}
Használata:
Hasznalta(playerid, \"parancsneve\"); // /jel nélkül!
-
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
if(!success)
{
new neve[MAX_PLAYER_NAME], str[128], i=0; //létrehozzuk a változókat
GetPlayerName(playerid, neve, sizeof(neve)); // lekérjük a játékos nevét
format(str,sizeof(str), \"Szerver: %s [iD:%d] használta a \'/%s\' parancsot.\", neve, playerid, cmdtext); //formázzuk a kimenő stringet
for(; i<MAX_PLAYERS; i++) // végigmegyünk a játékoson
{
if(IsPlayerAdmin(i)) //ha a játékos admin, akkor
{
SendClientMessage(i, -1, str); //elküldjük az üzenetet
}
else return 0; //egyébként visszatérünk nullával
}
}
return 1;
}
-
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
if(!success)
{
new neve[MAX_PLAYER_NAME], str[128], i=0; //létrehozzuk a változókat
GetPlayerName(playerid, neve, sizeof(neve)); // lekérjük a játékos nevét
format(str,sizeof(str), \"Szerver: %s [iD:%d] használta a \'/%s\' parancsot.\", neve, playerid, cmdtext); //formázzuk a kimenő stringet
for(; i<MAX_PLAYERS; i++) // végigmegyünk a játékoson
{
if(IsPlayerAdmin(i)) //ha a játékos admin, akkor
{
SendClientMessage(i, -1, str); //elküldjük az üzenetet
}
else return 0; //egyébként visszatérünk nullával
}
}
return 1;
}
Ez nem megy :S Nem ír ki semmit, ha valaki be ír valami parancsot.
-
if(!success)
helyett...
if(success)
-
if(!success)
helyett...
if(success)
vagy egyik se, és akkor azt is látod ha jót, és ha hülyeséget ír be.
illetve a CMDTEXT slpit vagy sscanf függvénnyel szétdarabolható, hogy csak a parancsot lásd, a paramétereket ne, mert elég hossszú parancs jönne ki egy PMből vagy akármi másból
-
Értem. Köszönöm mindenkinek. MEGOLDVA :D