New Member
|
07-09-2011
, 13:37
Nvault Ammo bank!!
|
#1
|
Hey Guys!!
I'm beginner!
This is my first public plugin!!
This plugin save your ammo automaticaly, if you are logged in.
Commands:
say /login
say /password
say /send
I 'm using this plugin on our zombie server, and there is working fine.
If somebody find bug, pm me.
PHP Code:
#include <amxmodx> #include <amxmisc> #include <fakemeta> #include <nvault> #include <zombieplague>
new g_save, g_ammo[33], g_logged_in[33], g_pw[33][64], cvar_max
public plugin_init() { register_plugin("[ZP] Nvault Bank with Password", "1.1", "EXaNoVA")
register_event("DeathMsg","event_deathmsg","a") register_forward(FM_PlayerPreThink, "fw_PlayerPreThink") cvar_max = register_cvar("nvault_max_ammo_save", "2000") register_clcmd("say ", "say_hook") register_dictionary("nvault_bank.txt")
g_save = nvault_open("bank_save") } public plugin_end() { static maxplayers
if(!maxplayers) maxplayers = get_maxplayers() for(new i=1; i < maxplayers; i++) { if(is_user_connected(i)) { filter(i) } } } public zp_user_infected_post(id, infector) { filter(infector) filter(id) } public zp_extra_item_selected(id, itemid) { filter(id) } public event_deathmsg() { new killer = read_data(1) new victim = read_data(2)
if (!killer && !victim) return PLUGIN_CONTINUE filter(killer) filter(victim)
return PLUGIN_CONTINUE } public say_hook(id) { new text[100], command[64], password[32], num[30], name[50], vaultkey[64] read_args(text, 99) remove_quotes(text) command[0] = '^0' password[0] = '^0' parse(text, command, 63, password, 31, num, 29) get_user_name(id, name, 49) format(vaultkey, 63, "%s-/", name) if(equal(command, "/login", 6)) { new vaultdata[256], ammo[32], pw[64] nvault_get(g_save, vaultkey, vaultdata, 255) replace_all(vaultdata, 255, "#", "") parse(vaultdata, ammo, 31, pw, 63) if(g_logged_in[id] == 0) { if(!pw[0] && !pw[1] && !pw[2]) { client_print(id, print_chat, "%L", LANG_PLAYER, "NO_PW1") client_print(id, print_chat, "%L", LANG_PLAYER, "NO_PW2") return PLUGIN_HANDLED } else if(equal(password, pw)) { g_ammo[id] = str_to_num(ammo)+zp_get_user_ammo_packs(id) g_pw[id] = pw g_logged_in[id] = 1 zp_set_user_ammo_packs(id, g_ammo[id]) client_print(id, print_chat, "%L",LANG_PLAYER, "YOUR_AMMO", g_ammo[id]) client_print(id, print_chat, "%L", LANG_PLAYER, "LOGIN_SUCCES") } else { client_print(id, print_chat, "%L", LANG_PLAYER, "WRONG_PW") } } else { client_print(id, print_chat, "%L", LANG_PLAYER, "ALREADY") } return PLUGIN_HANDLED } else if(equal(command, "/password", 9)) { new vaultdata[256], ammo[32], pw[64] nvault_get(g_save, vaultkey, vaultdata, 255) replace_all(vaultdata, 255, "#", "") parse(vaultdata, ammo, 31, pw, 63) g_pw[id] = password if(!pw[0] && !pw[1] && !pw[2]) { format(vaultdata, 255, "%i# %s#", g_ammo[id], g_pw[id]) nvault_set(g_save, vaultkey, vaultdata) client_print(id, print_chat, "%L",LANG_PLAYER, "PW_CREATED1", password) client_print(id, print_chat, "%L",LANG_PLAYER, "PW_CREATED2", password) } else if(g_logged_in[id] == 1) { if(!password[0] && !password[1] && !password[2]) { client_print(id, print_chat, "%L", LANG_PLAYER, "PW_ERROR") } else { format(vaultdata, 255, "%i# %s#", g_ammo[id], password) nvault_set(g_save, vaultkey, vaultdata) client_print(id, print_chat, "%L", LANG_PLAYER, "PW_CHANGED", password) } } else { client_print(id, print_chat, "%L", LANG_PLAYER, "NOT_LOGGED") } return PLUGIN_HANDLED } else if(equal(command, "/send")) { new ammo = str_to_num(num) new receiver = cmd_target(id, password, 7); if(!receiver) { client_print(id, print_chat, "%L", LANG_PLAYER, "NO_PLAYER") } else if(zp_get_user_ammo_packs(id) < ammo) { client_print(id, print_chat, "%L", LANG_PLAYER, "NO_ENOUGH") } else { new rec[32] get_user_name(receiver, rec, 31) zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) - ammo) zp_set_user_ammo_packs(receiver, zp_get_user_ammo_packs(receiver) + ammo) client_print(id, print_chat, "%L", LANG_PLAYER, "GAVE_AMMO", rec) client_print(receiver, print_chat, "%L", LANG_PLAYER, "BECAME_AMMO", name) } } return PLUGIN_HANDLED } public fw_PlayerPreThink(id) { g_ammo[id] = zp_get_user_ammo_packs(id)
return FMRES_IGNORED } public client_disconnect(id) { filter(id) g_logged_in[id] = 0 g_ammo[id] = 0 } public client_connect(id) { g_logged_in[id] = 0 } public filter(id) { if(g_logged_in[id]) { save_ammo(id) } else return } public save_ammo(id) { new vaultkey[64], vaultdata[256], name[33] get_user_name(id,name,32) format(vaultkey, 63, "%s-/", name) if(g_ammo[id] >= get_pcvar_num(cvar_max)) { format(vaultdata, 255, "%d# %s#", get_pcvar_num(cvar_max), g_pw[id]) client_print(id, print_chat, "%L", LANG_PLAYER, "REACHED", get_pcvar_num(cvar_max)) } else { format(vaultdata, 255, "%i# %s#", g_ammo[id], g_pw[id]) } nvault_set(g_save, vaultkey, vaultdata) return PLUGIN_CONTINUE }
Sorry for my bad english. I used translator.
Last edited by EXaNoVA; 07-19-2011 at 08:23.
|
|