Warn Speichert nicht in der Datenbank

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
  • Guten Abend, ich habe einen Problem undzwar wenn ich jemanden Warne (/warn) und die Datenbank aktualisierensteht da immer noch '0'


    [b][/b][/b]ocmd:warn(playerid,params[])
    {
    new pID;
    if(sscanf(params,"i",pID))return SendClientMessage(playerid,GRAU,"Verwendung: /warn [PlayerID]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,GRAU,"Dieser Spieler ist garnicht online!");
    if(!isAdmin(playerid,4))return SendClientMessage(playerid,GRAU,"Du bist nicht befugt!");
    {
    sInfo[playerid][warn] = 1;
    SendClientMessage(pID, ORANGE, "Du wurdest soebend von einem Admin verwarnt! Du darfst maximal 3 Warns haben!");
    SendClientMessage(pID, ORANGE, "Deine Warns siehst du unter /stats!");
    SendClientMessage(playerid, GRÜN, "Du hast diesen Spieler erfolgreich verwarnt!");
    if(GetPVarInt(pID, "Warn") == 3)
    {
    SendClientMessage(pID, ORANGE, "Du hast gerade deine 3.Verwarnung erhalten & dein Account wurde gesperrt!");
    SetPVarInt(pID, "Ban", 1);
    Kick(pID);
    }
    }
    return 1;
    }[b][/b]

  • Wo genau speicherst du es da in der Datenbank ab?


    1. Benutze für playerids..
    if (sscanf (params,"u",pID))


    Bin mir nicht mehr sicher ob das ein muss ist..


    2. Du hast 2 denkfehler in 1 Zeile.


    pInfo [playerid][warn] =1;
    änderst du in
    pInfo [pID][warn] +=1; //Variable muss hochgezählt werden, da Sie sonst jedes mal auf 1 gesetzt werden würde

  • Wenn ich mir zwei Warns gebe speichert es in der datenbank nur einmal

  • Vor dem return 1; würde ich noch eine Spieler speicherung einfügen damit er direkt speichert. :thumbup:


    oder wenn das auch nicht klappt, machst Du dies.


    pInfo [pID][warn] = ++;

  • sInfo [pID][warn] +=1;
    Meinte ich sorry. Weil du ja nicht immer dir selbst warns geben willst.
    Das ist komisch dass das so nicht funktioniert. Schick mir mal deinen befehl wie du ihn jetzt grade hast.

    ocmd:warn(playerid,params[])
    {
    new pID;
    if (sscanf (params,"u",pID))return SendClientMessage(playerid,GRAU,"Verwendung: /warn [PlayerID]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,GRAU,"Dieser Spieler ist garnicht online!");
    if(!isAdmin(playerid,4))return SendClientMessage(playerid,GRAU,"Du bist nicht befugt!");
    {
    sInfo[pID][warn] +=1;
    SendClientMessage(pID, ORANGE, "Du wurdest soebend von einem Admin verwarnt! Du darfst maximal 3 Warns haben!");
    SendClientMessage(pID, ORANGE, "Deine Warns siehst du unter /stats!");
    SendClientMessage(pID, ORANGE, "Du wurdest gekickt damit deine Stats aktualisieren!");
    SendClientMessage(playerid, GRÜN, "Du hast diesen Spieler erfolgreich verwarnt!");
    Kick(pID);
    if(GetPVarInt(pID, "Warn") == 3)
    {
    SendClientMessage(pID, ORANGE, "Du hast gerade deine 3.Verwarnung erhalten & dein Account wurde gesperrt!");
    SetPVarInt(pID, "Ban", 1);
    Kick(pID);
    }
    }
    savePlayer(playerid);
    return 1;
    }

  • Vor dem return 1; würde ich noch eine Spieler speicherung einfügen damit er direkt speichert. :thumbup:


    oder wenn das auch nicht klappt, machst Du dies.


    pInfo [pID][warn] = ++;


    savePlayer(pID);
    pInfo [pID][warn] = ++;

    C:\Users\QQQQQ\Desktop\Montana Deathmatch\gamemodes\md.pwn(640) : error 029: invalid expression, assumed zero
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


  • ocmd:warn(playerid,params[])
    {
    new pID;
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,GRAU,"Verwendung: /warn [PlayerID]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,GRAU,"Dieser Spieler ist garnicht online!");
    if(!isAdmin(playerid,4))return SendClientMessage(playerid,GRAU,"Du bist nicht befugt!");
    {
    sInfo[pID][warn] ++;
    SendClientMessage(pID, ORANGE, "Du wurdest soebend von einem Admin verwarnt! Du darfst maximal 3 Warns haben!");
    SendClientMessage(pID, ORANGE, "Deine Warns siehst du unter /stats!");
    SendClientMessage(playerid, GRÜN, "Du hast diesen Spieler erfolgreich verwarnt!");
    if(GetPVarInt(pID, "Warn") == 3)
    {
    SendClientMessage(pID, ORANGE, "Du hast gerade deine 3.Verwarnung erhalten & dein Account wurde gesperrt!");
    SetPVarInt(pID, "Ban", 1);
    Kick(pID);
    }
    }
    return 1;
    }