Member
|
02-25-2022
, 10:01
Re: Edited weapon damage
|
#6
|
Unfortunatelly it doesn't work for me, even though I really believed it to work :/ I also tried to put that syntax in hitbulet(id) as set_pev(target, pev_takedamage, 1.0). maybe I'm just gonna put the whole sma here, maybe it'll help:
PHP Code:
#include <amxmodx> #include <amxmisc> #include <fun> #include <cstrike> #include <hamsandwich> #include <fakemeta> #include <fakemeta_util> #include <engine>
#define is_user_valid(%1) (1 <= %1 <= 32) #define alive is_user_alive #define health get_user_health #define armor get_user_armor #define team get_user_team #define MVP ADMIN_LEVEL_G #define MVPplus ADMIN_LEVEL_H #define taskid 69 #define taskid_2 420 #define fm_cs_set_weapon_ammo(%1,%2) set_pdata_int(%1, 51, %2, 4)
//Klasicke new blood_spray new blood new gutkiller_damage new gutkiller_damagehs
//Prikazy[33] new gunON[33] new body[33] new metal[33] new zmhealtime[33] new zmghosttime[33]
new nozmchosen[33] new fastzm[33] new fastzmset[33] new jumpzm[33] new strongzm[33] new strongzmset[33] new vikingzm[33] new vikingzmset[33] new damagezm[33] new damagezmset[33] new healzm[33] new healzmset[33] new ghostzm[33] new ghostzmset[33] new classzombieset[33]
new immortalON[33]
new flashON[33] new ctshopspeed[33] new sekera[33] new regenlimit[33] new motorovka[33] new gutkiller[33]
new healthlevel[33] new healthpoint[33] new krokylevel[33] new krokypoint[33] new jumplevel[33] new jumppoint[33] new speedlevel[33] new speedpoint[33] new bodylevel[33] new bodypoint[33] new bodytime[33] new metallevel[33] new metalpoint[33] new metaltime[33]
//Consts const noammoguns = ((1<<CSW_HEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_KNIFE)|(1<<CSW_C4)) new const GUNSHOT_DECALS[] = {41, 42, 43, 44, 45} new const gunclipammo[] = { 0, 13, 0, 10, 0, 7, 0, 30, 30, 0, 15, 20, 25, 30, 35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, 0, 7, 30, 30, 0, 50 } //Enumy enum { anim_idle = 0, anim_draw_normal, anim_shoot_normal, } //Modely, Soundy, Spirity new v_sekera[] = "models/zombiechronicbykot/sekera/v_sekera.mdl" new p_sekera[] = "models/zombiechronicbykot/sekera/p_sekera.mdl"
new v_motorovka[] = "models/zombiechronicbykot/motorovka/v_motorovka.mdl" new p_motorovka[] = "models/zombiechronicbykot/motorovka/p_motorovka.mdl"
new v_gutkiller[] = "models/zombiechronicbykot/gutkiller/v_gutkiller.mdl" new p_gutkiller[] = "models/zombiechronicbykot/gutkiller/p_gutkiller.mdl"
new sekera_deploy[] = "zombiechronicbykot/sekera/sekera_deploy.wav" new sekera_hit1[] = "zombiechronicbykot/sekera/sekera_hit1.wav" new sekera_hit2[] = "zombiechronicbykot/sekera/sekera_hit2.wav" new sekera_hitwall[] = "zombiechronicbykot/sekera/sekera_hitwall.wav" new sekera_slash[] = "zombiechronicbykot/sekera/sekera_slash.wav" new sekera_stab[] = "zombiechronicbykot/sekera/sekera_stab.wav"
new motorovka_deploy[] = "zombiechronicbykot/motorovka/motorovka_deploy.wav" new motorovka_hit1[] = "zombiechronicbykot/motorovka/motorovka_hit1.wav" new motorovka_hit2[] = "zombiechronicbykot/motorovka/motorovka_hit2.wav" new motorovka_hit3[] = "zombiechronicbykot/motorovka/motorovka_hit3.wav" new motorovka_hit4[] = "zombiechronicbykot/motorovka/motorovka_hit4.wav" new motorovka_hitwall[] = "zombiechronicbykot/motorovka/motorovka_hitwall.wav" new motorovka_slash1[] = "zombiechronicbykot/motorovka/motorovka_slash1.wav" new motorovka_slash2[] = "zombiechronicbykot/motorovka/motorovka_slash2.wav" new motorovka_stab[] = "zombiechronicbykot/motorovka/motorovka_stab.wav"
new gutkiller_shoot1[] = "zombiechronicbykot/gutkiller/gutkiller_shoot1.wav"
new healsound[] = "zombiechronicbykot/heal.wav"
public plugin_init() { register_plugin("ZombieChronicByKot", "1.0", "Kotik") register_event("CurWeapon", "cur_weapon", "be", "1=1") register_event("DeathMsg", "spawn_handler", "a") register_event("Damage", "damage_event", "b", "2>0") register_clcmd("chooseteam", "hlavni_menu") register_clcmd("say", "say_handler") register_clcmd("say_team", "say_handler") register_logevent("nove_kolo", 2, "1=Round_Start") register_forward(FM_EmitSound, "fw_playerprethink") register_forward(FM_EmitSound, "fw_emitsound") register_forward(FM_CmdStart, "fw_cmdstart", 1) register_forward(FM_UpdateClientData, "fw_updateclientdata", 1) register_think("gutkiller", "fw_think") RegisterHam(Ham_Spawn, "player", "ham_spawn_pre", 0) RegisterHam(Ham_Spawn, "player", "ham_spawn_post", 1) RegisterHam(Ham_TakeDamage, "player", "ham_takedamage") RegisterHam(Ham_Killed, "player", "ham_killed") RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "ham_wpa", 1) gutkiller_damage = register_cvar("zm_gut_damage", "187") gutkiller_damagehs = register_cvar("zm_gut_damagehs", "245") } public plugin_precache() { precache_model("models/player/zm_classic/zm_classic.mdl") precache_model(v_sekera) precache_model(p_sekera) precache_model(v_motorovka) precache_model(p_motorovka) precache_model(v_gutkiller) precache_model(p_gutkiller) precache_sound(sekera_deploy) precache_sound(sekera_hit1) precache_sound(sekera_hit2) precache_sound(sekera_hitwall) precache_sound(sekera_slash) precache_sound(sekera_stab) precache_sound(motorovka_deploy) precache_sound(motorovka_hit1) precache_sound(motorovka_hit2) precache_sound(motorovka_hit3) precache_sound(motorovka_hit4) precache_sound(motorovka_hitwall) precache_sound(motorovka_slash1) precache_sound(motorovka_slash2) precache_sound(motorovka_stab) precache_sound(gutkiller_shoot1) precache_sound(healsound) blood_spray = precache_model("sprites/bloodspray.spr") blood = precache_model("sprites/blood.spr") } public client_putinserver(id) { body[id] = 290 bodypoint[id] = body[id] bodytime[id] = 1 metal[id] = 9 metalpoint[id] = metal[id] metaltime[id] = 1 nozmchosen[id] = 1 gunON[id] = 0 immortalON[id] = 0 set_task(0.1, "infonaobraze", id+taskid_2, _, _, "b") } public client_disconnect(id) { remove_task(id+taskid_2) } public infonaobraze(id) { id -= taskid_2 set_hudmessage(142, 239, 39, 0.35, 0.90, 0, 6.0, 2.5) ShowSyncHudMsg(id, CreateHudSyncObj(), "Zdravi: %i |-| Armor: %i |-| Body: %i |-| Metal: %i", health(id), armor(id), body[id], metal[id]) } public nove_kolo(id) { for(new i = 0; i < get_maxplayers(); i++) { set_task(0.1, "task_remove", i) gunON[i] = 1 flashON[i] = 1 } } public spawn_handler() { new victim = read_data(2) set_task(4.9, "spawn_handler2", victim) set_task(5.0, "spawn_handler2", victim) return PLUGIN_HANDLED } public spawn_handler2(victim) { cs_set_user_team(victim, CS_TEAM_T) spawn(victim) give_item(victim, "weapon_knife") set_task(0.2, "task_remove", victim) } public damage_event(id) { if(alive(id)) { new weapon new attacker = get_user_attacker(id, weapon) if(weapon == CSW_KNIFE) { new Float:vec[3] new Float:oldvelo[3] get_user_velocity(id, oldvelo) create_velocity_vector(id, attacker, vec) vec[0] += oldvelo[0] vec[1] += oldvelo[1] set_user_velocity(id , vec) } } } public task_remove(victim) { remove_task(victim+taskid) } public ham_spawn_pre(id) { set_user_godmode(id, 1) set_task(1.0, "spawn_immortal", id) set_user_health(id, 100) set_user_maxspeed(id, 250.0) set_user_gravity(id, 1.0) cs_reset_user_model(id) fastzmset[id] = 0 strongzmset[id] = 0 vikingzmset[id] = 0 damagezmset[id] = 0 healzmset[id] = 0 ghostzmset[id] = 0 zmhealtime[id] = 0 zmghosttime[id] = 0 sekera[id] = 0 ctshopspeed[id] = 0 regenlimit[id] = 3 motorovka[id] = 0 gutkiller[id] = 0 } public ham_spawn_post(id) { if(team(id) == 1) { if(fastzm[id]) { set_user_maxspeed(id, 375.0) set_user_health(id, 1750) fastzmset[id] = 1 strongzmset[id] = 0 vikingzmset[id] = 0 damagezmset[id] = 0 healzmset[id] = 0 ghostzmset[id] = 0 nozmchosen[id] = 0 } if(jumpzm[id]) { set_user_gravity(id, 0.3) set_user_health(id, 1900) fastzmset[id] = 0 strongzmset[id] = 0 vikingzmset[id] = 0 damagezmset[id] = 0 healzmset[id] = 0 ghostzmset[id] = 0 nozmchosen[id] = 0 } if(strongzm[id]) { set_user_health(id, 2500) set_user_maxspeed(id, 200.0) set_user_gravity(id, 1.5) fastzmset[id] = 0 strongzmset[id] = 1 vikingzmset[id] = 0 damagezmset[id] = 0 healzmset[id] = 0 ghostzmset[id] = 0 nozmchosen[id] = 0 } if(vikingzm[id]) { set_user_health(id, 1500) fastzmset[id] = 0 strongzmset[id] = 0 vikingzmset[id] = 1 damagezmset[id] = 0 healzmset[id] = 0 ghostzmset[id] = 0 nozmchosen[id] = 0 } if(damagezm[id]) { set_user_health(id, 1750) fastzmset[id] = 0 strongzmset[id] = 0 vikingzmset[id] = 0 damagezmset[id] = 1 healzmset[id] = 0 ghostzmset[id] = 0 nozmchosen[id] = 0 } if(healzm[id]) { set_user_health(id, 1750) fastzmset[id] = 1 strongzmset[id] = 0 vikingzmset[id] = 0 damagezmset[id] = 0 healzmset[id] = 1 ghostzmset[id] = 0 nozmchosen[id] = 0 } if(ghostzm[id]) { set_user_health(id, 1500) fastzmset[id] = 1 strongzmset[id] = 0 vikingzmset[id] = 0 damagezmset[id] = 0 healzmset[id] = 0 ghostzmset[id] = 1 nozmchosen[id] = 0 } if(nozmchosen[id]) { cs_set_user_model(id, "zm_classic") set_user_health(id, 2000) } } } public spawn_immortal(id) { set_user_godmode(id, 0) } public say_handler(id) { new message[192], name[32] read_args(message, 191) remove_quotes(message) get_user_name(id, name, 31) if(get_user_flags(id) & MVP)(alive(id) ? format(message, 191, "^4[%s] ^3%s : ^4%s", "MVP", name, message) : format(message, 191, "^1*DEAD* ^4[%s] ^3%s : ^4%s", "MVP", name, message)) for(new i = 1; i <= get_maxplayers(); i++) { if(!is_user_connected(i)) continue if(alive(id) && alive(i) ||!alive(id) && !alive(i)) { message_begin(MSG_ONE, get_user_msgid("SayText"), {0,0,0}, i) write_byte(id) write_string(message) message_end() } } return PLUGIN_HANDLED } public cur_weapon(id) { new weapon = read_data(2) if(!(noammoguns & (1<<weapon))) { fm_cs_set_weapon_ammo(get_pdata_cbase(id, 373), gunclipammo[weapon]) } if(fastzmset[id]) { set_user_maxspeed(id, 375.0) } if(strongzmset[id]) { set_user_maxspeed(id, 200.0) } if(classzombieset[id]) { set_user_maxspeed(id, 375.0) } if(ctshopspeed[id]) { set_user_maxspeed(id, 350.0) } if(team(id) == 1) { set_task(0.1, "zm_stripweapons", id) } if(sekera[id] && weapon == CSW_KNIFE) { set_pev(id, pev_viewmodel2, v_sekera) set_pev(id, pev_weaponmodel2, p_sekera) } if(motorovka[id] && weapon == CSW_KNIFE) { set_pev(id, pev_viewmodel2, v_motorovka) set_pev(id, pev_weaponmodel2, p_motorovka) } if(gutkiller[id] && weapon == CSW_M3) { set_pev(id, pev_viewmodel2, v_gutkiller) set_pev(id, pev_weaponmodel2, p_gutkiller) native_playanim(id, anim_draw_normal) } } public zm_stripweapons(id) { if(get_user_weapon(id) != CSW_KNIFE) { strip_user_weapons(id) give_item(id, "weapon_knife") } } public hlavni_menu(id) { new mainm = menu_create("\yHlavni menu", "hlavni_menu2") menu_additem(mainm, "\rVyber zbrane") menu_additem(mainm, "Vyber zombie") menu_additem(mainm, "\rObchod za body") menu_additem(mainm, "Vyroba z metalu") menu_additem(mainm, "\rVylepseni") menu_additem(mainm, "Smenarna") menu_additem(mainm, "\rTutorialy") menu_additem(mainm, "\rScrap") menu_additem(mainm, "Nastaveni \yFirst \wZombie") menu_display(id, mainm) return PLUGIN_HANDLED } public hlavni_menu2(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } switch(item) { case 0: { if(alive(id) && team(id) == 2 && gunON[id] == 1) { vyberzb_menu(id) } else { colorchat(id, "!g[ZM] !yTuto funkci nelze momentalne pouzit") } } case 1: { vyberzm_menu(id) } case 2: { obchod_menu(id) } case 4: { upgrade_menu(id) } case 7: { scrap_menu(id) } } return PLUGIN_HANDLED } public vyberzb_menu(id) { new vybzb = menu_create("\yVyber zbrani", "vyberzb_menu2") menu_additem(vybzb, "M4A1") menu_additem(vybzb, "AK47") menu_additem(vybzb, "P90") menu_additem(vybzb, "UMP45") menu_additem(vybzb, "Famas") menu_additem(vybzb, "Galil") menu_additem(vybzb, "AWP") menu_display(id, vybzb) } public vyberzb_menu2(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } vybersc_menu(id) gunON[id] = 0 switch(item) { case 0: { give_item(id, "weapon_m4a1") cs_set_user_bpammo(id, CSW_M4A1, 250) } case 1: { give_item(id, "weapon_ak47") cs_set_user_bpammo(id, CSW_AK47, 250) } case 2: { give_item(id, "weapon_p90") cs_set_user_bpammo(id, CSW_P90, 250) } case 3: { give_item(id, "weapon_ump45") cs_set_user_bpammo(id, CSW_UMP45, 250) } case 4: { give_item(id, "weapon_famas") cs_set_user_bpammo(id, CSW_FAMAS, 250) } case 5: { give_item(id, "weapon_galil") cs_set_user_bpammo(id, CSW_GALIL, 250) } case 6: { give_item(id, "weapon_awp") cs_set_user_bpammo(id, CSW_AWP, 250) } } return PLUGIN_CONTINUE } public vybersc_menu(id) { new vybsc = menu_create("\yVyber pistoli", "vybersc_menu2") menu_additem(vybsc, "Glock18") menu_additem(vybsc, "USP") menu_additem(vybsc, "P228") menu_additem(vybsc, "Deagle") menu_additem(vybsc, "Five-Seven") menu_additem(vybsc, "Dual Elite") menu_display(id, vybsc) } public vybersc_menu2(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } switch(item) { case 0: { give_item(id, "weapon_glock18") cs_set_user_bpammo(id, CSW_GLOCK18, 90) } case 1: { give_item(id, "weapon_usp") cs_set_user_bpammo(id, CSW_USP, 90) } case 2: { give_item(id, "weapon_p228") cs_set_user_bpammo(id, CSW_P228, 90) } case 3: { give_item(id, "weapon_deagle") cs_set_user_bpammo(id, CSW_DEAGLE, 90) } case 4: { give_item(id, "weapon_fiveseven") cs_set_user_bpammo(id, CSW_FIVESEVEN, 90) } case 5: { give_item(id, "weapon_elite") cs_set_user_bpammo(id, CSW_ELITE, 90) } } return PLUGIN_HANDLED } public vyberzm_menu(id) { new zmenu = menu_create("\yVyber zombie", "vyberzm_menu2") menu_additem(zmenu, "\rFast \wZombie") menu_additem(zmenu, "\rJump \wZombie") menu_additem(zmenu, "\rStrong \wZombie") menu_additem(zmenu, "\rViking \wZombie") menu_additem(zmenu, "\y[MVP] \rDamage \wZombie") menu_additem(zmenu, "\y[MVP+] \rHeal \wZombie") menu_additem(zmenu, "\y[MVP+] \rGhost \wZombie") menu_display(id, zmenu) } public vyberzm_menu2(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } switch(item) { case 0: { fastzm[id] = 1 jumpzm[id] = 0 strongzm[id] = 0 vikingzm[id] = 0 damagezm[id] = 0 healzm[id] = 0 ghostzm[id] = 0 colorchat(id, "!g[ZM] !yPri dalsim spawnu se stanes Fast zombie. 1750 HP, 1.5x vyssi rychlost.") } case 1: { fastzm[id] = 0 jumpzm[id] = 1 strongzm[id] = 0 vikingzm[id] = 0 damagezm[id] = 0 healzm[id] = 0 ghostzm[id] = 0 colorchat(id, "!g[ZM] !yPri dalsim spawnu budes Jump zombie. 1900 HP, 3x mensi gravitace.") } case 2: { fastzm[id] = 0 jumpzm[id] = 0 strongzm[id] = 1 vikingzm[id] = 0 damagezm[id] = 0 healzm[id] = 0 ghostzm[id] = 0 colorchat(id, "!g[ZM] !yPri dalsim spawnu budes Strong zombie. 2500 HP, pomalejsi a min skace.") } case 3: { fastzm[id] = 0 jumpzm[id] = 0 strongzm[id] = 0 vikingzm[id] = 1 damagezm[id] = 0 healzm[id] = 0 ghostzm[id] = 0 colorchat(id, "!g[ZM] !yPri dalsim spawnu budes Viking zombie. 1500 HP, odolnejsi vuci strelbe do hlavy.") } case 4: { if(get_user_flags(id) & MVP) { fastzm[id] = 0 jumpzm[id] = 0 strongzm[id] = 0 vikingzm[id] = 0 damagezm[id] = 1 healzm[id] = 0 ghostzm[id] = 0 colorchat(id, "!g[ZM] !yPri dalsim spawnu budes Damage zombie. 1750 HP, 2x vetsi damage.") } else { client_print(id, print_chat, "Pro Heal zombie nemate MVP") } } case 5: { if(get_user_flags(id) & MVPplus) { fastzm[id] = 0 jumpzm[id] = 0 strongzm[id] = 0 vikingzm[id] = 0 damagezm[id] = 0 healzm[id] = 1 ghostzm[id] = 0 client_print(id, print_chat, "Pri dalsim spawnu budes Heal zombie. 1750 HP, moznost vylecit vsechny zombie pomoci E.") } else { client_print(id, print_chat, "Pro Heal zombie nemate MVP+") } } case 6: { if(get_user_flags(id) & MVPplus) { fastzm[id] = 0 jumpzm[id] = 0 strongzm[id] = 0 vikingzm[id] = 0 damagezm[id] = 0 healzm[id] = 0 ghostzm[id] = 1 client_print(id, print_chat, "Pri dalsim spawnu budes Ghost zombie. 1500 HP, moznost zneviditelnit se na 10 vterin pomoci E.") } else { client_print(id, print_chat, "Pro Ghost zombie nemate MVP+") } } } return PLUGIN_HANDLED } public obchod_menu(id) { if(alive(id)) { if(team(id) == 1) { new shopt = menu_create("\yObchod pro zombie", "obchod_menu1") menu_additem(shopt, "Protilatka \y50 bodu") menu_additem(shopt, "Nesmrtelnost na 5 vterin \y40 bodu") menu_additem(shopt, "+500HP \y35 bodu") menu_additem(shopt, "HE granat \y100 bodu") menu_additem(shopt, "\y[MVP+] \rCLASSMAN \y150 bodu") menu_display(id, shopt) } if(team(id) == 2) { new shopct = menu_create("\yObchod pro CT", "obchod_menu2") menu_additem(shopct, "HE granat \y10 bodu") menu_additem(shopct, "Flash granat \y20 bodu \w(jednou za kolo)") menu_additem(shopct, "Mensi gravitace \y30 bodu") menu_additem(shopct, "Vyssi rychlost \y45 bodu") menu_additem(shopct, "Sekera \y55 bodu") menu_additem(shopct, "Regenerace \y70 bodu") menu_additem(shopct, "Motorova pila \y80 bodu") menu_additem(shopct, "Gutkiller \y100 bodu") menu_display(id, shopct) } } } public obchod_menu1(id, menu, item) { if(team(id) == 2) { client_print(id, print_chat, "Nejsi v zombie tymu.") return PLUGIN_HANDLED } if(!alive(id)) { client_print(id, print_chat, "Nejsi nazivu.") return PLUGIN_HANDLED } if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } switch(item) { case 0: { if(body[id] >= 50) { body[id] -= 50 set_user_health(id, 100) set_user_maxspeed(id, 250.0) set_user_gravity(id, 1.0) cs_set_user_team(id, CS_TEAM_CT) cs_reset_user_model(id) gunON[id] = 1 fastzmset[id] = 0 strongzmset[id] = 0 vikingzmset[id] = 0 healzmset[id] = 0 ghostzmset[id] = 0 classzombieset[id] = 0 regenlimit[id] = 3 } else { client_print(id, print_chat, "Nemas na protilatku dost bodu.") } } case 1: { if(body[id] >= 40) { if(!immortalON[id]) { body[id] -= 40 set_user_godmode(id, 1) set_task(5.0, "cancel_immortal", id) client_print(id, print_center, "Aktivoval jsi nesmrtelnost.") message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, id) write_short(4096) write_short(16384) write_short(0x0000) write_byte(150) write_byte(0) write_byte(0) write_byte(150) message_end() immortalON[id] = 1 } else { client_print(id, print_chat, "Prave mas aktivovanou nesmrtelnost.") } } else { client_print(id, print_chat, "Nemas na nesmrtelnost dost bodu.") } } case 2: { if(body[id] >= 35) { body[id] -= 35 set_user_health(id, health(id) + 500) message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, id) write_short(4096) write_short(2048) write_short(0x0000) write_byte(0) write_byte(120) write_byte(0) write_byte(150) message_end() } else { client_print(id, print_chat, "Nemas na +500HP dost bodu.") } } case 3: { if(body[id] >= 100) { body[id] -= 100 give_item(id, "weapon_hegrenade") cs_set_user_bpammo(id, CSW_HEGRENADE, 1) } else { client_print(id, print_chat, "Nemas na HE granat dost bodu.") } } case 4: { if(get_user_flags(id) & MVPplus) { if(body[id] >= 150) { body[id] -= 150 classzombieset[id] = 1 set_user_health(id, 2500) set_user_maxspeed(id, 375.0) set_user_gravity(id, 0.3) vikingzmset[id] = 1 damagezmset[id] = 1 healzmset[id] = 1 zmhealtime[id] = 1 zmghosttime[id] = 1 client_print(id, print_chat, "Nyni do tve umrti mas staty od kazde zombie tridy!") message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, id) write_short(8192) write_short(4096) write_short(0x0000) write_byte(200) write_byte(0) write_byte(0) write_byte(150) message_end() message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, id) write_short(255<<14) write_short(10<<14) write_short(255<<14) message_end() } else { client_print(id, print_chat, "Nemas na classmana dost bodu.") } } else { client_print(id, print_chat, "Nemas na classmana MVP+.") } } } return PLUGIN_HANDLED } public obchod_menu2(id, menu, item) { if(team(id) == 1) { client_print(id, print_chat, "Nejsi v CT tymu.") return PLUGIN_HANDLED } if(!alive(id)) { client_print(id, print_chat, "Nejsi nazivu.") return PLUGIN_HANDLED } if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } switch(item) { case 0: { if(body[id] >= 10) { body[id] -= 10 give_item(id, "weapon_hegrenade") cs_set_user_bpammo(id, CSW_HEGRENADE, 1) } else { client_print(id, print_chat, "Nemas na HE granat dost bodu.") } } case 1: { if(body[id] >= 20) { if(flashON[id]) { body[id] -= 20 give_item(id, "weapon_flashbang") cs_set_user_bpammo(id, CSW_FLASHBANG, 1) flashON[id] = 0 } else { client_print(id, print_chat, "Dalsi flash si muzes koupit az dalsi kolo.") } } else { client_print(id, print_chat, "Nemas na Flash granat dost bodu.") } } case 2: { if(body[id] >= 30) { body[id] -= 30 set_user_gravity(id, 0.5) } else { client_print(id, print_chat, "Nemas na nizsi gravitaci dost bodu.") } } case 3: { if(body[id] >= 45) { body[id] -= 45 set_user_maxspeed(id, 350.0) ctshopspeed[id] = 1 } else { client_print(id, print_chat, "Nemas na vyssi rychlost dost bodu.") } } case 4: { if(body[id] >= 55) { body[id] -= 55 sekera[id] = 1 ham_strip_weapon(id, "weapon_knife") give_item(id, "weapon_knife") } else { client_print(id, print_chat, "Nemas na sekeru dost bodu.") } } case 5: { if(body[id] >= 70) { if(regenlimit[id] != 0) { body[id] -= 70 set_task(1.0, "ct_regenerace", id+taskid, _, _, "b") regenlimit[id] -= 1 if(regenlimit[id] == 2) { client_print(id, print_chat, "Regeneraci si muzes koupi vylepsit jeste dvakrat.") } if(regenlimit[id] == 1) { client_print(id, print_chat, "Regeneraci si muzes koupi vylepsit jeste jednou.") } if(regenlimit[id] == 0) { client_print(id, print_chat, "Uz sis koupil maximum vylepseni regenerace.") } } else { client_print(id, print_chat, "Uz jsi koupil maximum vylepseni regenerace.") } } else { client_print(id, print_chat, "Nemas na regeneraci dost bodu.") } } case 6: { if(body[id] >= 80) { body[id] -= 80 motorovka[id] = 1 ham_strip_weapon(id, "weapon_knife") give_item(id, "weapon_knife") } else { client_print(id, print_chat, "Nemas na motorovou pilu dost bodu.") } } case 7: { if(body[id] >= 100) { body[id] -= 100 gutkiller[id] = 1 ham_strip_weapon(id, "weapon_m3") give_item(id, "weapon_m3") } else { client_print(id, print_chat, "Nemas na gutkiller dost bodu.") } } } return PLUGIN_HANDLED } public ct_regenerace(id) { id -= taskid set_user_health(id, health(id) + 1) if(health(id) > 100) { set_user_health(id, 100) } } public upgrade_menu(id) { new upgmenu = menu_create("\yVylepseni", "hmupgrade_menu2") menu_additem(upgmenu, "\y[CT] \wZdravi") menu_additem(upgmenu, "\y[CT] \wTiche kroky") menu_additem(upgmenu, "\y[CT] \wRychlost") menu_additem(upgmenu, "\y[CT] \wSkoky") menu_additem(upgmenu, "\y[CT] \w+ \r[ZM] \wVice bodu za kill") menu_additem(upgmenu, "\y[CT] \w+ \r[ZM] \wVice metalu ze scrapu") menu_display(id, upgmenu) } public hmupgrade_menu2(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } switch(item) { case 0: { colorchat(id, "!g[ZM] - LEVEL = %i", healthlevel[id]) } case 1: { colorchat(id, "!g[ZM] - LEVEL = %i", krokylevel[id]) } case 2: { colorchat(id, "!g[ZM] - LEVEL = %i", speedlevel[id]) } case 3: { colorchat(id, "!g[ZM] - LEVEL = %i", jumplevel[id]) } case 4: { colorchat(id, "!g[ZM] - LEVEL = %i", bodylevel[id]) } case 5: { colorchat(id, "!g[ZM] - LEVEL = %i", metallevel[id]) } } return PLUGIN_HANDLED } public scrap_menu(id) { if(alive(id)) { new maingunm = menu_create("\yVyberte kategorii:", "scrap_menu2") menu_additem(maingunm, "Scrap aktualni \yprimarni \wnebo \ysekundarni \wzbran") menu_additem(maingunm, "Scrap aktualni \rspecialni \wzbran") menu_display(id, maingunm) } } public scrap_menu2(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } switch(item) { case 0: { classicguns_menu(id) } case 1: { specialguns_menu(id) } } return PLUGIN_HANDLED } public classicguns_menu(id) { new wpn = get_user_weapon(id) if(alive(id)) { if(wpn == CSW_AK47) { ham_strip_weapon(id, "weapon_ak47") metal[id] += 1+metallevel[id] metalpoint[id] += 1 client_print(id, print_chat, "AK47 byla scrapnuta.") } if(wpn == CSW_M4A1) { ham_strip_weapon(id, "weapon_m4a1") metal[id] += 1+metallevel[id] metalpoint[id] += 1 client_print(id, print_chat, "M4A1 byla scrapnuta.") } if(wpn == CSW_AWP) { ham_strip_weapon(id, "weapon_awp") metal[id] += 1+metallevel[id] metalpoint[id] += 1 client_print(id, print_chat, "AWP bylo scrapnuto.") } if(wpn == CSW_FAMAS) { ham_strip_weapon(id, "weapon_famas") metal[id] += 1+metallevel[id] metalpoint[id] += 1 client_print(id, print_chat, "Famas byl scrapnut.") } if(wpn == CSW_GALIL) { ham_strip_weapon(id, "weapon_galil") metal[id] += 1+metallevel[id] metalpoint[id] += 1 client_print(id, print_chat, "Galil byl scrapnut.") } if(wpn == CSW_P90) { ham_strip_weapon(id, "weapon_p90") metal[id] += 1+metallevel[id] metalpoint[id] += 1 client_print(id, print_chat, "P90 byla scrapnuta.") } if(wpn == CSW_UMP45) { ham_strip_weapon(id, "weapon_ump45") metal[id] += 1+metallevel[id] metalpoint[id] += 1 client_print(id, print_chat, "UMP45 byla scrapnuta.") } if(wpn == CSW_GLOCK18) { ham_strip_weapon(id, "weapon_glock18") metal[id] += 1+metallevel[id] metalpoint[id] += 1 client_print(id, print_chat, "Glock18 byl scrapnut.") } if(wpn == CSW_USP) { ham_strip_weapon(id, "weapon_usp") metal[id] += 1+metallevel[id] metalpoint[id] += 1 client_print(id, print_chat, "USP bylo scrapnuto.") } if(wpn == CSW_P228) { ham_strip_weapon(id, "weapon_p228") metal[id] += 1+metallevel[id] metalpoint[id] += 1 client_print(id, print_chat, "P228 byla scrapnuta.") } if(wpn == CSW_DEAGLE) { ham_strip_weapon(id, "weapon_deagle") metal[id] += 1+metallevel[id] metalpoint[id] += 1 client_print(id, print_chat, "Deagle byl scrapnut.") } if(wpn == CSW_ELITE) { ham_strip_weapon(id, "weapon_elite") metal[id] += 2+metallevel[id] metalpoint[id] += 2 client_print(id, print_chat, "Dual Elite byly scrapnuty.") } if(wpn == CSW_FIVESEVEN) { ham_strip_weapon(id, "weapon_fiveseven") metal[id] += 1+metallevel[id] metalpoint[id] += 1 client_print(id, print_chat, "Fiveseven byl scrapnut.") } if(wpn == CSW_KNIFE) { client_print(id, print_chat, "Nuz nemuzes scrapnout.") } if(metalpoint[id] >= 10*metaltime[id]) { metallevel[id] += 1 metaltime[id] += 1 colorchat(id, "!g[ZM] !yPostoupil jsi v sekci vylepseni metalu o +1 level!") } else if(metallevel[id] == 3) { //Nic } } } public specialguns_menu(id) { new wpn = get_user_weapon(id) if(alive(id)) { if(sekera[id] && wpn == CSW_KNIFE) { sekera[id] = 0 ham_strip_weapon(id, "weapon_knife") give_item(id, "weapon_knife") metal[id] += 3+metallevel[id] metalpoint[id] += 3 client_print(id, print_chat, "Sekera byla scrapnuta.") } if(motorovka[id] && wpn == CSW_KNIFE) { motorovka[id] = 0 ham_strip_weapon(id, "weapon_knife") give_item(id, "weapon_knife") metal[id] += 5+metallevel[id] metalpoint[id] += 5 client_print(id, print_chat, "Motorova pila byla scrapnuta.") } if(gutkiller[id] && wpn == CSW_M3) { gutkiller[id] = 0 ham_strip_weapon(id, "weapon_m3") metal[id] += 8+metallevel[id] metalpoint[id] += 8 client_print(id, print_chat, "Gutkiller byl scrapnut.") } if(metalpoint[id] >= 10*metaltime[id]) { metallevel[id] += 1 metaltime[id] += 1 colorchat(id, "!g[ZM] !yPostoupil jsi v sekci vylepseni metalu o +1 level!") } else if(metallevel[id] == 3) { //Nic } } } public cancel_immortal(id) { client_print(id, print_center, "Nesmrtelnost ti skoncila.") set_user_godmode(id, 0) immortalON[id] = 0 } public ham_takedamage(victim, inflictor, attacker, Float:damage) { if(is_user_valid(victim)) { if(vikingzmset[victim]) { if(get_pdata_int(victim, 75) == HIT_HEAD) { SetHamParamFloat(4, damage/4) } } } if(is_user_valid(attacker)) { if(damagezmset[attacker]) { if(get_user_weapon(attacker) == CSW_KNIFE) { SetHamParamFloat(4, damage*2) } } if(sekera[attacker]) { if(get_user_weapon(attacker) == CSW_KNIFE) { if(get_pdata_int(victim, 75) == HIT_HEAD) { SetHamParamFloat(4, damage+312) } else { SetHamParamFloat(4, damage+197) } } } if(motorovka[attacker]) { if(get_user_weapon(attacker) == CSW_KNIFE) { if(get_pdata_int(victim, 75) == HIT_HEAD) { SetHamParamFloat(4, damage+472) } else { SetHamParamFloat(4, damage+413) } } } if(gutkiller[attacker]) { if(get_user_weapon(attacker) == CSW_M3) { if(get_pdata_int(victim, 75) == HIT_HEAD) { SetHamParamFloat(4, get_pcvar_float(gutkiller_damagehs)) } else { SetHamParamFloat(4, get_pcvar_float(gutkiller_damage)) } } } } } public ham_killed(victim, attacker, shouldgib) { if(is_user_valid(attacker) && alive(attacker)) { if(get_user_flags(attacker) & MVPplus) { body[attacker] += 2*bodylevel[attacker]+20 bodypoint[attacker] += 2*bodylevel[attacker]+20 if(body[attacker] >= 400) { body[attacker] = 400 bodypoint[attacker] = 400 } } else if(get_user_flags(attacker) & MVP) { body[attacker] += 2*bodylevel[attacker]+15 bodypoint[attacker] += 2*bodylevel[attacker]+15 if(body[attacker] >= 350) { body[attacker] = 350 bodypoint[attacker] = 350 } } else { body[attacker] += 2*bodylevel[attacker]+10 bodypoint[attacker] += 2*bodylevel[attacker]+10 if(body[attacker] >= 300) { body[attacker] = 300 bodypoint[attacker] = 300 } } if(bodypoint[attacker] >= 300*bodytime[attacker]) { bodypoint[attacker] = 300*bodytime[attacker] bodylevel[attacker] += 1 bodytime[attacker] += 1 colorchat(attacker, "!g[ZM] !yPostoupil jsi v sekci vylepseni bodu o +1 level!") } else if(bodylevel[attacker] == 5) { //Nic } } } public ham_wpa(const entity) { new player = get_pdata_cbase(entity, 41, 4) if(!pev_valid(entity)) { return HAM_IGNORED } if(motorovka[player]) { set_pdata_float(entity, 46, 1.1, 4) set_pdata_float(entity, 47, 1.25, 4) } return HAM_IGNORED } public fw_playerprethink(id, channel, sound[]) { if(alive(id) && equal(sound, "common/wpn_denyselect.wav")) { if(healzmset[id] && zmhealtime[id]) { set_task(15.0, "healtime_activate", id+taskid) zmhealtime[id] = 0 client_print(id, print_chat, "Vylecil jsi vsechny zombie, dalsi heal muzes aktivovat za 15 vterin.") emit_sound(id, CHAN_AUTO, healsound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM) message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, id) write_short(4096) write_short(2048) write_short(0x0000) write_byte(0) write_byte(120) write_byte(0) write_byte(150) message_end() new players[32], count, tempid get_players(players, count) for(new i = 0; i < count; i++) { tempid = players[i] if(team(tempid) == 1) { if(id != tempid) { set_user_health(tempid, health(tempid) + 100) client_print(tempid, print_chat, "Byl jsi vylecen Healerem.") emit_sound(tempid, CHAN_AUTO, healsound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM) message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, id) write_short(4096) write_short(2048) write_short(0x0000) write_byte(0) write_byte(120) write_byte(0) write_byte(150) message_end() } } } } if(ghostzmset[id] && zmghosttime[id]) { set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0) zmghosttime[id] = 0 set_task(10.0, "ghosttime_duration", id+taskid) set_task(40.0, "ghosttime_activate", id+taskid) client_print(id, print_chat, "Prave ses zneviditelnil.") message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, id) write_short(4096) write_short(2048) write_short(0x0000) write_byte(150) write_byte(150) write_byte(150) write_byte(150) message_end() } } return PLUGIN_HANDLED } public healtime_activate(id) { id -= taskid zmhealtime[id] = 1 client_print(id, print_chat, "Muzes opet pouzit heal.") } public ghosttime_activate(id) { id -= taskid zmghosttime[id] = 1 client_print(id, print_chat, "Muzes se opet zneviditelnit.") } public ghosttime_duration(id) { id -= taskid set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255) client_print(id, print_chat, "Skoncila ti neviditelnost, dalsi neviditelnost muzes aktivovat za 30 vterin.") message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, id) write_short(1024) write_short(512) write_short(0x0000) write_byte(100) write_byte(100) write_byte(100) write_byte(125) message_end() } public fw_cmdstart(id, uc) { if(!alive(id) || !is_user_connected(id)) return FMRES_IGNORED if(get_user_weapon(id) != CSW_M3 || !gutkiller[id]) return FMRES_IGNORED static ent; ent = fm_get_user_weapon_entity(id, CSW_M3) if(!pev_valid(ent)) return FMRES_IGNORED if(get_pdata_float(ent, 46, 4) > 0.0 || get_pdata_float(ent, 47, 4) > 0.0) return FMRES_IGNORED static CurButton CurButton = get_uc(uc, UC_Buttons) if(CurButton & IN_ATTACK) { CurButton &= ~IN_ATTACK set_uc(uc, UC_Buttons, CurButton) if(get_pdata_float(id, 83, 5) <= 0.0) { native_playanim(id, anim_shoot_normal) gutkiller_fire(id) hitbulet(id) emit_sound(id, CHAN_WEAPON, gutkiller_shoot1, 1.0, ATTN_NORM, 0, PITCH_NORM) set_weapons_timeidle(id, CSW_M3, 0.5) set_player_nextattack(id, 0.5) } } return FMRES_HANDLED } public gutkiller_fire(id) { new Float:origin[3],Float:velocity[3],Float:angles[3] engfunc(EngFunc_GetAttachment, id, 0, origin, angles) pev(id, pev_angles, angles) new ent = create_entity("info_target") set_pev(ent, pev_classname, "gutkiller") set_pev(ent, pev_solid, SOLID_BBOX ) set_pev(ent, pev_movetype, MOVETYPE_TOSS ) set_pev(ent, pev_mins, { -0.1, -0.1, -0.1 } ) set_pev(ent, pev_maxs, { 0.1, 0.1, 0.1 } ) set_pev(ent, pev_origin, origin ) set_pev(ent, pev_angles, angles ) set_pev(ent, pev_owner, id ) velocity_by_aim(id, 1350, velocity ) set_pev(ent, pev_velocity, velocity ) set_pev(ent, pev_takedamage, 1.0) } public fw_updateclientdata(id, sendweapons, cd_handle) { if(!alive(id)) return FMRES_IGNORED if(get_user_weapon(id) == CSW_M3 && gutkiller[id]) { set_cd(cd_handle, CD_ID, 0) } return FMRES_HANDLED } public fw_emitsound(id, channel, const sample[], Float:volume, Float:attn, flags, pitch) { if(!is_user_connected(id)) { return FMRES_IGNORED } if(sekera[id]) { if(equal(sample[8], "kni", 3)) { if(equal(sample[14], "sla", 3)) { emit_sound(id, CHAN_AUTO, sekera_slash, volume, attn, flags, pitch) return FMRES_SUPERCEDE } if(equal(sample,"weapons/knife_deploy1.wav")) { emit_sound(id, CHAN_AUTO, sekera_deploy, volume, attn, flags, pitch) return FMRES_SUPERCEDE } if(equal(sample[14], "hit", 3)) { if(sample[17] == 'w') { emit_sound(id, CHAN_AUTO, sekera_hitwall, volume, attn, flags, pitch) return FMRES_SUPERCEDE } else { switch(random_num(1, 2)) { case 1: emit_sound(id, CHAN_AUTO, sekera_hit1, volume, attn, flags, pitch) case 2: emit_sound(id, CHAN_AUTO, sekera_hit2, volume, attn, flags, pitch) } return FMRES_SUPERCEDE } } if (equal(sample[14], "sta", 3)) { emit_sound(id, CHAN_AUTO, sekera_stab, volume, attn, flags, pitch) return FMRES_SUPERCEDE } } } if(motorovka[id]) { if(equal(sample[8], "kni", 3)) { if(equal(sample[14], "sla", 3)) { switch(random_num(1, 2)) { case 1: emit_sound(id, CHAN_AUTO, motorovka_slash1, volume, attn, flags, pitch) case 2: emit_sound(id, CHAN_AUTO, motorovka_slash2, volume, attn, flags, pitch) } } if(equal(sample,"weapons/knife_deploy1.wav")) { emit_sound(id, CHAN_AUTO, motorovka_deploy, volume, attn, flags, pitch) return FMRES_SUPERCEDE } if(equal(sample[14], "hit", 3)) { if(sample[17] == 'w') { emit_sound(id, CHAN_AUTO, motorovka_hitwall, volume, attn, flags, pitch) return FMRES_SUPERCEDE } else { switch(random_num(1, 4)) { case 1: emit_sound(id, CHAN_AUTO, motorovka_hit1, volume, attn, flags, pitch) case 2: emit_sound(id, CHAN_AUTO, motorovka_hit2, volume, attn, flags, pitch) case 3: emit_sound(id, CHAN_AUTO, motorovka_hit3, volume, attn, flags, pitch) case 4: emit_sound(id, CHAN_AUTO, motorovka_hit4, volume, attn, flags, pitch) } return FMRES_SUPERCEDE } } if (equal(sample[14], "sta", 3)) { emit_sound(id, CHAN_AUTO, motorovka_stab, volume, attn, flags, pitch) return FMRES_SUPERCEDE } } } return FMRES_IGNORED } public fw_think(ptr) { if(!pev_valid(ptr)) return static Float:RenderAmt; pev(ptr, pev_renderamt, RenderAmt) RenderAmt += 50.0 RenderAmt = float(clamp(floatround(RenderAmt), 0, 255)) set_pev(ptr, pev_renderamt, RenderAmt) set_pev(ptr, pev_nextthink, halflife_time() + 0.1) } public hitbulet(id) { new aimOrigin[3], target, body get_user_origin(id, aimOrigin, 3) get_user_aiming(id, target, body) if(target > 0 && target <= get_maxplayers()) { new Float:fStart[3], Float:fEnd[3], Float:fRes[3], Float:fVel[3] pev(id, pev_origin, fStart) set_pev(target, pev_takedamage, 1.0) velocity_by_aim(id, 64, fVel) fStart[0] = float(aimOrigin[0]) fStart[1] = float(aimOrigin[1]) fStart[2] = float(aimOrigin[2]) fEnd[0] = fStart[0]+fVel[0] fEnd[1] = fStart[1]+fVel[1] fEnd[2] = fStart[2]+fVel[2] new res engfunc(EngFunc_TraceLine, fStart, fEnd, 0, target, res) get_tr2(res, TR_vecEndPos, fRes) message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_BLOODSPRITE) write_coord(floatround(fStart[0])) write_coord(floatround(fStart[1])) write_coord(floatround(fStart[2])) write_short(blood_spray) write_short(blood) write_byte(70) write_byte(random_num(1,2)) message_end() } else { new decal = native_gi_get_gunshot_decal() if(target) { message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_DECAL) write_coord(aimOrigin[0]) write_coord(aimOrigin[1]) write_coord(aimOrigin[2]) write_byte(decal) write_short(target) message_end() } else { // Put decal on "world" (a wall) message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_WORLDDECAL) write_coord(aimOrigin[0]) write_coord(aimOrigin[1]) write_coord(aimOrigin[2]) write_byte(decal) message_end() } // Show sparcles message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_GUNSHOTDECAL) write_coord(aimOrigin[0]) write_coord(aimOrigin[1]) write_coord(aimOrigin[2]) write_short(id) write_byte(decal) message_end() } } public native_playanim(player, anim) { set_pev(player, pev_weaponanim, anim) message_begin(MSG_ONE, SVC_WEAPONANIM, {0, 0, 0}, player) write_byte(anim) write_byte(pev(player, pev_body)) message_end() } public native_gi_get_gunshot_decal() { return GUNSHOT_DECALS[random_num(0, sizeof(GUNSHOT_DECALS) - 1)] } stock ham_strip_weapon(id, weapon[]) { if(!equal(weapon, "weapon_",7)) return PLUGIN_CONTINUE new ent new wid = get_weaponid(weapon) if(!wid) return PLUGIN_CONTINUE while((ent = engfunc(EngFunc_FindEntityByString, ent, "classname", weapon)) && pev(ent, pev_owner) != id) {} if(!ent) return PLUGIN_CONTINUE if(get_user_weapon(id) == wid) ExecuteHamB(Ham_Weapon_RetireWeapon, ent) if(!ExecuteHamB(Ham_RemovePlayerItem, id, ent)) return PLUGIN_CONTINUE ExecuteHamB(Ham_Item_Kill, ent) set_pev(id,pev_weapons, pev(id, pev_weapons) & ~(1<<wid)) return PLUGIN_HANDLED } stock create_velocity_vector(victim, attacker, Float:velocity[3]) { if(team(victim) != 1 || !is_user_alive(attacker)) { return 0 } new Float:vicorigin[3] new Float:attorigin[3] entity_get_vector(victim, EV_VEC_origin, vicorigin) entity_get_vector(attacker, EV_VEC_origin, attorigin)
new Float:origin2[3] origin2[0] = vicorigin[0] - attorigin[0] origin2[1] = vicorigin[1] - attorigin[1]
new Float:largestnum = 0.0
if(floatabs(origin2[0])>largestnum) largestnum = floatabs(origin2[0]) if(floatabs(origin2[1])>largestnum) largestnum = floatabs(origin2[1])
origin2[0] /= largestnum origin2[1] /= largestnum
velocity[0] = ( origin2[0] * (10 * 3000) ) / get_entity_distance(victim , attacker) velocity[1] = ( origin2[1] * (10 * 3000) ) / get_entity_distance(victim , attacker) if(velocity[0] <= 20.0 || velocity[1] <= 20.0) velocity[2] = random_float(200.0 , 275.0) return 1 } stock colorchat(id, const input[], any:...) { static msg[191], saytext if(!saytext) { saytext = get_user_msgid("SayText") } vformat(msg, 190, input, 3) replace_all(msg, 190, "!g", "^4") replace_all(msg, 190, "!y", "^1") replace_all(msg, 190, "!team", "^3") message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, saytext, .player = id) write_byte(id ? id : 33) write_string(msg) message_end() } stock set_weapons_timeidle(id, weaponid ,Float:timeidle) { if(!alive(id)) return static entwpn; entwpn = fm_get_user_weapon_entity(id, weaponid) if(!pev_valid(entwpn)) return set_pdata_float(entwpn, 46, timeidle, 4) set_pdata_float(entwpn, 47, timeidle, 4) set_pdata_float(entwpn, 48, timeidle + 0.5, 4) } stock set_player_nextattack(id, Float:nexttime) { if(!alive(id)) return set_pdata_float(id, 83, nexttime, 5) }
Last edited by Fixsek Kot; 02-25-2022 at 10:02.
|
|