[DIALOG] Sparkasse einzahlen/abheben

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
  • Heyho Leute,


    ich habe folgendes gemacht:


    if(strcmp(cmd, "/withdraw", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsAtATM(playerid))
    {
    ShowPlayerDialog(playerid, 333, DIALOG_STYLE_LIST, "Sparkasse", "100$\n1000$\n2500$\n5000$\n7500$\n10000$\n20000$\nAnderer Betrag", "Abheben", "Abbruch");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist nicht in der Bank oder an keinem Automaten !");
    return 1;
    }
    }
    return 1;
    }

    if(strcmp(cmd, "/deposit", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsAtATM(playerid))
    {
    ShowPlayerDialog(playerid, 555, DIALOG_STYLE_LIST, "Sparkasse", "100$\n1000$\n2500$\n5000$\n7500$\n10000$\n20000$\nAnderer Betrag", "Einzahlen", "Abbruch");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist nicht in der Bank oder an keinem Automaten !");
    return 1;
    }
    }
    return 1;
    }


    new tmp[256];
    new cashdeposit = strval(tmp);
    new s[128];
    new string[256];
    if(dialogid == 333)
    {
    if(response)
    {
    if(listitem == 0)
    {
    PlayerInfo[playerid][pBank]=PlayerInfo[playerid][pBank]-100;
    GivePlayerMoney(playerid, 100);
    SendClientMessage(playerid, COLOR_GREEN,"Du hast 100$ von deinem Konto abgehoben");
    format(string, sizeof(string), "Kontostand: $%d", PlayerInfo[playerid][pBank]);
    SendClientMessage(playerid, COLOR_GREEN, string);
    }
    if(listitem == 1)
    {
    PlayerInfo[playerid][pBank]=PlayerInfo[playerid][pBank]-1000;
    GivePlayerMoney(playerid, 1000);
    SendClientMessage(playerid, COLOR_GREEN,"Du hast 1000$ von deinem Konto abgehoben");
    format(string, sizeof(string), "Kontostand: $%d", PlayerInfo[playerid][pBank]);
    SendClientMessage(playerid, COLOR_GREEN, string);
    }
    if(listitem == 2)
    {
    PlayerInfo[playerid][pBank]=PlayerInfo[playerid][pBank]-2500;
    GivePlayerMoney(playerid, 2500);
    SendClientMessage(playerid, COLOR_GREEN,"Du hast 2500$ von deinem Konto abgehoben");
    format(string, sizeof(string), "Kontostand: $%d", PlayerInfo[playerid][pBank]);
    SendClientMessage(playerid, COLOR_GREEN, string);
    }
    if(listitem == 3)
    {
    PlayerInfo[playerid][pBank]=PlayerInfo[playerid][pBank]-5000;
    GivePlayerMoney(playerid, 5000);
    SendClientMessage(playerid, COLOR_GREEN,"Du hast 5000$ von deinem Konto abgehoben");
    format(string, sizeof(string), "Kontostand: $%d", PlayerInfo[playerid][pBank]);
    SendClientMessage(playerid, COLOR_GREEN, string);
    }
    if(listitem == 4)
    {
    PlayerInfo[playerid][pBank]=PlayerInfo[playerid][pBank]-7500;
    GivePlayerMoney(playerid, 7500);
    SendClientMessage(playerid, COLOR_GREEN,"Du hast 7500$ von deinem Konto abgehoben");
    format(string, sizeof(string), "Kontostand: $%d", PlayerInfo[playerid][pBank]);
    SendClientMessage(playerid, COLOR_GREEN, string);
    }
    if(listitem == 5)
    {
    PlayerInfo[playerid][pBank]=PlayerInfo[playerid][pBank]-10000;
    GivePlayerMoney(playerid, 10000);
    SendClientMessage(playerid, COLOR_GREEN,"Du hast 10000$ von deinem Konto abgehoben");
    format(string, sizeof(string), "Kontostand: $%d", PlayerInfo[playerid][pBank]);
    SendClientMessage(playerid, COLOR_GREEN, string);
    }
    if(listitem == 6)
    {
    PlayerInfo[playerid][pBank]=PlayerInfo[playerid][pBank]-20000;
    GivePlayerMoney(playerid, 20000);
    SendClientMessage(playerid, COLOR_GREEN,"Du hast 20000$ von deinem Konto abgehoben");
    format(string, sizeof(string), "Kontostand: $%d", PlayerInfo[playerid][pBank]);
    SendClientMessage(playerid, COLOR_GREEN, string);
    }
    if(listitem == 7)
    {
    format(s,sizeof(s),"Tippe hier den gewünschten Betrag ein:");
    ShowPlayerDialog(playerid,444,DIALOG_STYLE_INPUT,"Sparkasse",s,"abheben","Abbrechen");
    }
    }
    }
    if(dialogid == 444)
    {
    if(response)
    {
    GivePlayerMoney(playerid,cashdeposit);
    PlayerInfo[playerid][pBank]=PlayerInfo[playerid][pBank]-cashdeposit;
    format(string, sizeof(string), "Du hast $%d von der Bank abgehoben Kontostand: $%d ", cashdeposit,PlayerInfo[playerid][pBank]);
    SendClientMessage(playerid, COLOR_GREEN, string);
    }
    }



    So es klappt "alles" einwandfrei, nur dass hier nicht:


    if(dialogid == 444)
    {
    if(response)
    {
    GivePlayerMoney(playerid,cashdeposit);
    PlayerInfo[playerid][pBank]=PlayerInfo[playerid][pBank]-cashdeposit;
    format(string, sizeof(string), "Du hast $%d von der Bank abgehoben Kontostand: $%d ", cashdeposit,PlayerInfo[playerid][pBank]);
    SendClientMessage(playerid, COLOR_GREEN, string);
    }
    }



    also wenn ich in der Bank bin und gebe /withdraw ein und tippe auf anderen Betrag, dann öffnet sich zwar das andere Dialog, kann aber kein Geld einzahlen ? Da steht dann immer du hast 0$ eingezahlt xD


    100% Selfmade Reallife Loading ...



    3 Mal editiert, zuletzt von Poseidon ()

  • Wenne Möchtes Poste ich dir mein Bank System also mit GUI einzahln usw alles mit gui^^

  • wie wärs mal wenn du inputtext verwendest :D
    aber mach draus strval(inputtext) damit das als zahl gewertet wird


    dann noch ne frage. was bringt sowas:


    PlayerInfo[playerid][pBank]=PlayerInfo[playerid][pBank]-100;


    ???? da kann man doch gleich PlayerInfo[playerid][pBank] -= 100; machen oO


    MFG, Robdeflop®

  • Danke,


    also das:


    PlayerInfo[playerid][pBank]=PlayerInfo[playerid][pBank]-100;


    kannste auch eifnach verkürzen so:


    PlayerInfo[playerid][pBank]=-100;


    oder


    PlayerInfo[playerid][pBank]-=100;


    aber habs halt so :D ehm ich will ja selfmade i-was muss doch falsch sein hilfe xD


    100% Selfmade Reallife Loading ...



  • Thx, aber wo soll ich das hinklatschen ? ist das denn richtig seoweit ?


    if(listitem == 7)
    {
    format(s,sizeof(s),"Tippe hier den gewünschten Betrag ein:");
    ShowPlayerDialog(playerid,444,DIALOG_STYLE_INPUT,"Sparkasse",s,"abheben","Abbrechen");
    }
    }
    }
    if(dialogid == 444)
    {
    if(response)
    {
    GivePlayerMoney(playerid,cashdeposit);
    PlayerInfo[playerid][pBank]=PlayerInfo[playerid][pBank]-cashdeposit;
    format(string, sizeof(string), "Du hast $%d von der Bank abgehoben Kontostand: $%d ", cashdeposit,PlayerInfo[playerid][pBank]);
    SendClientMessage(playerid, COLOR_GREEN, string);
    }
    }


    100% Selfmade Reallife Loading ...



  • if(dialogid == 444)
    {
    if(response)
    {
    new betrag = strval(inputtext);
    GivePlayerMoney(playerid, betrag);
    PlayerInfo[playerid][pBank]-=betrag;
    format(string, sizeof(string), "Du hast $%d von der Bank abgehoben Kontostand: $%d ", betrag,PlayerInfo[playerid][pBank]);
    SendClientMessage(playerid, COLOR_GREEN, string);
    }
    }

  • danke, jetzt fehlt mir nur noch /überweisung und /kontostand, alles soll sich in dialopgen abspielen komm aber nicht kla würde jemand helfen ?


    if(strcmp(cmd, "/kontostand", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(!(IsAtATM(playerid)))
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist nicht in der Bank oder an keinem Automaten !");
    return 1;
    }
    format(string, sizeof(string), " Du hast $%d auf der Bank.",PlayerInfo[playerid][pBank]);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    }
    return 1;
    }
    if(strcmp(cmd, "/überweisung", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(!(IsAtATM(playerid)))
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist nicht in der Bank oder an keinem Automaten !");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Verwende: /transfer [playerid/PartOfName] [betrag]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Verwende: /transfer [playerid/PartOfName] [betrag]");
    return 1;
    }
    moneys = strval(tmp);
    if (IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    playermoney = PlayerInfo[playerid][pBank] ;
    if (moneys > 0 && playermoney >= moneys)
    {
    PlayerInfo[playerid][pBank] -= moneys;
    PlayerInfo[giveplayerid][pBank] += moneys;
    format(string, sizeof(string), " Du hast $%d auf %s's Konto überwiesen", moneys, giveplayer,giveplayerid);
    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    format(string, sizeof(string), " Du hast $%d von %s auf deinem Konto überwiesen bekommen.", moneys, sendername, playerid);
    SendClientMessage(giveplayerid, COLOR_GRAD1, string);
    format(string, sizeof(string), "%s hat $%d auf %s's Konto überwiesen.", sendername, moneys, giveplayer);
    if(moneys >= 500000)
    {
    ABroadCast(COLOR_YELLOW,string,1);
    }
    printf("%s", string);
    PayLog(string);
    PlayerPlaySound(giveplayerid, 1052, 0.0, 0.0, 0.0);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, " Invalid transaction amount.");
    }
    }
    }
    else
    {
    format(string, sizeof(string), " %d is not an active player.", giveplayerid);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    }
    return 1;
    }


    100% Selfmade Reallife Loading ...



    2 Mal editiert, zuletzt von Poseidon ()