Banksystem

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
  • Aus einem mir unerklärlichem Grund wird der Betrag nicht auf das Bankkonto überwiesen.


    Tutorial: http://forum.sa-mp.de/archiv/6…-by-soulman-3#post1398378


    Genutzte Speichermethode als auch Funktion (MySQL)


    Code Abschnitte:



    enum SpielerDaten
    {
    pSQLID,
    pName[MAX_PLAYER_NAME],
    pLevel,
    pAdmin,
    pGeld,
    pBank,
    pFraktion,
    pRank,
    pLeader,
    Float:pHealth,
    pOnline
    }
    new SpielerInfo[MAX_PLAYERS][SpielerDaten];
    new Ueberweiser[MAX_PLAYERS] ={-1,...}; //Dient zur Speicherungen des Namens in dieser Variable


    if(dialogid == Einzahlung) //Fragt ab, welcher Dialog aufgerufen wurde.
    {
    new str[128]; //Wieder ein neuer string.
    if(!response)return ShowPlayerDialog(playerid,Bankmenu,DIALOG_STYLE_LIST,"Transaktionen","Einzahlung\nAuszahlung\nKontostand\nÜberweisung","Wählen","Beenden"); //Falls der Dialog nicht beantwortet wird, wird der originale Dialog angezeigt. (!response) Das Ausrufezeichen verneint die Abfrage.
    if(GetPlayerMoney(playerid) < strval(inputtext))return SendClientMessage(playerid,0xC8C8C8FF,"Du hast nicht genug Geld dabei!"); //Wenn das Geld auf der Hand des Spielers nicht ausreicht, erscheint diese Nachricht. Der inputtext dient hierbei als Abfrage dafür. Das Zeichen < müsstest du aus dem Mathematikunterricht kennen.
    GivePlayerMoney(playerid, - strval(inputtext)); //Hier wird dem Spieler das Geld abgezogen, was er einzahlt. Da es kein Befehl zum abziehen von Geld gibt, arbeitet man mit Minus.
    SpielerInfo[playerid][pBank] += strval(inputtext); //Hier wird das Geld dann auf das Bankkonto addiert.
    format(str,sizeof(str),"Sie haben %d $ auf ihr Konto eingezahlt",strval(inputtext)); //Jetzt kommt der string (str) zum Einsatz.
    ShowPlayerDialog(playerid,EinzahlungText,DIALOG_STYLE_MSGBOX,"Transaktion",str,"Schließen",""); //und als Dialog ausgegeben
    }


    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    mysql_SetInt("accounts", "Level", SpielerInfo[playerid][pLevel], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Admin", SpielerInfo[playerid][pAdmin], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Geld", SpielerInfo[playerid][pGeld], "Name", SpielerInfo[playerid][pName]); // GetPlayerMoney Das könnte da rein kommen !!!
    mysql_SetInt("accounts", "Bank", SpielerInfo[playerid][pBank], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Fraktion", SpielerInfo[playerid][pFraktion], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Rank", SpielerInfo[playerid][pRank], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Leader", SpielerInfo[playerid][pLeader], "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "Health", SpielerInfo[playerid][pHealth], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Online", 0, "Name", SpielerInfo[playerid][pName]);
    }
    }
    return 1;
    }


    Hat eventuell Jemand eine Ahnung an was es hapern könnte ?!


    //Edit..


    Gerade festgestellt, das dass Geld überwiesen und Ingame abgezogen wird, jedoch ist nach dem Quit aus dem Game der Betrag noch in der Datenbank auf der Hand und auf dem Konto..




    // Fixxed ;)