Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * YLLERON'S BANK SYSTEM
- * 2011-2012 (C)
- * You can't present this script as your, or
- * make version and public it without my perm.
- *
- * Version: 2.0 ALPHA
- *
- */
- #include <a_samp>
- #include <sscanf2>
- #tryinclude <dini>
- // Defines ---------------------------------------------------------------------
- //------------------------------------------------------------------------------
- #define MAX_BANK 50
- //-----------------------------|
- #define ybank_path "/ybank/%s.ini"
- //-----------------------------|
- #define yBankDialog ShowPlayerDialog
- //-----------------------------|
- #define INPUT DIALOG_STYLE_INPUT
- #define LIST DIALOG_STYLE_LIST
- #define BOX DIALOG_STYLE_MSGBOX
- #define fc%0(%1) forward %0(%1);\
- public %0(%1)
- //-----------------------------|
- #define yd_transactcash 100
- #define yd_transactid 101
- #define yd_changepass 102
- #define yd_makepass 103
- #define yd_dialogid 104
- #define yd_deposit 105
- #define yd_default 106
- #define yd_delete 107
- #define yd_login 108
- #define yd_draw 109
- #define yd_make 110
- #define yd_menu 111
- //-----------------------------|
- #define C_RED 0xFF0000AA
- #define CD_GREEN "{00FF00}"
- #define C_DKGREEN 0x548B54AA
- //-----------------------------|
- enum Y_ENUM_DATA
- {
- Float:Float_X,
- Float:Float_Y,
- Float:Float_Z,
- IdDialog,
- IdPickup,
- Cash
- };
- enum YP_ENUM_DATA
- {
- TransactName[32],
- TransactID,
- bool:Log
- };
- new
- yBank[MAX_BANK][Y_ENUM_DATA],
- yBankPlayer[MAX_PLAYERS][YP_ENUM_DATA],
- yBankCount = 0
- ;
- fc ydialog(playerid, dialogid, response, listitem, inputtext[])
- {
- switch (dialogid)
- {
- case yd_menu:
- {
- if (response)
- {
- switch (listitem)
- {
- case 0:
- {
- new s[200];
- format(s, sizeof(s), "{FFFFFF}System yBank (Your account info)\n\nInformations for account:\t"CD_GREEN"%s\n\
- {FFFFFF}For this account is cash:\t"CD_GREEN"$%d",
- getName(playerid), GetYBankMoney(playerid));
- yBankDialog(playerid, yd_default, BOX, ""CD_GREEN"Powered by yBank (v2.0)", s, "Cancel", "");
- }
- case 1:
- {
- yBankDialog(playerid, yd_draw, INPUT, ""CD_GREEN"Powered by yBank (v2.0)", "{FFFFFF}yBank: Please type amout to draw", "Submit", "Cancel");
- }
- case 2:
- {
- yBankDialog(playerid, yd_deposit, INPUT, ""CD_GREEN"Powered by yBank (v2.0)", "{FFFFFF}yBank: Please type amout to deposit", "Submit", "Cancel");
- }
- case 3:
- {
- yBankDialog(playerid, yd_transactid, INPUT, ""CD_GREEN"Powered by yBank (v2.0)", "{FFFFFF}yBank: Please type ID of given player", "Submit", "Cancel");
- }
- case 4:
- {
- yBankDialog(playerid, yd_changepass, INPUT, ""CD_GREEN"Powered by yBank (v2.0)", "{FFFFFF}yBank: Please type your new password", "Submit", "Cancel");
- }
- case 5:
- {
- // DELETE ACCOUNT
- yBankDialog(playerid, yd_delete, BOX, ""CD_GREEN"Powered by yBank (v2.0)", "{FFFFFF}yBank: Do you want to delete you account? Are you sure?", "Yes", "No");
- }
- }
- }
- }
- case yd_default:
- {
- if (response) {
- yBankDialog(playerid, yd_menu, LIST, ""CD_GREEN"Powered by yBank (v2.0)", "{FF0000}Account status\n{FFFFFF}Withdraw\nDeposit\nTransact\nChange Pass\nDelete Account", "Choose", "Exit");
- }
- }
- case yd_makepass:
- {
- if (response)
- {
- yBankDialog(playerid, yd_make, INPUT, ""CD_GREEN"Powered by yBank (v2.0)", "{FFFFFF}yBank: Type password for login to your account", "Sign In", "Cancel");
- }
- }
- case yd_make:
- {
- if (response)
- {
- new Password[32];
- if (sscanf(inputtext, "s[32]", Password)) return yBankDialog(playerid, yd_makepass, INPUT, ""CD_GREEN"Powered by yBank (v2.0)", "{FF0000}Error\nYou must fill following field with your password! (1-16 chars)", "Submit", "");
- else
- {
- new fp[64];
- format(fp, sizeof(fp), ybank_path, getName(playerid));
- dini_Create(fp);
- dini_IntSet(fp, "Pass", phash(Password));
- dini_IntSet(fp, "BankCash", 0);
- SendClientMessage(playerid, C_DKGREEN, "* yBank: You've been successfully registered in bank");
- return yBankDialog(playerid, yd_login, INPUT, ""CD_GREEN"Powered by yBank (v2.0)", "{FFFFFF}yBank: Please, type your password for login", "Sign In", "Cancel");
- }
- }
- }
- case yd_login:
- {
- if (response)
- {
- new Password[32];
- if (sscanf(inputtext, "s[32]", Password)) return yBankDialog(playerid, yd_login, INPUT, ""CD_GREEN"Powered by yBank (v2.0)", "{FF0000}Error\nYou must fill following field with your password!", "Submit", "Cancel");
- else
- {
- new fp[64];
- format(fp, sizeof(fp), ybank_path, getName(playerid));
- if (dini_Int(fp, "Pass") == phash(Password))
- {
- yBankPlayer[playerid][Log] = true;
- SendClientMessage(playerid, C_DKGREEN, "* yBank: You've been successfully logged to your account");
- return yBankDialog(playerid, yd_menu, LIST, ""CD_GREEN"Powered by yBank (v2.0)", "{FF0000}Account status\n{FFFFFF}Withdraw\nDeposit\nTransact\nChange Pass\nDelete Account", "Choose", "Exit");
- }
- else return yBankDialog(playerid, yd_login, INPUT, ""CD_GREEN"Powered by yBank (v2.0)", "{FF0000}Error\nYou typed bad password! Please, again!", "Submit", "Cancel");
- }
- }
- }
- case yd_draw:
- {
- if (response)
- {
- new DrawCash;
- if (sscanf(inputtext, "i", DrawCash)) return yBankDialog(playerid, yd_draw, INPUT, ""CD_GREEN"Powered by yBank (v2.0)" , "{FF0000}Error\nPlease type amout to draw", "Submit", "" );
- else
- {
- if (GetYBankMoney(playerid) < DrawCash) return SendClientMessage(playerid, C_RED, "Error: You don't have so much money on your account!");
- if (DrawCash == 0) return SendClientMessage (playerid, C_RED, "yBank: Invalid cash!");
- GivePlayerMoney(playerid, DrawCash);
- TakeYBankMoney(playerid, DrawCash);
- new s[200];
- format(s, sizeof(s), "{FFFFFF}System yBank (Your account info)\n\nInformations for account:\t"CD_GREEN"%s\n\
- {FFFFFF}For this account is cash:\t"CD_GREEN"$%i\n\
- {FFFFFF}Withdrawed:\t\t\t"CD_GREEN"$%d",
- getName(playerid), GetYBankMoney(playerid), DrawCash);
- return yBankDialog(playerid, yd_default, BOX, ""CD_GREEN"Powered by yBank (v2.0)", s, "Cancel", "");
- }
- }
- else return yBankDialog(playerid, yd_menu, LIST, ""CD_GREEN"Powered by yBank (v2.0)", "{FF0000}Account status\n{FFFFFF}Withdraw\nDeposit\nTransact\nChange Pass\nDelete Account", "Choose", "Exit");
- }
- case yd_deposit:
- {
- if(response)
- {
- new DepositCash;
- if (sscanf(inputtext, "i", DepositCash)) return yBankDialog(playerid, yd_deposit, INPUT, ""CD_GREEN"Powered by yBank (v2.0)", "{FF0000}Error\nPlease type amout to deposit", "OK", "" );
- else
- {
- if (GetPlayerMoney(playerid) < DepositCash) return SendClientMessage (playerid, C_RED, "yBank: You don't have so much money to deposit!");
- if (DepositCash == 0) return SendClientMessage (playerid, C_RED, "yBank: Invalid cash!");
- GivePlayerMoney(playerid, -DepositCash);
- GiveYBankMoney(playerid, DepositCash);
- new s[200];
- format(s, sizeof(s), "{FFFFFF}System yBank (Your account info)\n\nInformations for account:\t"CD_GREEN"%s\n\
- {FFFFFF}For this account is cash:\t"CD_GREEN"$%i\n\
- {FFFFFF}Deposited:\t\t\t"CD_GREEN"$%d",
- getName(playerid), GetYBankMoney(playerid), DepositCash);
- return yBankDialog(playerid, yd_default, BOX, ""CD_GREEN"Powered by yBank (v2.0)", s, "Cancel", "");
- }
- }
- else return yBankDialog(playerid, yd_menu, LIST, ""CD_GREEN"Powered by yBank (v2.0)", "{FF0000}Account status\n{FFFFFF}Withdraw\nDeposit\nTransact\nChange Pass\nDelete Account", "Choose", "Exit");
- }
- case yd_transactid:
- {
- if (response)
- {
- new Player;
- if (sscanf(inputtext, "i", Player)) return yBankDialog(playerid, yd_transactid, INPUT, ""CD_GREEN"Powered by yBank (v2.0)", "{FF0000}Error\nPlease type id of given player", "OK", "Cancel" );
- else
- {
- if (!IsPlayerConnected(Player)) return SendClientMessage(playerid, C_RED, "Error: This player is not connected!");
- if (Player == (playerid)) return SendClientMessage(playerid, C_RED, "Error: This player is you!");
- yBankPlayer[playerid][TransactID] = Player;
- return yBankDialog(playerid, yd_transactcash, INPUT, ""CD_GREEN"Powered by yBank (v2.0)", "yBank: Type amout cash to transact", "Continue", "Cancel");
- }
- }
- else return yBankDialog(playerid, yd_menu, LIST, ""CD_GREEN"Powered by yBank (v2.0)", "{FF0000}Account status\n{FFFFFF}Withdraw\nDeposit\nTransact\nChange Pass\nDelete Account", "Choose", "Exit");
- }
- case yd_transactcash:
- {
- if (response)
- {
- new TransactCash;
- if (sscanf(inputtext, "d", TransactCash)) return yBankDialog(playerid, yd_transactcash, BOX, ""CD_GREEN"Powered by yBank (v2.0)", "Error\nType amout cash to transact", "Send", "Cancel");
- else
- {
- new Player = yBankPlayer[playerid][TransactID];
- if (TransactCash == 0) return SendClientMessage (playerid, C_RED, "yBank: Invalid cash!");
- GiveYBankMoney(Player, TransactCash);
- TakeYBankMoney(playerid, TransactCash);
- new s[200];
- format(s, sizeof(s), "{FFFFFF}System yBank (Your account info)\n\nInformations for account:\t"CD_GREEN"%s\n\
- {FFFFFF}For this account is cash:\t"CD_GREEN"$%i\n\
- {FFFFFF}Transacted:\t\t\t"CD_GREEN"$%d",
- getName(playerid), GetYBankMoney(playerid), TransactCash);
- return yBankDialog(playerid, yd_default, BOX, ""CD_GREEN"Powered by yBank (v2.0)", s, "Cancel", "");
- }
- }
- else return yBankDialog(playerid, yd_menu, LIST, ""CD_GREEN"Powered by yBank (v2.0)", "{FF0000}Account status\n{FFFFFF}Withdraw\nDeposit\nTransact\nChange Pass\nDelete Account", "Choose", "Exit");
- }
- case yd_delete:
- {
- if (response)
- {
- DeleteYBank(playerid);
- SendClientMessage(playerid, C_DKGREEN, "* yBank: Your account has been deleted!");
- }
- }
- case yd_changepass:
- {
- if (response)
- {
- new fp[ 70 ];
- format(fp, sizeof(fp), ybank_path, getName(playerid));
- if (fexist(fp))
- {
- dini_IntSet(fp, "Pass", phash(inputtext));
- yBankDialog(playerid, yd_menu, LIST, ""CD_GREEN"Powered by yBank (v2.0)", "{FF0000}Account status\n{FFFFFF}Withdraw\nDeposit\nTransact\nChange Pass\nDelete Account", "Choose", "Exit");
- SendClientMessage(playerid, C_DKGREEN, "* yBank: Your password has been success changed!");
- }
- }
- else return yBankDialog(playerid, yd_menu, LIST, ""CD_GREEN"Powered by yBank (v2.0)", "{FF0000}Account status\n{FFFFFF}Withdraw\nDeposit\nTransact\nChange Pass\nDelete Account", "Choose", "Exit");
- }
- }
- return true;
- }
- fc ypickup(playerid)
- {
- //----------------------------------------
- new fp[ 70 ];
- format(fp, sizeof(fp), ybank_path, getName(playerid));
- //-----------------------------------------
- if (!fexist(fp))
- {
- return yBankDialog(playerid, yd_makepass, BOX, ""CD_GREEN"Powered by yBank (v2.0)", "{FFFF00}Do you want create account in our bank?", "Yes", "No, thanks");
- }
- else
- {
- if (!yBankPlayer[playerid][Log])
- {
- yBankDialog(playerid, yd_login, INPUT, ""CD_GREEN"Powered by yBank (v2.0)", "Welcome!\nPlease type your password below:", "Log In", "Cancel");
- }
- else
- {
- yBankDialog(playerid, yd_menu, LIST, ""CD_GREEN"Powered by yBank (v2.0)", "{FF0000}Account status\n{FFFFFF}Withdraw\nDeposit\nTransact\nChange Pass\nDelete Account", "Choose", "Exit");
- }
- }
- return true;
- }
- fc CreateYBank(Float:X, Float:Y, Float:Z)
- {
- if (yBankCount <= MAX_BANK)
- {
- // increase number of banks
- yBankCount++;
- new bankid; bankid = yBankCount;
- yBank[bankid][Float_X] = X;
- yBank[bankid][Float_Y] = Y;
- yBank[bankid][Float_Z] = Z;
- yBank[bankid][IdPickup] = CreatePickup(1318, 2, X, Y, Z, 0);
- printf("yBank loaded ->> Package banks opened and loaded %i/"#MAX_BANK"", yBankCount);
- }
- else
- {
- printf ("yBank loaded ->> Package banks not opened! Limit Exceed: %i/"#MAX_BANK"", yBankCount);
- return false;
- }
- return true;
- }
- SetYBankMoney(playerid, cash)
- {
- new fp[ 70 ];
- format(fp, sizeof(fp), ybank_path, getName(playerid));
- if (fexist(fp))
- {
- dini_IntSet(fp, "BankCash", cash);
- }
- return 1;
- }
- TakeYBankMoney(playerid, cash)
- {
- new fp[ 70 ];
- format(fp, sizeof(fp), ybank_path, getName(playerid));
- if (fexist(fp))
- {
- dini_IntSet(fp, "BankCash", dini_Int(fp, "BankCash")-cash);
- }
- return 1;
- }
- GetYBankMoney(playerid)
- {
- new fp[ 70 ];
- format(fp, sizeof(fp), ybank_path, getName(playerid));
- if (fexist(fp))
- {
- return dini_Int(fp, "BankCash");
- }
- return 1;
- }
- GiveYBankMoney(playerid, cash)
- {
- new fp[ 70 ];
- format(fp, sizeof(fp), ybank_path, getName(playerid));
- if (fexist(fp))
- {
- dini_IntSet(fp, "BankCash", dini_Int(fp, "BankCash")+cash);
- }
- return 1;
- }
- DeleteYBank(playerid)
- {
- new fp[ 70 ];
- format(fp, sizeof(fp), ybank_path, getName(playerid));
- fremove(fp);
- return 0;
- }
- getName(playerid)
- {
- new n[25];
- GetPlayerName(playerid, n, sizeof(n));
- return n;
- }
- phash(buf[])
- {
- new length=strlen(buf);
- new s1 = 1;
- new s2 = 0;
- new n;
- for (n=0; n<length; n++)
- {
- s1 = (s1 + buf[n]) % 65521;
- s2 = (s2 + s1) % 65521;
- }
- return (s2 << 16) + s1;
- }
Add Comment
Please, Sign In to add comment