Spd Wunsch

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
  • Hi all,
    da mir keiner auf meine ShowPlayerDialog probleme geantwortet hat und ich es einfach nicht verstehe brauch ich einen der mir das machen kann.
    Ich wollte ein ShowPlayerDialog sache,
    einmal beispiel, ich geb /rofl ein kommt bei mir nun ein Menu
    in dem Menu muss halt folgendes aufgelistet sein:


    Konto Erstellen
    Kontostandabfrage
    Einzahlung
    Auszahlung
    Überweisung


    Das mit Konto erstellen sollte so ablaufen
    if(PlayerInfo[playerid][pEcKarte] == 1)
    {
    PlayerInfo[playerid][pEcKarte] = 1;
    new bkerstellttring[128];
    new bankkontoname[64];
    format(bkerstellttring,sizeof(bkerstellttring),"Tut uns leid %s,\nEin Fehler ist unterlaufen,\nSie besitzen schon ein Bank Konto.",bankkontoname);
    ShowPlayerDialog(playerid,10,DIALOG_STYLE_MSGBOX,"Bank System",bkerstellttring,"Hauptmenu","Schließen");
    return 1;
    }
    else if(PlayerInfo[playerid][pEcKarte] == 0)
    {
    PlayerInfo[playerid][pEcKarte] = 1;
    new bkerstellttring[128];
    new bankkontoname[64];
    format(bkerstellttring,sizeof(bkerstellttring),"Glückwunsch %s,\nDein Konto wurde erfolgreich erstellt.",bankkontoname);
    ShowPlayerDialog(playerid,10,DIALOG_STYLE_MSGBOX,"Bank System",bkerstellttring,"Hauptmenu","Schließen");
    return 1;
    }
    halt wenn er eins hat kommt die ShowPlayerDialog mit dem Text das er eine hat und wenn er Hauptmenu, also den Linken Button auswählt wieder ins Hauptmenu kommt und auf dem rechten Button halt das Menu aus geht.


    Bei Kontostand abfrage kommt halt eine SPD MSGBOX Box in der steht wie viel man auf der Bank hat, hier auch wenn auf Hauptmenu also Linken Button klicke das wieder das hauptmenu öffnet und wenn Abbrechen also rechts drücke soll halt nur Menu aus gehen.


    Einzahlung halt kommt ein Menu in dem man eine Summe eingibt, wenn man diese Summe auf der Hand nicht hat soll natürlich eine Message kommen das man die eingegebene Summe nicht hat, ansonsten wirds von der Hand in das Bank Konto eingezahlt.


    Auszahlung so änhlich wie Einzahlung nur das es prüft ob auf dem Bank Konto so viel Geld ist.


    Die Überweisung soll über 2 SPD gehen,
    das heisst als erstes öffnet sich ein ShowPlaerDialog in der steht das die playerid halt die Summe eingeben soll die sie Überweisen will, auch hier Prüfen ob er soviel auf der hand überhaupt hat, wenn ja wird die eingeippte Summe kurz gespeichert, neues ShowPlayerDialog kommt, da soll man Playerid eingeben also entweder spielerid oder spielernamen, wenn er nicht online ist kommt ein neues Menu und da steht dann das der Spieler nicht online ist und dann kann man auswählen Hauptmenu oder Abbrechen, wie schon vorhin auf Hauptmenu also Linkter Button = soll das Hauptmenu öffnen, auf Abbrechen solls aus gehen, das gleiche noch davor bei Geld eingabe wenn er nicht soviel hat soll ein neues Menu kommen und da soll stehen wie viel er auf dem bank Konto hat und soll er noch einmal eintippen, so wenn er die eingetippte Summe hat, die Playerid die er dann im zweiten SPD eingebeben hat Online ist soll es überwiesen werden, der, der die Summe erhällt kriegt eine Message wie viel er bekommen hat und dem Sender natürlich das Geld von der Bank abziehen.


    Gegenleistung
    Paypal 5€ oder sonstige,
    fragen ICQ- 395264246
    Thx wer 's machen kann, da ich des SPD überhaupt nicht kann, da bei mir dann immer sonst was falsch ist. :thumbup: :thumbup: :thumbup:


    //edit: keiner was? xD

    2 Mal editiert, zuletzt von Schnacke ()

  • Leider hab ich das mit dem überweisen nicht hinbekommen, weil ich nicht wusste wie ich den Spieler eingeben soll an den das Geld gesendet werden soll.


    Der Rest ist ungetestet sollte aber soweit ich dich richtig verstandnen habe funktionieren:


    if (strcmp("/bank", cmdtext, true, 5) == 0)
    {
    if(IsPlayerConnected(playerid)
    {
    if(IsPlayerInRangeOfPoint(playerid,5.0,X,Y,Z,)//hier deine Bank Position
    {
    ShowPlayerDialog(playerid,1234,DIALOG_STYLE_LIST,"Bank","Konto Erstellen\nKonto-Stand \nEinzahlung \nAuszahlung\n Überweisung","Wählen","Schliessen");
    }
    else { SendClientMessage(playerid,0xFFFFFFFF,"Du bist nicht an der Bank"); }
    }
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == 1234)
    {
    if(listitem == 0)//Konto Erstellen
    {
    if(response)
    {
    if(PlayerInfo[playerid][pEcKarte] == 1)
    {
    PlayerInfo[playerid][pEcKarte] = 1;
    new bkerstellttring[128];
    new bankkontoname[64];
    format(bkerstellttring,sizeof(bkerstellttring),"Tut uns leid %s,\nEin Fehler ist unterlaufen,\nSie besitzen schon ein Bank Konto.",bankkontoname);
    ShowPlayerDialog(playerid,10,DIALOG_STYLE_MSGBOX,"Bank System",bkerstellttring,"Ok","Schließen");
    return 1;
    }
    else if(PlayerInfo[playerid][pEcKarte] == 0)
    {
    PlayerInfo[playerid][pEcKarte] = 1;
    new bkerstellttring[128];
    new bankkontoname[64];
    format(bkerstellttring,sizeof(bkerstellttring),"Glückwunsch %s,\nDein Konto wurde erfolgreich erstellt.",bankkontoname);
    ShowPlayerDialog(playerid,11,DIALOG_STYLE_MSGBOX,"Bank System",bkerstellttring,"Ok","Schließen");
    return 1;
    }
    }
    }
    if(listitem == 1)//Kontostand
    {
    if(response)
    {
    new str[128];
    format(string,sizeof(string),"Guten Tag\n\nIhr Kontostand beträgt:\n\t %i",PlayerInfo[playerid][pBank]);
    ShowPlayerDialog(playerid,12,DIALOG_STYLE_MSGBOX,"Kontostand",str,"Ok","Schliessen");
    }
    }
    if(listitem == 2)//Einzahlen
    {
    if(response)
    {
    ShowPlayerDialog(playerid,13,DIALOG_STYLE_INPUT,"Einzahlen","\nBitte tippe ein,\nwie viel du einzahlen willst.","Einzahlen","Schliessen");
    }
    }
    if(listitem == 3)//Auszahlen
    {
    if(response)
    {
    ShowPlayerDialog(playerid,14,DIALOG_STYLE_INPUT,"Auszahlen","\nBitte tippe ein,\nwie viel du auszahlen willst.","Auszahlen","Schliessen");
    }
    }
    }
    if(dialogid == 13)
    {
    if(response)
    {
    if(inputtext <= GetPlayerMoney(playerid))
    {
    GivePlayerMoney(playerid, -inputtext);
    PlayerInfo[playerid][pBank] +inputtext;
    }
    else
    {
    SendClientMessage(playerid,0xFFFFFFFF,"Du hast nicht genug Geld");
    }
    }
    }
    if(dialogid == 14)
    {
    if(response)
    {
    if(inputtext <= PlayerInfo[playerid][pBank])
    {
    GivePlayerMoney(playerid, inputtext);
    PlayerInfo[playerid][pBank] -inputtext;
    }
    else
    {
    SendClientMessage(playerid,0xFFFFFFFF,"Du hast nicht genug Geld auf der Bank");
    }
    }
    }
    return 1;
    }


    edit: bin jetzt müde, Fragen etc. kann ich erst morgen beantworten!

    Einmal editiert, zuletzt von MnKn ()


  • new inputtext2[128];
    inputtext2 = inputtext


    if(dialogid == Einzahlen)
    {
    if(response)
    {
    if(inputtext2 <= PlayerMoney[playerid])
    {
    PlayerMoney[playerid] = PlayerMoney[playerid] - inputtext2;
    PlayerInfo[playerid][pAccount] +inputtext2;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast nicht genug Geld");
    }
    }
    }
    if(dialogid == Abheben)
    {
    if(response)
    {
    if(inputtext2 <= PlayerInfo[playerid][pAccount])
    {
    PlayerMoney[playerid] = PlayerMoney[playerid] + inputtext2;
    PlayerInfo[playerid][pAccount] -inputtext2;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast nicht genug Geld auf der Bank");
    }
    }
    }




    So mal testen!