So ich muss das jetzt in einer neuen Nachricht machen da ich oben kein Platz mehr habe…
Ok was wir jetzt noch wollen ist ja eine Überweisung Funktion.
Dazu definen wir oben erst noch folgendes
Quellcode |
|
1 2 |
#define DIALOG_BANK_UEBERWEISEN_Stepp1 7//Ihr müsst das halt auf eure Dialoge abgleichen. #define DIALOG_BANK_UEBERWEISEN_Stepp2 8 |
Jetzt müssen wir zu dem Dialog „DIALOG_BANK“ der sich unter „OnDialogResponse“ befindet und das hier noch hinzufügen:
Quellcode |
|
1 2 3 4 |
if(listitem == 2)//Wenn er das zweite ausgewählt hat (Überweisen), passiert das... { ShowPlayerDialog(playerid, DIALOG_BANK_UEBERWEISEN_Stepp1, DIALOG_STYLE_INPUT, "Überweisen", "Bitte gebe den Namen des Players ein, dem du Geld überweisen willst.", "Weiter", "Abbrechen"); } |
Jetzt müssen wir noch die zwei Schritte bei der Überweisung erstellen. Dazu gehen wir bei „OnDialogResponse“ nach ganz unten und fügen noch folgendes hinzu:
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
if(dialogid == DIALOG_BANK_UEBERWEISEN_Stepp1)//Wenn die Diealog id "DIALOG_BANK_UEBERWEISEN_Stepp1" ist passiet das... { if(!strlen(inputtext))//Wenn der Inputtext (die Textbox) leer ist kommt folgende Meldung:... { ShowPlayerDialog(playerid, DIALOG_BANK_UEBERWEISEN_Stepp1, DIALOG_STYLE_INPUT, "Überweisen", "Bitte gebe den Namen des Players ein, dem du Geld überweisen willst.", "Weiter", "Abbrechen"); return 1; } if(response == 0)//Wenn er den Abbrechen Button drückt passiert nichts und der Dialog schliesst sich. { return 1; } if(response == 1)//Wenn er auf den Button "Weiter" drückt und die ID des Players in die TExtbox geschrieben hat passiert folgendes,... { new giveplayerid = strval(inputtext);//neue Variable die die ID übernimmt SetPVarInt(playerid, "Überweisung", giveplayerid); //Das speichert die ID des Player dem man etwas überweisen möchte. (Mann muss diesen Vorgang in Zwei schritten machen und muss die ID deshalb abspeichern!!) if(!strlen(inputtext)) { ShowPlayerDialog(playerid, DIALOG_BANK_UEBERWEISEN_Stepp1, DIALOG_STYLE_INPUT, "Überweisen", "Bitte gebe den Namen des Players ein, dem du Geld überweisen willst.", "Weiter", "Abbrechen"); return 1; } if(IsPlayerConnected(giveplayerid))//Wenn der Player online ist,... {//Bekommt der Player den nächsten Dialog indem er den Gewünschten betrag den er überweisen will, eingeben muss. ShowPlayerDialog(playerid, DIALOG_BANK_UEBERWEISEN_Stepp2, DIALOG_STYLE_INPUT, "Überweisen", "Bitte gebe nun den Betrag ein den du überweisen willst.", "Überweisen", "Abbrechen"); } else//Wenn der Player nicht Online ist, bekommt der Player diese Meldung... { SendClientMessage(playerid, COLOR_RED, "Dieser Spieler ist nicht Online!"); return 1; } return 1; } } |
Und schon haben wir den ersten schritt der überweisung. Jetzt fehlt uns ja nur noch der zweite XD!
Dazu müssen wir nochmal was hinzufügen und zwar das hier:
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
if(dialogid == DIALOG_BANK_UEBERWEISEN_Stepp2)//Wenn die Dialogid "DIALOG_BANK_UEBERWEISEN_Stepp2" passiert das... { if(!strlen(inputtext))//Wenn der Inputtext(Textbox) leer ist kommt diese Meldung... { ShowPlayerDialog(playerid, DIALOG_BANK_UEBERWEISEN_Stepp2, DIALOG_STYLE_INPUT, "Überweisen", "Bitte gebe nun den Betrag ein den du überweisen willst.", "Überweisen", "Abbrechen"); return 1; } if(response == 0)//Wenn er den Abbrechen Button drückt passiert nichts und der Dialog schliesst sich. { return 1; } if(response == 1)//Wenn er auf den Button "Überweisen" drückt und die die Menge an Geld in die T3xtbox geschrieben hat passiert folgendes,... { new giveplayerid = GetPVarInt(playerid, "Überweisung");//Hier wird die Variable nun gebraucht um die ID des Players herauszufinden dem das Geld überwiesen werden soll. new geld = strval(inputtext); //Hier wird die Variable "geld" genommen umd die Menge des Geldes das der Player in den Inputtext geschriebn hat herauszufinden. if(IsPlayerConnected(giveplayerid))//Wenn die ID Online ist passiert folgendes... { if(GetPVarInt(playerid, "Bank") >= geld)//Wenn der Player mehr oder genau soviel geld auf der Bank hat wie er in den Inputtext geschrieben hat geht es weiter. { new string[120]; GetPlayerName(playerid, name, sizeof(name));//Hier wird der name des Player herausgefunden der das GEld überweist GetPlayerName(giveplayerid, pname, sizeof(pname));//Hier wird der Name des Players herausgefunden dem das Geld überwiesen wird. SetPVarInt(playerid, "Bank", GetPVarInt(playerid, "Bank") -geld);//Hier wird dem Player das geld abgezogen SetPVarInt(giveplayerid, "Bank", GetPVarInt(giveplayerid, "Bank") +geld); //Und hier wird dem Player das Geld überwiesen format(string, sizeof(string), "Du hast %s gerage $%d überwiesen.", pname, geld); SendClientMessage(playerid, COLOR_GREEN, string);//Der Player bekommt eine Meldung wem und wieviel geld er gerade überwiesen hat. format(string, sizeof(string), "%s hat dir gerage $%d überwiesen.", name, geld); DeletePVar(playerid, "Überweisung");//Und hier bekommt der Player eine Meldung das er gerade von dem Player geld bekommen hat und wie viel. return 1; } else //Wenn der Player nicht soviel geld auf der Bank hat, bekommt er diese Meldung... { SendClientMessage(playerid,COLOR_RED,"So viel Geld hast du nicht auf der Bank!"); return 1; } } else //Wenn der Player nicht online ist bekommt man diese Meldung... { SendClientMessage(playerid, COLOR_RED, "Dieser Spieler ist nicht Online!"); return 1; } } } |
Und schon habe wir auch die Funktion Überweisung in unserem Bank system.
Wenn es Probleme also Errors bzw. Warnigs bei euch geben sollte postet diese einfach, ich versuch euch dan so schnell wie mögleich zu helfen.