Save Bools to nVault ?
PHP Code:
public SacuvajPodatke(id) { new vaultkey[64], vaultdata[1024], valutbool[2] format(valutbool, 1, "%d#%d#%d", Ovidius[id] ? 1:0, Bugatron[id] ? 1:0, Nocturne[id] ? 1:0) format(vaultkey, 63, "%s-%i-mh", ID_igraca[id], heroj_igraca[id]) format(vaultdata, 1023, "%i#%i#%i#%i#%i#%i#%i#%i#%i", honor_poeni_igraca[id], talent_poeni_igraca[id], iskustvo_igraca[id], level_igraca[id], personal_level_igraca[id], personal_iskustvo_igraca[id], ubistva_igraca[id], talent_prosireni_um[id], talent_inteligentni_napad[id]) nvault_set(g_Vault, vaultkey, vaultdata) } public UcitajPodatke(id, heroj) { new vaultkey[64], vaultdata[1024], vaultbool[2] format(vaultkey, 63, "%s-%i-mh", ID_igraca[id], heroj) format(vaultdata, 1023, "%i#%i#%i#%i#%i#%i#%i#%i#%i", honor_poeni_igraca[id], talent_poeni_igraca[id], iskustvo_igraca[id], level_igraca[id], personal_level_igraca[id], personal_iskustvo_igraca[id], ubistva_igraca[id], talent_prosireni_um[id], talent_inteligentni_napad[id]) nvault_get(g_Vault, vaultkey, vaultdata, 255) replace_all(vaultdata, 255, "#", " ") new honorpoeniigraca[32], talentpoeniigraca[32], iskustvoigraca[32], leveligraca[32], personalleveligraca[32], personaliskustvoigraca[32], ubistvaigraca[32], talentprosirenium[32], talentinteligentninapad[32] parse(vaultdata, honorpoeniigraca, 31, talentpoeniigraca, 31, iskustvoigraca, 31, leveligraca, 31, personalleveligraca, 31, personaliskustvoigraca, 31, ubistvaigraca, 31, talentprosirenium, 31, talentinteligentninapad, 31) //Level, XP, Poeni honor_poeni_igraca[id] = str_to_num(honorpoeniigraca) talent_poeni_igraca[id] = str_to_num(talentpoeniigraca) iskustvo_igraca[id] = str_to_num(iskustvoigraca) level_igraca[id] = str_to_num(leveligraca) personal_level_igraca[id] = str_to_num(personalleveligraca) personal_iskustvo_igraca[id] = str_to_num(personaliskustvoigraca) ubistva_igraca[id] = str_to_num(ubistvaigraca) //Heroji (bools) Ovidius[id] = (str_to_num(vaultbool) == 1) ? true:false Bugatron[id] = (str_to_num(vaultbool) == 1) ? true:false Nocturne[id] = (str_to_num(vaultbool) == 1) ? true:false //Talenti talent_prosireni_um[id] = str_to_num(talentprosirenium) talent_inteligentni_napad[id] = str_to_num(talentinteligentninapad) }
I have closed the nVault at the end of the plugin, and bools appear to be true every time...
They should be always false, but it seems to be bugged, now they're true...
FULL CODE (Hope Mix97 won't steal it -.-)
PHP Code:
/* Item Shop: 100% Hero Shop: 100% Odabir Heroja: 100% Imena Heroja: 100% Talent Points & Talent System: 100% Honor Points & Honor System: 100% Leveling: 100% Respawn: 50% nVault: 80% Ability Power: 100% Misije: 100% [||||||\\\\] */
#include <amxmodx> #include <cstrike> #include <colorchat> #include <fakemeta> #include <fun> #include <hamsandwich> #include <nvault>
#define PLUGIN "Multi Hero Mod" #define VERSION "0.8b" #define AUTHOR "MiloS -.-"
enum { Nema = 0, hero_Garex, hero_Zero_Beam, hero_Moopet, hero_Ovidius, hero_Bugatron, hero_Nocturne }
new const imena_heroja[][] = { "Nema", "Garex", "Zero-Beam", "Moopet", "Ovidius", "Bugatron", "Nocturne" }
new const ability_heroja[][] = { "Nema", "Vanish", //Garex "No-Clip", //Zero-Beam "Speed", //Moopet "God Mode", //Ovidius "Heal", //Bugatron "Low Gravity" //Nocturne }
new const opis_heroja[][] = { "Nema", "^1Heroj: ^4Garex ^3| ^1Ability: ^4Vanish (Nevidljivost)", "^1Heroj: ^4Zero-Beam ^3| ^1Ability: ^4No-Clip (Prolazi kroz zidove)", "^1Heroj: ^4Moopet ^3| ^1Ability: ^4Speed (Ubrzanje)", "^1Heroj: ^4Ovidius ^3| ^1Ability: ^4God Mode (Neunistivost)", "^1Heroj: ^4Bugatron ^3| ^1Ability: ^4Heal (Leci HP)", "^1Heroj: ^4Nocturne ^3| ^1Ability: ^4Low Gravity (Veci Skok)" }
new const shop_imena_heroja[][] = { "Nema", "\yOvidius \r[\wCena: \d13645 \wHonor Poena\r]", "\yBugatron \r[\wCena: \d15560 \wHonor Poena\r]", "\yNocturne \r[\wCena: \d17555 \wHonor Poena\r]" }
new const iskustvo_levelu[] = { 5, 20, 45, 80, 125, 180, 245, 320, 405, 500, 605, 720, 845, 980, 1125, 1280, 1445, 1620, 1805, 2000, 2205, 2420, 2645, 2880, 3125, 3380, 3645, 3920, 4205, 4500, 4805, 5120, 5445, 5780, 6125, 6480, 6845, 7220, 7605, 8000, 8405, 8820, 9245, 9680, 10125, 10580, 11045, 11520, 12005, 12500, 13005, 13520, 14045, 14580, 15125, 15680, 16245, 16820, 17405, 18000, 18605, 19220, 19845, 20480, 21125, 21780, 22445, 23120, 23805, 24500, 25205, 25920, 26645, 27380, 28125, 28880, 29645, 30420, 31205, 32000, 32805, 33620, 34445, 35280, 36125, 36980, 37845, 38720, 39605, 40500, 41405, 42320, 43245, 44180, 45125, 46080, 47045, 48020, 49005, 50000 }
new const personal_iskustvo_levelu[] = { 5, 20, 45, 80, 125, 180, 245, 320, 405, 500, 605, 720, 845, 980, 1125, 1280, 1445, 1620, 1805, 2000 }
new ubistva_igraca[33] new honor_poeni_igraca[33] new talent_poeni_igraca[33] new personal_level_igraca[33] new personal_iskustvo_igraca[33] new iskustvo_igraca[33] new level_igraca[33] new heroj_igraca[33] new nov_heroj_igraca[33]
new talent_prosireni_um[33] new talent_inteligentni_napad[33]
new bool:Ovidius[33] = false new bool:Bugatron[33] new bool:Nocturne[33] = false
new bool:enable_hud[33] new bool:iskoristio_ability[33] = false
new bool:ability_Moopet[33]
new g_Vault
new ID_igraca[33][35]
new p_KillXP new p_KillHonor new p_LevelHonor new p_PersonalLevelXP
new g_CoolDown[33] new g_RespawnMeter[33]
static Float:f_LastUse[33] static Float:f_Respawn[33]
new SyncHud new SyncHud1
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) g_Vault = nvault_open("MultiHero") register_message(get_user_msgid("StatusIcon"), "StatusIconRemoveBuyZone") register_clcmd("say /hero", "cmdChooseHero") register_clcmd("say /shop", "cmdShop") register_clcmd("say /statistike", "cmdStats") register_clcmd("say /talent", "cmdTalents") register_clcmd("say /misije", "cmdMisije") register_clcmd("say /opis", "cmdOpis") register_clcmd("say /test", "cmdTest") register_forward(FM_EmitSound, "EmitSound") register_event("CurWeapon", "CurWeapon", "be", "1=1") RegisterHam(Ham_TakeDamage, "player", "TakeDamage") RegisterHam(Ham_Killed, "player", "Death", 1) RegisterHam(Ham_Spawn, "player", "Spawn", 1) p_KillXP = register_cvar("mh_killxp", "35") p_KillHonor = register_cvar("mh_killhonor", "35") p_LevelHonor = register_cvar("mh_levelhonor", "50") p_PersonalLevelXP = register_cvar("mh_personal_levelxp", "20") SyncHud = CreateHudSyncObj() SyncHud1 = CreateHudSyncObj() }
public cmdTest(id) { talent_poeni_igraca[id] += 5 honor_poeni_igraca[id] += 50000 personal_level_igraca[id] += 20 }
public client_putinserver(id) { set_task(0.1, "ShowStats", id + 100) set_task(60.0, "ShowUputstvo", id + 101) }
public client_authorized(id) { get_user_authid(id, ID_igraca[id], 34) }
public client_disconnect(id) { remove_task(id + 100) remove_task(id + 101) SacuvajPodatke(id) }
public StatusIconRemoveBuyZone(msgid, msgdest, id) { static szIcon[8] get_msg_arg_string(2, szIcon, 7) if(equal(szIcon, "buyzone") && get_msg_arg_int(1)) { set_pdata_int(id, 235, get_pdata_int(id, 235) & ~(1<<0)) return PLUGIN_HANDLED } return PLUGIN_CONTINUE }
public KoristiAbility(id) { if(!is_user_alive(id)) { return PLUGIN_HANDLED } new Float:szServerTime = get_gametime() if(f_LastUse[id] < szServerTime) { g_CoolDown[id] = 90 f_LastUse[id] = szServerTime + g_CoolDown[id] set_task(1.0, "TaskCoolDown", id, _, _, "a", g_CoolDown[id]) } switch(heroj_igraca[id]) { case hero_Garex: { if(iskoristio_ability[id]) { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Ability Power Mozes Koristiti Svake 90. Sekunde!") return PLUGIN_HANDLED } else { set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0) ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Iskoristio si Ability Power!") } } case hero_Zero_Beam: { if(iskoristio_ability[id]) { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Ability Power Mozes Koristiti Svake 90. Sekunde!") return PLUGIN_HANDLED } else { set_user_noclip(id, 1) ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Iskoristio si Ability Power!") } } case hero_Moopet: { if(iskoristio_ability[id]) { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Ability Power Mozes Koristiti Svake 90. Sekunde!") return PLUGIN_HANDLED } else { set_user_maxspeed(id, 400.0) ability_Moopet[id] = true ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Iskoristio si Ability Power!") } } case hero_Ovidius: { if(iskoristio_ability[id]) { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Ability Power Mozes Koristiti Svake 90. Sekunde!") return PLUGIN_HANDLED } else { set_user_godmode(id, 1) ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Iskoristio si Ability Power!") } } case hero_Bugatron: { if(iskoristio_ability[id]) { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Ability Power Mozes Koristiti Svake 90. Sekunde!") return PLUGIN_HANDLED } else { set_task(1.0, "Bugatron_Heal", id + 102) ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Iskoristio si Ability Power!") } } case hero_Nocturne: { if(iskoristio_ability[id]) { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Ability Power Mozes Koristiti Svake 180. Sekunde!") return PLUGIN_HANDLED } else { set_user_gravity(id, get_user_gravity(id) - 0.7) ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Iskoristio si Ability Power!") } } } set_task(5.0, "SkloniAbility", id) iskoristio_ability[id] = true return PLUGIN_CONTINUE }
public TaskCoolDown(id) { if(g_CoolDown[id] == 1) { set_hudmessage(0, 127, 255, -1.0, 0.77, 0, 6.0, 1.0) ShowSyncHudMsg(id, SyncHud1, "Sada mozes koristiti Ability Power") iskoristio_ability[id] = false } else { set_hudmessage(0, 127, 255, -1.0, 0.77, 0, 6.0, 1.0) ShowSyncHudMsg(id, SyncHud1, "[Ability Power Cooldown: %d]", g_CoolDown[id]) } g_CoolDown[id]-- }
public SkloniAbility(id) { switch(heroj_igraca[id]) { case hero_Garex: { set_user_rendering(id) ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Tvoj Ability Power vise ne traje") } case hero_Zero_Beam: { set_user_noclip(id, 0) ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Tvoj Ability Power vise ne traje") } case hero_Moopet: { set_user_maxspeed(id, 250.0) ability_Moopet[id] = false ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Tvoj Ability Power vise ne traje") } case hero_Ovidius: { set_user_godmode(id, 0) ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Tvoj Ability Power vise ne traje") } case hero_Bugatron: { remove_task(id + 102) ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Tvoj Ability Power vise ne traje") } case hero_Nocturne: { set_user_gravity(id, 1.0) ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Tvoj Ability Power vise ne traje") } } } public Bugatron_Heal(id) { id -= 102 set_user_health(id, get_user_health(id) + 10) set_task(1.0, "Bugatron_Heal", id) }
public cmdChooseHero(id) { new cb = menu_makecallback("ChooseHero_CallBack") new menu = menu_create("\rIzaberi Heroja", "ChooseHero_Handle") new heroj[64] for(new i = 1; i < sizeof imena_heroja; i++) { UcitajPodatke(id, i) format(heroj, charsmax(heroj), "%s \r[\yLevel \d%i\r]", imena_heroja[i], level_igraca[id]) menu_additem(menu, heroj, _, _, cb) } menu_setprop(menu, MPROP_EXITNAME, "Izlaz") menu_display(id, menu) UcitajPodatke(id, heroj_igraca[id]) } public ChooseHero_CallBack(id, menu, item) { if(!Ovidius[id] && item == 3 || !Bugatron[id] && item == 4 || !Nocturne[id] && item == 5) { return ITEM_DISABLED } else { return ITEM_ENABLED } return PLUGIN_CONTINUE } public ChooseHero_Handle(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } item ++ if(heroj_igraca[id]) { nov_heroj_igraca[id] = item ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Heroj ce biti promenjen u sledecoj rundi") } else { heroj_igraca[id] = item UcitajPodatke(id, heroj_igraca[id]) Spawn(id) } return PLUGIN_CONTINUE }
public cmdOpis(id) { new menu = menu_create("\rIzaberi Heroja", "Opis_Handle") new heroj[64] for(new i = 1; i < sizeof imena_heroja; i++) { format(heroj, charsmax(heroj), "%s", imena_heroja[i]) menu_additem(menu, heroj) } menu_setprop(menu, MPROP_EXITNAME, "Izlaz") menu_display(id, menu) } public Opis_Handle(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) } menu_display(id, menu) item ++ ColorChat(id, GREEN, "[^3Multi Hero^4] %s", opis_heroja[item]) }
public cmdShop(id) { new ime_menija[128] format(ime_menija, charsmax(ime_menija), "\rShop:^nImas %d Honor Poena", honor_poeni_igraca[id]) new menu = menu_create(ime_menija, "Shop_Handle") menu_additem(menu, "Hero Shop") menu_additem(menu, "Item Shop") menu_setprop(menu, MPROP_EXITNAME, "Izlaz") menu_display(id, menu) } public Shop_Handle(id, menu, item) { switch(item) { case MENU_EXIT: { menu_destroy(menu) } case 0: { OpenHeroShop(id) } case 1: { OpenItemShop(id) } } }
public OpenHeroShop(id) { new ime_menija[128] format(ime_menija, charsmax(ime_menija), "\rHero Shop:^nImas %d Honor Poena", honor_poeni_igraca[id]) new menu = menu_create(ime_menija, "HeroShop_Handle") for(new i = 1; i < sizeof shop_imena_heroja; i++) { menu_additem(menu, shop_imena_heroja[i]) } menu_setprop(menu, MPROP_EXITNAME, "Nazad") menu_display(id, menu) } public HeroShop_Handle(id, menu, item) { switch(item) { case MENU_EXIT: { menu_destroy(menu) cmdShop(id) return PLUGIN_HANDLED } case 0: { if(honor_poeni_igraca[id] < 13645) { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Nemas dovoljno Honor Poena da kupis ovog heroja") OpenHeroShop(id) return PLUGIN_HANDLED } if(personal_level_igraca[id] < 3) { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Tvoj Personal Level nije dovoljno veliki da bi kupio ovog Heroja") OpenHeroShop(id) return PLUGIN_HANDLED } else { Ovidius[id] = true honor_poeni_igraca[id] -= 13645 SacuvajPodatke(id) ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Kupio si Heroja: ^3Ovidius!") } } case 1: { if(honor_poeni_igraca[id] < 15560) { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Nemas dovoljno Honor Poena da kupis ovog heroja") OpenHeroShop(id) return PLUGIN_HANDLED } if(personal_level_igraca[id] < 3) { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Tvoj Personal Level nije dovoljno veliki da bi kupio ovog Heroja") OpenHeroShop(id) return PLUGIN_HANDLED } else { Bugatron[id] = true honor_poeni_igraca[id] -= 15560 SacuvajPodatke(id) ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Kupio si Heroja: ^3OBugatron!") } } case 2: { if(honor_poeni_igraca[id] < 17555) { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Nemas dovoljno Honor Poena da kupis ovog heroja") OpenHeroShop(id) return PLUGIN_HANDLED } if(personal_level_igraca[id] < 5) { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Tvoj Personal Level nije dovoljno veliki da bi kupio ovog Heroja") OpenHeroShop(id) return PLUGIN_HANDLED } else { Nocturne[id] = true honor_poeni_igraca[id] -= 17555 SacuvajPodatke(id) ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Kupio si Heroja: ^3Nocturne!") } } } menu_display(id, menu) return PLUGIN_CONTINUE } public OpenItemShop(id) { new ime_menija[128] format(ime_menija, charsmax(ime_menija), "\rItem Shop:^nImas %d Honor Poena", honor_poeni_igraca[id]) new menu = menu_create(ime_menija, "OpetItemShop_Handle") menu_additem(menu, "\yMini XP Boost \r[\d100 \wXP\r] \yCena: \d300 \wHonor Points") menu_additem(menu, "\yMedium XP Boost \r[\d150 \wXP\r] \yCena: \d500 \wHonor Points") menu_additem(menu, "\yMega XP Boost \r[\d200 \wXP\r] \yCena: \d700 \wHonor Points") menu_setprop(menu, MPROP_EXITNAME, "Nazad") menu_display(id, menu) } public OpetItemShop_Handle(id, menu, item) { switch(item) { case MENU_EXIT: { menu_destroy(menu) cmdShop(id) return PLUGIN_HANDLED } case 0: { if(honor_poeni_igraca[id] < 300) { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Nemas dovoljno Honor Poena") OpenItemShop(id) return PLUGIN_HANDLED } else { iskustvo_igraca[id] += 100 honor_poeni_igraca[id] -= 300 ProveriIskustvo(id) ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Kupio si: ^3Mini XP Boost") } } case 1: { if(honor_poeni_igraca[id] < 500) { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Nemas dovoljno Honor Poena") OpenItemShop(id) return PLUGIN_HANDLED } else { iskustvo_igraca[id] += 150 honor_poeni_igraca[id] -= 500 ProveriIskustvo(id) ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Kupio si: ^3Medium XP Boost") } } case 2: { if(honor_poeni_igraca[id] < 700) { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Nemas dovoljno Honor Poena") OpenItemShop(id) return PLUGIN_HANDLED } else { iskustvo_igraca[id] += 200 honor_poeni_igraca[id] -= 700 ProveriIskustvo(id) ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Kupio si: ^3Mega XP Boost") } } } menu_display(id, menu) return PLUGIN_CONTINUE }
public cmdStats(id) { new menu = menu_create("\rIzaberi:", "Stats_Handle") if(enable_hud[id]) { menu_additem(menu, "\yHUD Poruka \r[\wIskljuceno\r]") } else { menu_additem(menu, "\yHUD Poruka \r[\wUkljuceno\r]") } menu_additem(menu, "\yMOTD Prozor") menu_setprop(menu, MPROP_EXITNAME, "Izlaz") menu_display(id, menu) } public Stats_Handle(id, menu, item) { switch(item) { case MENU_EXIT: { menu_destroy(menu) } case 0: { if(enable_hud[id]) { set_task(0.1, "ShowStats", id + 100) enable_hud[id] = false cmdStats(id) return PLUGIN_HANDLED } else { remove_task(id + 100) enable_hud[id] = true cmdStats(id) return PLUGIN_HANDLED } } case 1: { new szTextAdd[1024] new Add = sizeof(szTextAdd) - 1 format(szTextAdd, Add, "<font color='#00ffff' face='Comic Sans MS' size='4'><body bgcolor='#000000'>") format(szTextAdd, Add, "%s Heroj: %s<br>Level: %d<br>", szTextAdd, imena_heroja[heroj_igraca[id]], level_igraca[id]) format(szTextAdd, Add, "%s Personal Level: %d<br>Personal Iskustvo: %d<br>", szTextAdd, personal_level_igraca[id], personal_iskustvo_igraca[id]) format(szTextAdd, Add, "%s Honor Points: %d<br>", szTextAdd, honor_poeni_igraca[id]) format(szTextAdd, Add, "%s </font></body>", szTextAdd) show_motd(id, szTextAdd) } } menu_display(id, menu) return PLUGIN_CONTINUE }
public cmdTalents(id) { new ime_menija[128], prosireni_um[128], inteligentni_napad[128] format(ime_menija, charsmax(ime_menija), "\rNabudzi Heroja:^nImas %d Talent Poena", talent_poeni_igraca[id]) format(prosireni_um, charsmax(prosireni_um), "\yProsireni Um \r[\d+3 \wHP\r] [\d%d \w/ \d3\r]", talent_prosireni_um[id]) format(inteligentni_napad, charsmax(inteligentni_napad), "\yInteligentni Napad \r[\d+5 \wDamage\r] [\d%d \w/ \d3\r]", talent_inteligentni_napad[id]) new menu = menu_create(ime_menija, "Talents_Handle") menu_additem(menu, prosireni_um) menu_additem(menu, inteligentni_napad) menu_additem(menu, "\yResetuj Talente") menu_setprop(menu, MPROP_EXITNAME, "Izlaz") menu_display(id, menu) } public Talents_Handle(id, menu, item) { switch(item) { case MENU_EXIT: { menu_destroy(menu) } case 0: { if(talent_prosireni_um[id] >= 3) { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Maximalni Level talenta Dostignut!") cmdTalents(id) return PLUGIN_HANDLED } if(talent_poeni_igraca[id] < 1) { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Nemas dovoljno Talent Poena da bi naucio ovo!") cmdTalents(id) return PLUGIN_HANDLED } else { talent_prosireni_um[id] ++ talent_poeni_igraca[id] -- ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Talent Naucen") cmdTalents(id) return PLUGIN_HANDLED } } case 1: { if(talent_inteligentni_napad[id] >= 3) { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Maximalni Level talenta Dostignut!") cmdTalents(id) return PLUGIN_HANDLED } if(talent_poeni_igraca[id] < 1) { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Nemas dovoljno Talent Poena da bi naucio ovo!") cmdTalents(id) return PLUGIN_HANDLED } else { talent_inteligentni_napad[id] ++ talent_poeni_igraca[id] -- ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Talent Naucen") cmdTalents(id) return PLUGIN_HANDLED } } case 2: { talent_poeni_igraca[id] = talent_prosireni_um[id] + talent_inteligentni_napad[id] talent_prosireni_um[id] = 0 talent_inteligentni_napad[id] = 0 ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Restartovao si Talente") } } menu_display(id, menu) return PLUGIN_CONTINUE }
public cmdMisije(id) { new misija1[128] format(misija1, charsmax(misija1), "\yUbij 1000 Heroja \r[\d%d\w/\d1000\r] \yNagrada: \d500 \wHonor Poena", ubistva_igraca[id]) new menu = menu_create("Misije:", "Misije_Handle") menu_additem(menu, misija1) menu_setprop(menu, MPROP_EXITNAME, "Izlaz") menu_display(id, menu) } public Misije_Handle(id, menu, item) { switch(item) { case MENU_EXIT: { menu_destroy(menu) } case 0: { if(ubistva_igraca[id] < 1000) { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Jos uvek nisi zavrsio ovu misiju da bi pokupio nagradu") cmdMisije(id) return PLUGIN_HANDLED } else { ubistva_igraca[id] -= 1000 honor_poeni_igraca[id] += 500 ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Misija uspesno izvrsena") cmdMisije(id) return PLUGIN_HANDLED } } } menu_display(id, menu) return PLUGIN_CONTINUE }
public ShowStats(id) { id -= 100 /* if(!is_user_alive(id)) { new target = pev(id, pev_iuser2) if(target == 0) { return PLUGIN_HANDLED } if(level_igraca[target] < 100) { set_hudmessage(0, 127, 255, -1.0, 0.80, 0, 6.0, 0.1) ShowSyncHudMsg(id, SyncHud, "[Heroj: %s][Ability Power: %s]^n[Level Heroja: %d][Iskustvo Heroja: %d / %d]", imena_heroja[heroj_igraca[target]], ability_heroja[heroj_igraca[target]], level_igraca[target], iskustvo_igraca[target], iskustvo_levelu[level_igraca[target]]) } if(level_igraca[target] >= 100) { set_hudmessage(0, 127, 255, -1.0, 0.80, 0, 6.0, 0.1) ShowSyncHudMsg(id, SyncHud, "[Heroj: %s][Ability Power: %s]^n[Level Heroja: 100][Iskustvo Heroja: 50000 / 50000]", imena_heroja[heroj_igraca[target]], ability_heroja[heroj_igraca[target]]) } return PLUGIN_CONTINUE } */ if(level_igraca[id] < 100) { set_hudmessage(0, 127, 255, -1.0, 0.80, 0, 6.0, 0.1) ShowSyncHudMsg(id, SyncHud, "[Heroj: %s][Ability Power: %s]^n[Level Heroja: %d][Iskustvo Heroja: %d / %d]", imena_heroja[heroj_igraca[id]], ability_heroja[heroj_igraca[id]], level_igraca[id], iskustvo_igraca[id], iskustvo_levelu[level_igraca[id]]) } if(level_igraca[id] >= 100) { set_hudmessage(0, 127, 255, -1.0, 0.80, 0, 6.0, 0.1) ShowSyncHudMsg(id, SyncHud, "[Heroj: %s][Ability Power: %s]^n[Level Heroja: 100][Iskustvo Heroja: 50000 / 50000]", imena_heroja[heroj_igraca[id]], ability_heroja[heroj_igraca[id]]) } set_task(0.1, "ShowStats", id + 100) return PLUGIN_CONTINUE }
public ShowUputstvo(id) { id -= 101 switch(random(7)) { case 0: { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Da promenis heroja, kucaj: ^3/hero") } case 1: { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Da pogledas statistike, kucaj: ^3/statistike") } case 2: { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Da nabudzis heroja, kucaj: ^3/talent") } case 3: { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Da kupujes nove heroje, iteme, kucaj: ^3/shop") } case 4: { ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Da radis misije za razne nagrade, kucaj: ^3/misije") } case 5: { ColorChat(id, GREEN, "[^3Multi Hero^4] ^3Multi Hero Mod ^1by ^4MiloS -.-") } case 6: { ColorChat(id, GREEN, "[^3Multi Hero^4] ^3Da vidis opise Heroja, kucaj: ^3/opis") } } set_task(60.0, "ShowUputstvo", id + 101) }
public Death(zrtva, napadac) { if(zrtva != napadac) { if(!heroj_igraca[napadac]) { return PLUGIN_HANDLED } honor_poeni_igraca[napadac] += get_pcvar_num(p_KillHonor) iskustvo_igraca[napadac] += get_pcvar_num(p_KillXP) ProveriIskustvo(napadac) ubistva_igraca[napadac] ++ } new Float:szServerTime = get_gametime() g_RespawnMeter[zrtva] = level_igraca[zrtva] f_Respawn[zrtva] = szServerTime + g_RespawnMeter[zrtva] set_task(1.0, "RespawnMeter", zrtva, _, _, "a", g_RespawnMeter[zrtva]) return PLUGIN_CONTINUE } public RespawnMeter(id) { if(g_RespawnMeter[id] == 1) { set_hudmessage(0, 127, 255, -1.0, 0.74, 0, 6.0, 1.0) ShowSyncHudMsg(id, SyncHud1, "Respawnoavn si !") ExecuteHamB(Ham_CS_RoundRespawn, id) } else { set_hudmessage(0, 127, 255, -1.0, 0.74, 0, 6.0, 1.0) ShowSyncHudMsg(id, SyncHud1, "[Respawn za: %d]", g_RespawnMeter[id]) } g_RespawnMeter[id]-- }
public Spawn(id) { if(!is_user_alive(id)) { return PLUGIN_HANDLED } if(!heroj_igraca[id]) { cmdChooseHero(id) } if(nov_heroj_igraca[id]) { heroj_igraca[id] = nov_heroj_igraca[id] nov_heroj_igraca[id] = 0 strip_user_weapons(id) give_item(id, "weapon_knife") switch(get_user_team(id)) { case 1: { give_item(id, "weapon_glock18") } case 2: { give_item(id, "weapon_usp") } } UcitajPodatke(id, heroj_igraca[id]) } switch(heroj_igraca[id]) { case hero_Garex: { give_item(id, "weapon_ak47") cs_set_user_bpammo(id, CSW_AK47, 90) } case hero_Zero_Beam: { give_item(id, "weapon_m4a1") cs_set_user_bpammo(id, CSW_M4A1, 90) } case hero_Moopet: { give_item(id, "weapon_aug") cs_set_user_bpammo(id, CSW_AUG, 90) } case hero_Ovidius: { give_item(id, "weapon_mp5navy") cs_set_user_bpammo(id, CSW_MP5NAVY, 120) } case hero_Bugatron: { give_item(id, "weapon_tmp") cs_set_user_bpammo(id, CSW_TMP, 90) } case hero_Nocturne: { give_item(id, "weapon_awp") cs_set_user_bpammo(id, CSW_AWP, 30) } } set_user_health(id, get_user_health(id) + talent_prosireni_um[id] * 3) return PLUGIN_CONTINUE }
public EmitSound(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch) { if(equal(szSound, "common/wpn_denyselect.wav")) { KoristiAbility(id) return FMRES_SUPERCEDE } return FMRES_IGNORED }
public CurWeapon(id) { if(ability_Moopet[id]) { set_user_maxspeed(id, 400.0) } }
public TakeDamage(id, idinflictor, attacker, Float:damage, damagebits) { if(!is_user_alive(id) || !is_user_alive(attacker) || get_user_team(id) == get_user_team(attacker) || !heroj_igraca[attacker]) { return PLUGIN_HANDLED } damage += talent_inteligentni_napad[id] * 5 return PLUGIN_CONTINUE }
public ProveriIskustvo(id) { if(level_igraca[id] <= 100) { while(iskustvo_igraca[id] >= iskustvo_levelu[level_igraca[id]]) { level_igraca[id] ++ talent_poeni_igraca[id] ++ honor_poeni_igraca[id] += get_pcvar_num(p_LevelHonor) personal_iskustvo_igraca[id] += get_pcvar_num(p_PersonalLevelXP) ProveriPersonalIskustvo(id) SacuvajPodatke(id) ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Dobrodosao na Level %d", level_igraca[id]) } } } public ProveriPersonalIskustvo(id) { if(personal_level_igraca[id] <= 20) { while(personal_iskustvo_igraca[id] >= personal_iskustvo_levelu[personal_level_igraca[id]]) { personal_level_igraca[id] ++ SacuvajPodatke(id) ColorChat(id, GREEN, "[^3Multi Hero^4] ^1Dobrodosao na Personal Level %d", level_igraca[id]) } } }
public SacuvajPodatke(id) { new vaultkey[64], vaultdata[1024], valutbool[2] format(valutbool, 1, "%d#%d#%d", Ovidius[id] ? 1:0, Bugatron[id] ? 1:0, Nocturne[id] ? 1:0) format(vaultkey, 63, "%s-%i-mh", ID_igraca[id], heroj_igraca[id]) format(vaultdata, 1023, "%i#%i#%i#%i#%i#%i#%i#%i#%i", honor_poeni_igraca[id], talent_poeni_igraca[id], iskustvo_igraca[id], level_igraca[id], personal_level_igraca[id], personal_iskustvo_igraca[id], ubistva_igraca[id], talent_prosireni_um[id], talent_inteligentni_napad[id]) nvault_set(g_Vault, vaultkey, vaultdata) } public UcitajPodatke(id, heroj) { new vaultkey[64], vaultdata[1024], vaultbool[2] format(vaultkey, 63, "%s-%i-mh", ID_igraca[id], heroj) format(vaultdata, 1023, "%i#%i#%i#%i#%i#%i#%i#%i#%i", honor_poeni_igraca[id], talent_poeni_igraca[id], iskustvo_igraca[id], level_igraca[id], personal_level_igraca[id], personal_iskustvo_igraca[id], ubistva_igraca[id], talent_prosireni_um[id], talent_inteligentni_napad[id]) nvault_get(g_Vault, vaultkey, vaultdata, 255) replace_all(vaultdata, 255, "#", " ") new honorpoeniigraca[32], talentpoeniigraca[32], iskustvoigraca[32], leveligraca[32], personalleveligraca[32], personaliskustvoigraca[32], ubistvaigraca[32], talentprosirenium[32], talentinteligentninapad[32] parse(vaultdata, honorpoeniigraca, 31, talentpoeniigraca, 31, iskustvoigraca, 31, leveligraca, 31, personalleveligraca, 31, personaliskustvoigraca, 31, ubistvaigraca, 31, talentprosirenium, 31, talentinteligentninapad, 31) //Level, XP, Poeni honor_poeni_igraca[id] = str_to_num(honorpoeniigraca) talent_poeni_igraca[id] = str_to_num(talentpoeniigraca) iskustvo_igraca[id] = str_to_num(iskustvoigraca) level_igraca[id] = str_to_num(leveligraca) personal_level_igraca[id] = str_to_num(personalleveligraca) personal_iskustvo_igraca[id] = str_to_num(personaliskustvoigraca) ubistva_igraca[id] = str_to_num(ubistvaigraca) //Heroji (bools) Ovidius[id] = (str_to_num(vaultbool) == 1) ? true:false Bugatron[id] = (str_to_num(vaultbool) == 1) ? true:false Nocturne[id] = (str_to_num(vaultbool) == 1) ? true:false //Talenti talent_prosireni_um[id] = str_to_num(talentprosirenium) talent_inteligentni_napad[id] = str_to_num(talentinteligentninapad) }
public plugin_end() { nvault_close(g_Vault) }
|