Senior Member
|
12-29-2016
, 05:57
I need help here Bank Register.
|
#1
|
I'll post the registration system + bank.
it works perfectly, but when the server drops from nothing, anyone with ammopacks off the bench, loses all ammopacks.
I was wondering if you or anyone knows how to do when the server goes down, all the packs save, and be deposited in the bank, I need to fix this problem guys please..
Merci mercii
PHP Code:
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <dhudmessage> #include <fakemeta> #include <fvault> #include <zombieplague>
const KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0 enum { REGS_ACCEPTED, REGS_LOCKED, BANK_ACCEPTED, BANK_LOCKED }
new const register_dados[] = "zp_register" new const bank_dados[] = "zp_bank"
#define is_valid_player(%1) (1 <= %1 <= 32) #define ADMIN_LEVEL ADMIN_IMMUNITY
new name[33][100] new password[33][100] new name_log[33][100] new password2[33][100] new g_name[33][100] new g_tentativas[33]
new bool:loggedin[33]
new cvar_menustyle, cvar_punhish, cvar_tentativas, cvar_bantime, g_pMaxAmmoPacks
new bool:g_bSawMotd[33] #define MOTD_FLAG_ARG 1 #define MOTD_FLAG_END 1 #define m_iMenuCode 205
new PlayerID[33]
new szText[555 char]
public plugin_init() { register_plugin("[ZP] Register + Bank", "2.5", "Mottzi/GuhRDS") register_dictionary("zp_GuhRDS.txt")
cvar_menustyle = register_cvar("zp_menu_style", "1") // cvar_punhish = register_cvar("zp_error-pass_punish", "2") // 1 - Kick | 2 - Ban cvar_tentativas = register_cvar("zp_error-pass_amount", "3") // Errar 3 Vezes cvar_bantime = register_cvar("zp_error-pass_punish-bantime", "5") // Tempo do Ban g_pMaxAmmoPacks = register_cvar("zpbank_max_ammopacks", "100")
register_clcmd("jointeam", "check_status") register_clcmd("chooseteam", "check_status") register_clcmd("say", "HookSayCommands") register_clcmd("say_team", "HookSayCommands")
register_clcmd("[Registrar]Login_Nome", "cmd_register_loginname_check") register_clcmd("[Registrar]Login_Senha", "cmd_register_loginpw_check") register_clcmd("[Logar]Login_Nome", "cmd_login_loginname_check") register_clcmd("[Logar]Login_Senha", "cmd_login_loginpw_check") register_clcmd("[Banco]Sacar_Quantidade", "cmd_bank_withdrawamount_check") register_clcmd("[Banco]Depositar_Quantidade", "cmd_bank_depositamount_check")
register_concmd("zp_account_list", "cmdShowList", ADMIN_LEVEL, "zp_account_list") register_concmd("zp_account_setap", "cmdSetAp", ADMIN_LEVEL, "zp_account_setap <Nome da Conta> <Quantiade de Ammo Packs>")
register_message(get_user_msgid("ShowMenu"), "message_ShowMenu") register_message(get_user_msgid("VGUIMenu"), "message_VGUIMenu") register_message(get_user_msgid("MOTD"), "message_MOTD")
register_logevent("round_first", 2, "0=World triggered", "1&Restart_Round_") register_logevent("round_first", 2, "0=World triggered", "1=Game_Commencing")
register_menu("Register", KEYSMENU, "cmd_register_menu_handler1") register_menu("Bank", KEYSMENU, "cmd_bank_menu_handler1") }
public plugin_precache() { precache_sound("GuhRDS/regs_accepted_v2.wav") precache_sound("GuhRDS/regs_locked_v2.wav") precache_sound("GuhRDS/bank_accepted_v2.wav") precache_sound("GuhRDS/bank_locked_v2.wav") }
public client_connect(id) { remove_task(id) }
public client_putinserver(id) { g_bSawMotd[id] = false
loggedin[id] = false g_tentativas[id] = 0 g_name[id] = "Nao esta Logado"
set_task(1.0, "check_status", id)
return PLUGIN_CONTINUE }
public client_disconnect(id) { cmdsave(id) loggedin[id] = false g_tentativas[id] = 0 g_name[id] = "Nao esta Logado" remove_task(id) }
public check_status(id) { new players[32], pnum, tempid; get_players(players, pnum);
for(new i; i<pnum; i++) { tempid = players[i];
if(!loggedin[tempid]) { cmd_register_menu(id) set_task(60.0, "check_login", id) } } }
public zp_round_ended(winteam) { new iPlayers[32], iCount, iPlayer, iNum, iPacks get_players(iPlayers, iCount) new iMaxAmmoPacks = get_pcvar_num(g_pMaxAmmoPacks) for(new i; i < iCount; i++) { iPlayer = iPlayers[i] iPacks = zp_get_user_ammo_packs(iPlayer) if(iPacks < iMaxAmmoPacks) { iNum = iPacks - iMaxAmmoPacks zp_set_user_ammo_packs(iPlayer, iMaxAmmoPacks) new data1[30]; fvault_get_data(bank_dados, g_name[iPlayer], data1, charsmax(data1)) new aps_bank = str_to_num(data1)
new save_aps = aps_bank + iNum
num_to_str(save_aps, data1, charsmax(data1)) fvault_set_data(bank_dados, g_name[iPlayer], data1) } } }
public check_login(id) { if(loggedin[id] == false) { server_cmd("kick #%i Nao logou", get_user_userid(id))
new Nick[33], Ip[13], SteamID[51]
get_user_ip(id, Ip[id], 12) get_user_authid(id, SteamID[id], 50) get_user_name(id, Nick[id], 32) LogsNotLogged("------------------------------------------------------------------------------------------------------------------------") LogsNotLogged("Registro: Jogador Kickado | Motivo: N?o Logou") LogsNotLogged("Jogador: Nome: %s", Nick[id]) LogsNotLogged("Jogador: IP: %s", Ip[id]) LogsNotLogged("Jogador: SteamID: %s", SteamID[id]) LogsNotLogged("------------------------------------------------------------------------------------------------------------------------") } }
//////////////////////////////////////////////////////////////////////////// ///////////////////////// Hooks Select Team & Motd ///////////////////////// ////////////////////////////////////////////////////////////////////////////
public message_ShowMenu(iMsgID, iDest, iReceiver) { new const Team_Select[] = "#Team_Select" new szMenu[sizeof(Team_Select)] get_msg_arg_string(4, szMenu, charsmax(szMenu)) if(!equal(szMenu, Team_Select)) { return PLUGIN_CONTINUE } set_pdata_int(iReceiver, m_iMenuCode, 0) return PLUGIN_HANDLED }
public message_VGUIMenu(iMsgID, iDest, iReceiver) { if(get_msg_arg_int(1) != 2) { return PLUGIN_CONTINUE } return PLUGIN_HANDLED; }
public message_MOTD(msgid, dest, id) { if(!g_bSawMotd[id]) { if(get_msg_arg_int(MOTD_FLAG_ARG) == MOTD_FLAG_END) { g_bSawMotd[id] = true } return PLUGIN_HANDLED } return PLUGIN_CONTINUE }
///////////////////////////////////////////////////////////////////// ///////////////////////// Events First Round///////////////////////// /////////////////////////////////////////////////////////////////////
public round_first() { set_cvar_num("mp_limitteams", 0) set_cvar_num("mp_autoteambalance", 0) set_cvar_num("sv_restartround", 1) }
/////////////////////////////////////////////////////////////////////// ///////////////////////// Sistema de Registro ///////////////////////// ///////////////////////////////////////////////////////////////////////
public cmd_register_menu(id) { if(get_pcvar_num(cvar_menustyle) == 1) { static menu[240], len len = 0 len += formatex(menu[len], charsmax(menu) - len, "%L^n^n", id, "MENU_REGISTER_SYSTEM") if(loggedin[id] == true) len += formatex(menu[len], charsmax(menu) - len, "\d1. %L^n", id, "MENU_REGS_REGISTER") else len += formatex(menu[len], charsmax(menu) - len, loggedin[id] ? "\d1. %L^n" : "\r1. \w%L^n", id, "MENU_REGS_REGISTER") len += formatex(menu[len], charsmax(menu) - len, loggedin[id] ? "\d2. %L^n^n" : "\r2. \w%L^n^n", id, "MENU_REGS_LOGAR") len += formatex(menu[len], charsmax(menu) - len, loggedin[id] ? "\r3. \w%L^n" : "\d3. %L^n", id, "MENU_REGS_CHANGE_LOGIN-NAME") len += formatex(menu[len], charsmax(menu) - len, loggedin[id] ? "\r4. \w%L^n^n" : "\d4. %L^n^n", id, "MENU_REGS_CHANGE_LOGIN-PW") len += formatex(menu[len], charsmax(menu) - len, loggedin[id] ? "\r5. \w%L^n^n" : "\d5. %L^n^n", id, "MENU_REGS_ACCOUNT_EXIT") len += formatex(menu[len], charsmax(menu) - len, loggedin[id] ? "\r0. \w%L^n" : "\d0. %L^n", id, "MENU_REGS_EXIT")
show_menu(id, KEYSMENU, menu, -1, "Register") } else if(get_pcvar_num(cvar_menustyle) == 2) { formatex(szText, charsmax(szText), "%L", id, "MENU_REGISTER_SYSTEM") new menu = menu_create(szText, "cmd_register_menu_handler2") if(loggedin[id] == true) formatex(szText, charsmax(szText), "%L", id, "MENU_REGS_REGISTER") else formatex(szText, charsmax(szText), loggedin[id] ? "\d%L" : "\w%L", id, "MENU_REGS_REGISTER") menu_additem(menu, szText, "1", 0) formatex(szText, charsmax(szText), loggedin[id] ? "\d%L^n" : "\w%L^n", id, "MENU_REGS_LOGAR") menu_additem(menu, szText, "2", 0) formatex(szText, charsmax(szText), loggedin[id] ? "\w%L" : "\d%L", id, "MENU_REGS_CHANGE_LOGIN-NAME") menu_additem(menu, szText, "3", 0) formatex(szText, charsmax(szText), loggedin[id] ? "\w%L^n" : "\d%L^n", id, "MENU_REGS_CHANGE_LOGIN-PW") menu_additem(menu, szText, "4", 0) formatex(szText, charsmax(szText), loggedin[id] ? "\w%L" : "\d%L", id, "MENU_REGS_ACCOUNT_EXIT") menu_additem(menu, szText, "5", 0)
menu_display(id, menu, 0) } }
public cmd_register_menu_handler1(id, key) { if(get_pcvar_num(cvar_menustyle) == 1) { switch(key) { case 0: cmd_register_check(id) case 1: cmd_login_check(id) case 2: cmd_register_menu(id) case 3: cmd_register_menu(id) case 4: cmd_logout(id) case 9: check_login(id) } if(key != 0 && key != 1 && key != 2 && key != 3 && key != 4 && key != 9) { cmd_register_menu(id) return PLUGIN_HANDLED } } return PLUGIN_HANDLED }
public cmd_register_menu_handler2(id, menu, item) { if(get_pcvar_num(cvar_menustyle) == 2) { new data[6], iName[64], access, callback menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback) new key = str_to_num(data)
switch(key) { case 1: cmd_register_check(id) case 2: cmd_login_check(id) case 3: cmd_register_menu(id) case 4: cmd_register_menu(id) case 5: cmd_logout(id) case 0: check_login(id) } if(key != 1 && key != 2 && key != 3 && key != 4 && key != 5 && key != 0) { cmd_register_menu(id) return PLUGIN_HANDLED } } return PLUGIN_HANDLED }
public cmd_register_check(id) { if(loggedin[id] == true) { set_dhudmessage(0, 255, 0, -1.0, 0.0, 0, 5.0, 0.01, 1.5, 1.5) show_dhudmessage(id, "%L", LANG_PLAYER, "REGS_YOU_ARE_LOGGED") EmitSound(id, REGS_LOCKED)
cmd_register_menu(id) } else { set_dhudmessage(0, 255, 0, -1.0, 0.0, 0, 5.0, 0.01, 1.5, 1.5) show_dhudmessage(id, "%L", LANG_PLAYER, "REGS_TYPE_REGISTER_LOGIN_ACCOUNT") EmitSound(id, REGS_ACCEPTED)
client_cmd(id, "messagemode [Registrar]Login_Nome") } }
public cmd_register_loginname_check(id) { read_args(name[id], 99) remove_quotes(name[id]) new name2[33][100]
if(loggedin[id] == true) { set_dhudmessage(0, 255, 0, -1.0, 0.0, 0, 5.0, 0.01, 1.5, 1.5) show_dhudmessage(id, "%L", LANG_PLAYER, "REGS_YOU_ARE_LOGGED") EmitSound(id, REGS_LOCKED)
cmd_register_menu(id) } else { if(fvault_get_data(register_dados, name[id], name2[id], 99) == 0 && containi(name[id], " ") == -1) { set_dhudmessage(0, 255, 0, -1.0, 0.0, 0, 5.0, 0.01, 1.5, 1.5) show_dhudmessage(id, "%L", LANG_PLAYER, "REGS_TYPE_REGISTER_PASS_ACCOUNT") EmitSound(id, REGS_ACCEPTED)
client_cmd(id, "messagemode [Registrar]Login_Senha") } else if(fvault_get_data(register_dados, name[id], name2[id], 99) == 1) { set_dhudmessage(0, 255, 0, -1.0, 0.0, 0, 7.0, 0.01, 2.0, 2.0) show_dhudmessage(id, "%L^n%L", LANG_PLAYER, "REGS_REGISTER_LOGIN_INVALID", LANG_PLAYER, "TRY_AGAIN") EmitSound(id, REGS_LOCKED)
cmd_register_menu(id) } } }
public cmd_register_loginpw_check(id) { read_args(password[id], 99) remove_quotes(password[id])
if(loggedin[id] == true) { set_dhudmessage(0, 255, 0, -1.0, 0.0, 0, 5.0, 0.01, 1.5, 1.5) show_dhudmessage(id, "%L", LANG_PLAYER, "REGS_YOU_ARE_LOGGED") EmitSound(id, REGS_LOCKED)
cmd_register_menu(id) } else { if(containi(password[id], " ") == -1) { EmitSound(id, REGS_ACCEPTED)
fvault_set_data(register_dados, name[id], password[id])
loggedin[id] = true g_name[id] = name[id]
remove_task(id)
client_cmd(id, "jointeam 5")
client_printcolor(id, "%L %L", LANG_PLAYER, "TAG", LANG_PLAYER, "REGS_ACCOUNTNEW_CREATED") client_printcolor(id, "%L %L", LANG_PLAYER, "TAG", LANG_PLAYER, "REGS_ACCOUNTNEW_LOGIN", name[id]) client_printcolor(id, "%L %L", LANG_PLAYER, "TAG", LANG_PLAYER, "REGS_ACCOUNTNEW_PASSWORD", password[id])
LogsRegister("------------------------------------------------------------------------------------------------------------------------") LogsRegister("Registro: Novos Dados Adcionados") LogsRegister("Login: %s", name[id]) LogsRegister("Senha: %s", password[id]) LogsRegister("------------------------------------------------------------------------------------------------------------------------") } else { set_dhudmessage(0, 255, 0, -1.0, 0.0, 0, 7.0, 0.01, 2.0, 2.0) show_dhudmessage(id, "%L^n%L", LANG_PLAYER, "REGS_REGISTER_PASS_INVALID", LANG_PLAYER, "TRY_AGAIN") EmitSound(id, REGS_LOCKED)
client_cmd(id, "messagemode [Registrar]Login_Senha") } } }
public cmd_login_check(id) { if(loggedin[id] == false) { set_dhudmessage(0, 255, 0, -1.0, 0.0, 0, 5.0, 0.01, 1.5, 1.5) show_dhudmessage(id, "%L", LANG_PLAYER, "REGS_TYPE_LOGIN_ACCOUNT")
client_cmd(id, "messagemode [Logar]Login_Nome") } else if(loggedin[id] == true) { set_dhudmessage(0, 255, 0, -1.0, 0.0, 0, 5.0, 0.01, 1.5, 1.5) show_dhudmessage(id, "%L", LANG_PLAYER, "REGS_YOU_ARE_LOGGED") EmitSound(id, REGS_LOCKED)
cmd_register_menu(id) } }
public cmd_login_loginname_check(id) { read_args(name_log[id], 99) remove_quotes(name_log[id]) new name2[33][100]
if(loggedin[id] == false) { if(fvault_get_data(register_dados, name_log[id], name2[id], 99) == 0) { EmitSound(id, REGS_LOCKED) cmd_register_menu(id)
set_dhudmessage(0, 255, 0, -1.0, 0.0, 0, 7.0, 0.01, 2.0, 2.0) show_dhudmessage(id, "%L^n%L", LANG_PLAYER, "REGS_LOGIN_NAME_INVALID", LANG_PLAYER, "TRY_AGAIN") } else { EmitSound(id, REGS_ACCEPTED) client_cmd(id, "messagemode [Logar]Login_Senha")
set_dhudmessage(0, 255, 0, -1.0, 0.0, 0, 5.0, 0.01, 1.5, 1.5) show_dhudmessage(id, "%L", LANG_PLAYER, "REGS_TYPE_REGISTER_PASS_ACCOUNT") } } else if(loggedin[id] == true) { set_dhudmessage(0, 255, 0, -1.0, 0.0, 0, 5.0, 0.01, 1.5, 1.5) show_dhudmessage(id, "%L", LANG_PLAYER, "REGS_YOU_ARE_LOGGED") EmitSound(id, REGS_LOCKED)
cmd_register_menu(id) } }
public cmd_login_loginpw_check(id) { read_args(password2[id], 99) remove_quotes(password2[id]) new data[140]
if(loggedin[id] == false) { fvault_get_data(register_dados, name_log[id], data, 139)
if(equali(data, password2[id])) { EmitSound(id, REGS_ACCEPTED)
loggedin[id] = true g_name[id] = name_log[id]
remove_task(id)
client_cmd(id, "jointeam 5")
new Nick[33], Ip[13], SteamID[51]
get_user_ip(id, Ip[id], 12) get_user_authid(id, SteamID[id], 50) get_user_name(id, Nick[id], 32) } else { EmitSound(id, REGS_LOCKED) cmd_register_menu(id) g_tentativas[id]++ check_punish(id)
set_dhudmessage(0, 255, 0, -1.0, 0.0, 0, 7.0, 0.01, 2.0, 2.0) show_dhudmessage(id, "%L^n%L", LANG_PLAYER, "REGS_LOGIN_PASS_INVALID", LANG_PLAYER, "TRY_AGAIN") } } else if(loggedin[id] == true) { set_dhudmessage(0, 255, 0, -1.0, 0.0, 0, 5.0, 0.01, 1.5, 1.5) show_dhudmessage(id, "%L", LANG_PLAYER, "REGS_YOU_ARE_LOGGED") EmitSound(id, REGS_LOCKED)
cmd_register_menu(id) } }
public check_punish(id) { if(g_tentativas[id] >= get_pcvar_num(cvar_tentativas)) { new punish = get_pcvar_num(cvar_punhish) if(punish <= 0 || punish >= 3) return PLUGIN_HANDLED
new Nick[33], Ip[13], SteamID[51];
get_user_ip(id, Ip[id], 12) get_user_authid(id, SteamID[id], 50) get_user_name(id, Nick[id], 32)
if(punish == 1) { server_cmd("kick #%i foi kickado por errar a senha muitas vezes", get_user_userid(id)) LogsErrorPass("------------------------------------------------------------------------------------------------------------------------") LogsErrorPass("Registro: Jogador Kickado | Motivo: Errou A Senha Muitas Vezes.") LogsErrorPass("Jogador: Nome: %s", Nick[id]) LogsErrorPass("Jogador: IP: %s", Ip[id]) LogsErrorPass("Jogador: SteamID: %s", SteamID[id]) LogsErrorPass("------------------------------------------------------------------------------------------------------------------------") return PLUGIN_HANDLED } if(punish == 2) { server_cmd("amx_banip #%i %i ^"foi banido %d minutos por errar a senha %s vezes^"", get_user_userid(id), get_pcvar_num(cvar_bantime), get_pcvar_num(cvar_bantime), get_pcvar_num(cvar_tentativas)) LogsErrorPass("------------------------------------------------------------------------------------------------------------------------") LogsErrorPass("Registro: Jogador Banido | Motivo: Errou A Senha Muitas Vezes.") LogsErrorPass("Jogador: Nome: %s", Nick[id]) LogsErrorPass("Jogador: IP: %s", Ip[id]) LogsErrorPass("Jogador: SteamID: %s", SteamID[id]) LogsErrorPass("------------------------------------------------------------------------------------------------------------------------") } } return PLUGIN_CONTINUE }
public cmd_logout(id) { if(loggedin[id] == false) { set_dhudmessage(0, 255, 0, -1.0, 0.0, 0, 5.0, 0.01, 1.5, 1.5) show_dhudmessage(id, "%L", LANG_PLAYER, "REGS_YOU_ARE_NOT_LOGGED") EmitSound(id, REGS_LOCKED)
cmd_register_menu(id) } else { set_dhudmessage(0, 255, 0, -1.0, 0.0, 0, 5.0, 0.01, 1.5, 1.5) show_dhudmessage(id, "%L", LANG_PLAYER, "REGS_LOGOUT_SUCESS") EmitSound(id, REGS_ACCEPTED)
user_silentkill(id) cs_set_user_team(id, CS_TEAM_UNASSIGNED)
loggedin[id] = false g_name[id] = "Nao esta Logado"
check_status(id) } }
//////////////////////////////////////////////////////////////////// ///////////////////////// Sistema de Banco ///////////////////////// ////////////////////////////////////////////////////////////////////
public cmd_bank_menu(id) { if(loggedin[id] == true && get_pcvar_num(cvar_menustyle) == 1) { static menu[240], len len = 0
new data1[30] fvault_get_data(bank_dados, g_name[id], data1, charsmax(data1))
len += formatex(menu[len], charsmax(menu) - len, "%L^n^n", id, "MENU_BANK_SYSTEM") if(equal(data1 , "")) len += formatex(menu[len], charsmax(menu) - len, "%L^n%L^n^n", id, "MENU_BANK_ACCOUNT", g_name[id], id, "MENU_BANK_BALANCE0") else len += formatex(menu[len], charsmax(menu) - len, "%L^n%L^n^n", id, "MENU_BANK_ACCOUNT", g_name[id], id, "MENU_BANK_BALANCE", data1) len += formatex(menu[len], charsmax(menu) - len, "\r1. \w%L^n", id, "MENU_BANK_TAKE_AMOUNT") len += formatex(menu[len], charsmax(menu) - len, "\r2. \w%L^n^n", id, "MENU_BANK_TAKE_ALL") len += formatex(menu[len], charsmax(menu) - len, "\r3. \w%L^n", id, "MENU_BANK_SAVE_AMOUNT") len += formatex(menu[len], charsmax(menu) - len, "\r4. \w%L^n^n", id, "MENU_BANK_SAVE_ALL") len += formatex(menu[len], charsmax(menu) - len, "\r0. \w%L", id, "MENU_BANK_EXIT")
show_menu(id, KEYSMENU, menu, -1, "Bank") } else if(loggedin[id] == true && get_pcvar_num(cvar_menustyle) == 2) { new szText[100]
new data1[30] fvault_get_data("zp_rba_bank", g_name[id], data1, charsmax(data1)) if(equal(data1 , "")) formatex(szText, charsmax(szText), "%L^n^n%L^n%L", id, "MENU_BANK_SYSTEM" , id, "MENU_BANK_ACCOUNT", g_name[id], id, "MENU_BANK_BALANCE0") else formatex(szText, charsmax(szText), "%L^n^n%L^n%L", id, "MENU_BANK_SYSTEM" , id, "MENU_BANK_ACCOUNT", g_name[id], id, "MENU_BANK_BALANCE", data1) new menu = menu_create(szText, "cmd_bank_menu_handler2") formatex(szText, charsmax(szText), "\w%L", id, "MENU_BANK_TAKE_AMOUNT") menu_additem(menu, szText, "1", 0) formatex(szText, charsmax(szText), "\w%L^n", id, "MENU_BANK_TAKE_ALL") menu_additem(menu, szText, "2", 0) formatex(szText, charsmax(szText), "\w%L", id, "MENU_BANK_SAVE_AMOUNT") menu_additem(menu, szText, "3", 0) formatex(szText, charsmax(szText), "\w%L", id, "MENU_BANK_SAVE_ALL") menu_additem(menu, szText, "4", 0) menu_display(id, menu, 0) } }
public cmd_bank_menu_handler1(id, key) { if(loggedin[id] == true && get_pcvar_num(cvar_menustyle) == 1) { switch(key) { case 0: client_cmd(id, "messagemode [Banco]Sacar_Quantidade") case 1: cmd_bank_withdrawall(id) case 2: client_cmd(id, "messagemode [Banco]Depositar_Quantidade") case 3: cmd_bank_depositall(id) } if(key != 0 && key != 1 && key != 2 && key != 3 && key != 9) { cmd_bank_menu(id) return PLUGIN_HANDLED } } else { cmd_register_menu(id) EmitSound(id, REGS_LOCKED) } return PLUGIN_HANDLED }
public cmd_bank_menu_handler2(id, menu, item) { if(loggedin[id] == true && get_pcvar_num(cvar_menustyle) == 2) { new data[6], iName[64], access, callback menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback) new key = str_to_num(data)
switch(key) { case 1: client_cmd(id, "messagemode [Banco]Sacar_Quantidade") case 2: cmd_bank_withdrawall(id) case 3: client_cmd(id, "messagemode [Banco]Depositar_Quantidade") case 4: cmd_bank_depositall(id) } if(key != 0 && key != 1 && key != 2 && key != 3 && key != 4) { cmd_bank_menu(id) return PLUGIN_HANDLED } } else { cmd_register_menu(id) EmitSound(id, REGS_LOCKED) } return PLUGIN_HANDLED }
public cmd_bank_withdrawamount_check(id) { if(loggedin[id] == true) { new amout[30] read_args(amout, charsmax(amout)) remove_quotes(amout)
if(!valid_ammt(amout, strlen(amout))) { client_printcolor(id, "%L %L", LANG_PLAYER, "TAG", LANG_PLAYER, "BANK_QUANTITY_INVALID") EmitSound(id, BANK_LOCKED)
return PLUGIN_HANDLED }
new data1[30]; fvault_get_data(bank_dados, g_name[id], data1, charsmax(data1))
new want = str_to_num(amout) new have = str_to_num(data1)
if(want > have) { client_printcolor(id, "%L %L", LANG_PLAYER, "TAG", LANG_PLAYER, "BANK_NOT_HAVE_AP_BANK", want) EmitSound(id, BANK_LOCKED)
return PLUGIN_HANDLED }
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + want) num_to_str(have - want, amout, charsmax(amout)) fvault_set_data(bank_dados, g_name[id], amout)
client_printcolor(id, "%L %L", LANG_PLAYER, "TAG", LANG_PLAYER, "BANK_TAKE_AP", want) EmitSound(id, BANK_ACCEPTED) } else { cmd_register_menu(id) } return PLUGIN_HANDLED }
public cmd_bank_withdrawall(id) { if(loggedin[id] == true) { new data1[30]; fvault_get_data(bank_dados, g_name[id], data1, charsmax(data1))
new have_hand = zp_get_user_ammo_packs(id) new have = str_to_num(data1)
if(have > 0) { zp_set_user_ammo_packs(id, have_hand + have)
new string1[30] formatex(string1, charsmax(string1), "0") fvault_set_data(bank_dados, g_name[id], string1)
client_printcolor(id, "%L %L", LANG_PLAYER, "TAG", LANG_PLAYER, "BANK_TAKE_AP", have) EmitSound(id, BANK_ACCEPTED) } else { client_printcolor(id, "%L %L", LANG_PLAYER, "TAG", LANG_PLAYER, "BANK_HAVE_0AP_BANK") EmitSound(id, BANK_LOCKED) } } else { cmd_register_menu(id) } }
public cmd_bank_depositamount_check(id) { if(loggedin[id] == true) { new amout[30] read_args(amout, charsmax(amout)) remove_quotes(amout)
if(!valid_ammt(amout, strlen(amout))) { client_printcolor(id, "%L %L", LANG_PLAYER, "TAG", LANG_PLAYER, "BANK_QUANTITY_INVALID") EmitSound(id, BANK_LOCKED)
return PLUGIN_HANDLED } new want = str_to_num(amout) new aps = zp_get_user_ammo_packs(id)
if(want > aps) { client_printcolor(id, "%L %L", LANG_PLAYER, "TAG", LANG_PLAYER, "BANK_NOT_HAVE_AP", want) EmitSound(id, BANK_LOCKED)
return PLUGIN_HANDLED }
new data1[30]; fvault_get_data(bank_dados, g_name[id], data1, charsmax(data1)) new aps_bank = str_to_num(data1)
new save_aps = aps_bank + want
num_to_str(save_aps, amout, charsmax(amout)) fvault_set_data(bank_dados, g_name[id], amout) zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) - want) client_printcolor(id, "%L %L", LANG_PLAYER, "TAG", LANG_PLAYER, "BANK_SAVE_AP", want) client_printcolor(id, "%L %L", LANG_PLAYER, "TAG", LANG_PLAYER, "BANK_BALANCE_BANK", aps_bank + want) EmitSound(id, BANK_ACCEPTED) } else { cmd_register_menu(id) } return PLUGIN_HANDLED }
public cmd_bank_depositall(id) { if(loggedin[id] == true) { new aps = zp_get_user_ammo_packs(id)
if(aps == 0) { client_printcolor(id, "%L %L", LANG_PLAYER, "TAG", LANG_PLAYER, "BANK_HAVE_0AP") EmitSound(id, BANK_LOCKED)
return PLUGIN_HANDLED }
new aps_have[30]; fvault_get_data(bank_dados, g_name[id], aps_have, 29) new result = aps + str_to_num(aps_have)
new aps2[30] formatex(aps2, charsmax(aps2), "%i", result) fvault_set_data(bank_dados, g_name[id], aps2) zp_set_user_ammo_packs(id, 0) client_printcolor(id, "%L %L", LANG_PLAYER, "TAG", LANG_PLAYER, "BANK_SAVE_AP", aps) client_printcolor(id, "%L %L", LANG_PLAYER, "TAG", LANG_PLAYER, "BANK_BALANCE_BANK", result) EmitSound(id, BANK_ACCEPTED) } else { cmd_register_menu(id) } return PLUGIN_HANDLED }
bool:valid_ammt(const ammt[], len) { static const valid_chars[][] = { "0" ,"1" ,"2" ,"3" ,"4" ,"5" ,"6" ,"7" ,"8" ,"9" } static i, a, valids; valids = 0
for(i = 0; i < len; i++) { for(a = 0; a < sizeof(valid_chars); a++) { if(ammt[i] == valid_chars[a][0]) { valids++ break } } } if(valids != len) return false return true }
///////////////////////////////////////////////////////////////////// ///////////////////////// Hook Say Commands ///////////////////////// /////////////////////////////////////////////////////////////////////
public cmdsave(id) { new aps = zp_get_user_ammo_packs(id) if(aps == 0) { return PLUGIN_HANDLED; }
new aps_have[30] fvault_get_data(bank_dados, g_name[id], aps_have, 29) new result = aps + str_to_num(aps_have)
new aps2[30] formatex(aps2, charsmax(aps2), "%i", result) fvault_set_data(bank_dados, g_name[id], aps2)
zp_set_user_ammo_packs(id, 0)
return PLUGIN_CONTINUE }
public HookSayCommands(id, value, amout) { new text[70], arg1[32], arg2[32], arg3[6]; read_args(text, sizeof(text) - 1); remove_quotes(text); arg1[0] = '^0'; arg2[0] = '^0'; arg3[0] = '^0'; parse(text, arg1, sizeof(arg1) - 1, arg2, sizeof(arg2) - 1, arg3, sizeof(arg3) - 1);
if (equali(arg1, "/", 1) || equali(arg1, ".", 1) || equali(arg1, "!", 1)) format(arg1, 31, arg1[1]);
if (arg3[0]) return PLUGIN_CONTINUE;
if (equali(arg1, "conta") || equali(arg1, "account") || equali(arg1, "registro") || equali(arg1, "register") || equali(arg1, "reg") || equali(arg1, "login")) { cmd_register_menu(id)
return PLUGIN_HANDLED } if (equali(arg1, "admin") || equali(arg1, "adm")) { if (equali(arg2, "menus") || equali(arg2, "menu") || equali(arg2, "comandos") || equali(arg2, "comando") || equali(arg2, "commands") || equali(arg2, "command") || equali(arg2, "cmds") || equali(arg2, "cmd")) { cmd_admin_menu(id)
return PLUGIN_HANDLED } return PLUGIN_CONTINUE } if(loggedin[id] == true) { if (equali(arg1, "banco") || equali(arg1, "bank")) { cmd_bank_menu(id)
return PLUGIN_HANDLED } else if (equali(arg1, "sacar") || equali(arg1, "take")) { if (isdigit(arg2[0]) || arg2[0] == '-' && isdigit(arg2[1])) { cmd_bank_withdrawamount_check(id)
return PLUGIN_HANDLED } else if (equali(arg2, "tudo") || equali(arg2, "all")) { cmd_bank_withdrawall(id)
return PLUGIN_HANDLED } return PLUGIN_CONTINUE } else if (equali(arg1, "depositar") || equali(arg1, "deposit") || equali(arg1, "save")) { if (isdigit(arg2[0]) || arg2[0] == '-' && isdigit(arg2[1])) { cmd_bank_depositamount_check(id)
return PLUGIN_HANDLED } else if (equali(arg2, "tudo") || equali(arg2, "all")) { cmd_bank_depositall(id)
return PLUGIN_HANDLED } return PLUGIN_CONTINUE } else if (equali(arg1, "saldo")) { if (!arg2[0]) { new data1[30] fvault_get_data(bank_dados, g_name[id], data1, charsmax(data1)) client_printcolor(id, "%L %L", LANG_PLAYER, "TAG", LANG_PLAYER, "BANK_BALANCE_M3", data1); } else { new id2 = cmd_target(id, arg2, 2) if (!id2) return PLUGIN_CONTINUE
static id2name[32] get_user_name(id2, id2name, 31) new data1[30] fvault_get_data(bank_dados, g_name[id2], data1[id2], charsmax(data1)) client_printcolor(id, "%L %L", LANG_PLAYER, "TAG", LANG_PLAYER, "BANK_BALANCE_PLAYER", id2name, data1[id2])
return PLUGIN_HANDLED } return PLUGIN_CONTINUE } return PLUGIN_CONTINUE } else { cmd_register_menu(id) } return PLUGIN_CONTINUE }
////////////////////////////////////////////////////////// ///////////////////////// Stocks ///////////////////////// //////////////////////////////////////////////////////////
stock EmitSound(index, sound) { switch(sound) { case REGS_ACCEPTED: client_cmd(index, "spk GuhRDS/regs_accepted_v2") case REGS_LOCKED: client_cmd(index, "spk GuhRDS/regs_locked_v2") case BANK_ACCEPTED: client_cmd(index, "spk GuhRDS/bank_accepted_v2") case BANK_LOCKED: client_cmd(index, "spk GuhRDS/bank_locked_v2") } }
stock client_printcolor(target, const message[], any:...) { static buffer[512], i, argscount; argscount = numargs();
static g_msgSayText, g_MaxPlayers; if(!g_msgSayText) { g_msgSayText = get_user_msgid("SayText"); } if(!g_MaxPlayers) { g_MaxPlayers = get_maxplayers(); } if (!target) { static player; for (player = 1; player <= g_MaxPlayers; player++) { if (!is_user_connected(player)) continue;
static changed[5], changedcount; changedcount = 0;
for (i = 2; i < argscount; i++) { if (getarg(i) == LANG_PLAYER) { setarg(i, 0, player); changed[changedcount] = i; changedcount++; } } vformat(buffer, charsmax(buffer), message, 3);
replace_all(buffer, charsmax(buffer), "!g", "^4"); replace_all(buffer, charsmax(buffer), "!y", "^1"); replace_all(buffer, charsmax(buffer), "!t", "^3");
message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, player); write_byte(player); write_string(buffer); message_end(); for (i = 0; i < changedcount; i++) setarg(changed[i], 0, LANG_PLAYER); } } else { vformat(buffer, charsmax(buffer), message, 3);
replace_all(buffer, charsmax(buffer), "!g", "^4"); replace_all(buffer, charsmax(buffer), "!y", "^1"); replace_all(buffer, charsmax(buffer), "!t", "^3");
message_begin(MSG_ONE, g_msgSayText, _, target); write_byte(target); write_string(buffer); message_end(); } }
//////////////////////////////////////////////////////// ///////////////////////// Logs ///////////////////////// ////////////////////////////////////////////////////////
LogsRegister(const message_fmt[], any:...) { static message[500] vformat(message, sizeof(message) - 1, message_fmt, 2)
static filename[96] new base[51], fr_data[51] get_basedir(base, 50)
if(!filename[0]) { get_basedir(filename, sizeof(filename) - 1) add(filename, sizeof(filename) - 1, "logs/register_history.log") } format_time(fr_data, sizeof(filename) - 1, "%d-%m-%Y") format(filename, sizeof(filename) - 1, "%s/logs/register_history_%s.log", base, fr_data)
log_to_file(filename, "%s", message) log_to_file(filename, "%s", message) }
LogsErrorPass(const message_fmt[], any:...) { static message[500] vformat(message, sizeof(message) - 1, message_fmt, 2)
static filename[96] new base[51], fr_data[51] get_basedir(base, 50)
if(!filename[0]) { get_basedir(filename, sizeof(filename) - 1) add(filename, sizeof(filename) - 1, "logs/login-pass_error_history.log") } format_time(fr_data, sizeof(filename) - 1, "%d-%m-%Y") format(filename, sizeof(filename) - 1, "%s/logs/login-pass_error_history_%s.log", base, fr_data) log_to_file(filename, "%s", message); }
LogsNotLogged(const message_fmt[], any:...) { static message[500] vformat(message, sizeof(message) - 1, message_fmt, 2) static filename[96] new base[51], fr_data[51] get_basedir(base, 50)
if(!filename[0]) { get_basedir(filename, sizeof(filename) - 1) add(filename, sizeof(filename) - 1, "logs/not_loggedkick_history.log") } format_time(fr_data, sizeof(filename) - 1, "%d-%m-%Y") format(filename, sizeof(filename) - 1, "%s/logs/not_loggedkick_history_%s.log", base, fr_data) log_to_file(filename, "%s", message) }
__________________
Free Palestine ♥
Last edited by plazma; 12-29-2016 at 06:41.
|
|