Raised This Month: $51 Target: $400
 12% 

Edited weapon damage


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Fixsek Kot
Member
Join Date: Feb 2022
Old 02-23-2022 , 11:15   Edited weapon damage
Reply With Quote #1

Hello again ,

I've been working on a gun added in shop menu, I successfuly changed rate fire, fire sound, animations and decals, but I can't figure out how to set the weapon's damage back, because if I shoot an enemy with that gun, it doesn't deal any damage to him, and I don't know how to fix it, so I'm pleading for another help please

PHP Code:
register_forward(FM_CmdStart"fw_cmdstart"1)
    
register_forward(FM_UpdateClientData"fw_updateclientdata"1)
    
register_think("gutkiller""fw_think")
}
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)
            
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 
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 
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_aimid1350velocity )
    
set_peventpev_velocityvelocity )
}
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)
        
        
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 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 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)

I also got this in Ham_TakeDamage:
PHP Code:
if(get_pdata_int(victim75) == HIT_HEAD)
                {
                    
SetHamParamFloat(4get_pcvar_float(gutkiller_damage))
                }
                else
                {
                    
SetHamParamFloat(4get_pcvar_float(gutkiller_damagehs))
                } 
I also tried to search for this problem, but I can't find the way to set damage for this gun. Have a nice day.

Last edited by Fixsek Kot; 02-23-2022 at 11:17. Reason: Just wanted to edit it to PHP, just for a better clarity
Fixsek Kot is offline
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 02-23-2022 , 14:07   Re: Edited weapon damage
Reply With Quote #2

Show how Ham_TakeDamage is registered.
__________________
OciXCrom is offline
Send a message via Skype™ to OciXCrom
Fixsek Kot
Member
Join Date: Feb 2022
Old 02-23-2022 , 14:54   Re: Edited weapon damage
Reply With Quote #3

Here:
RegisterHam(Ham_TakeDamage, "player", "ham_takedamage")
Fixsek Kot is offline
Fixsek Kot
Member
Join Date: Feb 2022
Old 02-25-2022 , 08:35   Re: Edited weapon damage
Reply With Quote #4

Please?
Fixsek Kot is offline
Supremache
Veteran Member
Join Date: Sep 2019
Location: Egypt
Old 02-25-2022 , 08:59   Re: Edited weapon damage
Reply With Quote #5

Quote:
Originally Posted by Fixsek Kot View Post
Please?
PHP Code:
set_peviEntpev_takedamage1.0 
__________________
Youtube.com/Supremache

Bank System [Nvault - SQL Support]
VIP System
  • If you think it's that simple, then do it yourself.

Last edited by Supremache; 02-25-2022 at 08:59.
Supremache is offline
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
Supremache
Veteran Member
Join Date: Sep 2019
Location: Egypt
Old 02-25-2022 , 11:40   Re: Edited weapon damage
Reply With Quote #7

I can't read the code but i suggest you try to disable ham_takedamge and test set_pev(ent, takedmg...
__________________
Youtube.com/Supremache

Bank System [Nvault - SQL Support]
VIP System
  • If you think it's that simple, then do it yourself.
Supremache is offline
Fixsek Kot
Member
Join Date: Feb 2022
Old 02-25-2022 , 11:51   Re: Edited weapon damage
Reply With Quote #8

Well, it didn't work as well Man this issue is a 1000-year matter
Fixsek Kot is offline
Supremache
Veteran Member
Join Date: Sep 2019
Location: Egypt
Old 02-25-2022 , 11:58   Re: Edited weapon damage
Reply With Quote #9

Sorry, but my experience is limited with creating npc and i think it has an issue but i can't find it but there are who have a good experience with that and i think if they are online will help u
__________________
Youtube.com/Supremache

Bank System [Nvault - SQL Support]
VIP System
  • If you think it's that simple, then do it yourself.
Supremache is offline
Fixsek Kot
Member
Join Date: Feb 2022
Old 03-02-2022 , 09:52   Re: Edited weapon damage
Reply With Quote #10

Yeah, in the meantime I was trying to find solution in other's codes, and unfortunately I failed

Last edited by Fixsek Kot; 03-02-2022 at 09:55.
Fixsek Kot is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 21:22.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode