MySQL Werte ändern

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
  • Ja wie gesagt habe diese Zeile geändert:
    cache_get_value_name_int(9, "alevel", PlayerInfo[playerid][pAlevel]);



    zu:
    cache_get_value_name_int(0, "alevel", PlayerInfo[playerid][pAlevel]);



    Nur wieso habe ich die $5000 die ich in der Datenbank hinzugefügt habe ?(

  • @Whice. Habe Ingame $0 ändere es von $0 in der Datenbank auf $5000 und wenn ich dann den Server mal restarte bzw. auf dem Server Joine immer noch $0 und als ich den Server grade neugestartet habe obwohl ich mein Adminrang ingame auf 0 gesetzt habe, hab ich nach dem Restart wieder Adminrang 3

  • @Whice. Habe mir Ingame Adminrang 0 gegeben bin Disconnectet schaue in die DB und bin trotzdem Rang 3 und die 5000 sind auch nicht da gewesen


    /edit Nun habe ich irgendwie die $5000 bekommen habe mir einen Befehl ins Script gemacht wo ich $2500 verliere bin nachdem ich den Befehl ausgeführt habe Disconnectet und bin wieder connectet und habe wieder $5000

    Einmal editiert, zuletzt von KinGRaPTiiC ()

    • Offizieller Beitrag

    @Whice. Habe mir Ingame Adminrang 0 gegeben bin Disconnectet schaue in die DB und bin trotzdem Rang 3 und die 5000 sind auch nicht da gewesen


    /edit Nun habe ich irgendwie die $5000 bekommen habe mir einen Befehl ins Script gemacht wo ich $2500 verliere bin nachdem ich den Befehl ausgeführt habe Disconnectet und bin wieder connectet und habe wieder $5000

    Das ganze wirkt irgendwie so als ob du einen Befehl erstellt hast aber die Variablen nicht verwendet hast bzw. das gespeichert hast

  • Beim Disconnecten wird doch alles Gespeichert?


    Mein Befehl mit den -$2500


    ocmd:geld(playerid,params[])
    {
    GivePlayerMoney(playerid,-2500);
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    //NPC Bot Abfrage
    if(IsPlayerNPC(playerid)) return 1;
    SaveUserStats(playerid); //Spieler wird Gespeichert
    return 1;
    }

  • ist das überall bei dir so? cache_get_value_name_int(9 <-  das der erste Parameter geändert ist wenn ja änder alles auf 0

  • public OnUserLogin(playerid)
    {
    //Query wurde ausgeführt und das Ergebnis im Cache gespeichert
    new rows;
    cache_get_row_count(rows);
    if(rows == 0)
    {
    //Der Spieler hat ein falsches Passwort eingegeben
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Bitte logge dich ein, gebe dazu dein Passwort ein:\n{FF0000}Falsches Passwort!", "Bestätigen", "Abbrechen");
    }
    else
    {
    //Es existiert ein Ergebnis, das heißt der Spieler hat das richtige Passwort eingegeben
    //Wir lesen nun die erste Zeile des Caches aus (ID 0)
    cache_get_value_name_int(0, "id", PlayerInfo[playerid][p_id]);
    cache_get_value_name_int(0, "level", PlayerInfo[playerid][pLevel]);
    cache_get_value_name_int(0, "money", PlayerInfo[playerid][pMoney]);
    cache_get_value_name_int(0, "kills", PlayerInfo[playerid][pKills]);
    cache_get_value_name_int(0, "deaths", PlayerInfo[playerid][pDeaths]);
    cache_get_value_name_int(0, "alevel", PlayerInfo[playerid][pAlevel]);
    PlayerInfo[playerid][pLoggedIn] = true;
    SendClientMessage(playerid,GELB,"Du hast dich erfolgreich eingeloggt!");
    GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
    SpawnPlayer(playerid);
    }
    return 1;
    }


    Ne das war nur bei alevel so

  • Irgendwie verstehe ich das nicht....


    Wenn er doch 2500$ abzieht ich dann Disconnecte wird es doch gespeichert aber ich verstehe auch nicht was du damit meinst...
    PlayerInfo[playerid][pMoney] = PlayerInfo[playerid][pMoney]+2500;


    Müsste ich das dann auch so beim Adminlevel machen und normales Lvl etc?

    • Offizieller Beitrag

    Wenn er doch 2500$ abzieht ich dann Disconnecte wird es doch gespeichert aber ich verstehe auch nicht was du damit meinst...

    Es steht doch in deinem Code, dass PlayerInfo[playerid][pMoney] gespeichert wird, somit musst du auch diese Variable setzten



    Müsste ich das dann auch so beim Adminlevel machen und normales Lvl etc?

    Du musst eigentlich immer die Variable setzten

  • Naja da ich verzweifelt war hab ich den Befehl einfach raus genommen und jetzt diesen eingefügt damit ich es nicht immer in der DB ändern muss.


    ocmd:setmoney(playerid,params[])
    {
    print("setmoney Befehl ausgeführt!");
    if(!isAdmin(playerid,3))return SendClientMessage(playerid,DUNKELROT,"Dein Adminlevel ist zu Niedrig!");
    new pID, test[128], string[128],BETRAG;
    if(sscanf(params,"ui",pID,BETRAG))return SendClientMessage(playerid,GELB,"[INFO]: /setmoney [SpielerID] [Betrag]");
    ResetPlayerMoney(pID);
    GivePlayerMoney(pID,BETRAG);
    format(string,sizeof(string),"AdmCmd: %s hat dein Geld auf $%i gesetzt",PlayerInfo[playerid],BETRAG);
    format(test,sizeof(test),"AdmCmd: Du hast %s den Geldbetrag auf $%i gesetzt!",PlayerInfo[pID],BETRAG);
    SendClientMessage(pID,DUNKELROT,string);
    SendClientMessage(playerid,DUNKELROT,test);
    return 1;
    }

  • Sry war mein Fehler hier der sollte jetzt einwandfrei funktionieren

    SQL
    CREATE TABLE IF NOT EXISTS `users` (`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, `name` VARCHAR(24) NOT NULL, `password` VARCHAR(128) NOT NULL, `level` TINYINT(4) NOT NULL DEFAULT '1', `money` INT(11) NOT NULL DEFAULT '100', `deaths` SMALLINT(5) NOT NULL DEFAULT '0')