Eliots

Bank System v2

Sep 25th, 2011
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.51 KB | None | 0 0
  1. #include <a_samp>
  2. #include <zcmd>
  3. #include <foreach>
  4. #include <YSI/y_ini>
  5.  
  6. /*      Šo filterskriptu veidoja Eliots[ADT] --- [eliotsrp@inbox.lv]   */
  7.  
  8. /* CHANGELOG
  9. - Skripta relīze [22.09.2011]
  10. - Skripts pārveidots, lai saglabā naudu uz y_ini. [25.05.2011] */
  11.  
  12. #define PATH "banka/%s.ini"
  13.  
  14. //Krāsas
  15. #define     peleeks         0xAFAFAFAA
  16.  
  17. //Dialogi
  18. #define     DIALOG_BANK     (155)
  19. #define     DIALOG_BALANCE  (255)
  20. #define     DIALOG_WITHDRAW (355)
  21. #define     DIALOG_DEPOSIT  (455)
  22.  
  23. //Forward's
  24. forward GameTextEntrance();
  25. forward LoadBank_data(playerid, name[], value[]);
  26.  
  27. //Variables
  28. new entrance;
  29.  
  30. enum pBank
  31. {
  32.     pBankAccount,
  33. };
  34. new bankVariables[MAX_PLAYERS][pBank];
  35. //==============================================================================
  36. stock BankPath(playerid)
  37. {
  38.     new string[50];
  39.     format(string, sizeof string, PATH, GetName(playerid));
  40.     return string;
  41. }
  42.  
  43. stock GetName(playerid)
  44. {
  45.     new name[24];
  46.     GetPlayerName(playerid, name, sizeof name);
  47.     return name;
  48. }
  49.  
  50. public LoadBank_data(playerid, name[], value[])
  51. {
  52.     INI_Int("BankMoney", bankVariables[playerid][pBankAccount]);
  53.     return 1;
  54. }
  55.  
  56. public OnFilterScriptInit()
  57. {
  58.     print("[BANKA] Bankas sistēma ielādēta veiksmīgi...");
  59.     entrance = SetTimer("GameTextEntrance", 500, 1);
  60.    
  61.     //Ikonas
  62.     AddStaticPickup(1239, 1, 2303.1074,-15.8666,26.4844); //Bankas ieeja
  63.     AddStaticPickup(1239, 1, 2316.3748,-15.5229,26.7422); //Punkts, kur lietot /bank cmd
  64.     return 1;
  65. }
  66.  
  67. public OnFilterScriptExit()
  68. {
  69.     KillTimer(entrance);
  70.     return 1;
  71. }
  72.  
  73. public OnPlayerConnect(playerid)
  74. {
  75.     if(fexist(BankPath(playerid)))
  76.     {
  77.         INI_ParseFile(BankPath(playerid), "LoadBank_%s", .bExtra = true, .extra = playerid);
  78.     }
  79.     else
  80.     {
  81.         new INI:file = INI_Open(BankPath(playerid));
  82.         INI_WriteInt(file, "BankMoney", 0);
  83.         INI_Close(file);
  84.         INI_ParseFile(BankPath(playerid), "LoadBank_%s", .bExtra = true, .extra = playerid);
  85.     }
  86.     return 1;
  87. }
  88.  
  89. public OnPlayerDisconnect(playerid, reason)
  90. {
  91.     if(fexist(BankPath(playerid)))
  92.     {
  93.         new INI:file = INI_Open(BankPath(playerid));
  94.         INI_WriteInt(file, "BankMoney", bankVariables[playerid][pBankAccount]);
  95.         INI_Close(file);
  96.     }
  97.     return 1;
  98. }
  99.  
  100. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  101. {
  102.     new string[128];
  103.     if(dialogid == DIALOG_BANK) {
  104.         if(response) {
  105.             if(listitem==0){
  106.                 ShowPlayerDialog(playerid, DIALOG_DEPOSIT, DIALOG_STYLE_INPUT, "Naudas noguldījums", "Ievadiet naudas summu, kuru vēlaties noguldīt.", "Apstiprināt", "Atpakaļ"); }
  107.             else if(listitem==1){
  108.                 ShowPlayerDialog(playerid, DIALOG_WITHDRAW, DIALOG_STYLE_INPUT, "Naudas izņemšana", "Ievadiet naudas summu, kuru vēlaties izņemt.", "Apstiprināt", "Atpakaļ"); }
  109.             else if(listitem==2){
  110.                 format(string, sizeof(string), "Bankas konta atlikums.\n{ADFF2F}Summa: {FFFFFF}$%d", bankVariables[playerid][pBankAccount]);
  111.                 ShowPlayerDialog(playerid, DIALOG_BALANCE, DIALOG_STYLE_MSGBOX, "Konta atlikums", string, "Atpakaļ", ""); }
  112.         }
  113.         return 1;
  114.     }
  115.     if(dialogid==DIALOG_DEPOSIT) {
  116.         if(response) {
  117.             if(strval(inputtext) <= GetPlayerMoney(playerid) && strval(inputtext) > 0) {
  118.                 new money = strval(inputtext);
  119.                 GivePlayerMoney(playerid, -money);
  120.                 bankVariables[playerid][pBankAccount] += money;
  121.             }
  122.             else return ShowPlayerDialog(playerid, DIALOG_DEPOSIT, DIALOG_STYLE_INPUT, "Naudas noguldījums", "Jums nav tik daudz naudas, ko vēlējāties noguldīt.\nIevadiet naudas summu, kuru vēlaties noguldīt.", "Apstiprināt", "Atpakaļ");
  123.         }
  124.         else return ShowPlayerDialog(playerid, DIALOG_BANK, DIALOG_STYLE_LIST, "Bankas izvēlne", "Noguldīt naudu\nIzņemt naudu\nApskatīt atlikumu","Apstiprināt", "Aizvērt");
  125.         return 1;
  126.     }
  127.     if(dialogid==DIALOG_WITHDRAW) {
  128.         if(response) {
  129.             if(strval(inputtext) <= bankVariables[playerid][pBankAccount] && strval(inputtext) > 0){
  130.                 new money = strval(inputtext);
  131.                 GivePlayerMoney(playerid, money);
  132.                 bankVariables[playerid][pBankAccount] -= money;
  133.             }
  134.             else return ShowPlayerDialog(playerid, DIALOG_WITHDRAW, DIALOG_STYLE_INPUT, "Naudas izņemšana", "Jums nav tik daudz naudas uz bankas konta.\nIevadiet naudas summu, kuru vēlaties izņemt.", "Apstiprināt", "Atpakaļ");
  135.         }
  136.         else return ShowPlayerDialog(playerid, DIALOG_BANK, DIALOG_STYLE_LIST, "Bankas izvēlne", "Noguldīt naudu\nIzņemt naudu\nApskatīt atlikumu","Apstiprināt", "Aizvērt");
  137.         return 1;
  138.     }
  139.     if(dialogid==DIALOG_BALANCE) {
  140.         if(response) return ShowPlayerDialog(playerid, DIALOG_BANK, DIALOG_STYLE_LIST, "Bankas izvēlne", "Noguldīt naudu\nIzņemt naudu\nApskatīt atlikumu","Apstiprināt", "Aizvērt");
  141.     }
  142.     return 0;
  143. }
  144.  
  145. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  146. {
  147.     if(newkeys == KEY_SECONDARY_ATTACK)
  148.     {
  149.         if(IsPlayerInRangeOfPoint(playerid, 1.0, 2303.1074,-15.8666,26.4844) && GetPlayerState(playerid) != (PLAYER_STATE_DRIVER))
  150.         { //Bankas ieeja
  151.             SetPlayerPos(playerid, 2307.9714,-15.4138,26.7496);
  152.             SetPlayerFacingAngle(playerid, 268.0418);
  153.             SetPlayerInterior(playerid, 0);
  154.             GameTextForPlayer(playerid, "~w~Laipni lugts~n~~g~banka!", 3000, 3);
  155.         }
  156.         else if(IsPlayerInRangeOfPoint(playerid, 1.0, 2305.2314,-16.0962,26.7422) && GetPlayerState(playerid) != (PLAYER_STATE_DRIVER))
  157.         { //Bankas izeja
  158.             SetPlayerPos(playerid, 2300.6660,-15.6993,26.4844);
  159.             SetPlayerFacingAngle(playerid, 88.4721);
  160.             SetPlayerInterior(playerid, 0);
  161.         }
  162.         return 1;
  163.     }
  164.     return 0;
  165. }
  166.  
  167. public GameTextEntrance()
  168. {
  169.     foreach(Player, i)
  170.     {
  171.         if(IsPlayerInRangeOfPoint(i, 1.0, 2303.1074,-15.8666,26.4844))
  172.         {//Bankas ieeja
  173.             GameTextForPlayer(i,"~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~g~Stata banka~n~~w~Spied ~r~F,~w~ lai ieietu",2000,3);
  174.         }
  175.         else if(IsPlayerInRangeOfPoint(i, 1.0, 2305.2314,-16.0962,26.7422))
  176.         {//Bankas izeja
  177.             GameTextForPlayer(i,"~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~Spied ~r~F,~w~ lai izietu",2000,3);
  178.         }
  179.     }
  180.     return 1;
  181. }
  182.  
  183. //======================[Komandas]==============================================
  184. COMMAND:bank(playerid, params[])
  185. {
  186.     if(IsPlayerInRangeOfPoint(playerid, 2.0, 2316.3748,-15.5229,26.7422))
  187.     {
  188.         ShowPlayerDialog(playerid, DIALOG_BANK, DIALOG_STYLE_LIST, "Bankas izvēlne", "Noguldīt naudu\nIzņemt naudu\nApskatīt atlikumu","Apstiprināt", "Aizvērt");
  189.     }
  190.     else return SendClientMessage(playerid, peleeks, "KĻŪDA: Tu neatrodies bankā!");
  191.     return 1;
  192. }
Add Comment
Please, Sign In to add comment