Bankkonto und Automaten Einzahlung/Auszahlung

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
  • Hey,
    Wollte an meinem Script jetzt so langsam was erstellen das man wenn man an einem Automaten steht man /Automat macht und man Geld einzahlen und auszahlen kann und natürlich auch
    den Kontostand prüfen kann.


    Ich finde paar Tutorials aber alle machen das mit so einem Ordner ich möchte es mit Mysql machen aber ich weiß jetzt nicht wie ich vorgehen soll bin nicht so erfahren

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Brauchst Kooridinaten von Automaten das man quasi an einem bestimmten Punkt stehen muss um den Befehl ausführen zu können. Dann kannst du ja ganz einfach Geld auf deinem Spielerspeicher ändern und dann beim Logout in der Datenbank speichern.


    Lg Tom

  • C
    CreateObject(2942,1719.1000000,-1873.9000000,13.2000000,0.0000000,0.0000000,0.0000000); //Geldautomat
    	Create3DTextLabel("{1D9D00}Geldautomat\n{FFFFFF}/Automat", 0xFFFFFFFF, 1719.1000000, -1873.9000000,14, 20.0, 0, 1); //Geldautomat
    	CreateObject(2942,1711.0000000,-1873.9000000,13.2000000,0.0000000,0.0000000,0.0000000); //Geldautomat
    	Create3DTextLabel("{1D9D00}Geldautomat\n{FFFFFF}/Automat", 0xFFFFFFFF, 1711.0000000, -1873.9000000,14, 20.0, 0, 1); //Geldautomat

    Also ich habe ja Beispiel 2 Automaten mir wurde mal was von Array gesagt das man das irgendwie machen soll


    Gemeint ist if(IsPlayerInRangeOfPoint damit man /Automat machen kann

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Das mit dem Array verstehe ich nicht aber das kann ja am ende gemacht werden Problem jetzt ist wie lasse ich den Kontostand anzeigen?



    ocmd:automat(playerid,params[])
    {
    if(IsPlayerInRangeOfPoint(playerid,5,1719.1000000,-1873.9000000,13.2000000))
    {
    if(pInfo[playerid][pBankkonto] == 1)
    {
    ShowPlayerDialog(playerid, DIALOG_AUTOMAT1, DIALOG_STYLE_LIST, "{FFFFFF}Kontostand:", "{FFFFFF}Einzahlen\nAbheben", "Auswählen", "Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_AUTOMAT2, DIALOG_STYLE_MSGBOX, "{FFFFFF}Bankkonto Einrichtung", "Damit du ein Bankkonto nutzen kannst musst du dir zu erst eins erstellen\nDie einmaligen Gebühren betragen {bc4343}928${FFFFFF}, zusätzliches Startguthaben in höhe von {009C00}$250{FFFFF}.\n\nBestätige bitte die Einrichtung deines Bankkontos.", "Bestätigen", "Abbrechen");
    }
    }
    else
    {
    SendClientMessage(playerid,-1,"{c45461}Du befindest dich nicht in der Nähe eines Automaten!");
    }
    return 1;
    }
    Also bis jetzt habe ich es geschafft das die Daten aus der Datenbank geladen und gespeichert werden und das man sich ein Konto einrichten kann, aber wie lasse ich jetzt den Kontostand anzeigen?


    Bei der Zeile 7. möchte ich das ja bei Kontostand : haben aber ich weiß jetzt nicht wie ich das machen soll

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • pInfo[playerid][pBankGeld] musste anpassen

    new str [64];
    format(str,sizeof str, "{FFFFFF}Kontostand: %d", pInfo[playerid][pBankGeld]);
    ShowPlayerDialog(playerid, DIALOG_AUTOMAT1, DIALOG_STYLE_LIST, str, "{FFFFFF}Einzahlen\nAbheben", "Auswählen", "Abbrechen");


    und so siehts dann komplett aus:

    ocmd:automat(playerid,params[])
    {
    if(IsPlayerInRangeOfPoint(playerid,5,1719.1000000,-1873.9000000,13.2000000))
    {
    if(pInfo[playerid][pBankkonto] == 1)
    {
    new str[64];
    format(str,sizeof str, "{FFFFFF}Kontostand: %d", pInfo[playerid][pBankGeld]);
    ShowPlayerDialog(playerid, DIALOG_AUTOMAT1, DIALOG_STYLE_LIST, str, "{FFFFFF}Einzahlen\nAbheben", "Auswählen", "Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_AUTOMAT2, DIALOG_STYLE_MSGBOX, "{FFFFFF}Bankkonto Einrichtung", "Damit du ein Bankkonto nutzen kannst musst du dir zu erst eins erstellen\nDie einmaligen Gebühren betragen {bc4343}928${FFFFFF}, zusätzliches Startguthaben in höhe von {009C00}$250{FFFFF}.\n\nBestätige bitte die Einrichtung deines Bankkontos.", "Bestätigen", "Abbrechen");
    }
    }
    else
    {
    SendClientMessage(playerid,-1,"{c45461}Du befindest dich nicht in der Nähe eines Automaten!");
    }
    return 1;
    }

  • Danke das du mir jetzt dabei geholfen hast, ich möchte jetzt das man Geld einzahlen und abheben kann



    Also die Zahl darf nicht über 350000 sein, Also wie soll ich vorgehen. Hoffe einer kann mir helfen ( pInfo[playerid][pBankgeld] )


    Wenn der Kontostand angezeigt wird wenn es 1 Millionen sind dann wird 1000000 angezeigt kann man das irgendwie machen das da 1.000.000 steht?

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Wenn der Kontostand angezeigt wird wenn es 1 Millionen sind dann wird 1000000 angezeigt kann man das irgendwie machen das da 1.000.000 steht?


    von Kaliber

    stock sMoney(geld) {
    new str[24],i;valstr(str,geld),i=(geld > 0) ? strlen(str)-3 : strlen(str)-4;
    for(; i>0; i-=3) strins(str,".",(geld > 0) ? i : i+1,24);
    return str;
    }


    //Nutzung:
    printf("%s$",sMoney(10000)); //-> Output: 10.000$

  • Wo soll ich das einfügen und bzw. wie benutze ich den stock sMoney

    Ich war so frei und habe den Code etwas sauberer geschrieben:
    stock sMoney(money) //©Jeffry
    {
    new str[24];
    valstr(str, money);
    for(new i = strlen(str)-3; i>((money > 0) ? 0 : 1); i-=3) strins(str, ".", i, sizeof(str));
    return str;
    }
    Diesen Code musst du ganz unten in deinem Gamemode einfügen, am besten in die letzte Zeile.


    Anschließend den Code zum Kontostand anzeigen anpassen von:
    format(str,sizeof str, "{FFFFFF}Kontostand: %d", pInfo[playerid][pBankGeld]);
    zu:
    format(str,sizeof str, "{FFFFFF}Kontostand: %s", sMoney(pInfo[playerid][pBankGeld]));

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Danke danke!
    Ich finde irgendwie nichts richtiges damit ich ein Array abfragen kann, also habe mehrere Koordinaten und will ein Array erstellen und es abfragen.


    Kann mir da noch einer bitte helfen?

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Also ich habe ja zwei Automaten als Beispiel und ich will die nicht alle in einer Zeile schreiben also die Position von den beiden Automaten, deswegen möchte ich ein Array machen und es dann abfragen wenn der Spiele von diesen Koordinaten in der Nähe ist.





    Außerdem klappt da etwas bei mir nicht


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Außerdem klappt da etwas bei mir nicht


    Der Code jeweils nach dem ShowPlayerDialog muss in einem neuen "if(dialogid == ...)" abgefragt werden.
    Außerdem musst zu zwei unterschiedliche Dialog IDs aufrufen, da diese ja etwas anderes machen. Dort dann jeweils den entsprechenden Code einfügen.



    Also ich habe ja zwei Automaten als Beispiel und ich will die nicht alle in einer Zeile schreiben also die Position von den beiden Automaten, deswegen möchte ich ein Array machen und es dann abfragen wenn der Spiele von diesen Koordinaten in der Nähe ist.


    Das Array so:
    new Float:atmArray[][] = {
    {x, y, z},
    {x, y, z}
    };
    Und dann die Abfrage so:
    for(new i = 0; i < sizeof(atmArray); i++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 3.0, atmArray[i][0], atmArray[i][1], atmArray[i][2]))
    {
    / * Spieler in der Nähe * /
    return 1;
    }
    }
    return SendClientMessage(playerid, 0xFF0000FF, "Error: Du bist nicht in der Nähe einer ATM Maschine.");

  • So oder wie, aber es geht nicht. Und habe es nicht ganz verstanden wie ich das mit dem Automat zum laufen bringe

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen