| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318 |
- #include <YSI\y_hooks>
- #define BANK 10004
- #define BANK_AMOUNT 10005
- #define BANK_TRANSFER_TO 10006
- #define BANK_TRANSFER_AMT 10007
- // use the below for bank VWs so that all actors are created properly.
- #define BANK_RODEO 1
- #define BANK_MULLHOLLAND 2
- #define BANK_SF 3
- #define BANK_LV 4
- #define BANK_DILLIMORE 5
- #define BANK_LASBARANCAS 6
- new Bankers[12];
- new BankPoint[12];
- LoadBanks() {
- // rodeo
- Bankers[0] = CreateActor(150, 2319.2590,-15.7090,26.7496, 90);
- Bankers[1] = CreateActor(150, 2319.1768,-7.2503,26.7496, 90);
- SetActorVirtualWorld(Bankers[0], BANK_RODEO);
- SetActorVirtualWorld(Bankers[1], BANK_RODEO);
- // mullholland
- Bankers[2] = CreateActor(150, 2319.2590,-15.7090,26.7496, 90);
- Bankers[3] = CreateActor(150, 2319.1768,-7.2503,26.7496, 90);
- SetActorVirtualWorld(Bankers[2], BANK_MULLHOLLAND);
- SetActorVirtualWorld(Bankers[3], BANK_MULLHOLLAND);
- // san fierro
- Bankers[4] = CreateActor(150, 2319.2590,-15.7090,26.7496, 90);
- Bankers[5] = CreateActor(150, 2319.1768,-7.2503,26.7496, 90);
- SetActorVirtualWorld(Bankers[4], BANK_SF);
- SetActorVirtualWorld(Bankers[5], BANK_SF);
- // las venturas
- Bankers[6] = CreateActor(150, 2319.2590,-15.7090,26.7496, 90);
- Bankers[7] = CreateActor(150, 2319.1768,-7.2503,26.7496, 90);
- SetActorVirtualWorld(Bankers[6], BANK_LV);
- SetActorVirtualWorld(Bankers[7], BANK_LV);
- // dillimore
- Bankers[8] = CreateActor(150, 2319.2590,-15.7090,26.7496, 90);
- Bankers[9] = CreateActor(150, 2319.1768,-7.2503,26.7496, 90);
- SetActorVirtualWorld(Bankers[8], BANK_DILLIMORE);
- SetActorVirtualWorld(Bankers[9], BANK_DILLIMORE);
- // las barrancas
- Bankers[10] = CreateActor(150, 2319.2590,-15.7090,26.7496, 90);
- Bankers[11] = CreateActor(150, 2319.1768,-7.2503,26.7496, 90);
- SetActorVirtualWorld(Bankers[10], BANK_LASBARANCAS);
- SetActorVirtualWorld(Bankers[11], BANK_LASBARANCAS);
- // pickups for interaction.
- BankPoint[0] = CreateDynamicSphere(2316.2263,-7.3651, 26.7422, 3.0);
- BankPoint[1] = CreateDynamicSphere(2316.4480,-15.4179,26.7422, 3.0);
- print("[Streamer] Bank System Loaded");
- return 1;
- }
- hook OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
- if((newkeys & KEY_YES) && (IsPlayerInDynamicArea(playerid, BankPoint[0]) || IsPlayerInDynamicArea(playerid, BankPoint[1]))) {
- format(szMiscArray, sizeof(szMiscArray), "{FF8000}** {C2A2DA}%s approaches the banker and begins speaking with them.", GetPlayerNameEx(playerid));
- //ProxDetector(30.0, playerid, szMiscArray, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
- SetPlayerChatBubble(playerid, szMiscArray, COLOR_PURPLE, 15.0, 5000);
- ShowBankMenu(playerid);
- }
- return 1;
- }
- hook OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
- if(arrAntiCheat[playerid][ac_iFlags][AC_DIALOGSPOOFING] > 0) return 1;
- switch(dialogid) {
- case BANK: {
-
- if(!response) {
- TogglePlayerControllable(playerid, 1);
- return SendClientMessageEx(playerid, COLOR_YELLOW, " You are no longer being attended by the banker.");
- }
- TogglePlayerControllable(playerid, 0);
- switch(listitem) {
- case 0: ShowBankMenu(playerid, 1);
- case 1: ShowBankMenu(playerid, 2);
- case 2: ShowBankMenu(playerid, 3);
- case 3: {
-
- if(PlayerInfo[playerid][pCheckCash] > 0) {
- //GivePlayerCash(playerid,PlayerInfo[playerid][pCheckCash]);
- GivePlayerCashEx(playerid, TYPE_BANK, PlayerInfo[playerid][pCheckCash]);
- PlayerInfo[playerid][pCheckCash] = 0;
- SendClientMessageEx(playerid, COLOR_YELLOW, " You have successfully cashed-in all your checks to your bank.");
- return ShowBankMenu(playerid);
- }
- else {
- SendClientMessageEx(playerid, COLOR_YELLOW, " You did not have any undeposited checks on hand.");
- return ShowBankMenu(playerid);
- }
- }
- }
- }
- case BANK_AMOUNT: {
- if(!response) {
- DeletePVar(playerid, "BankWithdraw");
- DeletePVar(playerid, "BankDeposit");
- return ShowBankMenu(playerid);
- }
- new
- iAmount = strval(inputtext);
- if(GetPVarType(playerid, "BankWithdraw")) {
-
- if(iAmount < 1) {
- SendClientMessageEx(playerid, COLOR_WHITE, " Negative amounts cannot be transfered!");
- return ShowBankMenu(playerid, 1);
- }
- if(iAmount > PlayerInfo[playerid][pAccount]) {
- SendClientMessageEx(playerid, COLOR_WHITE, " You are trying to withdraw more than you have!");
- return ShowBankMenu(playerid, 1);
- }
- if(gettime()-GetPVarInt(playerid, "LastTransaction") < 10) {
- SendClientMessageEx(playerid, COLOR_GRAD2, "You can only make a transaction once every 10 seconds, please wait!");
- ShowBankMenu(playerid, 1);
- }
- SetPVarInt(playerid, "LastTransaction", gettime());
-
- if(!Bank_TransferCheck(-iAmount)) return 1;
- GivePlayerCash(playerid, iAmount);
- PlayerInfo[playerid][pAccount] -= iAmount;
- format(szMiscArray, sizeof(szMiscArray), " You have withdrawn $%s from your account. ", number_format(iAmount));
- SendClientMessageEx(playerid, COLOR_YELLOW, szMiscArray);
- if(PlayerInfo[playerid][pTut] == 16)
- {
- PlayerInfo[playerid][pTut]++;
- AdvanceTutorial(playerid);
- }
- OnPlayerStatsUpdate(playerid);
- DeletePVar(playerid, "BankWithdraw");
- return ShowBankMenu(playerid);
- }
- else if(GetPVarType(playerid, "BankDeposit")) {
- if(iAmount < 1) {
- SendClientMessageEx(playerid, COLOR_WHITE, " Negative amounts cannot be transfered!");
- return ShowBankMenu(playerid, 2);
- }
- if(iAmount > GetPlayerCash(playerid)) {
- SendClientMessageEx(playerid, COLOR_WHITE, " You are trying to deopsit more than you have!");
- return ShowBankMenu(playerid, 2);
- }
- if(gettime()-GetPVarInt(playerid, "LastTransaction") < 10) {
- SendClientMessageEx(playerid, COLOR_GRAD2, "You can only make a transaction once every 10 seconds, please wait!");
- ShowBankMenu(playerid, 2);
- }
- SetPVarInt(playerid, "LastTransaction", gettime());
-
- if(!Bank_TransferCheck(iAmount)) return 1;
- GivePlayerCash(playerid, -iAmount);
- PlayerInfo[playerid][pAccount] += iAmount;
- format(szMiscArray, sizeof(szMiscArray), " You have deposited $%s to your account. ", number_format(iAmount));
- SendClientMessageEx(playerid, COLOR_YELLOW, szMiscArray);
- OnPlayerStatsUpdate(playerid);
- DeletePVar(playerid, "BankDeposit");
- return ShowBankMenu(playerid);
- }
- }
- case BANK_TRANSFER_TO: {
-
- if(!response) {
- return ShowBankMenu(playerid);
- }
- new id = strval(inputtext);
-
- if(!IsPlayerConnected(id) || !gPlayerLogged{id}) {
- SendClientMessageEx(playerid, COLOR_WHITE, " The player you are trying to transfer to is not connected!");
- return ShowBankMenu(playerid, 3);
- }
- SetPVarInt(playerid, "BankTransferTo", id);
- return ShowBankMenu(playerid, 4);
- }
- case BANK_TRANSFER_AMT: {
- if(!response) {
- DeletePVar(playerid, "BankTransferTo");
- return ShowBankMenu(playerid, 3);
- }
- new
- id = GetPVarInt(playerid, "BankTransferTo"),
- iAmount = strval(inputtext);
- if(restarting) {
- SendClientMessageEx(playerid, COLOR_GRAD2, "Transactions are currently disabled due to the server being restarted for maintenance.");
- return ShowBankMenu(playerid, 3);
- }
- if(PlayerInfo[playerid][pLevel] < 3) {
- SendClientMessageEx(playerid, COLOR_GRAD1, " You must be at least level 3 to use this feature!");
- return ShowBankMenu(playerid, 3);
- }
- if(gettime()-GetPVarInt(playerid, "LastTransaction") < 10) {
- SendClientMessageEx(playerid, COLOR_GRAD2, "You can only make a transaction once every 10 seconds, please wait!");
- return ShowBankMenu(playerid, 3);
- }
- if(iAmount > PlayerInfo[playerid][pAccount] || iAmount < 0) return SendClientMessageEx(playerid, COLOR_WHITE, "You are trying to send more than you have!");
- // Use these as they update the MySQL Directly with less function calls
- GivePlayerCashEx(playerid, TYPE_BANK, -iAmount);
- GivePlayerCashEx(id, TYPE_BANK, iAmount);
- format(szMiscArray, sizeof(szMiscArray), " You have transferred $%s to %s's account.", number_format(iAmount), GetPlayerNameEx(id));
- SendClientMessageEx(playerid, COLOR_YELLOW, szMiscArray);
-
- format(szMiscArray, sizeof(szMiscArray), " $%s has been transferred to your bank account from %s.", number_format(iAmount), GetPlayerNameEx(playerid));
- SendClientMessageEx(id, COLOR_YELLOW, szMiscArray);
- PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
- PlayerPlaySound(id, 1052, 0.0, 0.0, 0.0);
-
-
- new ip[32], ipex[32];
- GetPlayerIp(playerid, ip, sizeof(ip));
- GetPlayerIp(id, ipex, sizeof(ipex));
- format(szMiscArray, sizeof(szMiscArray), "[Bank] %s(%d) (IP:%s) has transferred $%s to %s(%d) (IP:%s).", GetPlayerNameEx(playerid), GetPlayerSQLId(playerid), ip, number_format(iAmount), GetPlayerNameEx(id), GetPlayerSQLId(id), ipex);
- if(PlayerInfo[playerid][pAdmin] >= 2 || PlayerInfo[id][pAdmin] >= 2) Log("logs/adminpay.log", szMiscArray); else Log("logs/pay.log", szMiscArray);
- format(szMiscArray, sizeof(szMiscArray), "[Bank] %s (IP:%s) has transferred $%s to %s (IP:%s).", GetPlayerNameEx(playerid), ip, number_format(iAmount), GetPlayerNameEx(id), ipex);
-
- if(PlayerInfo[playerid][pAdmin] >= 2 || PlayerInfo[id][pAdmin] >= 2) {
- format(szMiscArray, sizeof(szMiscArray), "[Bank] Admin %s has transferred $%s to %s", GetPlayerNameEx(playerid), number_format(iAmount), GetPlayerNameEx(id));
- if(!strcmp(GetPlayerIpEx(playerid), GetPlayerIpEx(id), true)) strcat(szMiscArray, " (1)");
- ABroadCast(COLOR_YELLOW,szMiscArray, 4);
- }
- else ABroadCast(COLOR_YELLOW,szMiscArray,2);
-
- SetPVarInt(playerid, "LastTransaction", gettime());
- DeletePVar(playerid, "BankTransferTo");
- return ShowBankMenu(playerid);
- }
- }
- return 0;
- }
- ShowBankMenu(playerid, menu = 0) {
- new szTitle[48];
- szMiscArray[0] = 0;
- format(szTitle, sizeof(szTitle), "Bank Menu ($%s)", number_format(PlayerInfo[playerid][pAccount]));
- if(PlayerInfo[playerid][pFreezeBank] == 1) return ShowPlayerDialogEx(playerid, DIALOG_NOTHING, DIALOG_STYLE_MSGBOX, szTitle, "Your assets have been frozen! Contact judicial!", "Ok", "");
- switch(menu) {
- case 0: { // main menu
- ShowPlayerDialogEx(playerid, BANK, DIALOG_STYLE_LIST, szTitle, "Withdraw\nDeposit\nTransfer\nCash-in Checks", "Select", "Cancel");
- }
- case 1: { // iAmount withdraw
- ShowPlayerDialogEx(playerid, BANK_AMOUNT, DIALOG_STYLE_INPUT, szTitle, "Please input how much you wish to withdraw from your account.", "Withdraw", "Cancel");
- SetPVarInt(playerid, "BankWithdraw", 1);
- }
- case 2: { // iAmount deposit
- ShowPlayerDialogEx(playerid, BANK_AMOUNT, DIALOG_STYLE_INPUT, szTitle, "Please input how much you wish to deposit to your account.", "Deposit", "Cancel");
- SetPVarInt(playerid, "BankDeposit", 1);
- }
- case 3: { // transfer to
- ShowPlayerDialogEx(playerid, BANK_TRANSFER_TO, DIALOG_STYLE_INPUT, szTitle, "Please input the player id you wish to transfer money to.", "Next", "Cancel");
- }
- case 4: { // transfer iAmount
- format(szMiscArray, sizeof(szMiscArray), "Please input the amount you wish to transfer to {FF0000}%s", GetPlayerNameEx(GetPVarInt(playerid, "BankTransferTo")));
- ShowPlayerDialogEx(playerid, BANK_TRANSFER_AMT, DIALOG_STYLE_INPUT, szTitle, szMiscArray, "Transfer", "Cancel");
- }
- }
- return 1;
- }
|