Hallo Liebes Breadfish Forum,
ich habe mir ein /givewarn Befehl gemacht es funktioniert alles Super,auch das man bei 3 Warns gekickt wird.
Allerdings wird der Ban wert nicht auf 1 gesetzt
ocmd:givewarn(playerid,params[])
{
new pID,string[128],string1[128],reason[128],toall[128];
if(SpielerInfo[playerid][pAdminlevel] < 4) return SendClientMessage(playerid,Rot,"Möglich ab: "COLO" Adminrank 4");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Rot,"Keiner ist Verbunden mit dieser ID!");
if(sscanf(params,"us", pID, reason)) return SendClientMessage(playerid, Rot,""COLO"Verwendung :"COLR" /givewarn [ID] [Grund]");
SpielerInfo[pID][pWarns] ++;
SavePlayer(pID);
format(string,sizeof(string),""COLO"[%s] %s"COLR" hat dir einen Warn gegeben! "COLO"Grund: "COLR "%s ",adminrang(playerid),GetName(playerid),reason);
SendClientMessage(pID,Rot,string);
format(string1,sizeof(string1),"Du hast "COLO" %s "COLR" einen Warn gegeben! "COLO"Grund: "COLR" %s",GetName(pID),reason);
SendClientMessage(playerid,Rot,string1);
if(SpielerInfo[playerid][pWarns] == 3)
{
SendClientMessage(pID,Rot,"Du wurdest Gebannt! "COLO"Grund: "COLR"3Warns");
format(toall,sizeof(toall),""COLO"[ServerNachricht] "COLR" %s wurde vom Server gebannt! "COLO"Grund: "COLR"3Warns",GetName(pID));
SendClientMessageToAll(Rot,toall);
SetTimerEx("BanTimer",500,false,"i",pID);
SpielerInfo[pID][pBan] ++;
SavePlayer(pID);
}
return 1;
}
/givewarn funktioniert nicht ganz
- [PeL]Smiley
- Geschlossen
- Erledigt
-
-
if(SpielerInfo[playerid][pWarns]] == 3)
zu
if(SpielerInfo[pID][pWarns]] == 3)Du fragst die Warns von dem Admin ab, der den Warn ausführt.
Außerdem:
SpielerInfo[pID][pBan] ++;bitte vor dem Setzen des BanTimers.
-
-
Hast Du noch gelesen, was ich in meinen Post editiert habe?
Du musst den BanTimer als Allerletztes starten. -
Habe ich gemacht funktioniert troztdem nicht:
ocmd:givewarn(playerid,params[])
{
new pID,string[128],string1[128],reason[128],toall[128];
if(SpielerInfo[playerid][pAdminlevel] < 4) return SendClientMessage(playerid,Rot,"Möglich ab: "COLO" Adminrank 4");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Rot,"Keiner ist Verbunden mit dieser ID!");
if(sscanf(params,"us", pID, reason)) return SendClientMessage(playerid, Rot,""COLO"Verwendung :"COLR" /givewarn [ID] [Grund]");
SpielerInfo[pID][pWarns] ++;
SavePlayer(pID);
format(string,sizeof(string),""COLO"[%s] %s"COLR" hat dir einen Warn gegeben! "COLO"Grund: "COLR "%s ",adminrang(playerid),GetName(playerid),reason);
SendClientMessage(pID,Rot,string);
format(string1,sizeof(string1),"Du hast "COLO" %s "COLR" einen Warn gegeben! "COLO"Grund: "COLR" %s",GetName(pID),reason);
SendClientMessage(playerid,Rot,string1);
if(SpielerInfo[pID][pWarns] == 3)
{
SendClientMessage(pID,Rot,"Du wurdest Gebannt! "COLO"Grund: "COLR"3Warns");
format(toall,sizeof(toall),""COLO"[ServerNachricht] "COLR" %s wurde vom Server gebannt! "COLO"Grund: "COLR"3Warns",GetName(pID));
SendClientMessageToAll(Rot,toall);
SpielerInfo[pID][pBan] ++;
SavePlayer(pID);
SetTimerEx("BanTimer",500,false,"i",pID);
}
return 1;
} -
Und Du wirst ganz sicher bei 3 Warns gekickt?
-
Zu 100%
-
[PeL]Smiley:
Versuche es mal so:
ocmd:givewarn(playerid,params[]){
new pID,string[128],reason[64];
if(SpielerInfo[playerid][pAdminlevel] < 4) return SendClientMessage(playerid,Rot,"Möglich ab: "COLO" Adminrank 4");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Rot,"Keiner ist Verbunden mit dieser ID!");
if(sscanf(params,"us", pID, reason)) return SendClientMessage(playerid, Rot,""COLO"Verwendung :"COLR" /givewarn [ID] [Grund]");
SpielerInfo[pID][pWarns] ++;
SavePlayer(pID);
format(string,sizeof(string),""COLO"[%s] %s"COLR" hat dir einen Warn gegeben! "COLO"Grund: "COLR "%s ",adminrang(playerid),GetName(playerid),reason);
SendClientMessage(pID,Rot,string);
format(string,sizeof(string),"Du hast "COLO" %s "COLR" einen Warn gegeben! "COLO"Grund: "COLR" %s",GetName(pID),reason);
SendClientMessage(playerid,Rot,string);
if(SpielerInfo[playerid][pWarns] >= 3){
SendClientMessage(pID,Rot,"Du wurdest Gebannt! "COLO"Grund: "COLR"3Warns");
format(string,sizeof(string),""COLO"[ServerNachricht] "COLR" %s wurde vom Server gebannt! "COLO"Grund: "COLR"3Warns",GetName(pID));
SendClientMessageToAll(Rot,string);
SpielerInfo[pID][pBan] = 1;
SavePlayer(pID);
return SetTimerEx("BanTimer",500,false,"i",pID);
}
return 1;
}
Wie Mr.Reese bereits sagte, den Timer als letztes starten..
Außerdem brauchst du nicht tausend String-Variablen erstellen, wenn du nur eine gleichzeitig nutzt//Wie viele Warns hast du / hat der Spieler denn, wenn du ihm / dir einen Warn gibst?
Bei deiner Abfrage ist, dass er nur gebannt wird, wenn er genau 3 Warns hat..
Vielleicht hat er ja mehr als 3 und du versuchst es weiterhin.. -
Schau doch mal, ob in Deiner Speicherfunktion der Wert überhaupt in der Datenbank / Datei gespeichrt wird (pBan).
-
mach das mal vor dem BanTimer:
printf("TestP: %d", SpielerInfo[pID][pBan]);
Und schick mal was dann im Log steht. -
-
Im Log steht nicht von dem print
BTW: Funzt immernoch nicht.
Und ja ich speichere und lade den pBan
Und Eriksoon ich bin mir sicher das ich nur 2 Warns habe,dann gebe ich /givewarn 0 test ein und dann steht in der Datenbank Warns: 3 aber ban bleibt bei 0 -
Verändere mal dein Code zu:
ocmd:givewarn(playerid,params[]){
new pID,string[128],reason[64];
if(SpielerInfo[playerid][pAdminlevel] < 4) return SendClientMessage(playerid,Rot,"Möglich ab: "COLO" Adminrank 4");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Rot,"Keiner ist Verbunden mit dieser ID!");
if(sscanf(params,"us", pID, reason)) return SendClientMessage(playerid, Rot,""COLO"Verwendung :"COLR" /givewarn [ID] [Grund]");
SpielerInfo[pID][pWarns] ++;
SavePlayer(pID);
format(string,sizeof(string),""COLO"[%s] %s"COLR" hat dir einen Warn gegeben! "COLO"Grund: "COLR "%s ",adminrang(playerid),GetName(playerid),reason);
SendClientMessage(pID,Rot,string);
format(string,sizeof(string),"Du hast "COLO" %s "COLR" einen Warn gegeben! "COLO"Grund: "COLR" %s",GetName(pID),reason);
SendClientMessage(playerid,Rot,string);
if(SpielerInfo[playerid][pWarns] >= 3){
SendClientMessage(pID,Rot,"Du wurdest Gebannt! "COLO"Grund: "COLR"3Warns");
print("1");
format(string,sizeof(string),""COLO"[ServerNachricht] "COLR" %s wurde vom Server gebannt! "COLO"Grund: "COLR"3Warns",GetName(pID));
print("2");
SendClientMessageToAll(Rot,string);
print("3");
SpielerInfo[pID][pBan] = 1;
print("4");
SavePlayer(pID);
print("5");
printf("TestB: %d", SpielerInfo[pID][pBan]);
return SetTimerEx("BanTimer",500,false,"i",pID);
}
return 1;
} -
Danke es funktioniert jetzt
-
breadfish.de
Hat das Thema geschlossen.