|
Member
Join Date: Oct 2011
Location: Serbia, Nish
|

11-02-2011
, 09:51
Making a Cool Down
|
#1
|
PHP Code:
/* Item Shop: 0% Hero Shop: 40% Odabir Heroja: 60% Imena Heroja: 100% Talent Points & Talent System: 60% Honor Points & Honor System: 50% Leveling: 70% Respawn: 0% Ability Power: 70% [|||||\\\\\] */
#include <amxmodx> #include <cstrike> #include <fakemeta> #include <fun> #include <hamsandwich> #include <nvault>
#define PLUGIN "Multi Hero Mod" #define VERSION "0.5" #define AUTHOR "MiloS -.-"
enum { Nema = 0, hero_Garex, hero_Zero_Beam, hero_Moopet hero_OvidiuS, hero_Nocturne }
new const imena_heroja[][] = { "Nema", "Garex", "Zero-Beam", "Moopet", "OvidiuS", "Nocturne" }
new const ability_heroja[][] = { "Nema", "Vanish", "No-Clip", "Speed", "God Mode", "Low Gravity" }
new const shop_imena_heroja[][] = { "Nema", "\yOvidiuS \r[\wCena: \d13645 \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 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 talent_dobrodusni_duh[33]
new bool:OvidiuS[33] = false new bool:Nocturne[33] = false
new bool:enable_hud[33] new bool:iskoristio_ability[33] = false
new g_Vault
new ID_igraca[33][35]
new p_KillXP new p_KillHonor new p_LevelHonor new p_PersonalLevelXP
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) g_Vault = nvault_open("MultiHero") register_message(get_user_msgid("StatusIcon"), "StatusIconRemoveBuyZone") register_clcmd("say /heroj", "cmdChooseHero") register_clcmd("say /shop", "cmdShop") register_clcmd("say /statistike", "cmdStats") register_clcmd("say /talents", "cmdTalents") register_forward(FM_EmitSound, "EmitSound") 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") }
public client_putinserver(id) { set_task(0.1, "ShowStats", id + 100) } public client_authorized(id) { get_user_authid(id, ID_igraca[id], 34) } public client_disconnect(id) { remove_task(id + 100) 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 } if(heroj_igraca[id] == hero_Garex) { if(iskoristio_ability[id]) { client_print(id, print_chat, "[Multi Hero] Ability Power Mozes Koristiti Svake 20. Sekunde!") return PLUGIN_HANDLED } else { set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0) iskoristio_ability[id] = true client_print(id, print_chat, "[Multi Hero] Iskoristio si Ability Power!") set_task(20.0, "SkloniAbility", id) } } if(heroj_igraca[id] == hero_Zero_Beam) { if(iskoristio_ability[id]) { client_print(id, print_chat, "[Multi Hero] Ability Power Mozes Koristiti Svake 20. Sekunde!") return PLUGIN_HANDLED } else { set_user_noclip(id, 1) iskoristio_ability[id] = true client_print(id, print_chat, "[Multi Hero] Iskoristio si Ability Power!") set_task(20.0, "SkloniAbility", id) } } if(heroj_igraca[id] == hero_Moopet) { if(iskoristio_ability[id]) { client_print(id, print_chat, "[Multi Hero] Ability Power Mozes Koristiti Svake 20. Sekunde!") return PLUGIN_HANDLED } else { set_user_noclip(id, 1) iskoristio_ability[id] = true client_print(id, print_chat, "[Multi Hero] Iskoristio si Ability Power!") set_task(20.0, "SkloniAbility", id) } } if(heroj_igraca[id] == hero_OvidiuS) { if(iskoristio_ability[id]) { client_print(id, print_chat, "[Multi Hero] Ability Power Mozes Koristiti Svake 20. Sekunde!") return PLUGIN_HANDLED } else { set_user_godmode(id, 1) iskoristio_ability[id] = true client_print(id, print_chat, "[Multi Hero] Iskoristio si Ability Power!") set_task(20.0, "SkloniAbility", id) } } if(heroj_igraca[id] == hero_Nocturne) { if(iskoristio_ability[id]) { client_print(id, print_chat, "[Multi Hero] Ability Power Mozes Koristiti Svake 20. Sekunde!") return PLUGIN_HANDLED } else { set_user_gravity(id, get_user_gravity(id) - 0.7) iskoristio_ability[id] = true client_print(id, print_chat, "[Multi Hero] Iskoristio si Ability Power!") set_task(20.0, "SkloniAbility", id) } } return PLUGIN_CONTINUE }
public SkloniAbility(id) { if(heroj_igraca[id] == hero_Garex) { set_user_rendering(id) iskoristio_ability[id] = false client_print(id, print_chat, "[Multi Hero] Sada mozes da koristis Ability Power!") } if(heroj_igraca[id] == hero_Zero_Beam) { set_user_noclip(id, 0) iskoristio_ability[id] = false client_print(id, print_chat, "[Multi Hero] Sada mozes da koristis Ability Power!") } if(heroj_igraca[id] == hero_OvidiuS) { set_user_godmode(id, 0) iskoristio_ability[id] = false client_print(id, print_chat, "[Multi Hero] Sada mozes da koristis Ability Power!") } if(heroj_igraca[id] == hero_Nocturne) { set_user_gravity(id, 1.0) iskoristio_ability[id] = false client_print(id, print_chat, "[Multi Hero] Sada mozes da koristis Ability Power!") } }
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 || !Nocturne[id] && item == 4) { 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 client_print(id, print_chat, "[Multi Hero] Klasa ce biti Promenjena u sledecoj rundi") } else { heroj_igraca[id] = item UcitajPodatke(id, heroj_igraca[id]) Spawn(id) } return PLUGIN_CONTINUE }
public cmdShop(id) { new menu = menu_create("\rShop:", "Shop_Handle") menu_additem(menu, "Hero Shop") menu_additem(menu, "Item Shop [Under Development]") 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 menu = menu_create("\rHero Shop:", "HeroShop_Handle") for(new i = 1; i < sizeof shop_imena_heroja; i++) { menu_additem(menu, shop_imena_heroja[i]) } menu_display(id, menu) } public HeroShop_Handle(id, menu, item) { switch(item) { case MENU_EXIT: { menu_destroy(menu) } case 0: { if(honor_poeni_igraca[id] < 13645) { client_print(id, print_chat, "[Multi Hero] Nemas dovoljno poena da kupis ovog heroja") } if(personal_level_igraca[id] < 10) { client_print(id, print_chat, "[Multi Hero] Tvoj Personal Level Nije Dovoljan Da Bi Kupio Ovog Heroja") } else { OvidiuS[id] = true honor_poeni_igraca[id] -= 13645 client_print(id, print_chat, "[Multi Hero] Kupio si Heroja: OvidiuS!") } } case 1: { if(honor_poeni_igraca[id] < 17555) { client_print(id, print_chat, "[Multi Hero] Nemas dovoljno poena da kupis ovog heroja") } if(personal_level_igraca[id] < 15) { client_print(id, print_chat, "[Multi Hero] Tvoj personal Level nije dovoljno visok da bi kupio ovog heroja") } else { Nocturne[id] = true honor_poeni_igraca[id] -= 17555 client_print(id, print_chat, "[Multi Hero] Kupio si Heroja: Nocturne!") } } } menu_display(id, menu) } public OpenItemShop(id) { cmdShop(id) }
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 menu_destroy(menu) set_task(0.1, "cmdStats", id) } else { remove_task(id + 100) enable_hud[id] = true menu_destroy(menu) set_task(0.1, "cmdStats", id) } } 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) }
public cmdTalents(id) { new prosireni_um[128], inteligentni_napad[128], dobrodusni_duh[128] 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 \wXP (KILL)\r] [\d%d \w/ \d3\r]", talent_inteligentni_napad[id]) format(dobrodusni_duh, charsmax(dobrodusni_duh), "\yDobrodusni Duh \r[\d-2 \wSec (DEATH RECALL)\r] [\d%d \w/ \d5\r]", talent_dobrodusni_duh[id]) new menu = menu_create("\rTalents:", "Talents_Handle") menu_additem(menu, prosireni_um) menu_additem(menu, inteligentni_napad) menu_additem(menu, dobrodusni_duh) menu_setprop(menu, MPROP_EXITNAME, "Izlaz") menu_display(id, menu) } public Talents_Handle(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } menu_display(id, menu) switch(item) { case 0: { if(talent_prosireni_um[id] >= 3) { client_print(id, print_chat, "[Multi Hero] Maximalni Level talenta Dostignut!") return PLUGIN_HANDLED } if(talent_poeni_igraca[id] < 1) { client_print(id, print_chat, "[Multi Hero] Nemas dovoljno Talent Poena da bi naucio ovo!") return PLUGIN_HANDLED } else { talent_prosireni_um[id] ++ client_print(id, print_chat, "[Multi Hero] Talent Naucen") menu_destroy(menu) set_task(0.1, "cmdTalents", id) } } case 1: { if(talent_inteligentni_napad[id] >= 3) { client_print(id, print_chat, "[Multi Hero] Maximalni Level talenta Dostignut!") return PLUGIN_HANDLED } if(talent_poeni_igraca[id] < 1) { client_print(id, print_chat, "[Multi Hero] Nemas dovoljno Talent Poena da bi naucio ovo!") return PLUGIN_HANDLED } else { talent_inteligentni_napad[id] ++ client_print(id, print_chat, "[Multi Hero] Talent Naucen") menu_destroy(menu) set_task(0.1, "cmdTalents", id) } } case 2: { if(talent_dobrodusni_duh[id] >= 5) { client_print(id, print_chat, "[Multi Hero] Maximalni Level talenta Dostignut!") return PLUGIN_HANDLED } if(talent_poeni_igraca[id] < 1) { client_print(id, print_chat, "[Multi Hero] Nemas dovoljno Talent Poena da bi naucio ovo!") return PLUGIN_HANDLED } else { talent_dobrodusni_duh[id] ++ client_print(id, print_chat, "[Multi Hero] Talent Naucen") menu_destroy(menu) set_task(0.1, "cmdTalents", id) } } } return PLUGIN_CONTINUE }
public ShowStats(id) { id -= 100 set_hudmessage(0, 127, 255, -1.0, 0.80, 0, 6.0, 0.1) show_hudmessage(id, "[Heroj: %s][Ability: %s]^n[Level Heroja: %i][Iskustvo Heroja: %i / %i]^n[Personal Iskustvo: %i / %i][Personal Level: %i]", imena_heroja[heroj_igraca[id]], ability_heroja[heroj_igraca[id]], level_igraca[id], iskustvo_igraca[id], iskustvo_levelu[level_igraca[id]], personal_iskustvo_igraca[id], personal_level_igraca[id]) set_task(0.1, "ShowStats", id + 100) }
public Death(zrtva, napadac) { if(zrtva != napadac) { honor_poeni_igraca[napadac] += get_pcvar_num(p_KillHonor) iskustvo_igraca[napadac] += get_pcvar_num(p_KillXP) ProveriIskustvo(napadac) } }
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_OvidiuS: { give_item(id, "weapon_mp5navy") cs_set_user_bpammo(id, CSW_MP5NAVY, 120) } case hero_Nocturne: { give_item(id, "weapon_awp") cs_set_user_bpammo(id, CSW_AWP, 30) } } 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 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) client_print(id, print_chat, "[Multi Hero] Dobrodosao 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) client_print(id, print_chat, "[Multi Hero] Dobrodosao na Personal Level %d", level_igraca[id]) } } }
public SacuvajPodatke(id) { new vaultkey[64], vaultdata[256] format(vaultkey, 63, "%s-%i-mh", ID_igraca[id], heroj_igraca[id]) format(vaultdata, 255, "%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]) nvault_set(g_Vault, vaultkey, vaultdata) } public UcitajPodatke(id, heroj) { new vaultkey[64], vaultdata[256] format(vaultkey, 63, "%s-%i-mh", ID_igraca[id], heroj) format(vaultdata, 255, "%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]) nvault_get(g_Vault, vaultkey, vaultdata, 255) replace_all(vaultdata, 255, "#", " ") new honorpoeniigraca[32], talentpoeniigraca[32], iskustvoigraca[32], leveligraca[32], personalleveligraca[32], personaliskustvoigraca[32] parse(vaultdata, honorpoeniigraca, 31, talentpoeniigraca, 31, iskustvoigraca, 31, leveligraca, 31, personalleveligraca, 31, personaliskustvoigraca, 31) 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) }
public plugin_end() { nvault_close(g_Vault) }
So, i want cooldown on my ability's and i don't know how to make it, can anyone help me make a cooldown...
Like player Has Ability For 20 Seconds,and then he cant use it for next 2 minutes?
__________________
|
|