Guest User

Banksystem von K3VIN

a guest
Jun 11th, 2013
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 11.41 KB | None | 0 0
  1. /*
  2.     Dieses Filterscript wurde von K3VIN am 11.06.2013
  3.     um 13:40 erstellt.
  4.    
  5.     Ihr könnt hiermit machen was ihr wollt, lediglich gebe ich
  6.     nur Support zu diesem Filterscript, wenn dadurch Bugs mit
  7.     eurem Gamemode enstehen müsst ihr diese selber ausbaden.
  8.    
  9.     Greetz K3VIN
  10.    
  11.     PS: Kommt nicht auf dumme gedanken es wieder als eures auszugeben.
  12.  
  13. */
  14.  
  15.  
  16.  
  17. #include <a_samp>
  18. #include <ocmd>
  19. #include <dini>
  20. #include <streamer>
  21.  
  22.  
  23. #define Rot         0xFF2D35FF
  24. #define Weiss       0xFFFFFFFF
  25. #define Orange      0xFF9C00FF
  26. #define Gruen       0x4BB400FF
  27.  
  28.  
  29. #define DIALOG_PORTEN 0
  30. #define DIALOG_BANK 1
  31. #define DIALOG_DATEN 2
  32. #define DIALOG_VERWALTEN 3
  33. #define DIALOG_EINZAHLEN 4
  34. #define DIALOG_PINABFRAGE 5
  35. #define DIALOG_AUSZAHLEN 6
  36. #define DIALOG_ATM 7
  37.  
  38. #define Function%0(%1) forward%0(%1); public%0(%1)//
  39. #define String(%0,%1,%2,%3) do {new _msg[128]; format(_msg,sizeof(_msg),%2,%3); SendClientMessage(%0,%1,_msg); } while(FALSE)
  40. new bool:FALSE = false;
  41. #define KEY_N                       131072
  42. #define Geschenk                    25
  43.  
  44.  
  45. stock CreatePickupEx(modelid, spawntype, Float:x, Float:y, Float:z, text[])
  46. {
  47.     CreateDynamic3DTextLabel(text, Weiss, x, y, z, 15.0);
  48.     return CreatePickup(modelid, spawntype, x, y, z);
  49. }
  50.  
  51. main()
  52. {
  53. }
  54.  
  55. enum SpielerKonto
  56. {
  57.     Konto,
  58.     Kontostand,
  59.     Beantragt,
  60.     Pin,
  61.     Kontonummer,
  62.     Abholen
  63. }
  64. new Bank[MAX_PLAYERS][SpielerKonto],
  65.     GlobalString[1024];
  66.  
  67. new Float:ATMS[][3] =
  68.     {
  69.         {1507.69995, -1276.09998, 14.2}
  70.     };
  71.  
  72. public OnFilterScriptInit()
  73. {
  74.     print("\n--------------------------------------");
  75.     print("Bank System by K3VIN ");
  76.     print("--------------------------------------\n");
  77.  
  78.     CreatePickupEx(1274, 1, 1501.8632,-1277.8013,14.5625,"Sparkasse\nbenutze die Taste 'N'");
  79.    
  80.     // ============== [ Atm ] ============== //
  81.     CreateDynamicObject(2942, 1507.69995, -1276.09998, 14.2, 0, 0, 0);
  82.    
  83.     for(new o=0; o<sizeof(ATMS); o++)
  84.     {
  85.         format(GlobalString,sizeof(GlobalString),"Geldautomat\nBenutze die Taste 'N'",ATMS[o][0],ATMS[o][1],ATMS[o][2]);
  86.         Create3DTextLabel(GlobalString,Weiss,ATMS[o][0],ATMS[o][1],ATMS[o][2]+1,25,0,1);
  87.     }
  88.     return 1;
  89. }
  90.  
  91. public OnFilterScriptExit()
  92. {
  93.     for(new i=0; i<MAX_PLAYERS; i++)
  94.     {
  95.         BankSpeichern(i);
  96.     }
  97.     return 1;
  98. }
  99.  
  100.  
  101.  
  102. public OnPlayerConnect(playerid)
  103. {
  104.     BankLaden(playerid);
  105.     String(playerid,Orange,"Willkommen %s, Banksystem by K3VIN",SpielerName(playerid));
  106.     return 1;
  107. }
  108.  
  109. public OnPlayerDisconnect(playerid, reason)
  110. {
  111.     BankSpeichern(playerid);
  112.     Bank[playerid][Konto] = 0;
  113.     Bank[playerid][Kontostand] = 0;
  114.     Bank[playerid][Beantragt] = 0;
  115.     Bank[playerid][Pin] = 0;
  116.     Bank[playerid][Kontonummer] = 0;
  117.     return 1;
  118. }
  119.  
  120.  
  121. // ==================================================================== //
  122.  
  123. ocmd:porten(playerid,params[])
  124. {
  125.     ShowPlayerDialog(playerid,DIALOG_PORTEN,DIALOG_STYLE_LIST,"Wohin ?","Los Santos Bank","Auswahl","Abbrechen");
  126.     return 1;
  127. }
  128.  
  129. ocmd:geld(playerid,params[])
  130. {
  131.     #pragma unused params
  132.     GivePlayerMoney(playerid,500);
  133.     return 1;
  134. }
  135.  
  136.  
  137. // ==================================================================== //
  138.  
  139. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  140. {
  141.     if(newkeys & KEY_N)
  142.     {
  143.         if(IsPlayerInRangeOfPoint(playerid,2.0,1501.8632,-1277.8013,14.5625))
  144.         {
  145.             ShowPlayerDialog(playerid,DIALOG_BANK,DIALOG_STYLE_LIST,"Sparkasse","Konto erstellen\nKonto abholen\nVerwalten","Auswahl","Abbrechen");
  146.             return 1;
  147.         }
  148.         for(new o=0; o<sizeof(ATMS); o++)
  149.         {
  150.             if(IsPlayerInRangeOfPoint(playerid,3.0,ATMS[o][0],ATMS[o][1],ATMS[o][2]))
  151.             {
  152.                 if(Bank[playerid][Konto] == 0)return SendClientMessage(playerid,Orange,"Du besitzt noch kein Konto!");
  153.                 ShowPlayerDialog(playerid,DIALOG_VERWALTEN,DIALOG_STYLE_LIST,"Konto Verwaltung","Kontostand\nEinzahlen\nAuszahlen","Auswahl","Abbrechen");
  154.                 return 1;
  155.             }
  156.         }
  157.     }
  158.     return 1;
  159. }
  160.  
  161. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  162. {
  163.     if(dialogid==DIALOG_PORTEN)
  164.     {
  165.         if(response)
  166.         {
  167.             if(listitem==0)
  168.             {
  169.                 SetPlayerPos(playerid,1521.3539,-1284.2428,14.4892);
  170.                 SetPlayerInterior(playerid,0);
  171.                 SetCameraBehindPlayer(playerid);
  172.                 SetPlayerFacingAngle(playerid,37.2782);
  173.                 SendClientMessage(playerid,Weiss,"Du hast dich erfolgreich zur Los Santos Bank geportet!");
  174.                 return 1;
  175.             }
  176.         }
  177.     }
  178.     if(dialogid==DIALOG_BANK)
  179.     {
  180.         if(response)
  181.         {
  182.             if(listitem==0)
  183.             {
  184.                 if(Bank[playerid][Konto] == 1)return SendClientMessage(playerid,Orange,"Du besitzt bereits ein Konto!");
  185.                 String(playerid,Weiss,"Vielen Danke %s, das Sie sich für die Sparkasse entschieden habe.",SpielerName(playerid));
  186.                 SetTimerEx("Kontobeantragt",10000,0,"d",playerid);
  187.                 Bank[playerid][Beantragt] = 1;
  188.                 return 1;
  189.             }
  190.             if(listitem==1)
  191.             {
  192.                 new string[512];
  193.                 if(Bank[playerid][Konto] == 1)return SendClientMessage(playerid,Orange,"Du besitzt bereits ein Konto!");
  194.                 if(Bank[playerid][Beantragt] == 0)return SendClientMessage(playerid,Orange,"Du hast kein Konto beantragt!");
  195.                 if(Bank[playerid][Abholen] == 0)return SendClientMessage(playerid,Orange,"Dein Konto ist noch nicht fertig!");
  196.                 new pin = random(8999) + 1000, nummer = random(18999) + 1000;
  197.                 Bank[playerid][Abholen] = 0;
  198.                 Bank[playerid][Beantragt] = 0;
  199.                 Bank[playerid][Konto] = 1;
  200.                 Bank[playerid][Pin] = pin;
  201.                 Bank[playerid][Kontonummer] = nummer;
  202.                 Bank[playerid][Kontostand] += Geschenk;
  203.                 format(string,sizeof(string),"{FEFEFE}Dein Konto ist fertiggestellt.\n\nDeine Kontonummer lautet: {23FF00}%i{FEFEFE}\nDein Bankpin lautet: {23FF00}%i{FEFEFE}\n\nGib auf dein Bankpin gut acht!",pin,nummer);
  204.                 ShowPlayerDialog(playerid,DIALOG_DATEN,DIALOG_STYLE_MSGBOX,"Dein Konto",string,"Fertig","");
  205.                 String(playerid,Gruen,"Als Geschenk erhälst du von uns %i$ auf dein Konto gutgeschrieben.",Geschenk);
  206.                 return 1;
  207.             }
  208.             if(listitem==2)
  209.             {
  210.                 if(Bank[playerid][Konto] == 0)return SendClientMessage(playerid,Orange,"Du besitzt kein Konto!");
  211.                 ShowPlayerDialog(playerid,DIALOG_PINABFRAGE,DIALOG_STYLE_INPUT,"Sparkasse - Konto Verwalten","Um auch wirklich sicher zu gehen, dass das dein Konto ist,\ngib bitte den Konto Pin an!","Absenden","Abbrechen");
  212.                 return 1;
  213.             }
  214.         }
  215.     }
  216.     if(dialogid==DIALOG_PINABFRAGE)
  217.     {
  218.         if(!response)return ShowPlayerDialog(playerid,DIALOG_BANK,DIALOG_STYLE_LIST,"Sparkasse","Konto erstellen\nKonto abholen\nVerwalten","Auswahl","Abbrechen");
  219.         if(response)
  220.         {
  221.             if(strval(inputtext) != Bank[playerid][Pin])return ShowPlayerDialog(playerid,DIALOG_PINABFRAGE,DIALOG_STYLE_INPUT,"Sparkasse - Konto Verwalten","{E10000}Falscher Pin!\n\n{FEFEFE}Bitte gib den Korrekten Pin ein!","Absenden","Abbrechen");
  222.             ShowPlayerDialog(playerid,DIALOG_VERWALTEN,DIALOG_STYLE_LIST,"Konto Verwaltung","Kontostand\nEinzahlen\nAuszahlen","Auswahl","Abbrechen");
  223.             return 1;
  224.         }
  225.     }
  226.     if(dialogid==DIALOG_VERWALTEN)
  227.     {
  228.         if(!response)return ShowPlayerDialog(playerid,DIALOG_BANK,DIALOG_STYLE_LIST,"Sparkasse","Konto erstellen\nKonto abholen\nVerwalten","Auswahl","Abbrechen");
  229.         if(response)
  230.         {
  231.             if(listitem==0)
  232.             {
  233.                 SendClientMessage(playerid,Weiss, " ");
  234.                 SendClientMessage(playerid,Orange,"| ==================== |");
  235.                 SendClientMessage(playerid,Weiss, " ");
  236.                 String(playerid,Weiss,"Aktueller Kontostand: {23FF00}%i$",Bank[playerid][Kontostand]);
  237.                 SendClientMessage(playerid,Weiss, " ");
  238.                 SendClientMessage(playerid,Orange,"| ==================== |");
  239.                 ShowPlayerDialog(playerid,DIALOG_VERWALTEN,DIALOG_STYLE_LIST,"Konto Verwaltung","Kontostand\nEinzahlen\nAuszahlen","Auswahl","Abbrechen");
  240.                 return 1;
  241.             }
  242.             if(listitem==1)
  243.             {
  244.                 ShowPlayerDialog(playerid,DIALOG_EINZAHLEN,DIALOG_STYLE_INPUT,"Geld einzahlen","Wieviel Geld möchtest du auf dein Konto einzahlen ?","Einzahlen","Abbrechen");
  245.                 return 1;
  246.             }
  247.             if(listitem==2)
  248.             {
  249.                 ShowPlayerDialog(playerid,DIALOG_AUSZAHLEN,DIALOG_STYLE_INPUT,"Geld auszahlen","Wieviel Geld möchtest du von deinem Konto auszahlen ?","Auszahlen","Abbrechen");
  250.                 return 1;
  251.             }
  252.         }
  253.     }
  254.     if(dialogid==DIALOG_EINZAHLEN)
  255.     {
  256.         if(!response)return ShowPlayerDialog(playerid,DIALOG_VERWALTEN,DIALOG_STYLE_LIST,"Konto Verwaltung","Kontostand\nEinzahlen\nAuszahlen","Auswahl","Abbrechen");
  257.         if(strval(inputtext) > GetPlayerMoney(playerid))return ShowPlayerDialog(playerid,DIALOG_EINZAHLEN,DIALOG_STYLE_INPUT,"Geld einzahlen","{E10000}So viel Geld besitzt du nicht!\n{FEFEFE}Bitte gib einen Betrag an den du auch besitzt!","Einzahlen","Abbrechen");
  258.         GivePlayerMoney(playerid,-strval(inputtext));
  259.         Bank[playerid][Kontostand] += strval(inputtext);
  260.         SendClientMessage(playerid,Weiss, " ");
  261.         String(playerid,Weiss,"Du hast {23FF00}%i${FEFEFE} in dein Konto eingezahlt!",strval(inputtext));
  262.         String(playerid,Weiss,"Aktueller Kontostand: {23FF00}%i$",Bank[playerid][Kontostand]);
  263.         return 1;
  264.     }
  265.     if(dialogid==DIALOG_AUSZAHLEN)
  266.     {
  267.         if(!response)return ShowPlayerDialog(playerid,DIALOG_VERWALTEN,DIALOG_STYLE_LIST,"Konto Verwaltung","Kontostand\nEinzahlen\nAuszahlen","Auswahl","Abbrechen");
  268.         if(strval(inputtext) > Bank[playerid][Kontostand])return ShowPlayerDialog(playerid,DIALOG_AUSZAHLEN,DIALOG_STYLE_INPUT,"Geld auszahlen","{E10000}So viel Geld besitzt du nicht!\n{FEFEFE}Bitte gib einen Betrag an den du auch besitzt!","Auszahlen","Abbrechen");
  269.         Bank[playerid][Kontostand] -= strval(inputtext);
  270.         GivePlayerMoney(playerid, GetPlayerMoney(playerid) +strval(inputtext));
  271.         SendClientMessage(playerid,Weiss," ");
  272.         String(playerid,Weiss,"Du hast dir {23FF00}%i${FEFEFE} von deinem Konto ausgezahlt!",strval(inputtext));
  273.         String(playerid,Weiss,"Aktueller Kontostand: {23FF00}%i$",Bank[playerid][Kontostand]);
  274.         return 1;
  275.     }
  276.     return 1;
  277. }
  278.  
  279. Function Kontobeantragt(playerid)
  280. {
  281.     String(playerid,Orange,"Die Sparkasse meldet, das Ihr Konto fertig ist %s",SpielerName(playerid));
  282.     Bank[playerid][Abholen] = 1;
  283.     return 1;
  284. }
  285.  
  286. stock SpielerName(playerid)
  287. {
  288.     new Name[MAX_PLAYER_NAME];
  289.     GetPlayerName(playerid,Name,sizeof(Name));
  290.     return Name;
  291. }
  292.  
  293.  
  294. stock BankLaden(playerid)
  295. {
  296.     new Name[MAX_PLAYER_NAME],Datei[64];
  297.     GetPlayerName(playerid,Name,sizeof(Name));
  298.     format(Datei,sizeof(Datei),"/Spieler/%s.txt",Name);
  299.     Bank[playerid][Konto] = dini_Int(Datei,"Konto");
  300.     Bank[playerid][Kontostand] = dini_Int(Datei,"Kontostand");
  301.     Bank[playerid][Beantragt] = dini_Int(Datei,"Beantragt");
  302.     Bank[playerid][Pin] = dini_Int(Datei,"Pin");
  303.     Bank[playerid][Kontonummer] = dini_Int(Datei,"Kontonummer");
  304.     Bank[playerid][Abholen] = dini_Int(Datei,"Abholen");
  305.     return 1;
  306. }
  307.  
  308. stock BankSpeichern(playerid)
  309. {
  310.     new Name[MAX_PLAYER_NAME],Datei[64];
  311.     GetPlayerName(playerid,Name,sizeof(Name));
  312.     if(!fexist(Datei))
  313.     {
  314.         format(Datei,sizeof(Datei),"/Spieler/%s.txt",Name);
  315.         dini_Create(Datei);
  316.     }
  317.     dini_IntSet(Datei,"Konto",Bank[playerid][Konto]);
  318.     dini_IntSet(Datei,"Kontostand",Bank[playerid][Kontostand]);
  319.     dini_IntSet(Datei,"Beantragt",Bank[playerid][Beantragt]);
  320.     dini_IntSet(Datei,"Pin",Bank[playerid][Pin]);
  321.     dini_IntSet(Datei,"Kontonummer",Bank[playerid][Kontonummer]);
  322.     dini_IntSet(Datei,"Abholen",Bank[playerid][Abholen]);
  323.     return 1;
  324. }
  325.  
  326. stock IsNumeric(const string[]) {
  327.     new length=strlen(string);
  328.     if (length==0) return false;
  329.     for (new i = 0; i < length; i++) {
  330.         if (
  331.         (string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+')
  332.         || (string[i]=='-' && i!=0)
  333.         || (string[i]=='+' && i!=0)
  334.         ) return false;
  335.     }
  336.     if (length==1 && (string[0]=='-' || string[0]=='+')) return false;
  337.     return true;
  338. }
Add Comment
Please, Sign In to add comment