/givewarn funktioniert nicht ganz

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
  • 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;
    }

  • 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;
    }

  • [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..

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • 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;
    }

    Mit freundlichen Grüßen,
    Chriss aka. xDesertx