Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Dynamic Bank System
- // Scripted & Designed by Ne[X]oR - Niv
- // Based on MySQL
- // -------------
- // MySQL Defines
- #include <a_mysql>
- #define mysql_host "localhost"
- #define mysql_user "root"
- #define mysql_pass ""
- #define mysql_db "bank"
- static mysql;
- // Defines
- #define MAX_ATMs 50
- #define REQUIRE_POSITION (1)
- #define RESET_ON_DEATH (1)
- #define ATM_OBJECT (19324)
- #define COLOR_LIGHTGREEN 0x00FF00FF
- #define COLOR_RED 0xFF0000FF
- #define FILTERSCRIPT
- // Includes
- #include <a_samp>
- #include <foreach>
- #include <zcmd>
- #include <sscanf2>
- // Variables
- enum bInfo
- {
- bLogged = 0,
- bIP[16],
- bPass[128],
- bMoney,
- bCash
- }
- new PlayerInfo[MAX_PLAYERS][bInfo];
- enum aInfo
- {
- Float:xPos,
- Float:yPos,
- Float:zPos,
- Float:rPos
- }
- new ATMInfo[MAX_ATMs+1][aInfo];
- new ATM[MAX_ATMs+1];
- new Editing[MAX_PLAYERS];
- // Publics
- #if defined FILTERSCRIPT
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print(" NexBank - Dynamic Bank System by Ne[X]oR is now loading.");
- print("--------------------------------------\n");
- mysql = mysql_connect(mysql_host, mysql_user, mysql_db, mysql_pass);
- mysql_log(LOG_ALL);
- if(mysql_errno(mysql) != 0) print("NexBank: Can't access MySQL database, Loading has failed.");
- else print("NexBank Filterscript has been loaded successfully.");
- // User Table Creation
- mysql_tquery(mysql, "CREATE TABLE IF NOT EXISTS `Users` ( "\
- "`Username` varchar(24) NOT NULL," \
- "`Password` varchar(128) NOT NULL," \
- "`Money` int(1) NOT NULL," \
- "`IP` varchar(16) NOT NULL," \
- " PRIMARY KEY (`Username`)" \
- ") ENGINE = InnoDB DEFAULT CHARSET = latin1");
- // Load online users
- foreach(new i : Player)
- {
- if(IsPlayerConnected(i))
- {
- new query[128];
- mysql_format(mysql, query, sizeof(query), "SELECT * FROM `Users` WHERE `Username`='%e' LIMIT 1", RPN(i));
- mysql_tquery(mysql, query, "BankCheck", "i", i);
- }
- }
- // ATM Table Creation
- mysql_tquery(mysql, "CREATE TABLE IF NOT EXISTS `ATMs` ( "\
- "`ATMID` int(3) NOT NULL," \
- "`xPos` float NOT NULL," \
- "`yPos` float NOT NULL," \
- "`zPos` float NOT NULL," \
- "`rPos` float NOT NULL," \
- " PRIMARY KEY (`ATMID`)" \
- ") ENGINE = InnoDB DEFAULT CHARSET = latin1");
- // ATM Loading
- for(new i = 0; i <= MAX_ATMs; i++)
- {
- new query[128];
- mysql_format(mysql, query, sizeof(query), "SELECT * From `ATMs` WHERE `ATMID`='%d' LIMIT 1", i);
- mysql_tquery(mysql, query, "ATMLoad", "i", i);
- }
- SetTimer("MoneyCheck", 5000, 1);
- return 1;
- }
- public OnFilterScriptExit()
- {
- print(" Dynamic Bank System has been un-loaded.");
- for(new idx = 0; idx <= MAX_ATMs; idx++) if(ATM[idx])
- {
- new query[128];
- mysql_format(mysql, query, sizeof(query), "UPDATE `ATMs` SET `xPos`='%f', `yPos`='%f', `zPos`='%f', `rPos`='%f' WHERE `ATMID`='%d'", ATMInfo[idx][xPos], ATMInfo[idx][yPos], ATMInfo[idx][zPos], ATMInfo[idx][rPos], idx);
- mysql_tquery(mysql, query);
- DestroyObject(ATM[idx]);
- ATM[idx] = 0;
- ATMInfo[idx][xPos] = 0;
- ATMInfo[idx][yPos] = 0;
- ATMInfo[idx][zPos] = 0;
- ATMInfo[idx][rPos] = 0;
- }
- print(" NexBank: ATMs saved successfully.");
- foreach(new i : Player)
- {
- if(IsPlayerConnected(i))
- {
- new query[128];
- mysql_format(mysql, query, sizeof(query), "UPDATE `Users` SET `Money`='%i' WHERE `Username`='%e'", PlayerInfo[i][bMoney], RPN(i));
- mysql_tquery(mysql, query);
- }
- }
- print(" NexBank: Users saved successfully.");
- mysql_close(mysql);
- return 1;
- }
- #endif
- forward BankCheck(playerid);
- public BankCheck(playerid)
- {
- new rows, fields;
- cache_get_data(rows, fields, mysql);
- if(rows)
- {
- cache_get_field_content(0, "Password", PlayerInfo[playerid][bPass], mysql, 128);
- cache_get_field_content(0, "IP", PlayerInfo[playerid][bIP], mysql, 16);
- PlayerInfo[playerid][bMoney] = cache_get_field_content_int(0, "Money", mysql);
- if(!strcmp(PlayerInfo[playerid][bIP], RPIP(playerid)))
- {
- PlayerInfo[playerid][bLogged] = 1;
- SendClientMessage(playerid, COLOR_RED, "You have been automatically logged into your bank account.");
- return 1;
- }
- else return SendClientMessage(playerid, COLOR_RED, "To log into your bank account please type /BLogin.");
- }
- else return SendClientMessage(playerid, COLOR_RED, "You are not registered to the Bank System, Register using /BRegister.");
- }
- forward ATMLoad(atmid);
- public ATMLoad(atmid)
- {
- new rows, fields;
- cache_get_data(rows, fields, mysql);
- if(rows)
- {
- ATMInfo[atmid][xPos] = cache_get_field_content_float(0, "xPos");
- ATMInfo[atmid][yPos] = cache_get_field_content_float(0, "yPos");
- ATMInfo[atmid][zPos] = cache_get_field_content_float(0, "zPos");
- ATMInfo[atmid][rPos] = cache_get_field_content_float(0, "rPos");
- ATM[atmid] = CreateObject(ATM_OBJECT, ATMInfo[atmid][xPos], ATMInfo[atmid][yPos], ATMInfo[atmid][zPos], 0, 0, ATMInfo[atmid][rPos]);
- }
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- new query[128];
- mysql_format(mysql, query, sizeof(query), "SELECT * FROM `Users` WHERE `Username`='%e' LIMIT 1", RPN(playerid));
- mysql_tquery(mysql, query, "BankCheck", "i", playerid);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new query[128];
- mysql_format(mysql, query, sizeof(query), "UPDATE `Users` SET `Money`='%i' WHERE `Username`='%e'", PlayerInfo[playerid][bMoney], RPN(playerid));
- mysql_tquery(mysql, query);
- PlayerInfo[playerid][bCash] = 0;
- PlayerInfo[playerid][bMoney] = 0;
- format(PlayerInfo[playerid][bPass], 128, "");
- format(PlayerInfo[playerid][bIP], 16, "");
- PlayerInfo[playerid][bLogged] = 0;
- Editing[playerid] = 0;
- CancelEdit(playerid);
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- #if RESET_ON_DEATH == 1
- GiveNexMoney(playerid, -GetPlayerMoney(playerid));
- #endif
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- return 1;
- }
- public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
- {
- if(!response) for(new idx = 0; idx <= MAX_ATMs; idx++) if(ATM[idx] == objectid)
- {
- if(ATMInfo[idx][xPos] == 0)
- {
- DestroyObject(ATM[idx]);
- ATM[idx] = 0;
- Editing[playerid] = 0;
- SendClientMessage(playerid, COLOR_RED, "You have cancelled the ATM edition, therefore the ATM has been deleted.");
- return 1;
- }
- else
- {
- SendClientMessage(playerid, COLOR_RED, "You have cancelled the ATM edition, it was returned to it's original position.");
- Editing[playerid] = 0;
- SetObjectPos(ATM[idx], ATMInfo[idx][xPos], ATMInfo[idx][yPos], ATMInfo[idx][zPos]);
- SetObjectRot(ATM[idx], 0, 0, ATMInfo[idx][rPos]);
- return 1;
- }
- }
- if(response == 1) for(new idx = 0; idx <= MAX_ATMs; idx++) if(ATM[idx] == objectid)
- {
- if(ATMInfo[idx][xPos] == 0)
- {
- new query[128], string[80];
- ATMInfo[idx][xPos] = fX;
- ATMInfo[idx][yPos] = fY;
- ATMInfo[idx][zPos] = fZ;
- ATMInfo[idx][rPos] = fRotZ;
- SetObjectPos(ATM[idx], ATMInfo[idx][xPos], ATMInfo[idx][yPos], ATMInfo[idx][zPos]);
- SetObjectRot(ATM[idx], 0, 0, ATMInfo[idx][rPos]);
- mysql_format(mysql, query, sizeof(query), "INSERT INTO `ATMs` (`ATMID`, `xPos`, `yPos`, `zPos`, `rPos`) VALUES ('%d', '%f', '%f', %f, %f)", idx, fX, fY, fZ, fRotZ);
- mysql_tquery(mysql, query);
- format(string, sizeof(string), "You have successfully created & saved ATM ID: %d.", idx);
- SendClientMessage(playerid, COLOR_RED, string);
- Editing[playerid] = 0;
- return 1;
- }
- else
- {
- new string[80], query[128];
- Editing[playerid] = 0;
- ATMInfo[idx][xPos] = fX;
- ATMInfo[idx][yPos] = fY;
- ATMInfo[idx][zPos] = fZ;
- ATMInfo[idx][rPos] = fRotZ;
- SetObjectPos(ATM[idx], ATMInfo[idx][xPos], ATMInfo[idx][yPos], ATMInfo[idx][zPos]);
- SetObjectRot(ATM[idx], 0, 0, ATMInfo[idx][rPos]);
- mysql_format(mysql, query, sizeof(query), "UPDATE `ATMs` SET `xPos`='%f', `yPos`='%f', `zPos`='%f', `rPos`='%f' WHERE `ATMID`='%d' LIMIT 1", fX, fY, fZ, fRotZ, idx);
- mysql_tquery(mysql, query);
- format(string, sizeof(string), "You have finished editing ATM ID: %d, it was saved & synced automatically.", idx);
- SendClientMessage(playerid, COLOR_LIGHTGREEN, string);
- return 1;
- }
- }
- return 1;
- }
- public OnQueryError(errorid, error[], callback[], query[], connectionHandle) print(error);
- forward MoneyCheck();
- public MoneyCheck()
- {
- foreach(new i : Player) if(GetPlayerMoney(i) != PlayerInfo[i][bCash])
- {
- GivePlayerMoney(i, -GetPlayerMoney(i));
- GiveNexMoney(i, PlayerInfo[i][bCash]);
- }
- return 1;
- }
- // Commands
- CMD:bankhelp(playerid)
- {
- SendClientMessage(playerid, COLOR_RED, "List of Bank System related Commands:");
- SendClientMessage(playerid, COLOR_LIGHTGREEN, "/bregister | /(bl)ogin | /deposit | /withdraw | /balance | /transfer | /changebpass | /pay");
- SendClientMessage(playerid, COLOR_RED, "--------------------------------------------------------------------");
- return 1;
- }
- CMD:abankhelp(playerid)
- {
- SendClientMessage(playerid, COLOR_LIGHTGREEN, "List of Bank System Administration related Commands:");
- SendClientMessage(playerid, COLOR_RED, "/(g)ive(m)oney(all) | /(g)ive(b)ank(m)oney(all) | /depositall | /fine(all) | /atmhelp");
- SendClientMessage(playerid, COLOR_LIGHTGREEN, "--------------------------------------------------------------------");
- return 1;
- }
- CMD:atmhelp(playerid)
- {
- SendClientMessage(playerid, COLOR_LIGHTGREEN, "ATM Setup related Commands:");
- SendClientMessage(playerid, COLOR_RED, "/createatm | /deleteatm | /atms | /gotoatm | /editatm | /saveatms | /reloadatms");
- SendClientMessage(playerid, COLOR_LIGHTGREEN, "--------------------------------------------------------------------");
- return 1;
- }
- CMD:bregister(playerid, params[])
- {
- if(strlen(PlayerInfo[playerid][bPass]) > 0) return SendClientMessage(playerid, COLOR_RED, "You are already registered to the Bank System, use /BLogin to log in.");
- new pass[128];
- if(sscanf(params, "s[128]", pass)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /BRegister [Bank Password]");
- new query[248];
- mysql_format(mysql, query, sizeof(query), "INSERT INTO `Users` (`Username`, `Password`, `Money`, `IP`) VALUES ('%e', '%e', '%i', '%e')", RPN(playerid), pass, PlayerInfo[playerid][bMoney], RPIP(playerid));
- mysql_tquery(mysql, query);
- SendClientMessage(playerid, COLOR_LIGHTGREEN, "You have registered to the Bank System, therefore you've been auto-logged in.");
- format(PlayerInfo[playerid][bPass], 128, "%s", pass);
- PlayerInfo[playerid][bLogged] = 1;
- PlayerInfo[playerid][bMoney] = 10000;
- return 1;
- }
- CMD:blogin(playerid, params[])
- {
- return cmd_bl(playerid, params);
- }
- CMD:bl(playerid, params[])
- {
- if(strlen(PlayerInfo[playerid][bPass]) == 0) return SendClientMessage(playerid, COLOR_RED, "You are not registered at the bank, register using /bregister.");
- if(PlayerInfo[playerid][bLogged]) return SendClientMessage(playerid, COLOR_RED, "You are already logged into your bank account.");
- new pass[128];
- if(sscanf(params, "s[128]", pass)) return SendClientMessage(playerid, -1, "USAGE: /BLogin [Password]");
- if(!strcmp(pass, PlayerInfo[playerid][bPass], false))
- {
- PlayerInfo[playerid][bLogged] = 1;
- SendClientMessage(playerid, COLOR_LIGHTGREEN, "You have successfully logged into your bank account.");
- new query[80];
- mysql_format(mysql, query, sizeof(query), "UPDATE `Users` SET `IP`='%e' WHERE `Username`='%e' LIMIT 1", RPIP(playerid), RPN(playerid));
- mysql_tquery(mysql, query);
- return 1;
- }
- else return SendClientMessage(playerid, COLOR_RED, "Wrong bank password.");
- }
- CMD:deposit(playerid, params[])
- {
- if(!PlayerInfo[playerid][bLogged]) return SendClientMessage(playerid, COLOR_RED, "You have to be logged into your bank account to perform this command.");
- #if REQUIRE_POSITION == 1
- if(!IsPlayerNearATM(playerid, 3)) return SendClientMessage(playerid, -1, "You must be near an ATM to perform this command.");
- #endif
- new amount;
- if(sscanf(params, "i", amount)) return SendClientMessage(playerid, -1, "USAGE: /deposit [amount]");
- if(amount <= 0) return SendClientMessage(playerid, COLOR_RED, "Amount of money must be above $1.");
- if(GetPlayerMoney(playerid) < amount) return SendClientMessage(playerid, COLOR_RED, "You don't have this amount of money on you.");
- GiveNexMoney(playerid, -amount);
- PlayerInfo[playerid][bMoney] += amount;
- new string[80];
- format(string, sizeof(string), "You have deposited $%d into your bank account.", amount);
- SendClientMessage(playerid, COLOR_LIGHTGREEN, string);
- return 1;
- }
- CMD:withdraw(playerid, params[])
- {
- if(!PlayerInfo[playerid][bLogged]) return SendClientMessage(playerid, COLOR_RED, "You have to be logged into your bank account to perform this command.");
- #if REQUIRE_POSITION == 1
- if(!IsPlayerNearATM(playerid, 3)) return SendClientMessage(playerid, -1, "You must be near an ATM to perform this command.");
- #endif
- new amount;
- if(sscanf(params, "i", amount)) return SendClientMessage(playerid, -1, "USAGE: /withdraw [amount]");
- if(amount <= 0) return SendClientMessage(playerid, COLOR_RED, "Amount of money must be above $1.");
- if(PlayerInfo[playerid][bMoney] < amount) return SendClientMessage(playerid, COLOR_RED, "You don't have this amount of money in your bank account.");
- GiveNexMoney(playerid, amount);
- PlayerInfo[playerid][bMoney] -= amount;
- new string[80];
- format(string, sizeof(string), "You have withdrawn $%d from your bank account.", amount);
- SendClientMessage(playerid, COLOR_LIGHTGREEN, string);
- return 1;
- }
- CMD:transfer(playerid, params[])
- {
- if(!PlayerInfo[playerid][bLogged]) return SendClientMessage(playerid, COLOR_RED, "You have to be logged into your bank account to perform this command.");
- #if REQUIRE_POSITION == 1
- if(!IsPlayerNearATM(playerid, 3)) return SendClientMessage(playerid, -1, "You must be near an ATM to perform this command.");
- #endif
- new amount, playerb;
- if(sscanf(params, "ui", playerb, amount)) return SendClientMessage(playerid, -1, "USAGE: /pay [playerid] [amount]");
- if(!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_RED, "Invalid ID.");
- if(amount <= 0) return SendClientMessage(playerid, COLOR_RED, "Amount of money must be above $1.");
- if(PlayerInfo[playerid][bMoney] < amount) return SendClientMessage(playerid, COLOR_RED, "You don't have this amount of money in your bank account.");
- PlayerInfo[playerid][bMoney] -= amount;
- PlayerInfo[playerb][bMoney] += amount;
- new string[80];
- format(string, sizeof(string), "You have transfered $%d from your bank account to %s's bank account.", amount, RPN(playerb));
- SendClientMessage(playerid, COLOR_LIGHTGREEN, string);
- format(string, sizeof(string), "You have received a $%d transfer from %s's bank account.", amount, RPN(playerid));
- SendClientMessage(playerb, COLOR_LIGHTGREEN, string);
- return 1;
- }
- CMD:balance(playerid, params[])
- {
- if(!PlayerInfo[playerid][bLogged]) return SendClientMessage(playerid, COLOR_RED, "You have to be logged into your bank account to perform this command.");
- #if REQUIRE_POSITION == 1
- if(!IsPlayerNearATM(playerid, 3)) return SendClientMessage(playerid, -1, "You must be near an ATM to perform this command.");
- #endif
- new string[80];
- format(string, sizeof(string), "Your bank balance is $%d", PlayerInfo[playerid][bMoney]);
- SendClientMessage(playerid, COLOR_LIGHTGREEN, string);
- return 1;
- }
- CMD:changebpass(playerid, params[])
- {
- if(!PlayerInfo[playerid][bLogged]) return SendClientMessage(playerid, COLOR_RED, "You have to be logged into your bank account to perform this command.");
- new pass[128];
- if(sscanf(params, "s[128]", pass)) return SendClientMessage(playerid, -1, "USAGE: /changebpass [new password]");
- new query[128];
- mysql_format(mysql, query, sizeof(query), "UPDATE `Users` SET `Password`='%e' WHERE `Username`='%e' LIMIT 1", pass, RPN(playerid));
- mysql_tquery(mysql, query);
- SendClientMessage(playerid, COLOR_LIGHTGREEN, "You have changed your bank password.");
- return 1;
- }
- CMD:pay(playerid, params[])
- {
- if(!PlayerInfo[playerid][bLogged]) return SendClientMessage(playerid, COLOR_RED, "You have to be logged into your bank account to perform this command.");
- new amount, playerb;
- if(sscanf(params, "ui", playerb, amount)) return SendClientMessage(playerid, -1, "USAGE: /transfer [playerid] [amount]");
- if(!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_RED, "Invalid ID.");
- #if REQUIRE_POSITION == 1
- if(!IsPlayerNearPlayer(playerid, playerb, 3)) return SendClientMessage(playerid, COLOR_RED, "You must be near this player to perform this command.");
- #endif
- if(amount <= 0) return SendClientMessage(playerid, COLOR_RED, "Amount of money must be above $1.");
- if(GetPlayerMoney(playerid) < amount) return SendClientMessage(playerid, COLOR_RED, "You don't have this amount of money on you.");
- GiveNexMoney(playerid, -amount);
- GiveNexMoney(playerb, amount);
- new string[80];
- format(string, sizeof(string), "%s has paid you $%d.", RPN(playerid), amount);
- SendClientMessage(playerb, COLOR_LIGHTGREEN, string);
- format(string, sizeof(string), "You have paid %s $%d.", RPN(playerb), amount);
- SendClientMessage(playerid, COLOR_LIGHTGREEN, string);
- return 1;
- }
- // Administrator Commands (Give Money etc)
- CMD:givemoney(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "You are not authorized to use this command.");
- new playerb, amount;
- if(sscanf(params, "ud", playerb, amount)) return SendClientMessage(playerid, -1, "USAGE: /givemoney [playerid] [amount]");
- if(!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_RED, "Invalid ID.");
- if(amount <= 0) return SendClientMessage(playerid, COLOR_RED, "Amount of money must be above $1.");
- new string[80];
- GiveNexMoney(playerb, amount);
- format(string, sizeof(string), "Administrator %s has given you $%d.", RPN(playerid), amount);
- SendClientMessage(playerb, COLOR_LIGHTGREEN, string);
- format(string, sizeof(string), "You have given %s $%d.", RPN(playerb), amount);
- SendClientMessage(playerb, COLOR_LIGHTGREEN, string);
- return 1;
- }
- CMD:gm(playerid, params[])
- {
- return cmd_givemoney(playerid, params);
- }
- CMD:givemoneyall(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "You are not authorized to use this command.");
- new amount;
- if(sscanf(params, "d", amount)) return SendClientMessage(playerid, -1, "USAGE: /givemoneyall [amount]");
- if(amount <= 0) return SendClientMessage(playerid, COLOR_RED, "Amount of money must be above $1.");
- new string[80];
- foreach(new i : Player) if(IsPlayerConnected(i)) GiveNexMoney(i, amount);
- format(string, sizeof(string), "Administrator %s has given everyone $%d.", RPN(playerid), amount);
- SendClientMessageToAll(COLOR_LIGHTGREEN, string);
- return 1;
- }
- CMD:gmall(playerid, params[])
- {
- return cmd_givemoneyall(playerid, params);
- }
- CMD:fine(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "You are not authorized to use this command.");
- new playerb, amount;
- if(sscanf(params, "ui", playerb, amount)) return SendClientMessage(playerid, -1, "USAGE: /fine [playerid] [amount]");
- if(!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_RED, "Invalid ID.");
- if(amount <= 0) return SendClientMessage(playerid, COLOR_RED, "Amount of money must be above $1.");
- new string[80];
- GiveNexMoney(playerb, -amount);
- format(string, sizeof(string), "Administrator %s has fined $%d from your money.", RPN(playerid), amount);
- SendClientMessage(playerb, COLOR_RED, string);
- format(string, sizeof(string), "You have fined %d from %s's money.", amount, RPN(playerb));
- SendClientMessage(playerb, COLOR_RED, string);
- return 1;
- }
- CMD:fineall(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "You are not authorized to use this command.");
- new amount;
- if(sscanf(params, "d", amount)) return SendClientMessage(playerid, -1, "USAGE: /fineall [amount]");
- if(amount <= 0) return SendClientMessage(playerid, COLOR_RED, "Amount of money must be above $1.");
- new string[80];
- foreach(new i : Player) if(IsPlayerConnected(i)) GiveNexMoney(i, -amount);
- format(string, sizeof(string), "Administrator %s has fined $%d from everyone's money.", RPN(playerid), amount);
- SendClientMessageToAll(COLOR_RED, string);
- return 1;
- }
- CMD:givebankmoney(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "You are not authorized to use this command.");
- new playerb, amount;
- if(sscanf(params, "ud", playerb, amount)) return SendClientMessage(playerid, -1, "USAGE: /givebankmoney [playerid] [amount]");
- if(!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_RED, "Invalid ID.");
- if(amount <= 0) return SendClientMessage(playerid, COLOR_RED, "Amount of money must be above $1.");
- new string[80];
- PlayerInfo[playerid][bMoney] += amount;
- format(string, sizeof(string), "Administrator %s has added $%d to your bank account.", RPN(playerid), amount);
- SendClientMessage(playerb, COLOR_LIGHTGREEN, string);
- format(string, sizeof(string), "You have added $%d into %s's bank account.", amount, RPN(playerb));
- SendClientMessage(playerid, COLOR_LIGHTGREEN, string);
- return 1;
- }
- CMD:gbm(playerid, params[])
- {
- return cmd_givebankmoney(playerid, params);
- }
- CMD:givebankmoneyall(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "You are not authorized to use this command.");
- new amount;
- if(sscanf(params, "d", amount)) return SendClientMessage(playerid, -1, "USAGE: /givebankmoneyall [amount]");
- if(amount <= 0) return SendClientMessage(playerid, COLOR_RED, "Amount of money must be above $1.");
- new string[80];
- foreach(new i : Player) if(IsPlayerConnected(i)) PlayerInfo[i][bMoney] += amount;
- format(string, sizeof(string), "Administrator %s has added $%d into everyone's bank account.", RPN(playerid), amount);
- SendClientMessageToAll(COLOR_LIGHTGREEN, string);
- return 1;
- }
- CMD:gbmall(playerid, params[])
- {
- return cmd_givebankmoneyall(playerid, params);
- }
- CMD:depositall(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "You are not authorized to use this command.");
- foreach(new i : Player) if(IsPlayerConnected(i))
- {
- PlayerInfo[i][bMoney] += GetPlayerMoney(i);
- GiveNexMoney(i, -GetPlayerMoney(i));
- }
- new string[80];
- format(string, sizeof(string), "Administrator %s has deposited everyone's money into their banks.", RPN(playerid));
- SendClientMessageToAll(COLOR_LIGHTGREEN, string);
- return 1;
- }
- // ATM related commands
- CMD:reloadatms(playerid)
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "You are not authorized to use this command.");
- for(new i = 0; i <= MAX_ATMs; i++) if(ATM[i])
- {
- DestroyObject(ATM[i]);
- ATM[i] = 0;
- ATMInfo[i][xPos] = 0;
- ATMInfo[i][yPos] = 0;
- ATMInfo[i][zPos] = 0;
- ATMInfo[i][rPos] = 0;
- }
- for(new i = 0; i <= MAX_ATMs; i++)
- {
- new query[128];
- mysql_format(mysql, query, sizeof(query), "SELECT * From `ATMs` WHERE `ATMID`='%d' LIMIT 1", i);
- mysql_tquery(mysql, query, "ATMLoad", "i", i);
- }
- new string[50];
- format(string, sizeof(string), "Administrator %s has reloaded the ATMs.", RPN(playerid));
- SendClientMessageToAll(COLOR_RED, string);
- return 1;
- }
- CMD:saveatms(playerid)
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "You are not authorized to use this command.");
- for(new idx = 0; idx <= MAX_ATMs; idx++) if(ATM[idx])
- {
- new query[128];
- mysql_format(mysql, query, sizeof(query), "UPDATE `ATMs` SET `xPos`='%f', `yPos`='%f', `zPos`='%f', `rPos`='%f' WHERE `ATMID`='%d'", ATMInfo[idx][xPos], ATMInfo[idx][yPos], ATMInfo[idx][zPos], ATMInfo[idx][rPos], idx);
- mysql_tquery(mysql, query);
- }
- new string[80];
- format(string, sizeof(string), "Administrator %s has initiated an ATM saving, completed successfully.", RPN(playerid));
- SendClientMessageToAll(COLOR_RED, string);
- return 1;
- }
- CMD:createatm(playerid)
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "You are not authorized to use this command.");
- if(ATM[MAX_ATMs]) return SendClientMessage(playerid, COLOR_RED, "The server has passed the maximum amount of ATMs.");
- if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "You have to be on foot in order to create an ATM.");
- if(Editing[playerid]) return SendClientMessage(playerid, COLOR_RED, "First finish editing your current ATM.");
- for(new idx = 0; idx <= MAX_ATMs; idx++) if(!ATM[idx])
- {
- new Float:pos[3], string[80];
- GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
- ATM[idx] = CreateObject(ATM_OBJECT, pos[0]-1.0, pos[1], pos[2], 0, 0, 0);
- EditObject(playerid, ATM[idx]);
- format(string, sizeof(string), "You have created a new ATM with the ID: %d, Edit it as you wish.", idx);
- SendClientMessage(playerid, COLOR_RED, string);
- Editing[playerid] = 1;
- return 1;
- }
- return 1;
- }
- CMD:deleteatm(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "You are not authorized to use this command.");
- new idx;
- if(sscanf(params, "i", idx)) return SendClientMessage(playerid, -1, "USAGE: /deleteatm [ATM ID]");
- if( idx < 0 || idx > MAX_ATMs) return SendClientMessage(playerid, COLOR_RED, "Invalid ATM ID.");
- if(!ATM[idx]) return SendClientMessage(playerid, COLOR_RED, "Invalid ATM ID.");
- new query[128], string[80];
- mysql_format(mysql, query, sizeof(string), "DELETE FROM `ATMs` WHERE `ATMID`='%d' LIMIT 1", idx);
- mysql_tquery(mysql, query);
- DestroyObject(ATM[idx]);
- ATM[idx] = 0;
- ATMInfo[idx][xPos] = 0;
- ATMInfo[idx][yPos] = 0;
- ATMInfo[idx][zPos] = 0;
- ATMInfo[idx][rPos] = 0;
- format(string, sizeof(string), "You have successfully deleted ATM ID: %d.", idx);
- SendClientMessage(playerid, COLOR_RED, string);
- return 1;
- }
- CMD:editatm(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "You are not authorized to use this command.");
- if(Editing[playerid]) return SendClientMessage(playerid, COLOR_RED, "First finish edit the current ATM you're editing.");
- new idx;
- if(sscanf(params, "i", idx)) return SendClientMessage(playerid, -1, "USAGE: /editatm [ATM ID]");
- if( idx < 0 || idx > MAX_ATMs) return SendClientMessage(playerid, COLOR_RED, "Invalid ATM ID.");
- if(!ATM[idx]) return SendClientMessage(playerid, COLOR_RED, "Invalid ATM ID.");
- Editing[playerid] = 1;
- EditObject(playerid, ATM[idx]);
- new string[80];
- format(string, sizeof(string), "You are now editing ATM ID: %d", idx);
- SendClientMessage(playerid, COLOR_LIGHTGREEN, string);
- return 1;
- }
- CMD:atms(playerid)
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "You are not authorized to use this command.");
- SendClientMessage(playerid, COLOR_LIGHTGREEN, "List of ATMs (IDs & Positions)");
- new string[80];
- for(new i = 0; i <= MAX_ATMs; i++) if(ATM[i])
- {
- format(string, sizeof(string), "ATM ID: %d || X Pos: %f || Y Pos: %f || Z Pos: %f", i, ATMInfo[i][xPos], ATMInfo[i][yPos], ATMInfo[i][zPos]);
- SendClientMessage(playerid, COLOR_RED, string);
- }
- SendClientMessage(playerid, COLOR_LIGHTGREEN, "--------------------------------");
- return 1;
- }
- CMD:gotoatm(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "You are not authorized to use this command.");
- new atm;
- if(sscanf(params, "i", atm)) return SendClientMessage(playerid, -1, "USAGE: /gotoatm [ATM ID]");
- if(atm < 0 || atm > MAX_ATMs) return SendClientMessage(playerid, COLOR_RED, "Invalid ATM ID.");
- if(!ATM[atm]) return SendClientMessage(playerid, COLOR_RED, "Invalid ATM ID.");
- SetPlayerPos(playerid, ATMInfo[atm][xPos] - 1, ATMInfo[atm][yPos], ATMInfo[atm][zPos]);
- new string [56];
- format(string, sizeof(string), "You have teleported to ATM ID: %d.", atm);
- SendClientMessage(playerid, COLOR_RED, string);
- return 1;
- }
- // Stocks
- stock RPN(playerid)
- {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof(name));
- return name;
- }
- stock RPIP(playerid)
- {
- new ip[16];
- GetPlayerIp(playerid, ip, sizeof(ip));
- return ip;
- }
- stock GiveNexMoney(playerid, amount)
- {
- new string[128];
- if(amount < 0) format(string, sizeof(string), "~r~-$%d", amount*-1);
- else if(amount > 0) format(string, sizeof(string), "~g~+$%d", amount);
- GameTextForPlayer(playerid, string, 3000, 1);
- PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
- PlayerInfo[playerid][bCash] += amount;
- GivePlayerMoney(playerid, amount);
- return 1;
- }
- stock IsPlayerNearATM(playerid, Float:range)
- {
- for(new i = 0; i <= MAX_ATMs; i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, range, ATMInfo[i][xPos], ATMInfo[i][yPos], ATMInfo[i][zPos])) return true;
- }
- return false;
- }
- stock IsPlayerNearPlayer(playerid, n_playerid, Float:radius)
- {
- new Float:npx, Float:npy, Float:npz;
- GetPlayerPos(n_playerid, npx, npy, npz);
- if(IsPlayerInRangeOfPoint(playerid, radius, npx, npy, npz)) return true;
- else return false;
- }
Add Comment
Please, Sign In to add comment