Bank System |Problem

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • Hallo Breadfish,
    ich habe heute mein Bank System angefangen und bin im Moment am ATM. Das Einzahlen, Abbuchen und den Kontostand habe ich schon. Jetzt bin ich am Überweisen und komme einfach nicht weiter. Ich weiß nicht wie ich das machen kann, das ich einem anderen Spieler das Geld "Überweisen" kann. Mein jetziger Code sieht so aus:

    //Oben im Script
    #define DIALOG_ATM 4
    #define DIALOG_ABBUCHEN 5
    #define DIALOG_EINZAHLEN 6
    #define DIALOG_ÜBERWEISEN 7
    #define DIALOG_UEBERWEISEN_PLAYER 8


    //Bei OnDialogResponse
    if(dialogid == DIALOG_ATM)
    {
    if(response == 0)
    {
    return 1;
    }
    if(response == 1)
    {
    if(listitem == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_ABBUCHEN,DIALOG_STYLE_INPUT,"Abbuchen","Bitte gib den gewünschten Betrag an:","Okay","Zurück");
    return 1;
    }
    if(listitem == 1)
    {
    ShowPlayerDialog(playerid,DIALOG_EINZAHLEN,DIALOG_STYLE_INPUT,"Einzahlen","Bitte gib den gewünschten Betrag an:","Okay","Zurück");
    return 1;
    }
    if(listitem == 2)
    {
    ShowPlayerDialog(playerid,DIALOG_ÜBERWEISEN,DIALOG_STYLE_INPUT,"Überweisen","Bitte gib den gewünschten Betrag an:","Okay","Zurück");
    return 1;
    }
    if(listitem == 3)
    {
    new string[200],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"Kontostand von %s Konto: $%d Bar: $%d",name,PlayerInfo[playerid][pBank],GetPlayerMoney(playerid));
    SendClientMessage(playerid,Grau,string);
    return 1;
    }
    return 1;
    }
    return 1;
    }
    if(dialogid == DIALOG_ABBUCHEN)
    {
    if(response == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_ATM,DIALOG_STYLE_LIST,"Bankautomat","Abbuchen\nEinzahlen\nÜberweisen\nKontostand","Auswählen","Schliesen");
    return 1;
    }
    if(response == 1)
    {
    new string[190];
    if(PlayerInfo[playerid][pBank] < strval(inputtext) ) return SendClientMessage(playerid,Grau,"Du hast nicht genug Geld auf deinem Konto!");
    GivePlayerMoney(playerid,strval(inputtext));
    PlayerInfo[playerid][pBank] -= strval(inputtext);
    format(string,sizeof(string),"Du hast $%d abgehoben.",strval(inputtext));
    SendClientMessage(playerid,Grau,string);
    return 1;
    }
    return 1;
    }
    if(dialogid == DIALOG_EINZAHLEN)
    {
    if(response == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_ATM,DIALOG_STYLE_LIST,"Bankautomat","Abbuchen\nEinzahlen\nÜberweisen\nKontostand","Auswählen","Schliesen");
    return 1;
    }
    if(response == 1)
    {
    new string[190];
    if(PlayerInfo[playerid][pBar] < strval(inputtext) ) return SendClientMessage(playerid,Grau,"Du hast nicht genug Geld auf deiner Hand!");
    GivePlayerMoney(playerid, - strval(inputtext));
    PlayerInfo[playerid][pBank] += strval(inputtext);
    format(string,sizeof(string),"Du hast $%d eingezahlt.",strval(inputtext));
    SendClientMessage(playerid,Grau,string);
    return 1;
    }
    return 1;
    }
    if(dialogid == DIALOG_ÜBERWEISEN)
    {
    if(response == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_ATM,DIALOG_STYLE_LIST,"Bankautomat","Abbuchen\nEinzahlen\nÜberweisen\nKontostand","Auswählen","Schliesen");
    return 1;
    }
    if(response == 1)
    {
    if(PlayerInfo[playerid][pBank] < strval(inputtext) ) return SendClientMessage(playerid,Grau,"Du hast nicht genug Geld auf deinem Konto!");
    ShowPlayerDialog(playerid,DIALOG_UEBERWEISEN_PLAYER,DIALOG_STYLE_INPUT,"Überweisen","Bitte gib den Namen des\nSpielers an, an den du das Geld\nÜberweisen möchtest.","Fertig","Zurück");
    return 1;
    }
    return 1;
    }
    if(dialogid == DIALOG_UEBERWEISEN_PLAYER)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Grau,"Du hast die Überweisung abgebrochen!");
    return 1;
    }
    if(response == 0)
    {

    return 1;
    }
    return 1;
    }

  • if(dialogid == DIALOG_UEBERWEISEN_PLAYER)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Grau,"Du hast die Überweisung abgebrochen!");
    return 1;
    }
    if(response == 1)
    {
    new pID = ReturnPlayerID(inputtext);
    if(pID == INVALID_PLAYER_ID)
    {
    ShowPlayerDialog(playerid,DIALOG_UEBERWEISEN_PLAYER,DIALOG_STYLE_INPUT,"Überweisen","Bitte gib den Namen des\nSpielers an, an den du das Geld\nÜberweisen möchtest.","Fertig","Zurück");
    return 1;
    }
    SetPVarInt(playerid, "pID", pID);
    ShowPlayerDialog(playerid,DIALOG_UEBERWEISEN_BETRAG,DIALOG_STYLE_INPUT,"Überweisen","Bitte gib den Betrag ein\n den du überweisen möchtest.","Fertig","Zurück");
    return 1;
    }
    return 1;
    }
    if(dialogid == DIALOG_UEBERWEISEN_BETRAG)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Grau,"Du hast die Überweisung abgebrochen!");
    return 1;
    }
    if(response == 1)
    {
    new string[145];
    new pID = GetPVarInt(playerid, "pID");
    if(PlayerInfo[playerid][pBar] < strval(inputtext) ) return SendClientMessage(playerid,Grau,"Du hast nicht genug Geld auf deiner Hand!");
    PlayerInfo[playerid][pBank] -= strval(inputtext);
    PlayerInfo[pID][pBank] += strval(inputtext);
    format(string,sizeof(string),"Du hast $%d überwiesen.",strval(inputtext));
    SendClientMessage(playerid,Grau,string);
    return 1;
    }
    return 1;
    }



    stock ReturnPlayerID(l_PlayerName[]) //©Jeffry
    {
    new l_name[MAX_PLAYER_NAME];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(GetPlayerName(i, l_name, MAX_PLAYER_NAME))
    {
    if(!strcmp(l_name,l_PlayerName, true)) return i;
    }
    }
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(GetPlayerName(i, l_name, MAX_PLAYER_NAME))
    {
    if(strfind(l_name,l_PlayerName,true)!=-1) return i;
    }
    }
    return INVALID_PLAYER_ID;
    }


    Ich habe es jetzt so weitergemacht wie du begonnen hast (erst Name, dann Betrag). Wenn du die Reihenfolge ändern willst, dann kannst du das ja machen.
    Du kannst auch noch eine Abfrage einbauen, ob der Betrag auch über 0 ist, aber das bekommst du selbst hin hoffe ich. :)