View Single Post
Fixsek Kot
Member
Join Date: Feb 2022
Old 02-25-2022 , 10:01   Re: Edited weapon damage
Reply With Quote #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[] = {4142434445}
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
(142239390.350.9006.02.5)
    
ShowSyncHudMsg(idCreateHudSyncObj(), "Zdravi: %i |-| Armor: %i |-| Body: %i |-| Metal: %i"health(id), armor(id), body[id], metal[id]) 
}
public 
nove_kolo(id)
{
    for(new 
0get_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(victimCS_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(idweapon)
        if(
weapon == CSW_KNIFE)
        {
            new 
Float:vec[3]
            new 
Float:oldvelo[3]
            
get_user_velocity(idoldvelo)
            
create_velocity_vector(idattackervec)
            
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(id1)
    
set_task(1.0"spawn_immortal"id)
    
set_user_health(id100)
    
set_user_maxspeed(id250.0)
    
set_user_gravity(id1.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(id375.0)
            
set_user_health(id1750)
            
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(id0.3)
            
set_user_health(id1900)
            
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(id2500)
            
set_user_maxspeed(id200.0)
            
set_user_gravity(id1.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(id1500)
            
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(id1750)
            
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(id1750)
            
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(id1500)
            
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(id2000)
        }
    }
}
public 
spawn_immortal(id)
{
    
set_user_godmode(id0)
}
public 
say_handler(id)
{
    new 
message[192], name[32]
    
read_args(message191)
    
remove_quotes(message)
    
get_user_name(idname31)
    if(
get_user_flags(id) & MVP)(alive(id) ? format(message191"^4[%s] ^3%s : ^4%s""MVP"namemessage) : format(message191"^1*DEAD* ^4[%s] ^3%s : ^4%s""MVP"namemessage))
    for(new 
1<= get_maxplayers(); i++)
    {
        if(!
is_user_connected(i)) continue
        if(
alive(id) && alive(i) ||!alive(id) && !alive(i))
        {
            
message_begin(MSG_ONEget_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(id373), gunclipammo[weapon])
    }
    if(
fastzmset[id])
    {
        
set_user_maxspeed(id375.0)
    }
    if(
strongzmset[id])
    {
        
set_user_maxspeed(id200.0)
    }
    if(
classzombieset[id])
    {
        
set_user_maxspeed(id375.0)
    }
    if(
ctshopspeed[id])
    {
        
set_user_maxspeed(id350.0)
    }
    if(
team(id) == 1)
    {
        
set_task(0.1"zm_stripweapons"id)
    }
    if(
sekera[id] && weapon == CSW_KNIFE)
    {
        
set_pev(idpev_viewmodel2v_sekera)
        
set_pev(idpev_weaponmodel2p_sekera)
    }
    if(
motorovka[id] && weapon == CSW_KNIFE)
    {
        
set_pev(idpev_viewmodel2v_motorovka)
        
set_pev(idpev_weaponmodel2p_motorovka)
    }
    if(
gutkiller[id] && weapon == CSW_M3)
    {
        
set_pev(idpev_viewmodel2v_gutkiller)
        
set_pev(idpev_weaponmodel2p_gutkiller)
        
native_playanim(idanim_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(idmainm)
    return 
PLUGIN_HANDLED
}
public 
hlavni_menu2(idmenuitem)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    switch(
item)
    {
        case 
0:
        {
            if(
alive(id) && team(id) == && 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(idvybzb)
}
public 
vyberzb_menu2(idmenuitem)
{
    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(idCSW_M4A1250)
        }
        case 
1:
        {
            
give_item(id"weapon_ak47")
            
cs_set_user_bpammo(idCSW_AK47250)
        }
        case 
2:
        {
            
give_item(id"weapon_p90")
            
cs_set_user_bpammo(idCSW_P90250)
        }
        case 
3:
        {
            
give_item(id"weapon_ump45")
            
cs_set_user_bpammo(idCSW_UMP45250)
        }
        case 
4:
        {
            
give_item(id"weapon_famas")
            
cs_set_user_bpammo(idCSW_FAMAS250)
        }
        case 
5:
        {
            
give_item(id"weapon_galil")
            
cs_set_user_bpammo(idCSW_GALIL250)
        }
        case 
6:
        {
            
give_item(id"weapon_awp")
            
cs_set_user_bpammo(idCSW_AWP250)
        }
    }
    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(idvybsc)
}
public 
vybersc_menu2(idmenuitem)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    switch(
item)
    {
        case 
0:
        {
            
give_item(id"weapon_glock18")
            
cs_set_user_bpammo(idCSW_GLOCK1890)
        }
        case 
1:
        {
            
give_item(id"weapon_usp")
            
cs_set_user_bpammo(idCSW_USP90)
        }
        case 
2:
        {
            
give_item(id"weapon_p228")
            
cs_set_user_bpammo(idCSW_P22890)
        }
        case 
3:
        {
            
give_item(id"weapon_deagle")
            
cs_set_user_bpammo(idCSW_DEAGLE90)
        }
        case 
4:
        {
            
give_item(id"weapon_fiveseven")
            
cs_set_user_bpammo(idCSW_FIVESEVEN90)
        }
        case 
5:
        {
            
give_item(id"weapon_elite")
            
cs_set_user_bpammo(idCSW_ELITE90)
        }
    }
    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(idzmenu)
}
public 
vyberzm_menu2(idmenuitem)
{
    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(idprint_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
(idprint_chat"Pri dalsim spawnu budes Heal zombie. 1750 HP, moznost vylecit vsechny zombie pomoci E.")
            }
            else
            {
                
client_print(idprint_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
(idprint_chat"Pri dalsim spawnu budes Ghost zombie. 1500 HP, moznost zneviditelnit se na 10 vterin pomoci E.")
            }
            else
            {
                
client_print(idprint_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(idshopt)
        }
        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(idshopct)
        }
    }
}
public 
obchod_menu1(idmenuitem)
{
    if(
team(id) == 2)
    {
        
client_print(idprint_chat"Nejsi v zombie tymu.")
        return 
PLUGIN_HANDLED
    
}
    if(!
alive(id))
    {
        
client_print(idprint_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
(id100)
                
set_user_maxspeed(id250.0)
                
set_user_gravity(id1.0)
                
cs_set_user_team(idCS_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(idprint_chat"Nemas na protilatku dost bodu.")
            }
        }
        case 
1:
        {
            if(
body[id] >= 40)
            {
                if(!
immortalON[id])
                {
                    
body[id] -= 40
                    set_user_godmode
(id1)
                    
set_task(5.0"cancel_immortal"id)
                    
client_print(idprint_center"Aktivoval jsi nesmrtelnost.")
                    
message_begin(MSG_ONE_UNRELIABLEget_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(idprint_chat"Prave mas aktivovanou nesmrtelnost.")
                }
            }
            else
            {
                
client_print(idprint_chat"Nemas na nesmrtelnost dost bodu.")
            }
        }
        case 
2:
        {
            if(
body[id] >= 35)
            {
                
body[id] -= 35
                set_user_health
(idhealth(id) + 500)
                
message_begin(MSG_ONE_UNRELIABLEget_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(idprint_chat"Nemas na +500HP dost bodu.")
            }
        }
        case 
3:
        {
            if(
body[id] >= 100)
            {
                
body[id] -= 100
                give_item
(id"weapon_hegrenade")
                
cs_set_user_bpammo(idCSW_HEGRENADE1)
            }
            else
            {
                
client_print(idprint_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
(id2500)
                    
set_user_maxspeed(id375.0)
                    
set_user_gravity(id0.3)
                    
vikingzmset[id] = 1
                    damagezmset
[id] = 1
                    healzmset
[id] = 1
                    zmhealtime
[id] = 1
                    zmghosttime
[id] = 1
                    client_print
(idprint_chat"Nyni do tve umrti mas staty od kazde zombie tridy!")
                    
message_begin(MSG_ONE_UNRELIABLEget_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_ONEget_user_msgid("ScreenShake"), {0,0,0}, id)
                    
write_short(255<<14)
                    
write_short(10<<14)
                    
write_short(255<<14)
                    
message_end()
                }
                else
                {
                    
client_print(idprint_chat"Nemas na classmana dost bodu.")
                }
            }
            else
            {
                
client_print(idprint_chat"Nemas na classmana MVP+.")
            }
        }
    }
    return 
PLUGIN_HANDLED
}
public 
obchod_menu2(idmenuitem)
{
    if(
team(id) == 1)
    {
        
client_print(idprint_chat"Nejsi v CT tymu.")
        return 
PLUGIN_HANDLED
    
}
    if(!
alive(id))
    {
        
client_print(idprint_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(idCSW_HEGRENADE1)
            }
            else
            {
                
client_print(idprint_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(idCSW_FLASHBANG1)
                    
flashON[id] = 0
                
}
                else
                {
                    
client_print(idprint_chat"Dalsi flash si muzes koupit az dalsi kolo.")
                }
            }
            else
            {
                
client_print(idprint_chat"Nemas na Flash granat dost bodu.")
            }
        }
        case 
2:
        {
            if(
body[id] >= 30)
            {
                
body[id] -= 30
                set_user_gravity
(id0.5)
            }
            else
            {
                
client_print(idprint_chat"Nemas na nizsi gravitaci dost bodu.")
            }
        }
        case 
3:
        {
            if(
body[id] >= 45)
            {
                
body[id] -= 45
                set_user_maxspeed
(id350.0)
                
ctshopspeed[id] = 1
            
}
            else
            {
                
client_print(idprint_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(idprint_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(idprint_chat"Regeneraci si muzes koupi vylepsit jeste dvakrat.")
                    }
                    if(
regenlimit[id] == 1)
                    {
                        
client_print(idprint_chat"Regeneraci si muzes koupi vylepsit jeste jednou.")
                    }
                    if(
regenlimit[id] == 0)
                    {
                        
client_print(idprint_chat"Uz sis koupil maximum vylepseni regenerace.")
                    }
                }
                else
                {
                    
client_print(idprint_chat"Uz jsi koupil maximum vylepseni regenerace.")
                }
            }
            else
            {
                
client_print(idprint_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(idprint_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(idprint_chat"Nemas na gutkiller dost bodu.")
            }
        }
    }
    return 
PLUGIN_HANDLED
}
public 
ct_regenerace(id)
{
    
id -= taskid
    set_user_health
(idhealth(id) + 1)
    if(
health(id) > 100)
    {
        
set_user_health(id100)
    }
}
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(idupgmenu)
}
public 
hmupgrade_menu2(idmenuitem)
{
    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(idmaingunm)
    }
}
public 
scrap_menu2(idmenuitem)
{
    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
(idprint_chat"AK47 byla scrapnuta.")
        }
        if(
wpn == CSW_M4A1)
        {
            
ham_strip_weapon(id"weapon_m4a1")
            
metal[id] += 1+metallevel[id]
            
metalpoint[id] += 1
            client_print
(idprint_chat"M4A1 byla scrapnuta.")
        }
        if(
wpn == CSW_AWP)
        {
            
ham_strip_weapon(id"weapon_awp")
            
metal[id] += 1+metallevel[id]
            
metalpoint[id] += 1
            client_print
(idprint_chat"AWP bylo scrapnuto.")
        }
        if(
wpn == CSW_FAMAS)
        {
            
ham_strip_weapon(id"weapon_famas")
            
metal[id] += 1+metallevel[id]
            
metalpoint[id] += 1
            client_print
(idprint_chat"Famas byl scrapnut.")
        }
        if(
wpn == CSW_GALIL)
        {
            
ham_strip_weapon(id"weapon_galil")
            
metal[id] += 1+metallevel[id]
            
metalpoint[id] += 1
            client_print
(idprint_chat"Galil byl scrapnut.")
        }
        if(
wpn == CSW_P90)
        {
            
ham_strip_weapon(id"weapon_p90")
            
metal[id] += 1+metallevel[id]
            
metalpoint[id] += 1
            client_print
(idprint_chat"P90 byla scrapnuta.")
        }
        if(
wpn == CSW_UMP45)
        {
            
ham_strip_weapon(id"weapon_ump45")
            
metal[id] += 1+metallevel[id]
            
metalpoint[id] += 1
            client_print
(idprint_chat"UMP45 byla scrapnuta.")
        }
        if(
wpn == CSW_GLOCK18)
        {
            
ham_strip_weapon(id"weapon_glock18")
            
metal[id] += 1+metallevel[id]
            
metalpoint[id] += 1
            client_print
(idprint_chat"Glock18 byl scrapnut.")
        }
        if(
wpn == CSW_USP)
        {
            
ham_strip_weapon(id"weapon_usp")
            
metal[id] += 1+metallevel[id]
            
metalpoint[id] += 1
            client_print
(idprint_chat"USP bylo scrapnuto.")
        }
        if(
wpn == CSW_P228)
        {
            
ham_strip_weapon(id"weapon_p228")
            
metal[id] += 1+metallevel[id]
            
metalpoint[id] += 1
            client_print
(idprint_chat"P228 byla scrapnuta.")
        }
        if(
wpn == CSW_DEAGLE)
        {
            
ham_strip_weapon(id"weapon_deagle")
            
metal[id] += 1+metallevel[id]
            
metalpoint[id] += 1
            client_print
(idprint_chat"Deagle byl scrapnut.")
        }
        if(
wpn == CSW_ELITE)
        {
            
ham_strip_weapon(id"weapon_elite")
            
metal[id] += 2+metallevel[id]
            
metalpoint[id] += 2
            client_print
(idprint_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
(idprint_chat"Fiveseven byl scrapnut.")
        }
        if(
wpn == CSW_KNIFE)
        {
            
client_print(idprint_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
(idprint_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
(idprint_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
(idprint_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(idprint_center"Nesmrtelnost ti skoncila.")
    
set_user_godmode(id0)
    
immortalON[id] = 0
}
public 
ham_takedamage(victiminflictorattackerFloat:damage)
{
    if(
is_user_valid(victim))
    {
        if(
vikingzmset[victim])
        {
            if(
get_pdata_int(victim75) == HIT_HEAD)
            {
                
SetHamParamFloat(4damage/4)
            }
        }
    }
    if(
is_user_valid(attacker))
    {
        if(
damagezmset[attacker])
        {
            if(
get_user_weapon(attacker) == CSW_KNIFE)
            {
                
SetHamParamFloat(4damage*2)
            }
        }
        if(
sekera[attacker])
        {
            if(
get_user_weapon(attacker) == CSW_KNIFE)
            {
                if(
get_pdata_int(victim75) == HIT_HEAD)
                {
                    
SetHamParamFloat(4damage+312)
                }
                else
                {
                    
SetHamParamFloat(4damage+197)
                }
            }
        }
        if(
motorovka[attacker])
        {
            if(
get_user_weapon(attacker) == CSW_KNIFE)
            {
                if(
get_pdata_int(victim75) == HIT_HEAD)
                {
                    
SetHamParamFloat(4damage+472)
                }
                else
                {
                    
SetHamParamFloat(4damage+413)
                }
            }
        }
        if(
gutkiller[attacker])
        {
            if(
get_user_weapon(attacker) == CSW_M3)
            {
                if(
get_pdata_int(victim75) == HIT_HEAD)
                {
                    
SetHamParamFloat(4get_pcvar_float(gutkiller_damagehs))
                }
                else
                {
                    
SetHamParamFloat(4get_pcvar_float(gutkiller_damage))
                }
            }
        }
    }
}
public 
ham_killed(victimattackershouldgib)
{
    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(entity414)
    if(!
pev_valid(entity))
    {
        return 
HAM_IGNORED
    
}
    if(
motorovka[player])
    {
        
set_pdata_float(entity461.14)
        
set_pdata_float(entity471.254)
    }
    return 
HAM_IGNORED
}
public 
fw_playerprethink(idchannelsound[])
{
    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
(idprint_chat"Vylecil jsi vsechny zombie, dalsi heal muzes aktivovat za 15 vterin.")
            
emit_sound(idCHAN_AUTOhealsoundVOL_NORMATTN_NORM0PITCH_NORM)
            
message_begin(MSG_ONE_UNRELIABLEget_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], counttempid
            get_players
(playerscount)
            for(new 
0counti++)
            {
                
tempid players[i]
                if(
team(tempid) == 1)
                {
                    if(
id != tempid)
                    {
                        
set_user_health(tempidhealth(tempid) + 100)
                        
client_print(tempidprint_chat"Byl jsi vylecen Healerem.")
                        
emit_sound(tempidCHAN_AUTOhealsoundVOL_NORMATTN_NORM0PITCH_NORM)
                        
message_begin(MSG_ONE_UNRELIABLEget_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(idkRenderFxGlowShell000kRenderTransAlpha0)
            
zmghosttime[id] = 0
            set_task
(10.0"ghosttime_duration"id+taskid)
            
set_task(40.0"ghosttime_activate"id+taskid)
            
client_print(idprint_chat"Prave ses zneviditelnil.")
            
message_begin(MSG_ONE_UNRELIABLEget_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
(idprint_chat"Muzes opet pouzit heal.")
}
public 
ghosttime_activate(id)
{
    
id -= taskid
    zmghosttime
[id] = 1
    client_print
(idprint_chat"Muzes se opet zneviditelnit.")
}
public 
ghosttime_duration(id)
{
    
id -= taskid
    set_user_rendering
(idkRenderFxGlowShell000kRenderTransAlpha255)
    
client_print(idprint_chat"Skoncila ti neviditelnost, dalsi neviditelnost muzes aktivovat za 30 vterin.")
    
message_begin(MSG_ONE_UNRELIABLEget_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(iduc)
{
    if(!
alive(id) || !is_user_connected(id))
        return 
FMRES_IGNORED
    
if(get_user_weapon(id) != CSW_M3 || !gutkiller[id])
        return 
FMRES_IGNORED
    
    
static entent fm_get_user_weapon_entity(idCSW_M3)
    if(!
pev_valid(ent))
        return 
FMRES_IGNORED
    
if(get_pdata_float(ent464) > 0.0 || get_pdata_float(ent474) > 0.0
        return 
FMRES_IGNORED
    
    
static CurButton
    CurButton 
get_uc(ucUC_Buttons)
    
    if(
CurButton IN_ATTACK)
    {
        
CurButton &= ~IN_ATTACK
        set_uc
(ucUC_ButtonsCurButton)
            
        if(
get_pdata_float(id835) <= 0.0)
        {
            
native_playanim(idanim_shoot_normal)
            
gutkiller_fire(id)
            
hitbulet(id)
            
emit_sound(idCHAN_WEAPONgutkiller_shoot11.0ATTN_NORM0PITCH_NORM)
            
set_weapons_timeidle(idCSW_M30.5)
            
set_player_nextattack(id0.5)
        }
    }
    return 
FMRES_HANDLED
}
public 
gutkiller_fire(id)
{
    new 
Float:origin[3],Float:velocity[3],Float:angles[3]
    
engfunc(EngFunc_GetAttachmentid0originangles)
    
pev(idpev_anglesangles)
    new 
ent create_entity("info_target"
    
set_pev(entpev_classname"gutkiller")
    
set_pev(entpev_solidSOLID_BBOX )
    
set_pev(entpev_movetypeMOVETYPE_TOSS )
    
set_pev(entpev_mins, { -0.1, -0.1, -0.1 } )
    
set_pev(entpev_maxs, { 0.10.10.1 } )
    
set_pev(entpev_originorigin )
    
set_pev(entpev_anglesangles )
    
set_pev(entpev_ownerid )
    
velocity_by_aim(id1350velocity )
    
set_pev(entpev_velocityvelocity )
    
set_pev(entpev_takedamage1.0)
}
public 
fw_updateclientdata(idsendweaponscd_handle)
{
    if(!
alive(id)) return FMRES_IGNORED
    
if(get_user_weapon(id) == CSW_M3 && gutkiller[id])
    {
        
set_cd(cd_handleCD_ID0)
    }
    return 
FMRES_HANDLED
}
public 
fw_emitsound(idchannel, const sample[], Float:volumeFloat:attnflagspitch)
{
    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(idCHAN_AUTOsekera_slashvolumeattnflagspitch)
                return 
FMRES_SUPERCEDE
            
}
            if(
equal(sample,"weapons/knife_deploy1.wav"))
            {
                
emit_sound(idCHAN_AUTOsekera_deployvolumeattnflagspitch)
                return 
FMRES_SUPERCEDE
            
}
            if(
equal(sample[14], "hit"3))
            {
                if(
sample[17] == 'w')
                {
                    
emit_sound(idCHAN_AUTOsekera_hitwallvolumeattnflagspitch)
                    return 
FMRES_SUPERCEDE
                
}
                else 
                {
                    switch(
random_num(12))
                    {
                        case 
1emit_sound(idCHAN_AUTOsekera_hit1volumeattnflagspitch)
                        case 
2emit_sound(idCHAN_AUTOsekera_hit2volumeattnflagspitch)
                    }
                    return 
FMRES_SUPERCEDE
                
}
            }
            if (
equal(sample[14], "sta"3)) 
            {
                
emit_sound(idCHAN_AUTOsekera_stabvolumeattnflagspitch)
                return 
FMRES_SUPERCEDE
            
}
        }
    }
    if(
motorovka[id])
    {
        if(
equal(sample[8], "kni"3))
        {
            if(
equal(sample[14], "sla"3))
            {
                switch(
random_num(12))
                {
                    case 
1emit_sound(idCHAN_AUTOmotorovka_slash1volumeattnflagspitch)
                    case 
2emit_sound(idCHAN_AUTOmotorovka_slash2volumeattnflagspitch)
                }
            }
            if(
equal(sample,"weapons/knife_deploy1.wav"))
            {
                
emit_sound(idCHAN_AUTOmotorovka_deployvolumeattnflagspitch)
                return 
FMRES_SUPERCEDE
            
}
            if(
equal(sample[14], "hit"3))
            {
                if(
sample[17] == 'w')
                {
                    
emit_sound(idCHAN_AUTOmotorovka_hitwallvolumeattnflagspitch)
                    return 
FMRES_SUPERCEDE
                
}
                else 
                {
                    switch(
random_num(14))
                    {
                        case 
1emit_sound(idCHAN_AUTOmotorovka_hit1volumeattnflagspitch)
                        case 
2emit_sound(idCHAN_AUTOmotorovka_hit2volumeattnflagspitch)
                        case 
3emit_sound(idCHAN_AUTOmotorovka_hit3volumeattnflagspitch)
                        case 
4emit_sound(idCHAN_AUTOmotorovka_hit4volumeattnflagspitch)
                    }
                    return 
FMRES_SUPERCEDE
                
}
            }
            if (
equal(sample[14], "sta"3)) 
            {
                
emit_sound(idCHAN_AUTOmotorovka_stabvolumeattnflagspitch)
                return 
FMRES_SUPERCEDE
            
}
        }
    }
    return 
FMRES_IGNORED
}
public 
fw_think(ptr)
{
    if(!
pev_valid(ptr))
        return
        
    static 
Float:RenderAmtpev(ptrpev_renderamtRenderAmt)
    
    
RenderAmt += 50.0
    RenderAmt 
float(clamp(floatround(RenderAmt), 0255))
    
    
set_pev(ptrpev_renderamtRenderAmt)
    
set_pev(ptrpev_nextthinkhalflife_time() + 0.1)
}
public 
hitbulet(id)
{
    new 
aimOrigin[3], targetbody
    get_user_origin
(idaimOrigin3)
    
get_user_aiming(idtargetbody)
    
    if(
target && target <= get_maxplayers())
    {
        new 
Float:fStart[3], Float:fEnd[3], Float:fRes[3], Float:fVel[3]
        
pev(idpev_originfStart)
        
set_pev(targetpev_takedamage1.0)
        
        
velocity_by_aim(id64fVel)
        
        
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_TraceLinefStartfEnd0targetres)
        
get_tr2(resTR_vecEndPosfRes)
                
        
message_begin(MSG_BROADCASTSVC_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_BROADCASTSVC_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_BROADCASTSVC_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_BROADCASTSVC_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(playeranim)
{
    
set_pev(playerpev_weaponanimanim)
    
message_begin(MSG_ONESVC_WEAPONANIM, {000}, player)
    
write_byte(anim)
    
write_byte(pev(playerpev_body))
    
message_end()
}
public 
native_gi_get_gunshot_decal()
{
    return 
GUNSHOT_DECALS[random_num(0sizeof(GUNSHOT_DECALS) - 1)]
}
stock ham_strip_weapon(idweapon[])
{
    if(!
equal(weapon"weapon_",7)) 
    return 
PLUGIN_CONTINUE
    
new ent
    
new wid get_weaponid(weapon)
    if(!
wid
    return 
PLUGIN_CONTINUE
    
while((ent engfunc(EngFunc_FindEntityByStringent"classname"weapon)) && pev(entpev_owner) != id) {}
    if(!
ent) return PLUGIN_CONTINUE
    
if(get_user_weapon(id) == widExecuteHamB(Ham_Weapon_RetireWeaponent)
    if(!
ExecuteHamB(Ham_RemovePlayerItemident)) 
    return 
PLUGIN_CONTINUE
    ExecuteHamB
(Ham_Item_Killent)
    
set_pev(id,pev_weaponspev(idpev_weapons) & ~(1<<wid))
    return 
PLUGIN_HANDLED
}
stock create_velocity_vector(victimattackerFloat:velocity[3])
{
    if(
team(victim) != || !is_user_alive(attacker))
    {
        return 
0
    
}
    new 
Float:vicorigin[3]
    new 
Float:attorigin[3]
    
entity_get_vector(victimEV_VEC_originvicorigin)
    
entity_get_vector(attackerEV_VEC_originattorigin)

    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])>largestnumlargestnum floatabs(origin2[0])
    if(
floatabs(origin2[1])>largestnumlargestnum 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(msg190input3)
    
replace_all(msg190"!g""^4")
    
replace_all(msg190"!y""^1")
    
replace_all(msg190"!team""^3")
    
message_begin(id MSG_ONE_UNRELIABLE MSG_BROADCASTsaytext, .player id)
    
write_byte(id id 33)
    
write_string(msg)
    
message_end()
}
stock set_weapons_timeidle(idweaponid ,Float:timeidle)
{
    if(!
alive(id))
        return
        
    static 
entwpnentwpn fm_get_user_weapon_entity(idweaponid)
    if(!
pev_valid(entwpn)) 
        return
        
    
set_pdata_float(entwpn46timeidle4)
    
set_pdata_float(entwpn47timeidle4)
    
set_pdata_float(entwpn48timeidle 0.54)
}
stock set_player_nextattack(idFloat:nexttime)
{
    if(!
alive(id))
        return
    
set_pdata_float(id83nexttime5)


Last edited by Fixsek Kot; 02-25-2022 at 10:02.
Fixsek Kot is offline