Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Jake's Bank!
- Create a bank location, Bank in checkpoint using JBank!
- Create a bank account (in-game). Using JBank!
- -------------------------------------
- Future of SA-MP Bank System!
- Credits: Jake, Incognito, Y_Less
- */
- #include <streamer>
- #include <YSI\y_ini>
- #if defined _jbank_included
- #endinput
- #endif
- #define _jbank_included
- #define MAX_BANKS 50
- #if !defined _ALS_
- forward public _ALS_();
- _ALS_()<_ALS_:unhooked>{}
- _ALS_()<_ALS_:hooked>{}
- _ALS_()<>{}
- #endif
- #define BankLocation "JBank/Banks/%i.ini"
- #define BankALocation "JBank/Accounts/%s.ini"
- enum E_JBANK_INFO
- {
- Float:Bx,
- Float:By,
- Float:Bz,
- MapIcon,
- CPID,
- Int,
- VW,
- Float:Distance,
- Float:CPSIZE,
- Text3D:Label,
- BName[128],
- Iconed,
- Labeled,
- BID
- };
- new bankdata[MAX_BANKS][E_JBANK_INFO];
- new labelstring[456];
- enum BaInfo
- {
- bpass[129],
- balances
- };
- new bainfo[MAX_PLAYERS][BaInfo];
- forward OnPlayerEnterBank(playerid, bankid);
- /*
- native CreateBank(id, cpid, const name[128], Float:bx, Float:by, Float:bz, Float:cpsize, interior = 0, world = 0, icon = 1, label = 1, Float:streamdistances = 10.0);
- native SaveBank(id, string, len);
- native LoadBank(id, cpid, string, len);
- native CreateBankAccount(playerid, string[256], len, name[24], password[129], balance = 0);
- native LoadBankAccount(playerid, string[256], len, name[24]);
- native GetBPlayerBalance(playerid);
- native GetBPlayerPass(playerid, string[129], len);
- native SetBPlayerBalance(playerid, balance);
- native ResetBPlayerBalance(playerid);
- native SaveBankAccount(playerid, string[256], len, name[24]);
- native Bank_Location(id, string[256], len);
- native BankAccount_Loc(name[24], string[256], len);
- */
- stock SetBPlayerBalance(playerid, balance)
- {
- return bainfo[playerid][balances] = balance;
- }
- stock ResetBPlayerBalance(playerid)
- {
- return bainfo[playerid][balances] = 0;
- }
- stock GetBPlayerBalance(playerid)
- {
- return bainfo[playerid][balances];
- }
- stock GetBPlayerPass(playerid, string[129], len)
- {
- format(string, len, "%s", bainfo[playerid][bpass]);
- return string;
- }
- stock CreateBankAccount(playerid, string[256], len, name[24], password[129], balance = 0)
- {
- format(string, len, BankALocation, name);
- if(fexist(string)) return print("[pawno/include/JBank.inc]: That bank account already exist!");
- new INI:file = INI_Open(string);
- INI_SetTag(file, "JBankAccount");
- INI_WriteString(file, "BankPassword", password);
- INI_WriteInt(file, "BankBalance", balance);
- bainfo[playerid][balances] = balance;
- INI_Close(file);
- return 1;
- }
- stock SaveBankAccount(playerid, string[256], len, name[24])
- {
- format(string, len, BankALocation, name);
- if(fexist(string))
- {
- new INI:file = INI_Open(string);
- INI_SetTag(file, "JBankAccount");
- INI_WriteInt(file, "BankBalance", bainfo[playerid][balances]);
- INI_Close(file);
- }
- return 1;
- }
- stock LoadBankAccount(playerid, string[256], len, name[24])
- {
- format(string, len, BankALocation, name);
- if(!fexist(string)) return print("[pawno/include/JBank.ini]: That file doesn't exist!");
- else if(fexist(string))
- {
- INI_ParseFile(string, "loadbaccount_user", .bExtra = true, .extra = playerid);
- }
- return 1;
- }
- stock CreateBank(id, cpid, const name[128], Float:bx, Float:by, Float:bz, Float:cpsize, interior = 0, world = 0, icon = 1, label = 1, Float:streamdistances = 10.0)
- {
- bankdata[id][Bx] = bx; bankdata[id][By] = by; bankdata[id][Bz] = bz;
- bankdata[id][Int] = interior; bankdata[id][VW] = world; bankdata[id][CPSIZE] = cpsize;
- bankdata[id][Distance] = streamdistances; bankdata[id][CPID] = cpid;
- bankdata[id][Labeled] = label; bankdata[id][Iconed] = icon; bankdata[id][BID] = id;
- format(bankdata[id][BName], 128, "%s", name);
- if(icon == 0)
- {
- }
- else if(icon == 1)
- {
- bankdata[id][MapIcon] = CreateDynamicMapIcon(bankdata[id][Bx], bankdata[id][By], bankdata[id][Bz], 52, -1, bankdata[id][VW], bankdata[id][Int], INVALID_PLAYER_ID, streamdistances);
- }
- if(label == 0)
- {
- }
- else if(label == 1)
- {
- format(labelstring, sizeof(labelstring), "[ %s (ID:%i) ]", name, id);
- bankdata[id][Label] = CreateDynamic3DTextLabel(labelstring, 0xFFFF00FF, bankdata[id][Bx], bankdata[id][By], bankdata[id][Bz], streamdistances, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, bankdata[id][VW], bankdata[id][Int], INVALID_PLAYER_ID, streamdistances);
- }
- return bankdata[id][CPID] = CreateDynamicCP(bankdata[id][Bx], bankdata[id][By], bankdata[id][Bz], bankdata[id][CPSIZE], bankdata[id][VW], bankdata[id][Int], INVALID_PLAYER_ID, streamdistances);
- }
- stock SaveBank(id, string[256], len)
- {
- format(string, len, BankLocation, id);
- new INI:file = INI_Open(string);
- INI_SetTag(file, "JBank");
- INI_WriteInt(file, "ID", bankdata[id][BID]);
- INI_WriteString(file, "BankName", bankdata[id][BName]);
- INI_WriteFloat(file, "BX", bankdata[id][Bx]);
- INI_WriteFloat(file, "BY", bankdata[id][By]);
- INI_WriteFloat(file, "BZ", bankdata[id][Bz]);
- INI_WriteFloat(file, "CpSize", bankdata[id][CPSIZE]);
- INI_WriteInt(file, "Interior", bankdata[id][Int]);
- INI_WriteInt(file, "World", bankdata[id][VW]);
- INI_WriteInt(file, "Icon", bankdata[id][Iconed]);
- INI_WriteInt(file, "Label", bankdata[id][Labeled]);
- INI_WriteFloat(file, "StreamDistance", bankdata[id][Distance]);
- INI_Close(file);
- return 1;
- }
- stock LoadBank(id, cpid, string[256], len)
- {
- format(string, len, BankLocation, id);
- if(!fexist(string)) return print("[pawno/include/JBank.ini]: That file doesn't exist!");
- else if(fexist(string))
- {
- INI_ParseFile(string, "LoadBanks", .bExtra = true, .extra = id);
- new strings[128];
- format(strings, 128, "%s", bankdata[id][BName]);
- CreateBank(bankdata[id][BID], cpid, strings, bankdata[id][Bx], bankdata[id][By], bankdata[id][Bz], bankdata[id][CPSIZE], bankdata[id][VW], bankdata[id][Int], bankdata[id][Iconed], bankdata[id][Labeled], bankdata[id][Distance]);
- }
- return 1;
- }
- stock Bank_Location(id, string[256], len)
- {
- format(string, len, BankLocation, id);
- if(fexist(string))
- {
- return 1;
- }
- else
- {
- return 0;
- }
- }
- stock BankAccount_Loc(name[24], string[256], len)
- {
- format(string, len, BankALocation, name);
- if(fexist(string))
- {
- return 1;
- }
- else
- {
- return 0;
- }
- }
- forward LoadBanks(id, name[], value[]);
- public LoadBanks(id, name[], value[])
- {
- INI_String("BankName", bankdata[id][BName], 128);
- INI_Float("BX", bankdata[id][Bx]);
- INI_Float("BY", bankdata[id][By]);
- INI_Float("BZ", bankdata[id][Bz]);
- INI_Float("CpSize", bankdata[id][CPSIZE]);
- INI_Int("Interior", bankdata[id][Int]);
- INI_Int("World", bankdata[id][VW]);
- INI_Int("Icon", bankdata[id][Iconed]);
- INI_Int("Label", bankdata[id][Labeled]);
- INI_Float("StreamDistance", bankdata[id][Distance]);
- return 1;
- }
- forward loadbaccount_user(playerid, name[], value[]);
- public loadbaccount_user(playerid, name[], value[])
- {
- INI_String("BankPassword", bainfo[playerid][bpass], 129);
- INI_Int("BankBalance", bainfo[playerid][balances]);
- return 1;
- }
- public OnPlayerEnterDynamicCP(playerid, checkpointid)
- {
- state _ALS_:hooked;
- for(new i = 0; i < MAX_BANKS; i++)
- {
- if(checkpointid == bankdata[i][CPID])
- {
- CallLocalFunction("OnPlayerEnterBank", "ii", playerid, checkpointid);
- return jbank_OnPlayerEnterDynamicCP(playerid, checkpointid);
- }
- }
- return jbank_OnPlayerEnterDynamicCP(playerid, checkpointid);
- }
- forward jbank_OnPlayerEnterDynamicCP(playerid, checkpointid);
- #if defined _ALS_OnPlayerEnterDynamicCP
- #undef OnPlayerEnterDynamicCP
- #else
- #define _ALS_OnPlayerEnterDynamicCP
- #endif
- public jbank_OnPlayerEnterDynamicCP(playerid, checkpointid) <_ALS_:unhooked> return 1;
- public jbank_OnPlayerEnterDynamicCP(playerid, checkpointid) <> return 1;
- #define OnPlayerEnterDynamicCP(%1) jbank_OnPlayerEnterDynamicCP(%1)<_ALS_:hooked>
- public OnFilterScriptExit()
- {
- state _ALS_:hooked;
- for(new i = 0; i < MAX_BANKS; i++)
- {
- DestroyDynamicMapIcon(bankdata[i][MapIcon]);
- DestroyDynamicCP(bankdata[i][CPID]);
- DestroyDynamic3DTextLabel(bankdata[i][Label]);
- }
- return jbank_OnFilterScriptExit();
- }
- forward jbank_OnFilterScriptExit();
- #if defined _ALS_OnFilterScriptExit
- #undef OnFilterScriptExit
- #else
- #define _ALS_OnFilterScriptExit
- #endif
- public jbank_OnFilterScriptExit() <_ALS_:unhooked> return 1;
- public jbank_OnFilterScriptExit() <> return 1;
- #define OnFilterScriptExit(%0) jbank_OnFilterScriptExit(%0)<_ALS_:hooked>
- public OnGameModeExit()
- {
- state _ALS_:hooked;
- for(new i = 0; i < MAX_BANKS; i++)
- {
- DestroyDynamicMapIcon(bankdata[i][MapIcon]);
- DestroyDynamicCP(bankdata[i][CPID]);
- DestroyDynamic3DTextLabel(bankdata[i][Label]);
- }
- return jbank_OnGameModeExit();
- }
- forward jbank_OnGameModeExit();
- #if defined _ALS_OnGameModeExit
- #undef OnGameModeExit
- #else
- #define _ALS_OnGameModeExit
- #endif
- public jbank_OnGameModeExit() <_ALS_:unhooked> return 1;
- public jbank_OnGameModeExit() <> return 1;
- #define OnGameModeExit(%0) jbank_OnGameModeExit(%0)<_ALS_:hooked>
- stock getName(playerid) { new pName[24]; GetPlayerName(playerid, pName, sizeof(pName)); return pName; }
Add Comment
Please, Sign In to add comment