Erstellen eines Bankssystems

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
  • Zuerst suchst du dir den gewünschten Interior.
    Z.B. die LS Bank.
    Dann erstellst du dort ein PickUp oder überprüfst mit IsPlayerInRangeOfPoint, ob sich der Spieler in der Nähe des "Zahl-Punktes" befindet.
    Wenn ja kannst du z.B. einen Dialog anzeigen lassen (DIALOG_STYLE_LIST), bei dem der Spieler auswählen kann, was er jetzt machen will (Einzahlen, Auszahlen, Kredit, etc.).
    So, dann einfach noch das Geld speichern und gut ist.

  • Jaja das verstehe ich schon !
    Nur folgendes Problem! Ich weiß nicht wie ich es erstellen soll das man wo einzahlen kann das ist mein eigentliches Problem.


    if(strcmp(cmdtext,"/Einzahlen",true)==0)
    {
    if(IsPlayerInRangeOfPoint(playerid, 3.0, 1481.5714,-1759.4701,17.5313))
    {
    ShowPlayerDialog(playerid,DIALOG_Einzahlen,DIALOG_STYLE_INPUT,"Einzahlen","Wie viel möchten sie einzahlen","Bestätigen","Abbrechen");
    return 1;
    }
    }


    Das ist ja wohl alles klar nur wie erstelle ich sozusagen ein Bank also wo man einzahlen kann , ich kann mir nicht vorstellen wie das gehen sollte.

  • #define DIALOG_Einzahlen (2)


    #define COLOR_GREY (0xAFAFAFAA)


    public OnPlayerCommandText(playerid,cmdtext[])
    {
    if(strcmp(cmdtext,"/Einzahlen",true)==0)
    {
    if(IsPlayerInRangeOfPoint(playerid, 3.0, 1481.5714,-1759.4701,17.5313))
    {
    ShowPlayerDialog(playerid,DIALOG_Einzahlen,DIALOG_STYLE_INPUT,"Einzahlen","Wie viel möchten sie einzahlen","Bestätigen","Abbrechen");
    return 1;
    }
    }
    return 0;
    }


    public OnDialogResponse(playerid,dialogid,listitem,response,inputtext[])
    {
    if(dialogid == DIALOG_Einzahlen)
    {
    if(!response) return true; //Spieler hat auf "Abbrechen" gedrückt.
    new geld=strval(inputtext);
    if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_Einzahlen,DIALOG_STYLE_INPUT,"Ihre Eingabe ist nicht korrekt, bitte geben Sie eine gültige Zahl ein!\n\nWieviel möchten Sie einzahlen?","Bestätigen","Zurück");
    if(GetPlayerMoney(playerid)<geld) return ShowPlayerDialog(playerid,DIALOG_Einzahlen,DIALOG_STYLE_INPUT,"Sie haben nicht soviel Geld mit ihnen, bitte geben Sie einen realistischen Betrag an!\n\nWieviel möchten Sie einzahlen?","Bestätigen","Zurück");
    if(geld<0||geld>99999999) return ShowPlayerDialog(playerid,DIALOG_Einzahlen,DIALOG_STYLE_INPUT,"Bitte gehen Sie mit dem Betrag nicht niedriger als 1$ oder höher als 99999999$!\n\nWieviel möchten Sie einzahlen?","Bestätigen","Zurück");
    SetPVarInt(playerid,"SpielerBank",GetPVarInt(playerid,"SpielerBank")+geld);
    format(string,sizeof(string),"Sie haben %d$ in Ihr Bankkonto eingezahlt. SALDO: %d$",geld,GetPVarInt(playerid,"SpielerBank"));
    return SendClientMessage(playerid,0xFFAA00FF,FormatString);
    }
    return 1;
    }

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Einfach negativ abziehen von der Variable und natürlich bei der einen Abfrage, anstatt du das Geld Bar überprüfst, überprüfst du dann das Geld auf dem Konto, ob das was er abheben will auch wirklich auf dem Bankkonto vorhanden ist.

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • #define DIALOG_Auszahlen 3


    #define COLOR_GREY (0xAFAFAFAA)


    public OnPlayerCommandText(playerid,cmdtext[])
    {
    if(strcmp(cmdtext,"/Auszahlen",true)==0)
    {
    if(IsPlayerInRangeOfPoint(playerid, 3.0, 1481.5714,-1759.4701,17.5313))
    {
    ShowPlayerDialog(playerid,DIALOG_Auszahlen,DIALOG_STYLE_INPUT,"Auszahlen","Wie viel möchten sie Auszahlen","Bestätigen","Abbrechen");
    return 1;
    }
    }
    return 0;
    }


    public OnDialogResponse(playerid,dialogid,listitem,response,inputtext[])
    {
    if(dialogid == DIALOG_Auszahlen)
    {
    if(!response) return true; //Spieler hat auf "Abbrechen" gedrückt.
    new geld=strval(inputtext);
    if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_Auszahlen,DIALOG_STYLE_INPUT,"Ihre Eingabe ist nicht korrekt, bitte geben Sie eine gültige Zahl ein!\n\nWieviel möchten Sie eAuszahlen?","Bestätigen","Zurück");
    if(GetPlayerMoney(playerid)<geld) return ShowPlayerDialog(playerid,DIALOG_Auszahlen,DIALOG_STYLE_INPUT,"Sie haben nicht soviel Geld mit ihnen, bitte geben Sie einen realistischen Betrag an!\n\nWieviel möchten Sie Auszahlen?","Bestätigen","Zurück");
    if(geld<0||geld>99999999) return ShowPlayerDialog(playerid,DIALOG_Auszahlen,DIALOG_STYLE_INPUT,"Bitte gehen Sie mit dem Betrag nicht niedriger als 1$ oder höher als 99999999$!\n\nWieviel möchten Sie Auszahlen?","Bestätigen","Zurück");
    SetPVarInt(playerid,"SpielerBank",GetPVarInt(playerid,"SpielerBank")-geld);
    format(string,sizeof(string),"Sie haben %d$ in Ihr Bankkonto eingezahlt. SALDO: %d$",geld,GetPVarInt(playerid,"SpielerBank"));
    return SendClientMessage(playerid,0xFFAA00FF,FormatString);
    }
    return 1;
    }


    So kann das noch nicht richtig sein , ich habe es schonmal versuch umzuschreiben also sprich man muss doch auch dann dem Spieler das Geld geben oder abziehen und Gutschreiben das hab ich aber bisher noch nicht gesehen

  • Mit


    SetPVarInt(playerid,"SpielerBank",GetPVarInt(playerid,"SpielerBank")-geld);


    wir das Geld abgezogen.





    Mit


    SetPVarInt(playerid,"SpielerBank",GetPVarInt(playerid,"SpielerBank")+geld);


    wird das Geld eingezahlt.

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Diese Zeile hast du vergessen umzuändern:


    if(GetPVarInt(playerid,"SpielerBank")<geld) return ShowPlayerDialog(playerid,DIALOG_Einzahlen,DIALOG_STYLE_INPUT,"Sie haben nicht soviel Geld auf Ihrem Bankkonto, bitte geben Sie einen realistischen Betrag an!\n\nWieviel möchten Sie einzahlen?","Bestätigen","Zurück");

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

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