Permban Befehl bannt Spieler nicht

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
  • Heyho,
    Mein Permban Befehl sperrt den Spieler nicht nach dem Bann.


    Ich habe das Speichern schon mal Debugt und er UPDATET es auch aber es wird nicht in die Datenbank übernommen, was etwas komisch ist.


    ocmd:permban(playerid,params[])
    {
    new pID,Grund[128],kickstr[128];
    if(sInfo[playerid][pEingeloggt] == 0) return SendClientMessage(playerid, GRAU, LOGINERROR);
    if(sInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, GRAU, ADMERROR);
    if(sscanf(params, "is[128]",pID,Grund)) return SendClientMessage(playerid, GRAU, "Verwende: /permban {FF9E00}<Spieler-ID> <Grund>");
    format(kickstr,sizeof(kickstr), "%s wurde von %s vom dauerhaft Server gebannt! Grund: %s", SpielerName(pID), SpielerName(playerid), Grund);
    SendClientMessageToAll(DROT, kickstr);
    SetTimer("KickTimer2", 1000, false);
    sInfo[playerid][pBan] = 1;
    SpielerSpeichern(playerid);
    SpielerReset(playerid);
    return 1;
    }


    stock SpielerSpeichern(playerid){


    if(sInfo[playerid][pEingeloggt] == 0) return 1;
    new query[1024];
    format(query,sizeof(query),"UPDATE accounts SET Level='%i',Geld='%i', Admin='%i',Gebannt'%i' WHERE ID='%i'",sInfo[playerid][pLevel],GetPlayerMoney(playerid),sInfo[playerid][pAdmin],sInfo[playerid][pBan], sInfo[playerid][pDBID]);
    mysql_function_query(mysql,query,false,"","");
    printf("%s",query);
    return 1;
    }

    Mit freundlichen Grüßen,
    Derakar

  • Schalte mal bitte den MySQL-Log an.
    Tipps: Scripting-Probleme richtig erklären Absatz 1.4 ;)


    #edit:
    ocmd:permban(playerid,params[])
    {
    new pID,Grund[128],kickstr[128];
    if(sInfo[playerid][pEingeloggt] == 0) return SendClientMessage(playerid, GRAU, LOGINERROR);
    if(sInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, GRAU, ADMERROR);
    if(sscanf(params, "is[128]",pID,Grund)) return SendClientMessage(playerid, GRAU, "Verwende: /permban {FF9E00}<Spieler-ID> <Grund>");
    format(kickstr,sizeof(kickstr), "%s wurde von %s vom dauerhaft Server gebannt! Grund: %s", SpielerName(pID), SpielerName(playerid), Grund);
    SendClientMessageToAll(DROT, kickstr);
    SetTimer("KickTimer2", 1000, false);
    sInfo[playerid][pBan] = 1;
    return 1;
    }
    Schreib den Code bitte so. Wahrscheinlich hast du unter OnPlayerDisconnect den Spieler nochmals speichern lassen, aber da waren die Werte schon resettet ;)

  • [16:15:59] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1' WHERE ID='8'' at line 1

    Mit freundlichen Grüßen,
    Derakar

  • stock SpielerSpeichern(playerid){


    if(sInfo[playerid][pEingeloggt] == 0) return 1;
    new query[1024];
    format(query,sizeof(query),"UPDATE accounts SET Level='%i',Geld='%i', Admin='%i',Gebannt='%i' WHERE ID='%i'",sInfo[playerid][pLevel],GetPlayerMoney(playerid),sInfo[playerid][pAdmin],sInfo[playerid][pBan], sInfo[playerid][pDBID]);
    mysql_function_query(mysql,query,false,"","");
    printf("%s",query);
    return 1;
    }
    Das muss so, du hast hinter Gebannt ein "=" vergessen ;)