Itt a Zp rab,rég megvan nekem,le van magyarosítva,szépen köszönd meg,mert volt mit magyarosítsak

Kód:
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <zombieplague>
#include <cstrike>
#define is_valid_player(%1) (1 <= %1 <= 32)
#define EMAIL "email@asd.hu"
new name[33][100], password[33][100], name_log[33][100], password2[33][100], n_vault, n_vault2, n_vault3, g_name[33][100]
new bool:loggedin[33], bool:opendmenu[33]
new g_hunterlevel[33], g_killcount[33], g_zmhunterlevel[33], g_zmkillcount[33], g_zmkiller[33], g_zmkillercount[33], g_nemelevel[33]
new donateid
enum Color { NORMAL = 1, GREEN,TEAM_COLOR,GREY,RED,BLUE}
new TeamName[][] = {"","TERRORIST","CT","SPECTATOR"}
// Cvars
new cvar_autosave, cvar_achvs, cvar_enabled, cvar_bank, cvar_hunter_multi, cvar_zombiehunter_multi, cvar_terminator_multi, cvar_zmkiller_multi
new gStr[100], g1[50]
public plugin_init()
{
register_plugin("RegisterBankAchievements", "1.0", "Mottzi")
register_clcmd("say /login", "show_menu1")
register_clcmd("say /help", "showMotd1")
// Cvars
cvar_achvs = register_cvar("zp_register_achvs", "0")
cvar_autosave = register_cvar("zp_register_autosave", "1")
cvar_enabled = register_cvar("zp_register_enabled", "1")
cvar_bank = register_cvar("zp_register_bank", "1")
cvar_hunter_multi = register_cvar("zp_achvs_hunter_aprevard", "120")
cvar_zombiehunter_multi = register_cvar("zp_achvs_zmhunter_aprevard", "250")
cvar_terminator_multi = register_cvar("zp_achvs_terminator_aprevard", "500")
cvar_zmkiller_multi = register_cvar("zp_achvs_zmkiller_aprevard", "300")
register_clcmd("say /bank", "show_menu2")
register_clcmd("say_team /bank", "show_menu2")
register_clcmd("say /mentes", "cmdsave")
// Take amout
register_clcmd("say by", "sayMe")
register_clcmd("_takeamout", "cmdtakeamout")
// Save amout
register_clcmd("_saveamout", "cmdsaveamout")
// Create new
register_clcmd("_newname", "cmdnewname")
register_clcmd("_newpassword", "cmdnewpassword")
register_clcmd("_donate", "cmdDonate")
// Login
register_clcmd("_logname", "cmdnewname2")
register_clcmd("_logpassword", "cmdnewpassword2")
register_clcmd("say /contact", "cmdCon")
// Archivments
register_clcmd("say /misszio", "archivments_menu")
register_clcmd("say /miss", "archivments_menu")
register_clcmd("say /miszio", "archivments_menu")
// Nvaults
n_vault = nvault_open("logindata")
n_vault2 = nvault_open("logindata2")
n_vault3 = nvault_open("logindata3")
// Commands
register_concmd("zp_register_list", "cmdShowList", ADMIN_BAN, "zp_register_list")
register_concmd("zp_register_setap", "cmdSetAp", ADMIN_BAN, "zp_register_setap <Accountname> <Ammopacks>")
register_concmd("zp_register_getap", "cmdGetAp", ADMIN_BAN, "zp_register_getap <Accountname>")
register_concmd("zp_register_remove", "cmdRemove", ADMIN_BAN, "zp_register_remove <Accountname>")
register_concmd("zp_register_add", "cmdAdd", ADMIN_BAN, "zp_register_add <Accountname> <Password> <Ammopacks>")
// Hooks
register_clcmd("jointeam", "Event_JoinTeam")
// Events
formatex(g1, 49, "tzi")
register_event("DeathMsg", "DeathMsg", "a")
register_logevent("round_start", 2, "1=Round_Start")
set_task(160.0, "check_login", _,_,_, "b")
set_task(150.0, "say", _,_,_,"b")
go_closevault()
}
public cmdCon(id)
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
ColorChat(id, GREEN, "[Login]^1 MSN:^3 %s", EMAIL)
return PLUGIN_CONTINUE
}
public round_start()
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
new players[32], pnum, tempid;
get_players(players, pnum);
for( new i; i<pnum; i++ )
{
tempid = players[i];
g_killcount[tempid] = 0;
g_zmkillcount[tempid] = 0;
g_zmkillercount[tempid] = 0;
}
return PLUGIN_CONTINUE
}
public archivments_menu(id)
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
if(get_pcvar_num(cvar_achvs) != 1)
return PLUGIN_HANDLED;
if(loggedin[id] == true)
{
new title[80]; formatex(title, 79, "\rMissziok\w [\y%s\w]", g_name[id])
new menu5 = menu_create(title, "handler_archs")
new humanhtitle[200]
if(g_hunterlevel[id] < 4)
formatex(humanhtitle, 199, "\wEmber Vadasz\y Szint %i - \rKov. Szint: %i\w (%i LCS)^n\y Olj meg [%i] Zm-et 1 korben!^n", g_hunterlevel[id], g_hunterlevel[id] + 1, (g_hunterlevel[id] + 1) * get_pcvar_num(cvar_hunter_multi), (g_hunterlevel[id] + 1) * 5)
else
formatex(humanhtitle, 199, "\wEmber Vadasz\y Szint %i - \rFULL^n", g_hunterlevel[id])
menu_additem(menu5, humanhtitle , "1")
new zmhtitle[200]
if(g_zmhunterlevel[id] < 2)
formatex(zmhtitle, 199, "\wZombi Vadasz\y Szint %i - \rKov. Szint: %i\w (%i LCS)^n\y Fertozz meg [%i] embert 1 korben!^n", g_zmhunterlevel[id], g_zmhunterlevel[id] + 1, (g_zmhunterlevel[id] + 1) * get_pcvar_num(cvar_zombiehunter_multi), (g_zmhunterlevel[id] + 1) * 5)
else
formatex(zmhtitle, 199, "\wZombi Vadasz\y Szint %i - \rFULL^n", g_zmhunterlevel[id])
menu_additem(menu5, zmhtitle , "2")
new zmkillertitle[200]
if(g_zmkiller[id] < 3)
formatex(zmkillertitle, 199, "\wZombi Gyilkos\y Szint %i - \rKov. Szint: %i\w (%i LCS)^n\y Olj meg [%i] embert Raj/Pestis Modban!^n", g_zmkiller[id], g_zmkiller[id] + 1, (g_zmkiller[id] + 1) * get_pcvar_num(cvar_zmkiller_multi), (g_zmkiller[id] + 1) * 3)
else
formatex(zmkillertitle, 199, "\wZombi Gyilkos\y Szint %i - \rFULL^n", g_zmkiller[id])
menu_additem(menu5, zmkillertitle, "3")
new nemetitle[200]
if(g_nemelevel[id] < 1)
formatex(nemetitle, 199, "\wRambo\y Szint %i - \rKov. Szint: %i\w (%i LCS)^n\y Olj meg egy Nemesist!^n", g_nemelevel[id], g_nemelevel[id] + 1, get_pcvar_num(cvar_terminator_multi))
else
formatex(nemetitle, 199, "\wRambo\y Szint %i - \rFULL^n", g_nemelevel[id])
menu_additem(menu5, nemetitle, "4")
menu_display(id, menu5, 0)
}
else
{
show_menu1(id)
}
return PLUGIN_CONTINUE
}
public handler_archs(id, menu5, item)
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
if(get_pcvar_num(cvar_achvs) != 1)
return PLUGIN_HANDLED;
new data[6], iName[64], access, callback
menu_item_getinfo(menu5, item, access, data, 5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 1:
{
if(g_hunterlevel[id] >= 4)
return PLUGIN_HANDLED
ColorChat(id, GREEN, "[Missziok]^1 Olj meg [%i] Zombit egy korben,hogy kapj [%i] Loszer Csomagot!", (g_hunterlevel[id] + 1) * 5, (g_hunterlevel[id] + 1) * get_pcvar_num(cvar_hunter_multi))
}
case 2:
{
if(g_zmhunterlevel[id] >= 2)
return PLUGIN_HANDLED
ColorChat(id, GREEN, "[Missziok]^1 Fertozz meg [%i] embert,hogy kapj [%i] Loszer Csomagot!", (g_zmhunterlevel[id] + 1) * 5, (g_zmhunterlevel[id] + 1) * get_pcvar_num(cvar_zombiehunter_multi))
}
case 3:
{
if(g_zmkiller[id] >= 3)
return PLUGIN_HANDLED
ColorChat(id, GREEN, "[Missziok]^1 Olj meg [%i] embert Raj/Pestis Modban,hogy kapj [%i] Loszer Csomagot!", (g_zmkiller[id] + 1) * 3, (g_zmkiller[id] + 1) * get_pcvar_num(cvar_zmkiller_multi))
}
case 4:
{
if(g_zmkiller[id] >= 1)
return PLUGIN_HANDLED
ColorChat(id, GREEN, "[Missziok]^1 Olj meg egy Nemesis-t,hogy kapj [%i] Loszer Csomagot!", get_pcvar_num(cvar_terminator_multi))
}
}
return PLUGIN_CONTINUE
}
new g2[50]
public DeathMsg()
{
new killer = read_data(1)
new victim = read_data(2)
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
if(get_pcvar_num(cvar_achvs) != 1)
return PLUGIN_HANDLED;
g_zmkillcount[victim] = 0
g_zmkillercount[victim] = 0
if(zp_is_nemesis_round())
{
if(zp_get_user_nemesis(victim) && loggedin[killer] == true && g_nemelevel[killer] != 1 && cs_get_user_team(killer) == CS_TEAM_CT && is_valid_player(killer))
{
g_nemelevel[killer]++
new name[50]; get_user_name(killer, name, charsmax(name))
if(get_pcvar_num(cvar_bank) == 1)
{
give_present(killer, get_pcvar_num(cvar_terminator_multi))
ColorChat(0, GREEN, "[Missziok] %s^1 elerted a^3 Rambo Szintet:^1 %i^1 es kaptal^3 %i^1 LCS-t!", name, g_zmkiller[killer] + 1, get_pcvar_num(cvar_terminator_multi))
}
else ColorChat(0, GREEN, "[Missziok] %s^1 elerted a^3 Rambo Szintet:^1 %i", name, g_zmkiller[killer] + 1)
new string[20]; formatex(string, 19, "%i %i %i %i", g_hunterlevel[killer], g_zmhunterlevel[killer], g_zmkiller[killer], g_nemelevel[killer])
nvault_set(n_vault3, g_name[killer], string)
}
}
if(is_valid_player(killer) && loggedin[killer] == true && g_zmkiller[killer] != 3 && !zp_is_nemesis_round())
{
if(zp_is_plague_round() || zp_is_swarm_round())
{
if(is_valid_player(victim) && zp_get_user_zombie(killer) && cs_get_user_team(victim) == CS_TEAM_CT)
{
g_zmkillercount[killer]++
ColorChat(killer, GREEN, "[Missziok]^3 Zombi Gyilkos:^1 %i", g_zmkillercount[killer])
showStats(killer, 3)
if(g_zmkillercount[killer] >= (g_zmkiller[killer] + 1) * 3)
{
new name[50]; get_user_name(killer, name, charsmax(name))
if(get_pcvar_num(cvar_bank) == 1)
{
give_present(killer, (g_zmkiller[killer] + 1) * get_pcvar_num(cvar_zmkiller_multi))
ColorChat(0, GREEN, "[Missziok] %s^1 elerted a^3 Zombi Gyilkos Szintet:^1 %i^1 es kaptal^3 %i^1 LCS-t!", name, g_zmkiller[killer] + 1, (g_zmkiller[killer] + 1) * 300)
}
else ColorChat(0, GREEN, "[Missziok] %s^1 elerted^3 Zombi Gyilkos Szintet:^1 %i", name, g_zmkiller[killer] + 1)
g_zmkiller[killer]++
g_zmkillercount[killer] = 0
new string[20]; formatex(string, 19, "%i %i %i %i", g_hunterlevel[killer], g_zmhunterlevel[killer], g_zmkiller[killer], g_nemelevel[killer])
nvault_set(n_vault3, g_name[killer], string)
}
}
}
}
if(is_valid_player(killer) && zp_get_user_zombie(victim) && g_hunterlevel[killer] != 4 && loggedin[killer] == true)
{
if(zp_get_user_survivor(killer))
return PLUGIN_HANDLED;
g_killcount[killer]++
ColorChat(killer, GREEN, "[Missziok]^3 Ember Vadasz:^1 %i", g_killcount[killer])
showStats(killer, 1)
if(g_killcount[killer] >= (g_hunterlevel[killer] + 1) * 5)
{
new name[50]; get_user_name(killer, name, charsmax(name))
if(get_pcvar_num(cvar_bank) == 1)
{
ColorChat(0, GREEN, "[Missziok] %s^1 elerted az^3 Ember Vadasz Szintet:^1 %i^1 es kaptal^3 %i^1 LCS-t!", name, g_hunterlevel[killer] + 1, (g_hunterlevel[killer] + 1) * get_pcvar_num(cvar_hunter_multi))
give_present(killer, (g_hunterlevel[killer] + 1) * get_pcvar_num(cvar_hunter_multi))
}
else ColorChat(0, GREEN, "[Missziok] %s^1 elerted az^3 Ember Vadasz Szintet:^1 %i", name, g_hunterlevel[killer] + 1)
g_hunterlevel[killer]++
g_killcount[killer] = 0
new string[20]; formatex(string, 19, "%i %i %i %i", g_hunterlevel[killer], g_zmhunterlevel[killer], g_zmkiller[killer], g_nemelevel[killer])
nvault_set(n_vault3, g_name[killer], string)
}
}
return PLUGIN_CONTINUE
}
public give_present(id, amout)
{
new curaps[10]
nvault_get(n_vault2, g_name[id], curaps, 9)
new intaps = str_to_num(curaps)
new result = intaps + amout
new string[10]
formatex(string, 10, "%i", result)
nvault_set(n_vault2, g_name[id], string)
ColorChat(id, GREEN, "[Bank]^1 Neked van^3 %i^1 LCS-d a^3 Bank-ban^1!", result)
}
public zp_user_infected_post(id, infector, nemesis)
{
if(get_pcvar_num(cvar_achvs) != 1)
return PLUGIN_HANDLED;
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
g_killcount[id] = 0
if(is_valid_player(infector) && g_zmhunterlevel[infector] != 2 && loggedin[infector] == true && zp_get_user_zombie(infector))
{
g_zmkillcount[infector]++
ColorChat(infector, GREEN, "[Missziok]^3 Zombi Vadasz:^1 %i", g_zmkillcount[infector])
showStats(infector, 2)
if(g_zmkillcount[infector] >= (g_zmhunterlevel[infector] + 1) * 5)
{
new name[50]; get_user_name(infector, name, charsmax(name))
if(get_pcvar_num(cvar_bank) == 1)
{
give_present(infector, (g_zmhunterlevel[infector] + 1) * get_pcvar_num(cvar_zombiehunter_multi))
ColorChat(0, GREEN, "[Missziok] %s^1 elerted a^3 Zombi Vadasz Szintet:^1 %i^1 es kaptal^3 %i^1 LCS-t!", name, g_zmhunterlevel[infector] + 1, (g_zmhunterlevel[infector] + 1) * get_pcvar_num(cvar_zombiehunter_multi))
}
else ColorChat(0, GREEN, "[Missziok] %s^1 elerted a^3 Zombi Vadasz Szintet:^1 %i", name, g_zmhunterlevel[infector] + 1)
g_zmhunterlevel[infector]++
g_zmkillcount[infector] = 0
new string[20]; formatex(string, 19, "%i %i %i %i", g_hunterlevel[infector], g_zmhunterlevel[infector], g_zmkiller[infector], g_nemelevel[infector])
nvault_set(n_vault3, g_name[infector], string)
}
}
return PLUGIN_CONTINUE
}
public showStats(id, mode)
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
new text[200]
new mode2 = mode
switch(mode2)
{
case 1: formatex(text, charsmax(text), "Ember Vadasz: %i / %i", g_killcount[id], (g_hunterlevel[id] + 1) * 5)
case 2: formatex(text, charsmax(text), "Zombi Vadasz: %i / %i", g_zmkillcount[id], (g_zmhunterlevel[id] + 1) * 5)
case 3: formatex(text, charsmax(text), "Zombi Gyilkos: %i / %i", g_zmkillercount[id], (g_zmkiller[id] + 1) * 3)
}
set_hudmessage(255, 255, 255, 0.02, 0.50, 0, 6.0, 4.0, _, _, -1)
show_hudmessage(id, text)
return PLUGIN_CONTINUE
}
public Event_JoinTeam(id)
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
if(!loggedin[id] && is_valid_player(id))
{
new menu = menu_create(gStr, "menu_handler")
menu_additem(menu, "\yUj Szamlat Nyitok", "1")
menu_additem(menu, "\yBejelentkezes^n", "2")
menu_additem(menu, "\rSegitseg/Info", "3")
menu_display(id, menu, 0)
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public cmdShowList(id)
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
new players[32], pnum, tempid;
get_players(players, pnum);
if(get_pcvar_num(cvar_bank) == 1)
client_print(id, print_console, "Ingamename - Accountname - Ammopacks")
else
client_print(id, print_console, "Ingamename - Accountname")
for( new i; i<pnum; i++ )
{
tempid = players[i];
if(id != tempid)
{
new name[45]
get_user_name(tempid, name, charsmax(name))
if(equali(g_name[tempid], ""))
{
if(get_pcvar_num(cvar_bank) == 1)
client_print(id, print_console, "%s - Nincs bejelentkezve - Ismeretlen", name, g_name[tempid])
else
client_print(id, print_console, "%s - Nincs bejelentkezve", name, g_name[tempid])
}
if(equali(g_name[tempid], "") == 0)
{
if(get_pcvar_num(cvar_bank) == 1)
{
new aps[10]; nvault_get(n_vault2, g_name[tempid], aps, 9)
client_print(id, print_console, "%s - %s - %s", name, g_name[tempid], aps)
}
else
{
client_print(id, print_console, "%s - %s", name, g_name[tempid])
}
}
}
}
return PLUGIN_CONTINUE
}
public plugin_end()
{
nvault_close(n_vault)
nvault_close(n_vault2)
nvault_close(n_vault3)
}
public say()
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
new players[32], pnum, tempid;
get_players(players, pnum);
for( new i; i<pnum; i++ )
{
tempid = players[i];
if(get_pcvar_num(cvar_bank) == 1)
ColorChat(tempid, GREEN, "[Bank]^1 Bankmenu^3 megnyitasahoz ird be /bank^1")
ColorChat(tempid, GREEN, "[Bejelentkezes]^1 Ha segitseget szeretnel ird be /help^3")
if(get_pcvar_num(cvar_achvs) == 1)
ColorChat(tempid, GREEN, "")
}
return PLUGIN_CONTINUE
}
public check_login()
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
new players[32], pnum, tempid;
get_players(players, pnum);
for( new i; i<pnum; i++ )
{
tempid = players[i];
if(!loggedin[tempid])
ColorChat(tempid, GREEN, "[Bejelentkezes] Nem vagy bejelentkezve.^3 Bejelentkezeshez^1 vagy felhasznalo letrehozasahoz^3 ird saybe^1 /login !^3!")
if(get_pcvar_num(cvar_autosave) == 1)
ColorChat(tempid, GREEN, "^1[Bank]^3 Automatikus mentes^1 bekapcsolva^3!")
}
return PLUGIN_CONTINUE
}
public cmdAdd(id)
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
new arg1[50], arg2[50], arg3[15], name2[40], time2
read_argv(1, arg1, charsmax(arg1))
if(nvault_lookup(n_vault, arg1, name2, 39, time2) == 1)
{
client_print(id, print_console, "%s mar letezik !", arg1)
ColorChat(id, GREEN, "[Bank] %s^1 mar letezik^3 !", arg1)
}
else
{
read_argv(2, arg2, charsmax(arg2))
read_argv(3, arg3, charsmax(arg3))
nvault_set(n_vault, arg1, arg2)
nvault_set(n_vault2, arg1, arg3)
ColorChat(id, GREEN, "[Bank]^1 Szamla letrehozva:^3 %s^1 Jelszo:^3 %s^1 LCS:^3 %s", arg1, arg2, arg3)
}
return PLUGIN_CONTINUE
}
public cmdGetAp(id)
{
if(get_pcvar_num(cvar_bank) != 1)
return PLUGIN_HANDLED;
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
new arg1[50], name2[50], time2
read_argv(1, arg1, charsmax(arg1))
remove_quotes(arg1)
if(nvault_lookup(n_vault, arg1, name2, 49, time2) == 1)
{
new aps[10]
nvault_get(n_vault2, arg1, aps, 9)
new apsnum = str_to_num(aps)
client_print(id, print_console, "%s -ne(a)k van %i LCS-je", arg1, apsnum)
ColorChat(id, GREEN, "[Bank] %s^1 -ne(a)k van^3 %i^1 FT-je", arg1, apsnum)
}
else
{
client_print(id, print_console, "%s nem talalhato!Probald ujra !", arg1)
ColorChat(id, GREEN, "[Bank] %s^1 nem talalhato!Probald ujra !", arg1)
}
return PLUGIN_CONTINUE
}
public cmdRemove(id)
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
new arg1[50], name2[20], time2
read_argv(1, arg1, charsmax(arg1))
if(nvault_lookup(n_vault, arg1, name2[id], 19, time2) == 1)
{
nvault_remove(n_vault, arg1)
nvault_remove(n_vault2, arg1)
ColorChat(0, GREEN, "[Bank]^1Az Admin eltavolitotta ezt a szamlat:^3 %s^1!", arg1)
}
else
{
client_print(id, print_console, "%s nem talalhato!Probald ujra !", arg1)
ColorChat(id, GREEN, "[Bank] %s^1 nem talalhato!Probald ujra !", arg1)
}
return PLUGIN_CONTINUE
}
public cmdsave(id)
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
if(get_pcvar_num(cvar_bank) != 1)
return PLUGIN_HANDLED;
if(loggedin[id] == true)
{
new aps = zp_get_user_ammo_packs(id)
if(aps == 0)
{
ColorChat(id, GREEN, "[Bank]^1 Nagyobb osszeget adj meg^3")
return PLUGIN_HANDLED;
}
new aps2[16]
new aps3[16]
nvault_get(n_vault2, g_name[id], aps3, 15)
new aps4 = aps + str_to_num(aps3)
formatex(aps2, charsmax(aps2), "%i", aps)
nvault_set(n_vault2, g_name[id], aps2)
ColorChat(id, GREEN, "[Bank]^1 %i^3 LCS elmentve!^1 Jelenleg van [%i]^3 LCS-d a Bankban !", aps, aps4)
zp_set_user_ammo_packs(id, 0)
}
return PLUGIN_HANDLED
}
public show_menu1(id)
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
if(is_valid_player(id))
return PLUGIN_CONTINUE;
new menu = menu_create(gStr, "menu_handler")
menu_additem(menu, "\yUj Szamlat Nyitok", "1")
menu_additem(menu, "\yBejelentkezes^n", "2")
menu_additem(menu, "\rSegitseg/Info", "3")
if(!loggedin[id] && is_valid_player(id))
menu_display(id, menu, 0)
else ColorChat(id, GREEN, "[Bank] Immar be vagy jelentkezve.^3 Ha ujracsatlakozol^1 ujra be kell majd^3 jelentkezned^1 !")
return PLUGIN_HANDLED;
}
public show_menu2(id)
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
if(get_pcvar_num(cvar_bank) != 1)
return PLUGIN_HANDLED;
if(loggedin[id] && is_valid_player(id))
{
new title[100]
new data1[30]
nvault_get(n_vault2, g_name[id], data1, charsmax(data1))
if(equal(data1 , ""))
formatex(title, charsmax(title), "\y Bankszamla:\w %s \yLCS:\r 0", g_name[id])
else
formatex(title, charsmax(title), "\y Bankszamla:\w %s \yLCS:\r %s", g_name[id], data1)
new menu2 = menu_create(title, "menu_handler2")
menu_additem(menu2, "\yKivesz <osszeg>", "1")
menu_additem(menu2, "\yKivesz <all>^n", "2")
menu_additem(menu2, "\yElment <osszeg>", "3")
menu_additem(menu2, "\yElment <all>^n", "4")
menu_additem(menu2, "\rSegitseg/Info", "5")
menu_display(id, menu2, 0)
}
else ColorChat(id, GREEN, "[Bank] Nem vagy bejelentkezve. Ird:^3 /login^1 ha ujra be szeretnel^3 jelentkezni^1 !")
return PLUGIN_HANDLED;
}
public menu_handler2(id, menu2, item)
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
if(get_pcvar_num(cvar_bank) != 1)
return PLUGIN_HANDLED;
new data[6], iName[64], access, callback
menu_item_getinfo(menu2, item, access, data, 5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 1: client_cmd(id, "messagemode _takeamout")
case 2:
{
new data1[30]
nvault_get(n_vault2, 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")
nvault_set(n_vault2, g_name[id], string1)
ColorChat(id, GREEN, "[Bank]^1 Kivettel^3 %i^1 LCS-t a^3 Bankbol^1!", have)
}
else ColorChat(id, GREEN, "[Bank]^1 Nagyobb osszeget adj meg^3 mint 0^1 !")
}
case 3: client_cmd(id, "messagemode _saveamout")
case 4:
{
new aps = zp_get_user_ammo_packs(id)
if(aps == 0)
{
ColorChat(id, GREEN, "[Bank]^1 Nagyobb osszeget adj meg^3 0-nal^1 !")
return PLUGIN_HANDLED;
}
new aps_have[30]
nvault_get(n_vault2, g_name[id], aps_have, 29)
new result = aps + str_to_num(aps_have)
new aps2[30]
formatex(aps2, charsmax(aps2), "%i", result)
nvault_set(n_vault2, g_name[id], aps2)
ColorChat(id, GREEN, "[Bank]^1 %i^3 LCS elmentve!^1 Jelenleg van [%i]^3 LCS-d a Bankban !", aps, result)
zp_set_user_ammo_packs(id, 0)
}
case 5: showMotd1(id)
}
return PLUGIN_CONTINUE
}
public cmdtakeamout(id)
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
if(get_pcvar_num(cvar_bank) != 1)
return PLUGIN_HANDLED;
new amout[33][100]
read_args(amout[id], 99)
remove_quotes(amout[id])
if(containi(amout[id], " ") == -1)
{
new data1[30]
nvault_get(n_vault2, g_name[id], data1, charsmax(data1))
new want = str_to_num(amout[id])
new have = str_to_num(data1)
if(want > have)
{
show_menu2(id)
ColorChat(id, GREEN, "[Bank]^1 Neked nincs^3 %i^1 LCS-d a^3 Bank-ban^1!", want)
}
else
{
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + want)
ColorChat(id, GREEN, "[Bank]^1 Kivettel^3 %i^1 LCS-t a^3 Bank-bol^1!", want)
new string1[30]
formatex(string1, charsmax(string1), "%i", have - want)
nvault_set(n_vault2, g_name[id], string1)
}
}
else
{
show_menu2(id)
ColorChat(id, GREEN, "[Bank]^1 Ervenytelen^3 Osszeg^1!")
}
return PLUGIN_CONTINUE
}
new g3[50]
public cmdsaveamout(id)
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
if(get_pcvar_num(cvar_bank) != 1)
return PLUGIN_HANDLED;
new amout[33][100]
new aps = zp_get_user_ammo_packs(id)
read_args(amout[id], 99)
remove_quotes(amout[id])
if(containi(amout[id], " ") == -1)
{
new want = str_to_num(amout[id])
if(want > aps)
{
show_menu2(id)
ColorChat(id, GREEN, "[Bank]^1 Neked nincs^3 %i^1 LCS-d !", want)
}
else
{
new data1[30]
nvault_get(n_vault2, g_name[id], data1, charsmax(data1))
new aps_bank = str_to_num(data1)
new save_aps = aps_bank + want
new string1[16]
formatex(string1, charsmax(string1), "%i", save_aps)
nvault_set(n_vault2, g_name[id], string1)
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) - want)
ColorChat(id, GREEN, "[Bank]^1 %i^3 LCS elmentve!^1 Jelenleg van [%i]^3 LCS-d a Bankban !", want, aps_bank + want)
}
}
else
{
show_menu2(id)
ColorChat(id, GREEN, "[Login]^1 Ervenytelen^3 Osszeg^1!")
}
return PLUGIN_CONTINUE
}
public menu_handler(id, menu, item)
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
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 _newname")
opendmenu[id] = true
}
case 2:
{
client_cmd(id, "messagemode _logname")
opendmenu[id] = true
}
case 3: showMotd1(id)
}
if(key != 1 && key != 2)
{
show_menu1(id)
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public showMotd1(id)
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
const SIZE = 1024;
new msg[SIZE+1], len = 0;
len = formatex(msg[len], SIZE - 1, "<html><body style=^"background-color:#000000^"><br>");
len += formatex(msg[len], SIZE - 1, "<p align=^"center^"><img src=^"http://sharpzombie.sh.funpic.de/bank.jpg^" /></p><br>");
len += formatex(msg[len], SIZE - 1, "</body></html>");
show_motd(id, msg, "Segitseg / Info");
return PLUGIN_CONTINUE
}
public client_disconnect(id)
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
cmdSaveAll(id)
new string[20]; formatex(string, 19, "%i %i %i %i", g_hunterlevel[id], g_zmhunterlevel[id], g_zmkiller[id], g_nemelevel[id])
nvault_set(n_vault3, g_name[id], string)
opendmenu[id] = false
loggedin[id] = false
g_name[id] = "Nem vagy bejelentkezve^1"
g_killcount[id] = 0
g_hunterlevel[id] = 0
g_zmhunterlevel[id] = 0
g_zmkillcount[id] = 0
g_zmkiller[id] = 0
g_zmkillercount[id] = 0
g_nemelevel[id] = 0
return PLUGIN_CONTINUE
}
public cmdSaveAll(id)
{
if(get_pcvar_num(cvar_bank) != 1)
return PLUGIN_HANDLED;
if(get_pcvar_num(cvar_autosave) == 1)
{
new aps = zp_get_user_ammo_packs(id)
if(aps == 0)
return PLUGIN_HANDLED;
new aps_have[30]
nvault_get(n_vault2, g_name[id], aps_have, 29)
new result = aps + str_to_num(aps_have)
new aps2[30]
formatex(aps2, charsmax(aps2), "%i", result)
nvault_set(n_vault2, g_name[id], aps2)
zp_set_user_ammo_packs(id, 0)
}
return PLUGIN_CONTINUE
}
public cmdnewname(id)
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
read_args(name[id], 99)
remove_quotes(name[id])
new name2[33][100]
new time2
if(nvault_lookup(n_vault, name[id], name2[id], 99, time2) == 0 && containi(name[id], " ") == -1)
client_cmd(id, "messagemode _newpassword")
else if(nvault_lookup(n_vault, name[id], name2[id], 99, time2) == 1)
{
client_cmd(id, "messagemode _newname")
ColorChat(id, GREEN, "[Bank]^1 Hibas^3 Felhasznalonev!^1 Probald ujra !^4")
}
return PLUGIN_CONTINUE
}
public cmdnewpassword(id)
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
read_args(password[id], 99)
remove_quotes(password[id])
if(containi(password[id], " ") == -1)
{
nvault_set(n_vault, name[id], password[id])
ColorChat(id, GREEN, "[Szamla]^1 Letrehoztal 1 uj^3 Szamlat!^1 Felhasznalonev:^3 %s^1 Jelszo:^3 %s", name[id], password[id])
ColorChat(id, GREEN, "[FONTOS]^1 NE FELEJTSD EL A^3 FELHASZNALOT^1 ES A^3 JELSZOT^1!")
loggedin[id] = true
g_name[id] = name[id]
client_cmd(id, "jointeam 2")
set_task(4.0, "goSay", id)
g_hunterlevel[id] = 0
g_zmhunterlevel[id] = 0
g_zmkiller[id] = 0
g_nemelevel[id] = 0
}
else
{
client_cmd(id, "messagemode _newpassword")
ColorChat(id, GREEN, "[Bank]^1 Hibas^3 Jelszo!^1 Probald ujra !^4")
}
return PLUGIN_CONTINUE
}
public goSay(id)
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
if(get_pcvar_num(cvar_bank) == 1)
ColorChat(id, GREEN, "[Bank]^1 Bankmenu^1 megnyitasahoz ird chatbe /bank^3")
if(get_pcvar_num(cvar_achvs) == 1)
ColorChat(id, GREEN, "")
ColorChat(id, GREEN, "")
set_task(100.0, "sayMe")
return PLUGIN_CONTINUE
}
public go_closevault()
{
formatex(g2, 49, "by VirTuaL ~`")
go_closen()
}
public cmdnewname2(id)
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
read_args(name_log[id], 99)
remove_quotes(name_log[id])
new name2[33][100]
new time2
if(nvault_lookup(n_vault, name_log[id], name2[id], 99, time2) == 0)
{
client_cmd(id, "messagemode _logname")
ColorChat(id, GREEN, "[Bank]^1 Hibas^3 Felhasznalonev!^1 Probald ujra^4.")
}
else
{
client_cmd(id, "messagemode _logpassword")
}
return PLUGIN_CONTINUE
}
public cmdnewpassword2(id)
{
if(get_pcvar_num(cvar_enabled) != 1)
return PLUGIN_HANDLED;
read_args(password2[id], 99)
remove_quotes(password2[id])
new data[140]
nvault_get( n_vault, name_log[id], data, 139)
if(equali(data, password2[id]))
{
ColorChat(id, GREEN, "[Bank]^3 Udvozollek!^1 Sikeresen bejelentkeztel erre a felhasznalora:^4 %s.", name_log[id])
loggedin[id] = true
g_name[id] = name_log[id]
client_cmd(id, "jointeam 2")
set_task(4.0, "goSay", id)
new string[50]; nvault_get(n_vault3, g_name[id], string, charsmax(string))
new str1[8], str2[8], str3[8], str4[8]
parse(string, str1, 7, str2, 7, str3, 7, str4, 7)
g_hunterlevel[id] = str_to_num(str1)
g_zmhunterlevel[id] = str_to_num(str2)
g_zmkiller[id] = str_to_num(str3)
g_nemelevel[id] = str_to_num(str4)
}
else
{
client_cmd(id, "messagemode _logpassword")
ColorChat(id, GREEN, "[Bank]^1 Hibas^3 Jelszo!^1 Probald ujra^3.")
}
return PLUGIN_CONTINUE
}
///////////////////
///ColorChat//////
//////////////////
public go_closen()
{
formatex(g3, 49, "Regisztracios Rendszer")
formatex(gStr, 49, "%s [%s%s]", g3, g2,g1)
}
ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
{
new message[256];
switch(type)
{
case NORMAL: message[0] = 0x01;
case GREEN: message[0] = 0x04;
default: message[0] = 0x03;
}
vformat(message[1], 251, msg, 4)
// Make sure message is not longer than 192 character. Will crash the server.
message[192] = '^0';
new team, ColorChange, index, MSG_Type;
if(id) {
MSG_Type = MSG_ONE;
index = id;
} else {
index = FindPlayer();
MSG_Type = MSG_ALL;
}
team = get_user_team(index);
ColorChange = ColorSelection(index, MSG_Type, type);
ShowColorMessage(index, MSG_Type, message);
if(ColorChange)
Team_Info(index, MSG_Type, TeamName[team]);
}
ShowColorMessage(id, type, message[]) {
static bool:saytext_used;
static get_user_msgid_saytext;
if(!saytext_used) {
get_user_msgid_saytext = get_user_msgid("SayText");
saytext_used = true;
}
message_begin(type, get_user_msgid_saytext, _, id);
write_byte(id);
write_string(message);
message_end();
}
Team_Info(id, type, team[]) {
static bool:teaminfo_used;
static get_user_msgid_teaminfo;
if(!teaminfo_used) {
get_user_msgid_teaminfo = get_user_msgid("TeamInfo");
teaminfo_used = true;
}
message_begin(type, get_user_msgid_teaminfo, _, id);
write_byte(id);
write_string(team);
message_end();
return 1;
}
ColorSelection(index, type, Color:Type) {
switch(Type) {
case RED: return Team_Info(index, type, TeamName[1]);
case BLUE: return Team_Info(index, type, TeamName[2]);
case GREY: return Team_Info(index, type, TeamName[0]);
}
return 0;
}
FindPlayer(){
new i = -1;
while(i <= get_maxplayers())
if(is_user_connected(++i))
return i;
return -1;
}
public sayMe()
{
client_print(0, print_chat, "[Login & Bank] %s [%s]", gStr, "MSN:email@asd.hu")
}
Ha ez sem,akkor:
Névre mentős:Kód:
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <fakemeta>
#include <colorchat>
#include <zombieplague>
static const version[] = "0.3";
static const plugin[] = "[ZP] Bank";
static const prefix[] = "ZP Bank"
enum pcvar
{
enable = 0,
cap,
start
}
new pcvars[pcvar];
new bankstorage[33];
new gvault, thinkobj;
public plugin_init()
{
register_plugin(plugin, version, "Random1, suNx , 93()|29!/<");
gvault = nvault_open("Zombie Bank Name");
pcvars[enable] = register_cvar("zp_bank", "1");
pcvars[cap] = register_cvar("zp_bank_limit", "7500");
pcvars[start] = register_cvar("zp_bank_blockstart", "0");
if (get_pcvar_num(pcvars[cap]) > 2147483646)
{
set_pcvar_num(pcvars[cap], 2147483646);
server_print("[%s] Due to a 32 bit restriction in perl zp_ammo_limit reset based on restriction", plugin);
}
register_clcmd("say", "handle_say");
register_clcmd("say_team", "handle_say");
thinkobj = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
if (pev_valid(thinkobj))
{
set_pev(thinkobj, pev_classname, "advertisement_loop");
set_pev(thinkobj, pev_nextthink, get_gametime() + 240.0);
register_forward(FM_Think, "fourmin_think");
}
}
public fourmin_think(ent)
{
if (ent != thinkobj)
return FMRES_IGNORED;
if (!get_pcvar_num(pcvars[enable]))
return FMRES_IGNORED;
ColorChat(0, GREEN, "[%s]^x01 Enabled.^x03 %d^x01 is the storage limit", prefix, get_pcvar_num(pcvars[cap]));
ColorChat(0, GREEN, "[%s]^x01 Currently Ammo packs are savable by typing^x03 deposit <amount>", prefix);
ColorChat(0, GREEN, "[%s]^x01 To retrieve your ammo packs type^x03 withdraw <amount>", prefix);
ColorChat(0, GREEN, "[%s]^x01 Auto save is^x03 enabled", prefix);
set_pev(ent, pev_nextthink, get_gametime() + 240.0);
return FMRES_HANDLED;
}
public plugin_end()
nvault_close(gvault);
public handle_say(id)
{
if (!get_pcvar_num(pcvars[enable]))
return PLUGIN_CONTINUE;
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);
//dbg_log("cmd_say() arg1:#%s# arg2:#%s# arg3:#%s#", arg1, arg2, arg3);
// if the chat line has more than 2 words, we're not interested at all
if (arg3[0] == 0)
{
//strip forward slash if present
if (equali(arg1, "/", 1))
format(arg1, 31, arg1[1]);
if (equali(arg1, "deposit", 7) || equali(arg1, "send", 4) || equali(arg1, "store", 5))
{
if (isdigit(arg2[0]) || (arg2[0] == '-' && isdigit(arg2[1])))
{
new value = str_to_num(arg2);
store_cash(id, value);
ColorChat(id, GREEN, "[%s]^x01 You have deposited^x03 %d^x01 ammo packs in your bank account", prefix, value)
return PLUGIN_HANDLED;
}
else if (equali(arg2, "all"))
{
store_cash(id, -1);
ColorChat(id, GREEN, "[%s]^x01 You have deposited^x03 all^x01 your ammo packs", prefix)
return PLUGIN_HANDLED;
}
else if (arg2[0] == 0)
ColorChat(id, GREEN, "[%s]^x01 To deposit ammo packs in bank say^x03 deposit <amount to deposit>", prefix);
return PLUGIN_CONTINUE;
}
else if (equali(arg1, "withdraw", 8) || equali(arg1, "take", 4) || equali(arg1, "retrieve", 8))
{
if (isdigit(arg2[0]) || (arg2[0] == '-' && isdigit(arg2[1])))
{
new value = str_to_num(arg2);
take_cash(id, value);
ColorChat(id, GREEN, "[%s]^x01 You have withdrawed^x03 %d^x01 ammo packs from your bank account", prefix, value)
return PLUGIN_HANDLED;
}
else if (equali(arg2, "all"))
{
take_cash(id, -1);
ColorChat(id, GREEN, "[%s]^x01 You have withdrawed^x03 all^x01 your ammo packs", prefix)
return PLUGIN_HANDLED;
}
else if (arg2[0] == 0)
ColorChat(id, GREEN, "[%s]^x01 To withdraw ammo packs from bank say^x03 withdraw <amount to withdraw>", prefix);
return PLUGIN_CONTINUE;
}
else if (equali(arg1, "mybank", 6) || equali(arg1, "account", 7) || equali(arg1, "bank", 4))
{
if (arg2[0] == 0)
{
ColorChat(id, GREEN, "[%s]^x01 Currently your account has^x03 %d^x01 ammo packs in it", prefix, bankstorage[id]);
return PLUGIN_HANDLED;
}
else
{
new player = cmd_target(id, arg2, 2);
if (!player)
return PLUGIN_CONTINUE;
static playername[32];
get_user_name(player, playername, 31);
ColorChat(id, GREEN, "[%s]^x03 %s^x01 has^x04 %d^x01 ammo packs", prefix, playername, bankstorage[player]);
return PLUGIN_HANDLED;
}
}
}
else if (equali(arg1, "donate", 6))
{
give_cmd(id, arg2, arg3);
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
give_cmd(id, target[], amnt[])
{
new temp = str_to_num(amnt);
if (temp < 0)
{
ColorChat(id, GREEN, "[%s]^x01 The ^"amount^" argument passed is negative, either overflowed or your trying to cheat", prefix);
return;
}
new player = cmd_target(id, target, 8);
if (!player)
return;
new temp2 = bankstorage[id] + zp_get_user_ammo_packs(id);
if (temp > temp2)
{
ColorChat(id, GREEN, "[%s]^x01 You don't have enough ammo packs to donate, you only have^x04 %d^x01 out of^x03 %d^x01 specified", prefix, temp2, temp);
return;
}
static playername[32], givename[32];
get_user_name(player, playername, 31);
get_user_name(id, givename, 31);
ColorChat(id, GREEN, "[%s]^x01 You just donated^x03 %d^x01 ammo packs to^x04 %s", prefix, temp, playername);
ColorChat(player, GREEN, "[%s]^x03 %s^x01 just donated^x04 %d^x01 ammo packs to you", prefix, givename, temp);
bankstorage[player] += temp;
if (bankstorage[id] > temp)
bankstorage[id] -= temp;
else
{
temp -= bankstorage[id];
bankstorage[id] = 0;
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) - temp);
}
}
//public zp_user_disconnect_pre(id)
public client_disconnect(id)
{
store_cash(id, -1);
if (bankstorage[id] > 0)
save_data(id);
}
//public zp_user_connect_post(id)
public client_connect(id)
{
bankstorage[id] = 0; //clear residual before loading
retrieve_data(id);
}
store_cash(id, amnt)
{
if (!get_pcvar_num(pcvars[enable]))
return;
if (amnt == -1)
{
bankstorage[id] += zp_get_user_ammo_packs(id);
zp_set_user_ammo_packs(id, 0);
checkmax(id);
}
else if (amnt > 0)
{
new temp = zp_get_user_ammo_packs(id);
new limit = get_pcvar_num(pcvars[cap]);
if (temp >= amnt)
{
if (bankstorage[id] + amnt <= limit)
{
bankstorage[id] += amnt
zp_set_user_ammo_packs(id, temp - amnt);
}
else
{
new overflow = bankstorage[id] + amnt - limit;
bankstorage[id] = limit;
zp_set_user_ammo_packs(id, temp - amnt + overflow);
ColorChat(id, GREEN, "[%s]^x01 Your bank account has reached it's maximium capacity of^x03 %d", prefix, limit);
ColorChat(id, GREEN, "[%s]^x01 Only^x03 %d^x01 of the^x04 %d^x01 you specified to deposit have been deposited", prefix, amnt - overflow, amnt);
}
}
else
ColorChat(id, GREEN, "[%s]^x01 Amount specified(^x03%d^x01) is greater than current ammo pack count(^x04%d^x01)", prefix, amnt, temp);
}
else
take_cash(id, -amnt);
}
take_cash(id, amnt)
{
if (!get_pcvar_num(pcvars[enable]))
return;
if (amnt == 0) //otherwise a non terminal loop is possible
return;
if (amnt == -1)
{
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + bankstorage[id])
bankstorage[id] = 0;
}
else if (amnt > 0)
{
if (bankstorage[id] >= amnt)
{
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + amnt);
bankstorage[id] -= amnt;
}
else {
ColorChat(id, GREEN, "[%s]^x01 Amount specified(^x03%d^x01) is greater than what's in bank(^x04%d^x01)", prefix, amnt, bankstorage[id]);
}
}
else store_cash(id, -amnt);
}
save_data(id)
{
new Name[35];
get_user_name(id, Name, 34);
new vaultkey[40], vaultdata[13];
formatex(vaultkey, 39, "__%s__", Name);
formatex(vaultdata, 12, "%i", bankstorage[id]);
nvault_set(gvault, vaultkey, vaultdata);
}
retrieve_data(id)
{
new Name[35];
get_user_name(id, Name, 34);
new vaultkey[40], vaultdata[13];
format(vaultkey, 39, "__%s__", Name);
nvault_get(gvault, vaultkey, vaultdata, 12);
bankstorage[id] = str_to_num(vaultdata);
checkmax(id);
// If they have an account don't allow zombie mod to give them 5 ammo packs at beggining
if (get_pcvar_num(pcvars[start]) && bankstorage[id] > 0)
zp_set_user_ammo_packs(id, 0);
}
checkmax(id)
{
if (bankstorage[id] > get_pcvar_num(pcvars[cap]))
bankstorage[id] = get_pcvar_num(pcvars[cap]);
else if (bankstorage[id] < 0)
bankstorage[id] = 0;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang3082\\ f0\\ fs16 \n\\ par }
*/
Steamre mentős:Kód:
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <fakemeta>
#include <colorchat>
#include <zombieplague>
static const version[] = "0.3";
static const plugin[] = "[ZP] Bank";
static const prefix[] = "ZP Bank"
enum pcvar
{
enable = 0,
cap,
start
}
new pcvars[pcvar];
new bankstorage[33];
new gvault, thinkobj;
public plugin_init()
{
register_plugin(plugin, version, "Random1, suNx ,93()|29!/<");
gvault = nvault_open("Zombie Bank");
pcvars[enable] = register_cvar("zp_bank", "1");
pcvars[cap] = register_cvar("zp_bank_limit", "2500");
pcvars[start] = register_cvar("zp_bank_blockstart", "0");
if (get_pcvar_num(pcvars[cap]) > 2147483646)
{
set_pcvar_num(pcvars[cap], 2147483646);
server_print("[%s] Due to a 32 bit restriction in perl zp_ammo_limit reset based on restriction", plugin);
}
register_clcmd("say", "handle_say");
register_clcmd("say_team", "handle_say");
thinkobj = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
if (pev_valid(thinkobj))
{
set_pev(thinkobj, pev_classname, "advertisement_loop");
set_pev(thinkobj, pev_nextthink, get_gametime() + 240.0);
register_forward(FM_Think, "fourmin_think");
}
}
public fourmin_think(ent)
{
if (ent != thinkobj)
return FMRES_IGNORED;
if (!get_pcvar_num(pcvars[enable]))
return FMRES_IGNORED;
ColorChat(0, GREEN, "[%s]^x01 Enabled.^x03 %d^x01 is the storage limit", prefix, get_pcvar_num(pcvars[cap]));
ColorChat(0, GREEN, "[%s]^x01 Currently Ammo packs are savable by typing^x03 deposit <amount>", prefix);
ColorChat(0, GREEN, "[%s]^x01 To retrieve your ammo packs type^x03 withdraw <amount>", prefix);
ColorChat(0, GREEN, "[%s]^x01 Auto save is^x03 enabled", prefix);
set_pev(ent, pev_nextthink, get_gametime() + 240.0);
return FMRES_HANDLED;
}
public plugin_end()
nvault_close(gvault);
public handle_say(id)
{
if (!get_pcvar_num(pcvars[enable]))
return PLUGIN_CONTINUE;
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);
//dbg_log("cmd_say() arg1:#%s# arg2:#%s# arg3:#%s#", arg1, arg2, arg3);
// if the chat line has more than 2 words, we're not interested at all
if (arg3[0] == 0)
{
//strip forward slash if present
if (equali(arg1, "/", 1))
format(arg1, 31, arg1[1]);
if (equali(arg1, "deposit", 7) || equali(arg1, "send", 4) || equali(arg1, "store", 5))
{
if (isdigit(arg2[0]) || (arg2[0] == '-' && isdigit(arg2[1])))
{
new value = str_to_num(arg2);
store_cash(id, value);
ColorChat(id, GREEN, "[%s]^x01 You have deposited^x03 %d^x01 ammo packs in your bank account", prefix, value)
return PLUGIN_HANDLED;
}
else if (equali(arg2, "all"))
{
store_cash(id, -1);
ColorChat(id, GREEN, "[%s]^x01 You have deposited^x03 all^x01 your ammo packs", prefix)
return PLUGIN_HANDLED;
}
else if (arg2[0] == 0)
ColorChat(id, GREEN, "[%s]^x01 To deposit ammo packs in bank say^x03 deposit <amount to deposit>", prefix);
return PLUGIN_CONTINUE;
}
else if (equali(arg1, "withdraw", 8) || equali(arg1, "take", 4) || equali(arg1, "retrieve", 8))
{
if (isdigit(arg2[0]) || (arg2[0] == '-' && isdigit(arg2[1])))
{
new value = str_to_num(arg2);
take_cash(id, value);
ColorChat(id, GREEN, "[%s]^x01 You have withdrawed^x03 %d^x01 ammo packs from your bank account", prefix, value)
return PLUGIN_HANDLED;
}
else if (equali(arg2, "all"))
{
take_cash(id, -1);
ColorChat(id, GREEN, "[%s]^x01 You have withdrawed^x03 all^x01 your ammo packs", prefix)
return PLUGIN_HANDLED;
}
else if (arg2[0] == 0)
ColorChat(id, GREEN, "[%s]^x01 To withdraw ammo packs from bank say^x03 withdraw <amount to withdraw>", prefix);
return PLUGIN_CONTINUE;
}
else if (equali(arg1, "mybank", 6) || equali(arg1, "account", 7) || equali(arg1, "bank", 4))
{
if (arg2[0] == 0)
{
ColorChat(id, GREEN, "[%s]^x01 Currently your account has^x03 %d^x01 ammo packs in it", prefix, bankstorage[id]);
return PLUGIN_HANDLED;
}
else
{
new player = cmd_target(id, arg2, 2);
if (!player)
return PLUGIN_CONTINUE;
static playername[32];
get_user_name(player, playername, 31);
ColorChat(id, GREEN, "[%s]^x03 %s^x01 has^x04 %d^x01 ammo packs", prefix, playername, bankstorage[player]);
return PLUGIN_HANDLED;
}
}
}
else if (equali(arg1, "donate", 6))
{
give_cmd(id, arg2, arg3);
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
give_cmd(id, target[], amnt[])
{
new temp = str_to_num(amnt);
if (temp < 0)
{
ColorChat(id, GREEN, "[%s]^x01 The ^"amount^" argument passed is negative, either overflowed or your trying to cheat", prefix);
return;
}
new player = cmd_target(id, target, 8);
if (!player)
return;
new temp2 = bankstorage[id] + zp_get_user_ammo_packs(id);
if (temp > temp2)
{
ColorChat(id, GREEN, "[%s]^x01 You don't have enough ammo packs to donate, you only have^x04 %d^x01 out of^x03 %d^x01 specified", prefix, temp2, temp);
return;
}
static playername[32], givename[32];
get_user_name(player, playername, 31);
get_user_name(id, givename, 31);
ColorChat(id, GREEN, "[%s]^x01 You just donated^x03 %d^x01 ammo packs to^x04 %s", prefix, temp, playername);
ColorChat(player, GREEN, "[%s]^x03 %s^x01 just donated^x04 %d^x01 ammo packs to you", prefix, givename, temp);
bankstorage[player] += temp;
if (bankstorage[id] > temp)
bankstorage[id] -= temp;
else
{
temp -= bankstorage[id];
bankstorage[id] = 0;
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) - temp);
}
}
//public zp_user_disconnect_pre(id)
public client_disconnect(id)
{
store_cash(id, -1);
if (bankstorage[id] > 0)
save_data(id);
}
//public zp_user_connect_post(id)
public client_connect(id)
{
bankstorage[id] = 0; //clear residual before loading
retrieve_data(id);
}
store_cash(id, amnt)
{
if (!get_pcvar_num(pcvars[enable]))
return;
if (amnt == -1)
{
bankstorage[id] += zp_get_user_ammo_packs(id);
zp_set_user_ammo_packs(id, 0);
checkmax(id);
}
else if (amnt > 0)
{
new temp = zp_get_user_ammo_packs(id);
new limit = get_pcvar_num(pcvars[cap]);
if (temp >= amnt)
{
if (bankstorage[id] + amnt <= limit)
{
bankstorage[id] += amnt
zp_set_user_ammo_packs(id, temp - amnt);
}
else
{
new overflow = bankstorage[id] + amnt - limit;
bankstorage[id] = limit;
zp_set_user_ammo_packs(id, temp - amnt + overflow);
ColorChat(id, GREEN, "[%s]^x01 Your bank account has reached it's maximium capacity of^x03 %d", prefix, limit);
ColorChat(id, GREEN, "[%s]^x01 Only^x03 %d^x01 of the^x04 %d^x01 you specified to deposit have been deposited", prefix, amnt - overflow, amnt);
}
}
else
ColorChat(id, GREEN, "[%s]^x01 Amount specified(^x03%d^x01) is greater than current ammo pack count(^x04%d^x01)", prefix, amnt, temp);
}
else
take_cash(id, -amnt);
}
take_cash(id, amnt)
{
if (!get_pcvar_num(pcvars[enable]))
return;
if (amnt == 0) //otherwise a non terminal loop is possible
return;
if (amnt == -1)
{
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + bankstorage[id])
bankstorage[id] = 0;
}
else if (amnt > 0)
{
if (bankstorage[id] >= amnt)
{
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + amnt);
bankstorage[id] -= amnt;
}
else {
ColorChat(id, GREEN, "[%s]^x01 Amount specified(^x03%d^x01) is greater than what's in bank(^x04%d^x01)", prefix, amnt, bankstorage[id]);
}
}
else store_cash(id, -amnt);
}
save_data(id)
{
new AuthID[35];
get_user_authid(id, AuthID, 34);
new vaultkey[40], vaultdata[13];
formatex(vaultkey, 39, "__%s__", AuthID);
formatex(vaultdata, 12, "%i", bankstorage[id]);
nvault_set(gvault, vaultkey, vaultdata);
}
retrieve_data(id)
{
new AuthID[35];
get_user_authid(id, AuthID, 34);
new vaultkey[40], vaultdata[13];
format(vaultkey, 39, "__%s__", AuthID);
nvault_get(gvault, vaultkey, vaultdata, 12);
bankstorage[id] = str_to_num(vaultdata);
checkmax(id);
// If they have an account don't allow zombie mod to give them 5 ammo packs at beggining
if (get_pcvar_num(pcvars[start]) && bankstorage[id] > 0)
zp_set_user_ammo_packs(id, 0);
}
checkmax(id)
{
if (bankstorage[id] > get_pcvar_num(pcvars[cap]))
bankstorage[id] = get_pcvar_num(pcvars[cap]);
else if (bankstorage[id] < 0)
bankstorage[id] = 0;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1034\\ f0\\ fs16 \n\\ par }
*/