Ich hab ne frage wenn ich z.B. /kick 12 Spam mache kick ich mich selber aber auch wenn ich /kick mach und als [id] oder [name] irgendwas nehmen z.B. /kick klaadslkfj, kick ich mich auch selber?
bei meinem /kick befehl kick ich mich immer selber pls help!!
- ILikeChees
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Bitte Packe den code in Und beende ihn mit [/pwn]
Damit es für uns Übersichtlicher istMFG
Sladekillder -
Wenn du dir schon mit sscanf die ID eines anderen Spielers (= pID) holst, solltest du diese auch nutzen.
Also wird auf kick(playerid) -> kick(pID) -
ocmd:kick(playerid,params[])
{
new pID, Grund[128], string[128], name1[24], name2[24];
GetPlayerName(playerid,name1,sizeof(name1));
GetPlayerName(pID,name2,sizeof(name2));
if(!IstSpielerEinAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Admin!");
if(sscanf(params,"us",pID,Grund))return SendClientMessage(playerid,ROT,"Benutzung: /kick [ID] [Grund]");
format(string,sizeof(string),"Admin System : %s wurde von Admin %s gekickt! Grund : %s",name2,name1,Grund);
SendClientMessageToAll(ROT,string);
GameTextForPlayer(playerid,"~r~ GEKICKT!",50000,3);
TogglePlayerControllable(pID,0);
Kick(playerid);
return 1;
} -
suche Kick(playerid); ersetze Kick(pID);
-
Das gleiche ist mit meinem /ban und /makeadmin befehl
-
achne das du dich selber kicks ...
Mach von:
Kick(playerid);Zu:
Kick(pID); -
also so?
ocmd:kick(playerid,params[])
{
new pID, Grund[128], string[128], name1[24], name2[24];
GetPlayerName(playerid,name1,sizeof(name1));
GetPlayerName(pID,name2,sizeof(name2));
if(!IstSpielerEinAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Admin!");
if(sscanf(params,"us",pID,Grund))return SendClientMessage(playerid,ROT,"Benutzung: /kick [ID] [Grund]");
format(string,sizeof(string),"Admin System : %s wurde von Admin %s gekickt! Grund : %s",name2,name1,Grund);
SendClientMessageToAll(ROT,string);
GameTextForPlayer(playerid,"~r~ GEKICKT!",50000,3);
TogglePlayerControllable(pID,0);
Kick(pID);
return 1;
} -
ocmd:kick(playerid,params[])
{
new pID, Grund[128], string[128], name1[24], name2[24];
GetPlayerName(playerid,name1,sizeof(name1));
GetPlayerName(pID,name2,sizeof(name2));
if(!IstSpielerEinAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Admin!");
if(sscanf(params,"us",pID,Grund))return SendClientMessage(playerid,ROT,"Benutzung: /kick [ID] [Grund]");
format(string,sizeof(string),"Admin System : %s wurde von Admin %s gekickt! Grund : %s",name2,name1,Grund);
SendClientMessageToAll(ROT,string);
GameTextForPlayer(playerid,"~r~ GEKICKT!",50000,3);
TogglePlayerControllable(pID,0);
Kick(pID);// wen du hier playerid angibst wird das nichts
return 1;
}//edit: da ist mir jemand zu vor gekommen
-
ILikeChees
ja so -
mhm ich kicke mich aber immernoch selber....
habe ausprobiert mit /kick kajsdf Spam
obwohl ich nicht kajsdf heiße xD -
ocmd:kick(playerid,params[])
{
new pID, Grund[128], string[128], name1[24], name2[24];
GetPlayerName(playerid,name1,sizeof(name1));
GetPlayerName(pID,name2,sizeof(name2));
if(!IstSpielerEinAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Admin!");
if(sscanf(params,"us",pID,Grund))return SendClientMessage(playerid,ROT,"Benutzung: /kick [ID] [Grund]");
format(string,sizeof(string),"Admin System : %s wurde von Admin %s gekickt! Grund : %s",name2,name1,Grund);
SendClientMessageToAll(ROT,string);
GameTextForPlayer(pID,"~r~ GEKICKT!",50000,3);
TogglePlayerControllable(pID,0);
Kick(pID);
return 1;
}// Edit: Pawn Format
-
ich kick immernoch mich selber:(
-
benutzt du sscanf als stock oder als include ?
include ist verbuggt bei 0.3d ;D
-
ja als include
-
dann benutze sscanf als stock vom SA:MP wiki
-
ok habs gemacht wenn ich irgendeinen namen nehme werde ich nicht mehr gekickt aber oben steht trotzdem ILikeChees wurde von Admin ILikeChees gekickt!
aber ich bin nicht gekickt wenn ich dann /kick ILikeChees mache dann steht das gleiche und ich bin halt gekickt... -
ocmd:kick(playerid,params[])
{
new pID; // Erstellt die ID des anderen Spieler (des Spielers der gekickt werden soll.)
new string[128]; // string sollte eigentlich klar sein. 128 ist die länge des Strings.
new grund[128]; // DAs ist die Variabel des Grundes (Im Befehl muss man /kick [playerid] und den [Grund] eingeben.
new spieler[MAX_PLAYER_NAME], spieler2[MAX_PLAYER_NAME]; // Gehört zur erstellung der IDs von uns und des anderen Spielers. (spieler sind wir, spieler 2 der andere spieler)if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Admin."); // Wenn der Spieler admin rank 3 ist oder einen höheren besitzt. alles dadrunter kann den befehl nicht ausführen.
{
if(sscanf(params,"us",pID,grund)) // was soll alles geschehen ?? (einmal soll die id des Spielers angegeben werden und danach der Grund.. "u = ID, s = grund"
return SendClientMessage(playerid,WEISS,"Verwendung: /kick [playerid] [Grund]"); // siehe eine Zeile oben
if(!IsPlayerConnected(pID)) { return SendClientMessage(playerid,WEISS,"Der Spieler ist offline"); } // Wenn der angegebene Spieler nicht da ist.
GetPlayerName(playerid,spieler,sizeof spieler);//erstellt unsere ID und dient dazu damit später unser name in der nachricht angezeigt werden kann
GetPlayerName(pID,spieler2,sizeof spieler2); // erstellt die ID des gekickten spielers. pID = spieler2. Dient auch für die spätere Nachricht
format(string,sizeof string,"SERVER: %s wurde von %s gekickt. Grund: %s.",spieler2,spieler,grund); // ist die nachricht und sollte eigentlich klar sein,
SendClientMessageToAll(ROT,string); // diese nachricht wird dem Server angezeigt. bei %s werden die Ids angezeigt und der angegebene Grund.
format(string,sizeof string,"SERVER: Du wurdest von %s gekickt. Grund: %s.",spieler,grund); // diese nachricht wird dem gekickten spieler vor dem kick mit
SendClientMessage(pID,ROT,string); // kick (pID) angezeigt.
Kick(pID); // kickt den spieler im anschluss
}
return 1;
}
Ich habe es so und bei mir klapt alles versuch mal -
ok danke mein /ban und /makeadmin systhem geht auch nicht-.-
könntest du das auch mal posten? falls du eins hast -
if(strcmp(cmd, "/makeadmin", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] >= 1339 IsPlayerAdmin(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /makeadmin [ID] [Level]");
return 1;
}
new para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
new level = strval(tmp);
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
if(PlayerInfo[para1][pAdmin] < level)
{
printf("AdminSystem: %s hat %s zu einem Level %d Admin befördert.", sendername, giveplayer, level);
format(string, sizeof(string), "Du wurdest durch %s zu einem Level %d Admin befördert", sendername, level);
SendClientMessage(para1, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "Du hast %s zu einem Level %d Admin befördert.", giveplayer,level);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
else
{
printf("AdminSystem: %s hat %s zu einem Level %d Admin degradiert.", sendername, giveplayer, level);
format(string, sizeof(string), "Du wurdest durch %s zu einem Level %d Admin degradiert", sendername, level);
SendClientMessage(para1, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "Du hast %s zu einem Level %d Admin degradiert.", giveplayer,level);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
PlayerInfo[para1][pAdmin] = level;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Du bist nicht befugt diesen Befehl zu nutzen!");
}
return 1;
}MfG (Nicht getestet!)