Dialog - Überweisung | Banksystem

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 Community..


    Und zwar habe ich soweit ein fertiges Banksystem, was auch ohne probleme funktioniert..


    Aber ich bekomme das mit dem überweisen nicht ganz hin..


    Ich zeige euch mal den dialog zum einzahlen..


    if(dialogid==8)
    {
    if(response)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,COLOR_GRAU,"Fehler: Du hast keinen Betrag eingegeben!");
    ShowPlayerDialog(playerid,8,DIALOG_STYLE_INPUT,"Bank-Terminal","Wieviel möchtest du einzahlen:","Absenden","Abbrechen");
    }
    else if(strlen(inputtext))
    {
    new einzahlung = strval(inputtext);
    if (einzahlung > GetPlayerMoney(playerid))
    {
    SendClientMessage(playerid, COLOR_GRAU, "Fehler: Du hast nicht soviel Geld!");
    ShowPlayerDialog(playerid,8,DIALOG_STYLE_INPUT,"Bank-Terminal","Wieviel möchtest du einzahlen:","Absenden","Abbrechen");
    return 1;
    }
    if (einzahlung < 1)
    {
    SendClientMessage(playerid, COLOR_GRAU, "Fehler: Du musst Geld einzahlen!");
    ShowPlayerDialog(playerid,8,DIALOG_STYLE_INPUT,"Bank-Terminal","Wieviel möchtest du einzahlen:","Absenden","Abbrechen");
    return 1;
    }
    new string[128];
    GivePlayerMoney(playerid,-einzahlung);
    new alterstand = sD[playerid][pGeldBank];
    sD[playerid][pGeldBank]=einzahlung+sD[playerid][pGeldBank];
    SendClientMessage(playerid, COLOR_BLAUT, "==========Kontostand===========");
    format(string, sizeof(string), " Alter Kontostand: %d€", alterstand);
    SendClientMessage(playerid, COLOR_WHITE, string);
    format(string, sizeof(string), " Eingezahlt: %d€",einzahlung);
    SendClientMessage(playerid, COLOR_WHITE, string);
    SendClientMessage(playerid, COLOR_BLAUT, "==============================");
    format(string, sizeof(string), " Neuer Kontostand: %d€", sD[playerid][pGeldBank]);
    SendClientMessage(playerid, COLOR_WHITE, string);
    SendClientMessage(playerid, COLOR_BLAUT, "==============================");
    }
    }
    }


    Und ich möchte das das mit dem überweisen so funktionieren soll..


    Es wird ein INPUT geöffnet, wo ich die ID oder den Spielernamen eintragen muss, dann kommt eine MSGBOX die fragen soll, ob ich an den Spieler (name soll dann voll dort stehen, egal ob ID oder teil vom namen eingetragen) überweisen will.
    Dann sollen die möglichkeiten Ja oder Nein kommen..


    Bei Ja..


    muss die summe eingegeben werden, und beim bestätigen soll ein ein Grund eingegeben werden.. wenn er diesen grund z.b Event eingegeben hat und auf Absenden klickt soll die überweisung durchgeführt werden, und der spieler dem das überwiesen wurde, soll die SendClientMEssage angezeigt werden, das der spieler X dir Y€ überwiesen hat. Grund: Z



    Bei Nein soll er zum Dialog zurückkommen, wo er eine ID oder einen namen eingeben kann..





    höffe ihr könnt mir da nur ein grundgerüst geben, das dies soweit erfüllt..




    Bei fragen bin ich natürlich sofort zur stelle..

  • Du hast doch schon den Dialog mit dem Einzahlen geschafft, also versuche doch mal das mit dem Überweisen, denn dann lernst du es selber. Versuch dir ein Grundgerüst zu machen und wenn du Fragen hast und Hilfe brauchst Frag :)

  • Ist ja nicht so, das ich das nicht schon versucht habe. :)



    Ich habs auch versucht zu testen, es hat nichts funktioniert und habe es halt wieder rausgenommen.. ich sage mal so das gerüst an sich bekomm ich ja einigermaßen hin.
    aber so, das ich es so haben möchte, wie ich das will funktioniert das einfach nicht

  • Edit:


    if(dialogid==10)
    {
    if(response)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,COLOR_GRAU,"Fehler: Du musst einen Spieler angeben!");
    ShowPlayerDialog(playerid,10,DIALOG_STYLE_INPUT,"Bank-Terminal","Welchem Spieler willst du überweisen:","Absenden","Abbrechen");
    }
    else if(strlen(inputtext))
    {
    new giveplayer[MAX_PLAYER_NAME];
    GetPlayerName(strval(inputtext), giveplayer, sizeof(giveplayer));
    if(!IsPlayerConnected(strval(inputtext)))
    {
    SendClientMessage(playerid,COLOR_GRAU,"Fehler: Dieser Spieler ist nicht online");
    ShowPlayerDialog(playerid,10,DIALOG_STYLE_INPUT,"Bank-Terminal","Welchem Spieler willst du überweisen:","Absenden","Abbrechen");
    return 1;
    }
    if(playerid == strval(inputtext))
    {
    SendClientMessage(playerid,COLOR_GRAU,"Fehler: Du kannst dir nicht selber Geld überweisen!");
    ShowPlayerDialog(playerid,10,DIALOG_STYLE_INPUT,"Bank-Terminal","Welchem Spieler willst du überweisen:","Absenden","Abbrechen");
    return 1;
    }
    ShowPlayerDialog(playerid,11,DIALOG_STYLE_MSGBOX,"Bank-Terminal","Möchtest du an %s überweisen?","Ja","Nein",Spielername(giveplayer));
    }
    }
    }


    Das habe ich soweit gehabt FileZilla


    Aber dort kommt in der letzten zeile der error wegen dem Spielername(giveplayer)


    und ab da weiß ich selber auch nicht ganz weiter..

  • Habe das erstmal anders gelöst..


    if(dialogid==10)
    {
    if(response)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,COLOR_GRAU,"Fehler: Du musst einen Spieler angeben!");
    ShowPlayerDialog(playerid,10,DIALOG_STYLE_INPUT,"Bank-Terminal","Welchem Spieler willst du überweisen:","Absenden","Abbrechen");
    }
    else if(strlen(inputtext))
    {
    new string[128];
    new giveplayer[MAX_PLAYER_NAME];
    GetPlayerName(strval(inputtext), giveplayer, sizeof(giveplayer));
    if(!IsPlayerConnected(strval(inputtext)))
    {
    SendClientMessage(playerid,COLOR_GRAU,"Fehler: Dieser Spieler ist nicht online");
    ShowPlayerDialog(playerid,10,DIALOG_STYLE_INPUT,"Bank-Terminal","Welchem Spieler willst du überweisen:","Absenden","Abbrechen");
    return 1;
    }
    /*if(playerid == strval(inputtext))
    {
    SendClientMessage(playerid,COLOR_GRAU,"Fehler: Du kannst dir nicht selber Geld überweisen!");
    ShowPlayerDialog(playerid,10,DIALOG_STYLE_INPUT,"Bank-Terminal","Welchem Spieler willst du überweisen:","Absenden","Abbrechen");
    return 1;
    }*/
    format(string,sizeof(string),"Möchtest du an %s überweisen?",Spielername(strval(inputtext)));
    ShowPlayerDialog(playerid,11,DIALOG_STYLE_MSGBOX,"Bank-Terminal",string,"Ja","Nein");
    }
    }
    }
    if(dialogid==11)
    {
    if(response)
    {
    ShowPlayerDialog(playerid,12,DIALOG_STYLE_INPUT,"Bank-Terminal","Gebe eine Summe ein:","Absenden","Abbrechen");
    }
    ShowPlayerDialog(playerid,10,DIALOG_STYLE_INPUT,"Bank-Terminal","Welchem Spieler willst du überweisen:","Absenden","Abbrechen");
    }
    if(dialogid==12)
    {
    if(response)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,COLOR_GRAU,"Du musst eine Summe eingeben, die du überweisen möchtest!");
    ShowPlayerDialog(playerid,12,DIALOG_STYLE_INPUT,"Bank-Terminal","Gebe eine Summe ein:","Absenden","Abbrechen");
    }
    }
    }


    Ist der Ansatz soweit schon richtig?


    die giveplayerid muss ja irgendwie gespeichert werden oder?..

  • Was machst du den da?
    format(string,sizeof(string),"Möchtest du an %s überweisen?",Spielername(strval(inputtext)));


    zu:
    format(string,sizeof(string),"Möchtest du an %s überweisen?",Spielername(giveplayerid));


    Du willst ja den name haben und nicht die Zahl.
    strval(inputtext) ist die Zahl die ihr eingeben tut. (Das Geld in deinem Fall)


    new giveplayerid[MAX_PLAYER_NAME];
    GetPlayerName(playerid,giveplayerid,sizeof(giveplayerid));


    zu:
    new giveplayerid;


    Wenn du den name von den anderen Spieler willst kannst du es ja im PVar speichern.