hallo leute !
wollte mal fragen wie ich ein normalen command zu einem admin command mache?
hoffe ihr könnt mir helfen und danke euch schon mal im vorraus!
Mfg RuSsiADaN
hallo leute !
wollte mal fragen wie ich ein normalen command zu einem admin command mache?
hoffe ihr könnt mir helfen und danke euch schon mal im vorraus!
Mfg RuSsiADaN
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,COLOR_RED,"Dieser Befehl ist nur für Admins!");
ok danke werd ich sofort testen!
Sry hatte oben einen Fehler drin habs nochmal editiert
hmm scheint i-wie nicht zu klappen:( brauch man vllt. ein admin system oder geht das auch mit dem /rcon login ?
Das ist für Rcon Admins,
wo bei deinem Befehl hast du es denn eingebaut?
bei kick und bei givemoney
asoo mom mache ebn die zeilen rein
if(strcmp("/kick", cmdtext, true, 5) == 0) //normal command - unfortunately, the cellmax is needed
{
new tmp[128]; //create a tmp, just like strtok
tmp = zcmd(1, cmdtext); //the "1" is the position of the var - see next example
if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFF0000FF, "Du hast keine ID angegeben!"); //check string length, just like strtok
Kick(strval(tmp)); //kick the value of the tmp string
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFF00FF, "Dieser Befehl ist nur für Admins!");
return 1;
}
und hier :
if(strcmp("/givemoney", cmdtext, true, 10) == 0)
{
new tmp[128], tmp2[128], string[128], id, ammount, pname[MAX_PLAYER_NAME], oname[MAX_PLAYER_NAME];
tmp = zcmd(1, cmdtext);
tmp2 = zcmd(2, cmdtext);
if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFF0000FF, "Du hast keine ID angegeben!");
if(strlen(tmp2) == 0) return SendClientMessage(playerid, 0xFF0000FF, "Du hast kein Geld angebeben!");
id = strval(tmp);
ammount = strval(tmp2);
if(IsPlayerConnected(id) == 0) return SendClientMessage(playerid, 0xFF0000FF, "Spieler ist nicht Online!");
if(ammount < 0 || ammount > 1000000) return SendClientMessage(playerid, 0xFF0000FF, "Ungültiger Wert!");
GetPlayerName(playerid, pname, sizeof(pname));
GetPlayerName(id, oname, sizeof(oname));
GivePlayerMoney(id, ammount);
format(string, sizeof(string), "Du hast %s $%d gegeben.", oname, ammount);
SendClientMessage(playerid, 0x00FF00FF, string);
format(string, sizeof(string), "Du hast $%d von %s bekommen!", ammount, pname);
SendClientMessage(id, 0x00FF00FF, string);
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFF00FF, "Dieser Befehl ist nur für Admins!");
return 1;
}
Die Abfrage muss weiter nach oben ungefähr so:
if(strcmp("/kick", cmdtext, true, 5) == 0) //normal command - unfortunately, the cellmax is needed
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFF00FF, "Dieser Befehl ist nur für Admins!");
new tmp[128]; //create a tmp, just like strtok
tmp = zcmd(1, cmdtext); //the "1" is the position of the var - see next example
if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFF0000FF, "Du hast keine ID angegeben!"); //check string length, just like strtok
Kick(strval(tmp)); //kick the value of the tmp string
return 1;
}
So wie du es gemacht hast wird der Spieler erst gekickt, dh. der Befehl ausgeführt und dann überprüft ob der Nutzer überhaupt ein Admin ist.
Bei givemoney ist es das selbe
ok danke ich teste es mal
cool danke jz klappt alles perfekt !
danke Portgas D Ace
Hi,
so ist es richtig :
if(strcmp("/kick", cmdtext, true, 5) == 0) //normal command - unfortunately, the cellmax is needed
{
if(!IsPlayerAdmin(playerid))
{
new tmp[128]; //create a tmp, just like strtok
tmp = zcmd(1, cmdtext); //the "1" is the position of the var - see next example
if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFF0000FF, "Du hast keine ID angegeben!"); //check string length, just like strtok
Kick(strval(tmp)); //kick the value of the tmp string
}
else
{
SendClientMessage(playerid, 0xFFFF00FF, "Dieser Befehl ist nur für Admins!");
}}
return 1;
}
und:
if(strcmp("/givemoney", cmdtext, true, 10) == 0)
{
if(!IsPlayerAdmin(playerid))
{
new tmp[128], tmp2[128], string[128], id, ammount, pname[MAX_PLAYER_NAME], oname[MAX_PLAYER_NAME];
tmp = zcmd(1, cmdtext);
tmp2 = zcmd(2, cmdtext);
if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFF0000FF, "Du hast keine ID angegeben!");
if(strlen(tmp2) == 0) return SendClientMessage(playerid, 0xFF0000FF, "Du hast kein Geld angebeben!");
id = strval(tmp);
ammount = strval(tmp2);
if(IsPlayerConnected(id) == 0) return SendClientMessage(playerid, 0xFF0000FF, "Spieler ist nicht Online!");
if(ammount < 0 || ammount > 1000000) return SendClientMessage(playerid, 0xFF0000FF, "Ungültiger Wert!");
GetPlayerName(playerid, pname, sizeof(pname));
GetPlayerName(id, oname, sizeof(oname));
GivePlayerMoney(id, ammount);
format(string, sizeof(string), "Du hast %s $%d gegeben.", oname, ammount);
SendClientMessage(playerid, 0x00FF00FF, string);
format(string, sizeof(string), "Du hast $%d von %s bekommen!", ammount, pname);
SendClientMessage(id, 0x00FF00FF, string);
}
else
{
SendClientMessage(playerid, 0xFFFF00FF, "Dieser Befehl ist nur für Admins!");
}}
return 1;
}
deine Fehler waren:
1. Du hast die IF abfrage erst am ende gemacht.
2.Die If abfrage konnte gar nicht abgefragt werden
MFG: Apoolecu
Apoolecu, so wie du es geschrieben hast ist es umständlicher und Platzfressender, bessere Lösung siehe oben.
@TE kein Problem helfe gerne