| pokemonmaster |
09-18-2012 17:30 |
Re: [ZP BANK + REGISTER FVAULT] Help Please
Quote:
Originally Posted by arcadecs
(Post 1802044)
ok, I'm waiting, thanks
|
Try this
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) }
This would save user's ammopacks in round end if it is bigger than this cvar value
zpbank_max_ammopacks - default value "100"
In other meaning, if the ammopacks number that the user is holding is bigger than that cvar value, ammopacks will get saved and the user will have zpbank_max_ammopacks value
hopefully google translate will translate what I said correctly :P
By the way, I coudln't compile plugin as I didn't have this function
Maybe you forgot to copy it when you have put the plugin
|