Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- [J]ulian (c) 2012 - Julián Agüero.
- sa-mp
- Sistema de cuentas bancarias - MySQL.
- Requiere: http://forum.sa-mp.com/showthread.php?t=56564
- Ejemplo: http://adf.ly/900cL
- */
- #if !defined gBank_included
- #define gBank_included
- #endif
- #if !defined mysql_included
- #include <a_mysql>
- #endif
- #if !defined bank_table
- #define bank_table "bank"
- #endif
- static
- IsBankLogged[MAX_PLAYERS],
- bString[128],
- deposit;
- #define INVALID_BANK_ACCOUNT -1
- /*
- native BankSystemInit()
- */
- stock BankSystemInit()
- {
- mysql_query("CREATE TABLE IF NOT EXISTS "bank_table" (account INT(5) NOT NULL AUTO_INCREMENT, user VARCHAR(34) NOT NULL, pass VARCHAR(34) NOT NULL, balance INT(5) NOT NULL, PRIMARY KEY (account))");
- }
- /*
- native ResetPlayerLogged(playerid)
- */
- stock ResetPlayerLogged(playerid)
- {
- IsBankLogged[playerid] = INVALID_BANK_ACCOUNT;
- }
- /*
- native GetTotalAccounts()
- */
- stock GetTotalAccounts()
- {
- mysql_query("SELECT COUNT(*) FROM "bank_table"");
- mysql_store_result();
- mysql_fetch_row(bString);
- return strval(bString);
- }
- /*
- native CreateBankAccount(user[], pass[], balance = 0)
- */
- stock CreateBankAccount(user[], pass[], balance = 0)
- {
- format(bString, sizeof(bString), "INSERT INTO "bank_table" (user, pass, balance) VALUES ('%s', '%s', %d)", user, pass, balance);
- mysql_query(bString);
- }
- /*
- native DeleteBankAccount(account)
- */
- stock DeleteBankAccount(account)
- {
- format(bString, sizeof(bString), "DELETE FROM "bank_table" WHERE account = %d LIMIT 1", account);
- mysql_query(bString);
- }
- /*
- native GetAccountBalance(account)
- */
- stock GetAccountBalance(account)
- {
- format(bString, sizeof(bString), "SELECT balance FROM "bank_table" WHERE account = %d", account);
- mysql_query(bString);
- mysql_store_result();
- mysql_fetch_row(bString);
- return strval(bString);
- }
- /*
- native SetAccountBalance(account, amount)
- */
- stock SetAccountBalance(account, amount)
- {
- format(bString, sizeof(bString), "UPDATE "bank_table" SET balance = %d WHERE account = %d", amount, account);
- mysql_query(bString);
- }
- /*
- native IsPlayerLoggedInAccount(playerid, account)
- */
- stock IsPlayerLoggedInAnyAccount(playerid)
- {
- if(IsBankLogged[playerid] != INVALID_BANK_ACCOUNT) return 1;
- return 0;
- }
- /*
- native IsPlayerLoggedInAnyAccount(playerid)
- */
- stock IsPlayerLoggedInAccount(playerid, account)
- {
- if(IsBankLogged[playerid] == account && IsBankLogged[playerid] != INVALID_BANK_ACCOUNT) return 1;
- return 0;
- }
- /*
- native IsPlayerHasAccount(user[])
- */
- stock IsPlayerHasAccount(user[])
- {
- format(bString, sizeof(bString), "SELECT * FROM "bank_table" WHERE user = '%s'", user);
- mysql_query(bString);
- mysql_store_result();
- if(mysql_num_rows() != 0) return 1;
- return 0;
- }
- /*
- native DepositBankMoney(account, amount)
- */
- stock DepositBankMoney(account, amount)
- {
- deposit = (GetAccountBalance(account) + amount);
- format(bString, sizeof(bString), "UPDATE "bank_table" SET balance = %d WHERE account = %d", deposit, account);
- mysql_query(bString);
- return deposit;
- }
- /*
- native WithdrawBankMoney(account, amount)
- */
- stock WithdrawBankMoney(account, amount)
- {
- deposit = (GetAccountBalance(account) - amount);
- format(bString, sizeof(bString), "UPDATE "bank_table" SET balance = %d WHERE account = %d", deposit, account);
- mysql_query(bString);
- return deposit;
- }
- /*
- native WireTransfer(account, toaccount, amount)
- */
- stock WireTransfer(account, toaccount, amount)
- {
- WithdrawBankMoney(account, amount);
- DepositBankMoney(toaccount, amount);
- return amount;
- }
- /*
- native PlayerLoggedInAccount(playerid, account, pass[]);
- */
- stock PlayerLoggedInAccount(playerid, account, pass[])
- {
- format(bString, sizeof(bString), "SELECT * FROM "bank_table" WHERE account = %d AND pass = '%s'", account, pass);
- mysql_query(bString);
- mysql_store_result();
- if(mysql_num_rows() != 0)
- {
- CallLocalFunction("OnPlayerLoginAccount", "iii", playerid, account, true);
- IsBankLogged[playerid] = account;
- }
- else CallLocalFunction("OnPlayerLoginAccount", "iii", playerid, account, false);
- }
- /*
- native PlayerLogoutOfAccount(playerid)
- */
- stock PlayerLogoutOfAccount(playerid)
- {
- CallLocalFunction("OnPlayerLogoutAccount", "ii", playerid, account);
- IsBankLogged[playerid] = INVALID_BANK_ACCOUNT;
- }
- forward OnPlayerLoginAccount(playerid, account, success);
- forward OnPlayerLogoutAccount(playerid, account);
Add Comment
Please, Sign In to add comment