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

Help / Support Can anyone help me with this ?


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
bashar_beesho
Junior Member
Join Date: Jan 2015
Old 04-30-2019 , 13:59   Can anyone help me with this ?
Reply With Quote #1

hi , could anyone fix this plugin ? i have found it in the forum , its knife menu but its issue was its opens one time per round , so i have requested to be modified and somebody did it to me but i cant compline it . so can anybody fix it ? thanks

the original plugin .

PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <fun> 
#include <engine> 
#include <hamsandwich>
#include <zombieplague>

#define PLUGIN    "knifemenu"
#define VERSION    "1.0"
#define AUTHOR    "kgb-forum"

#define VIP ADMIN_LEVEL_H
#define MAXPLAYERS 32

new combat_v_model[] = "models/zb/v_combat_knife.mdl"
new combat_p_model[] = "models/zb/p_combat_knife.mdl"

new strong_v_model[] = "models/zb/v_strong_knife.mdl"
new strong_p_model[] = "models/zb/p_strong_knife.mdl"

new axe_v_model[] = "models/zb/v_axe_knife.mdl"    
new axe_p_model[] = "models/zb/p_axe_knife.mdl"    

new katana_v_model[] = "models/zb/v_katana_knife.mdl"    
new katana_p_model[] = "models/zb/p_katana_knife.mdl"

new hammer_v_model[] = "models/zb/v_hammer_knife.mdl"    
new hammer_p_model[] = "models/zb/p_hammer_knife.mdl"    

const m_pPlayer 41 
const m_flNextPrimaryAttack 46 
const m_flNextSecondaryAttack 47 
const m_flTimeWeaponIdle 48 

new g_hasSpeed[33], SayText
new bool:g_WasShowed[MAXPLAYERS 1]
new 
g_knife_combat[33], cvar_knife_combat_jumpcvar_knife_combat_spdcvar_knife_combat_dmgcvar_knife_combat_knockcvar_knife_combat_spd_attack2
new g_knife_strong[33], cvar_knife_strong_jumpcvar_knife_strong_spdcvar_knife_strong_dmgcvar_knife_strong_knockcvar_knife_strong_spd_attack2
new g_knife_axe[33], cvar_knife_axe_jumpcvar_knife_axe_spdcvar_knife_axe_dmgcvar_knife_axe_knockcvar_knife_axe_spd_attack2
new g_knife_katana[33], cvar_knife_katana_jumpcvar_knife_katana_spdcvar_knife_katana_dmgcvar_knife_katana_knockcvar_knife_katana_spd_attack2
new g_knife_hammer[33], cvar_knife_hammer_jumpcvar_knife_hammer_spdcvar_knife_hammer_dmgcvar_knife_hammer_knockcvar_hammer_spd_attack2

new const g_sound_knife[] = { "items/gunpickup2.wav" }

new const 
combat_sounds[][] =
{
    
"zmwpn/zb_knife/combat_deploy.wav",
    
"zmwpn/zb_knife/combat_hit.wav"    ,
    
"zmwpn/zb_knife/combat_hit.wav"    ,
    
"zmwpn/zb_knife/combat_hit.wav"    ,
    
"zmwpn/zb_knife/combat_hit.wav"    ,
    
"zmwpn/zb_knife/combat_hitwall.wav",
    
"zmwpn/zb_knife/combat_slash.wav",
    
"zmwpn/zb_knife/combat_slash.wav",
    
"zmwpn/zb_knife/combat_stab.wav"
}

new const 
strong_sounds[][] =
{
    
"zmwpn/zb_knife/strong_deploy.wav",
    
"zmwpn/zb_knife/strong_hit.wav",
    
"zmwpn/zb_knife/strong_hit.wav",
    
"zmwpn/zb_knife/strong_hit.wav",
    
"zmwpn/zb_knife/strong_hit.wav",
    
"zmwpn/zb_knife/strong_hitwall.wav",
    
"zmwpn/zb_knife/strong_slash.wav",
    
"zmwpn/zb_knife/strong_slash.wav",
    
"zmwpn/zb_knife/strong_stab.wav"
}

new const 
axe_sounds[][] =
{
    
"zmwpn/zb_knife/axe_deploy.wav",
    
"zmwpn/zb_knife/axe_hit.wav",
    
"zmwpn/zb_knife/axe_hit.wav",
    
"zmwpn/zb_knife/axe_hit.wav",
    
"zmwpn/zb_knife/axe_hit.wav",
    
"zmwpn/zb_knife/axe_hitwall.wav",
    
"zmwpn/zb_knife/axe_slash.wav",
    
"zmwpn/zb_knife/axe_slash.wav",
    
"zmwpn/zb_knife/axe_stab.wav"
}

new const 
katana_sounds[][] =
{
    
"zmwpn/zb_knife/katana_deploy.wav",
    
"zmwpn/zb_knife/katana_hit.wav",
    
"zmwpn/zb_knife/katana_hit.wav",
    
"zmwpn/zb_knife/katana_hit.wav",
    
"zmwpn/zb_knife/katana_hit.wav",
    
"zmwpn/zb_knife/katana_hitwall.wav",
    
"zmwpn/zb_knife/katana_slash.wav",
    
"zmwpn/zb_knife/katana_slash.wav",
    
"zmwpn/zb_knife/katana_stab.wav"
}

new const 
hammer_sounds[][] =
{
    
"zmwpn/zb_knife/hammer_deploy.wav",
    
"zmwpn/zb_knife/hammer_hit.wav",
    
"zmwpn/zb_knife/hammer_hit.wav",
    
"zmwpn/zb_knife/hammer_hit.wav",
    
"zmwpn/zb_knife/hammer_hit.wav",
    
"zmwpn/zb_knife/hammer_hitwall.wav",
    
"zmwpn/zb_knife/hammer_slash.wav",
    
"zmwpn/zb_knife/hammer_slash.wav",
    
"zmwpn/zb_knife/hammer_stab.wav"
}

new const 
oldknife_sounds[][] =
{
    
"weapons/knife_deploy1.wav",
    
"weapons/knife_hit1.wav",
    
"weapons/knife_hit2.wav",
    
"weapons/knife_hit3.wav",
    
"weapons/knife_hit4.wav",
    
"weapons/knife_hitwall1.wav",
    
"weapons/knife_slash1.wav",
    
"weapons/knife_slash2.wav",
    
"weapons/knife_stab.wav"
}

public 
plugin_init()
{
    
register_plugin(PLUGIN VERSION AUTHOR);
    
register_cvar("zp_addon_knife"VERSIONFCVAR_SERVER);
        
SayText get_user_msgid("SayText")   

     
register_clcmd("say /knife","knife_menu",ADMIN_ALL,"knife_menu")
     
register_clcmd("say_team /knife","knife_menu",ADMIN_ALL,"knife_menu")
    
register_clcmd("combat""give_combat")
    
register_clcmd("strong""give_strong")
    
register_clcmd("axe""give_axe")
    
register_clcmd("katana""give_katana")
    
register_clcmd("hammer""give_hammer")

    
register_event("CurWeapon","checkWeapon","be","1=1");
    
register_event("Damage" "event_Damage" "b" "2>0");

    
register_forward(FM_PlayerPreThink"fw_PlayerPreThink");
    
register_forward(FM_EmitSound"fw_EmitSound");

    
register_message(get_user_msgid("DeathMsg"), "message_DeathMsg");

    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage");
        
RegisterHam(Ham_Weapon_SecondaryAttack"weapon_knife""fw_Knife_SecondaryAttack_Post"1

    
cvar_knife_combat_jumpregister_cvar("zp_knife_combat_jump""270.0");
    
cvar_knife_combat_spd register_cvar("zp_knife_combat_spd""310.0");
    
cvar_knife_combat_dmg register_cvar("zp_knife_combat_dmg" "4.0");
    
cvar_knife_combat_knock register_cvar("zp_knife_combat_knock" "6.0");
    
cvar_knife_combat_spd_attack2 register_cvar("zp_knife_combat_spd_attack2" "1.2");

    
cvar_knife_strong_jumpregister_cvar("zp_knife_strong_jump""265.0");
    
cvar_knife_strong_spd register_cvar("zp_knife_strong_spd""255.0");
    
cvar_knife_strong_dmg register_cvar("zp_knife_strong_dmg" "12.0");
    
cvar_knife_strong_knock register_cvar("zp_knife_strong_knock" "7.0");
    
cvar_knife_strong_spd_attack2 register_cvar("zp_knife_strong_spd_attack2" "1.6");

    
cvar_knife_axe_jumpregister_cvar("zp_knife_axe_jump""335.0");
    
cvar_knife_axe_spd register_cvar("zp_knife_axe_spd""250.0");
    
cvar_knife_axe_dmg register_cvar("zp_knife_axe_dmg" "5.0");
    
cvar_knife_axe_knock register_cvar("zp_knife_axe_knock" "6.0");
    
cvar_knife_axe_spd_attack2 register_cvar("zp_knife_axe_spd_attack2" "1.4");

    
cvar_knife_katana_jumpregister_cvar("zp_knife_katana_jump""275.0");
    
cvar_knife_katana_spd register_cvar("zp_knife_katana_spd""265.0");
    
cvar_knife_katana_dmg register_cvar("zp_knife_katana_dmg" "5.0");
    
cvar_knife_katana_knock register_cvar("zp_knife_katana_knock" "15.0");
    
cvar_knife_katana_spd_attack2 register_cvar("zp_knife_katana_spd_attack2" "1.2");

    
cvar_knife_hammer_jumpregister_cvar("zp_knife_hammer_jump""335.0");
    
cvar_knife_hammer_spdregister_cvar("zp_knife_hammer_spd""315.0");
    
cvar_knife_hammer_dmg register_cvar("zp_knife_hammer_dmg" "15.0");
    
cvar_knife_hammer_knock register_cvar("zp_knife_hammer_knock" "15.0");
    
cvar_hammer_spd_attack2 register_cvar("zp_knife_hammer_spd_attack2" "1.8");

        
register_event("HLTV""event_round_start""a""1=0""2=0")
}

public 
client_connect(id)
{
    
g_knife_combat[id] = false
    g_knife_strong
[id] = false
    g_knife_axe
[id] = false
    g_knife_katana
[id] = false
    g_knife_hammer
[id] = false
    g_hasSpeed
[id] = false
}

public 
client_disconnect(id)
{
    
g_knife_combat[id] = false
    g_knife_strong
[id] = false
    g_knife_axe
[id] = false
    g_knife_katana
[id] = false
    g_knife_hammer
[id] = false
    g_hasSpeed
[id] = false
}

public 
plugin_precache()
{
    
precache_model(combat_v_model)
    
precache_model(combat_p_model)
    
precache_model(strong_v_model)
    
precache_model(strong_p_model)
    
precache_model(axe_v_model)
    
precache_model(axe_p_model)
    
precache_model(katana_v_model)
    
precache_model(katana_p_model)
    
precache_model(hammer_v_model)
    
precache_model(hammer_p_model)

    
precache_sound(g_sound_knife)

    for(new 
0sizeof combat_soundsi++)
        
precache_sound(combat_sounds[i])

    for(new 
0sizeof strong_soundsi++)
        
precache_sound(strong_sounds[i])

    for(new 
0sizeof axe_soundsi++)
        
precache_sound(axe_sounds[i])  

    for(new 
0sizeof katana_soundsi++)
        
precache_sound(katana_sounds[i])

    for(new 
0sizeof hammer_soundsi++)
        
precache_sound(hammer_sounds[i])
}

public 
event_round_start(id)
{
        for (new 
iMAXPLAYERS 1i++)
            
g_WasShowed[i] = false
}

public 
knife_menu(id)
{
        if (
g_WasShowed[id])
        {
            
print_col_chat(id"^1[^4BB^1] Iti poti alege cutitul odata pe runda.")
            return 
PLUGIN_HANDLED
        
}

    if(
is_user_alive(id) && !zp_get_user_zombie(id))
    {
        
my_menu(id)
    }

    return 
PLUGIN_HANDLED
}

public 
my_menu(id)
{
    new 
menu menu_create("\yChose your knife!""menu_handler");
    
menu_additem(menu"\wCombat \y[Speed]""1"0);
    
menu_additem(menu"\wStrong \y[Damage]""2"0);
    
menu_additem(menu"\wAxe \y[Jump]""3"0);
    
menu_additem(menu"\wKatana \y[Knockback]""4"0);
    
menu_additem(menu"\wHammer \r[VIP]""5"0);
    
    
menu_setprop(menuMPROP_EXITMEXIT_ALL);
    
    
menu_display(idmenu0);    


public 
menu_handler(idmenuitem)
{
    if( 
item == MENU_EXIT )
    {
               
menu_destroy(menu);
            return 
PLUGIN_HANDLED;    
    }
    
    new 
data[6], iName[64];
    new 
accesscallback;
    
    
menu_item_getinfo(menuitemaccessdata,5iName63callback);
    
    new 
key str_to_num(data);
    
    switch(
key)
    {
            case 
1:
            {
            
give_combat(id)
            
menu_destroy(menu);
            return 
PLUGIN_HANDLED
        
}
        case 
2:
        {
            
give_strong(id)
            
menu_destroy(menu);
            return 
PLUGIN_HANDLED
        
}
        case 
3:
        {
            
give_axe(id)
            
menu_destroy(menu);
            return 
PLUGIN_HANDLED
        
}
        case 
4:
        {
            
give_katana(id)
            
menu_destroy(menu);
            return 
PLUGIN_HANDLED
        
}
        case 
5:
        {
            
give_hammer(id)
            
menu_destroy(menu);
            return 
PLUGIN_HANDLED
        
}
    }
    
menu_destroy(menu);
    return 
PLUGIN_HANDLED
}

public 
give_combat(id)
{
    
g_knife_combat[id] = true    
    g_knife_strong
[id] = false
    g_knife_axe
[id] = false    
    g_knife_katana
[id] = false    
    g_knife_hammer
[id] = false
    g_hasSpeed
[id] =  true
    g_WasShowed
[id] = true

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
}

public 
give_strong(id)
{
    
g_knife_combat[id] = false    
    g_knife_strong
[id] = true    
    g_knife_axe
[id] = false
    g_knife_katana
[id] = false    
    g_knife_hammer
[id] = false
    g_hasSpeed
[id] = true
    g_WasShowed
[id] = true

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
}

public 
give_axe(id)
{
    
g_knife_combat[id] = false    
    g_knife_strong
[id] = false    
    g_knife_axe
[id] = true
    g_knife_katana
[id] = false    
    g_knife_hammer
[id] = false
    g_hasSpeed
[id] = true
    g_WasShowed
[id] = true

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
}

public 
give_katana(id)
{
    
g_knife_combat[id] = false    
    g_knife_strong
[id] = false    
    g_knife_axe
[id] = false
    g_knife_katana
[id] = true    
    g_knife_hammer
[id] = false
    g_hasSpeed
[id] = true
    g_WasShowed
[id] = true

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
}


public 
give_hammer(id)
{
    if (
get_user_flags(id) & VIP)
    {
        
g_knife_combat[id] = false    
        g_knife_strong
[id] = false    
        g_knife_axe
[id] = false
        g_knife_katana
[id] = false
        g_knife_hammer
[id] = true
        g_hasSpeed
[id] =  true
        g_WasShowed
[id] = true

        engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
    }
    else 
    {
        
client_cmd(id"/knife")
        
g_WasShowed[id] = true
    
}
}

public 
checkWeapon(id)
{
    new 
plrWeapId
    
    plrWeapId 
get_user_weapon(id)
    
    if (
plrWeapId == CSW_KNIFE && (g_knife_combat[id] || g_knife_strong[id] || g_knife_axe[id] || g_knife_katana[id] || g_knife_hammer[id]))
    {
        
checkModel(id)
    }
}

public 
checkModel(id)
{
    if (
zp_get_user_zombie(id))
        return 
PLUGIN_HANDLED
    
    
if (g_knife_combat[id])
    {
        
set_pev(idpev_viewmodel2combat_v_model)
        
set_pev(idpev_weaponmodel2combat_p_model)
    }

    if (
g_knife_strong[id])
    {
        
set_pev(idpev_viewmodel2strong_v_model)
        
set_pev(idpev_weaponmodel2strong_p_model)
    }

    if (
g_knife_axe[id])
    {
        
set_pev(idpev_viewmodel2axe_v_model)
        
set_pev(idpev_weaponmodel2axe_p_model)
    }

    if (
g_knife_katana[id])
    {
        
set_pev(idpev_viewmodel2katana_v_model)
        
set_pev(idpev_weaponmodel2katana_p_model)
    }

    if (
g_knife_hammer[id])
    {
        
set_pev(idpev_viewmodel2hammer_v_model)
        
set_pev(idpev_weaponmodel2hammer_p_model)
    }
    return 
PLUGIN_HANDLED
}

public 
fw_EmitSound(idchannel, const sound[])
{
    if(!
is_user_alive(id) || zp_get_user_zombie(id))
        return 
FMRES_IGNORED
        
    
for(new 0sizeof combat_soundsi++) 
    for(new 
0sizeof strong_soundsi++)
    for(new 
0sizeof axe_soundsi++)
    for(new 
0sizeof katana_soundsi++)
    for(new 
0sizeof hammer_soundsi++)
    {
        if(
equal(soundoldknife_sounds[i]))
        {
            if (
g_knife_combat[id])
            {
                
emit_sound(idchannelcombat_sounds[i], 1.0ATTN_NORM0PITCH_NORM)
                return 
FMRES_SUPERCEDE
            
}
            if (
g_knife_strong[id])
            {
                
emit_sound(idchannelstrong_sounds[i], 1.0ATTN_NORM0PITCH_NORM)
                return 
FMRES_SUPERCEDE
            
}
            if (
g_knife_axe[id])
            {
                
emit_sound(idchannelaxe_sounds[i], 1.0ATTN_NORM0PITCH_NORM)
                return 
FMRES_SUPERCEDE
            
}
            if (
g_knife_katana[id])
            {
                
emit_sound(idchannelkatana_sounds[i], 1.0ATTN_NORM0PITCH_NORM)
                return 
FMRES_SUPERCEDE
            
}
            if (
g_knife_hammer[id])
            {
                
emit_sound(idchannelhammer_sounds[i], 1.0ATTN_NORM0PITCH_NORM)
                return 
FMRES_SUPERCEDE
            
}
            if (!
g_knife_combat[id] || !g_knife_strong[id] || !g_knife_axe[id] || !g_knife_katana[id] || !g_knife_hammer[id])
            {
                
emit_sound(idchanneloldknife_sounds[i], 1.0ATTN_NORM0PITCH_NORM)
                return 
FMRES_SUPERCEDE
            
}
        }
    }
    return 
FMRES_IGNORED
}

public 
message_DeathMsg(msg_idmsg_destid)
{
    static 
szTruncatedWeapon[33], iattackerivictim
    
    get_msg_arg_string
(4szTruncatedWeaponcharsmax(szTruncatedWeapon))
    
    
iattacker get_msg_arg_int(1)
    
ivictim get_msg_arg_int(2)
    
    if(!
is_user_connected(iattacker) || iattacker == ivictim)
        return 
PLUGIN_CONTINUE

    
if (!zp_get_user_zombie(iattacker))
    {
        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
        {
            if(
g_knife_combat[iattacker])
                
set_msg_arg_string(4"Combat knife")
        }
    
        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
        {
            if(
g_knife_strong[iattacker])
                
set_msg_arg_string(4"Strong knife")
        }

        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
        {
            if(
g_knife_axe[iattacker])
                
set_msg_arg_string(4"Axe knife")
        }

        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
        {
            if(
g_knife_katana[iattacker])
                
set_msg_arg_string(4"Katana knife")
        }

        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
        {
            if(
g_knife_hammer[iattacker])
                
set_msg_arg_string(4"Ice knife")
        }
    }
    return 
PLUGIN_CONTINUE
}

stock print_col_chat(const id, const input[], any:...)  
{  
    new 
count 1players[32];  
        static 
msg[191];  
        
vformat(msg190input3);  
        
replace_all(msg190"!g""^4"); // Green Color  
        
replace_all(msg190"!y""^1"); // Default Color 
        
replace_all(msg190"!t""^3"); // Team Color  
        
if (idplayers[0] = id; else get_players(playerscount"ch");  
        {  
            for ( new 
0counti++ )  
            {  
                    if ( 
is_user_connected(players[i]) )  
                    {  
                        
message_begin(MSG_ONE_UNRELIABLESayText_players[i]);  
                        
write_byte(players[i]);  
                        
write_string(msg);  
                        
message_end();  
                    }  
            }  
        }  
}   

public 
fw_PlayerPreThink(id)
{
    if(!
is_user_alive(id) || zp_get_user_zombie(id))
        return 
FMRES_IGNORED

    
new temp[2], weapon get_user_weapon(idtemp[0], temp[1])

    if (
weapon == CSW_KNIFE && g_knife_combat[id])
    {
        
g_hasSpeed[id] = true
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_combat_spd))
    }

    if(
weapon == CSW_KNIFE && g_knife_combat[id])        
        if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP))
        {
            new 
flags pev(idpev_flags)
            new 
waterlvl pev(idpev_waterlevel)
            
            if (!(
flags FL_ONGROUND))
                return 
FMRES_IGNORED

            
if (flags FL_WATERJUMP)
                return 
FMRES_IGNORED

            
if (waterlvl 1)
                return 
FMRES_IGNORED
            
            
new Float:fVelocity[3]
            
pev(idpev_velocityfVelocity)
            
            
fVelocity[2] += get_pcvar_num(cvar_knife_combat_jump)
            
            
set_pev(idpev_velocityfVelocity)
            
set_pev(idpev_gaitsequence6)
        }
    if (
weapon == CSW_KNIFE && g_knife_strong[id])
    {
        
g_hasSpeed[id] = true
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_strong_spd))

        if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP))
        {
            new 
flags pev(idpev_flags)
            new 
waterlvl pev(idpev_waterlevel)
            
            if (!(
flags FL_ONGROUND))
                return 
FMRES_IGNORED

            
if (flags FL_WATERJUMP)
                return 
FMRES_IGNORED

            
if (waterlvl 1)
                return 
FMRES_IGNORED
            
            
new Float:fVelocity[3]
            
pev(idpev_velocityfVelocity)
            
            
fVelocity[2] += get_pcvar_num(cvar_knife_strong_jump)
            
            
set_pev(idpev_velocityfVelocity)
            
set_pev(idpev_gaitsequence6)
        }
    }
    if (
weapon == CSW_KNIFE && g_knife_axe[id])
    {
        
g_hasSpeed[id] = true
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_axe_spd))

        if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP))
        {
            new 
flags pev(idpev_flags)
            new 
waterlvl pev(idpev_waterlevel)
            
            if (!(
flags FL_ONGROUND))
                return 
FMRES_IGNORED

            
if (flags FL_WATERJUMP)
                return 
FMRES_IGNORED

            
if (waterlvl 1)
                return 
FMRES_IGNORED
            
            
new Float:fVelocity[3]
            
pev(idpev_velocityfVelocity)
            
            
fVelocity[2] += get_pcvar_num(cvar_knife_axe_jump)
            
            
set_pev(idpev_velocityfVelocity)
            
set_pev(idpev_gaitsequence6)
        }
    }
    if (
weapon == CSW_KNIFE && g_knife_katana[id])
    {
        
g_hasSpeed[id] = true
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_katana_spd))

        if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP))
        {
            new 
flags pev(idpev_flags)
            new 
waterlvl pev(idpev_waterlevel)
            
            if (!(
flags FL_ONGROUND))
                return 
FMRES_IGNORED

            
if (flags FL_WATERJUMP)
                return 
FMRES_IGNORED

            
if (waterlvl 1)
                return 
FMRES_IGNORED
            
            
new Float:fVelocity[3]
            
pev(idpev_velocityfVelocity)
            
            
fVelocity[2] += get_pcvar_num(cvar_knife_katana_jump)
            
            
set_pev(idpev_velocityfVelocity)
            
set_pev(idpev_gaitsequence6)
        }
    }
    if (
weapon == CSW_KNIFE && g_knife_hammer[id])
    {
        
g_hasSpeed[id] = true
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_hammer_spd))

        if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP))
        {
            new 
flags pev(idpev_flags)
            new 
waterlvl pev(idpev_waterlevel)
            
            if (!(
flags FL_ONGROUND))
                return 
FMRES_IGNORED

            
if (flags FL_WATERJUMP)
                return 
FMRES_IGNORED

            
if (waterlvl 1)
                return 
FMRES_IGNORED
            
            
new Float:fVelocity[3]
            
pev(idpev_velocityfVelocity)
            
            
fVelocity[2] += get_pcvar_num(cvar_knife_hammer_jump)
            
            
set_pev(idpev_velocityfVelocity)
            
set_pev(idpev_gaitsequence6)
        }
    }
    return 
FMRES_IGNORED
}  

public 
fw_TakeDamage(victiminflictorattackerFloat:damagedamage_type)
{
    if(!
is_user_connected(attacker))
        return 
HAM_IGNORED
    
    
if(zp_get_user_zombie(attacker))
        return 
HAM_IGNORED

    
new weapon get_user_weapon(attacker)

    if (
weapon == CSW_KNIFE && g_knife_combat[attacker])
    {    
        
SetHamParamFloat(4damage get_pcvar_float(cvar_knife_combat_dmg))
    }
    if (
weapon == CSW_KNIFE && g_knife_strong[attacker])
    {    
        
SetHamParamFloat(4damage get_pcvar_float(cvar_knife_strong_dmg))
    }
    if (
weapon == CSW_KNIFE && g_knife_axe[attacker])
    {    
        
SetHamParamFloat(4damage get_pcvar_float(cvar_knife_axe_dmg))
    }
    if (
weapon == CSW_KNIFE && g_knife_katana[attacker])
    {    
        
SetHamParamFloat(4damage get_pcvar_float(cvar_knife_katana_dmg))
    }
        
    if (
weapon == CSW_KNIFE && g_knife_hammer[attacker])
    {     
        
SetHamParamFloat(4damage get_pcvar_float(cvar_knife_hammer_dmg))
    }

    return 
HAM_IGNORED
}

public 
fw_Knife_SecondaryAttack_Post(knife
{     
        static 
id 
        id 
get_pdata_cbase(knifem_pPlayer4

        if(
zp_get_user_zombie(id))
        return 
HAM_IGNORED
    
        
if(is_user_connected(id) && g_knife_combat[id]) 
        { 
            static 
Float:flRate 
            flRate 
get_pcvar_float(cvar_knife_combat_spd_attack2
         
            
set_pdata_float(knifem_flNextPrimaryAttackflRate4
            
set_pdata_float(knifem_flNextSecondaryAttackflRate4
            
set_pdata_float(knifem_flTimeWeaponIdleflRate4
        } 
 
        if(
is_user_connected(id) && g_knife_strong[id]) 
        { 
            static 
Float:flRate 
            flRate 
get_pcvar_float(cvar_knife_strong_spd_attack2
             
            
set_pdata_float(knifem_flNextPrimaryAttackflRate4
            
set_pdata_float(knifem_flNextSecondaryAttackflRate4
            
set_pdata_float(knifem_flTimeWeaponIdleflRate4
        } 

        if(
is_user_connected(id) && g_knife_axe[id]) 
        { 
            static 
Float:flRate 
            flRate 
get_pcvar_float(cvar_knife_axe_spd_attack2
                 
            
set_pdata_float(knifem_flNextPrimaryAttackflRate4
            
set_pdata_float(knifem_flNextSecondaryAttackflRate4
            
set_pdata_float(knifem_flTimeWeaponIdleflRate4
        } 

        if(
is_user_connected(id) && g_knife_katana[id]) 
        { 
            static 
Float:flRate 
            flRate 
get_pcvar_float(cvar_knife_katana_spd_attack2
                 
            
set_pdata_float(knifem_flNextPrimaryAttackflRate4
            
set_pdata_float(knifem_flNextSecondaryAttackflRate4
            
set_pdata_float(knifem_flTimeWeaponIdleflRate4
        } 

        if(
is_user_connected(id) && g_knife_hammer[id]) 
        { 
            static 
Float:flRate 
            flRate 
get_pcvar_float(cvar_hammer_spd_attack2
             
            
set_pdata_float(knifem_flNextPrimaryAttackflRate4
            
set_pdata_float(knifem_flNextSecondaryAttackflRate4
            
set_pdata_float(knifem_flTimeWeaponIdleflRate4
        }     
   
        return 
HAM_IGNORED 


public 
event_Damage(id)
{
    new 
weapon attacker get_user_attacker(id weapon);

    if(!
is_user_alive(attacker))
        return 
PLUGIN_CONTINUE;

    if(
weapon == CSW_KNIFE && g_knife_combat[attacker])
    {
        new 
Float:vec[3];
        new 
Float:oldvelo[3];
        
get_user_velocity(idoldvelo);
        
create_velocity_vector(id attacker vec);
        
vec[0] += oldvelo[0];
        
vec[1] += oldvelo[1];
        
set_user_velocity(id vec);
    }

    if(
weapon == CSW_KNIFE && g_knife_strong[attacker])
    {
        new 
Float:vec[3];
        new 
Float:oldvelo[3];
        
get_user_velocity(idoldvelo);
        
create_velocity_vector(id attacker vec);
        
vec[0] += oldvelo[0];
        
vec[1] += oldvelo[1];
        
set_user_velocity(id vec);
    }

    if(
weapon == CSW_KNIFE && g_knife_axe[attacker])
    {
        new 
Float:vec[3];
        new 
Float:oldvelo[3];
        
get_user_velocity(idoldvelo);
        
create_velocity_vector(id attacker vec);
        
vec[0] += oldvelo[0];
        
vec[1] += oldvelo[1];
        
set_user_velocity(id vec);
    }

    if(
weapon == CSW_KNIFE && g_knife_katana[attacker])
    {
        new 
Float:vec[3];
        new 
Float:oldvelo[3];
        
get_user_velocity(idoldvelo);
        
create_velocity_vector(id attacker vec);
        
vec[0] += oldvelo[0];
        
vec[1] += oldvelo[1];
        
set_user_velocity(id vec);
    }

    if(
weapon == CSW_KNIFE && g_knife_hammer[attacker])
    {
        new 
Float:vec[3];
        new 
Float:oldvelo[3];
        
get_user_velocity(idoldvelo);
        
create_velocity_vector(id attacker vec);
        
vec[0] += oldvelo[0];
        
vec[1] += oldvelo[1];
        
set_user_velocity(id vec);
    }

    return 
PLUGIN_CONTINUE;
}

stock create_velocity_vector(victim,attacker,Float:velocity[3])
{
    if(!
zp_get_user_zombie(victim) || !is_user_alive(attacker))
        return 
0;

    new 
Float:vicorigin[3];
    new 
Float:attorigin[3];
    
entity_get_vector(victim   EV_VEC_origin vicorigin);
    
entity_get_vector(attacker EV_VEC_origin attorigin);

    new 
Float:origin2[3]
    
origin2[0] = vicorigin[0] - attorigin[0];
    
origin2[1] = vicorigin[1] - attorigin[1];

    new 
Float:largestnum 0.0;

    if(
floatabs(origin2[0])>largestnumlargestnum floatabs(origin2[0]);
    if(
floatabs(origin2[1])>largestnumlargestnum floatabs(origin2[1]);

    
origin2[0] /= largestnum;
    
origin2[1] /= largestnum;

    if (
g_knife_combat[attacker])
    {
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_combat_knock) * 3000) ) / get_entity_distance(victim attacker);
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_combat_knock) * 3000) ) / get_entity_distance(victim attacker);
    }

    if (
g_knife_strong[attacker])
    {
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_strong_knock) * 3000) ) / get_entity_distance(victim attacker);
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_strong_knock) * 3000) ) / get_entity_distance(victim attacker);
    }

    if (
g_knife_axe[attacker])
    {
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_axe_knock) * 3000) ) / get_entity_distance(victim attacker);
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_axe_knock) * 3000) ) / get_entity_distance(victim attacker);
    }

    if (
g_knife_katana[attacker])
    {
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_katana_knock) * 3000) ) / get_entity_distance(victim attacker);
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_katana_knock) * 3000) ) / get_entity_distance(victim attacker);
    }

    if (
g_knife_hammer[attacker])
    {
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_hammer_knock) * 3000) ) / get_entity_distance(victim attacker);
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_hammer_knock) * 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;
}

public 
client_putinserver(id)
{
    switch(
random_num(00))
    {
        case 
0:
        {
            
g_knife_combat[id] = true
            g_hasSpeed
[id] = true
        
}

    }


plugin with the modifier that i can't compline it

PHP Code:
#include <amxmodx> 
#include <fakemeta> 
#include <fun>  
#include <engine>  
#include <hamsandwich> 
#include <zombieplague> 

#define PLUGIN    "knifemenu" 
#define VERSION    "1.0" 
#define AUTHOR    "kgb-forum" 

#define VIP ADMIN_LEVEL_H 
#define MAXPLAYERS 32 

new combat_v_model[] = "models/zb/v_combat_knife.mdl" 
new combat_p_model[] = "models/zb/p_combat_knife.mdl" 

new strong_v_model[] = "models/zb/v_strong_knife.mdl" 
new strong_p_model[] = "models/zb/p_strong_knife.mdl" 

new axe_v_model[] = "models/zb/v_axe_knife.mdl"     
new axe_p_model[] = "models/zb/p_axe_knife.mdl"     

new katana_v_model[] = "models/zb/v_katana_knife.mdl"     
new katana_p_model[] = "models/zb/p_katana_knife.mdl" 

new hammer_v_model[] = "models/zb/v_hammer_knife.mdl"     
new hammer_p_model[] = "models/zb/p_hammer_knife.mdl"     

const m_pPlayer 41  
const m_flNextPrimaryAttack 46  
const m_flNextSecondaryAttack 47  
const m_flTimeWeaponIdle 48  

new g_hasSpeed[33], SayText 
new g_knife_combat[33], cvar_knife_combat_jumpcvar_knife_combat_spdcvar_knife_combat_dmgcvar_knife_combat_knockcvar_knife_combat_spd_attack2 
new g_knife_strong[33], cvar_knife_strong_jumpcvar_knife_strong_spdcvar_knife_strong_dmgcvar_knife_strong_knockcvar_knife_strong_spd_attack2 
new g_knife_axe[33], cvar_knife_axe_jumpcvar_knife_axe_spdcvar_knife_axe_dmgcvar_knife_axe_knockcvar_knife_axe_spd_attack2 
new g_knife_katana[33], cvar_knife_katana_jumpcvar_knife_katana_spdcvar_knife_katana_dmgcvar_knife_katana_knockcvar_knife_katana_spd_attack2 
new g_knife_hammer[33], cvar_knife_hammer_jumpcvar_knife_hammer_spdcvar_knife_hammer_dmgcvar_knife_hammer_knockcvar_hammer_spd_attack2 

new const g_sound_knife[] = { "items/gunpickup2.wav" 

new const 
combat_sounds[][] = 

    
"zmwpn/zb_knife/combat_deploy.wav"
    
"zmwpn/zb_knife/combat_hit.wav"    
    
"zmwpn/zb_knife/combat_hit.wav"    
    
"zmwpn/zb_knife/combat_hit.wav"    
    
"zmwpn/zb_knife/combat_hit.wav"    
    
"zmwpn/zb_knife/combat_hitwall.wav"
    
"zmwpn/zb_knife/combat_slash.wav"
    
"zmwpn/zb_knife/combat_slash.wav"
    
"zmwpn/zb_knife/combat_stab.wav" 


new const 
strong_sounds[][] = 

    
"zmwpn/zb_knife/strong_deploy.wav"
    
"zmwpn/zb_knife/strong_hit.wav"
    
"zmwpn/zb_knife/strong_hit.wav"
    
"zmwpn/zb_knife/strong_hit.wav"
    
"zmwpn/zb_knife/strong_hit.wav"
    
"zmwpn/zb_knife/strong_hitwall.wav"
    
"zmwpn/zb_knife/strong_slash.wav"
    
"zmwpn/zb_knife/strong_slash.wav"
    
"zmwpn/zb_knife/strong_stab.wav" 


new const 
axe_sounds[][] = 

    
"zmwpn/zb_knife/axe_deploy.wav"
    
"zmwpn/zb_knife/axe_hit.wav"
    
"zmwpn/zb_knife/axe_hit.wav"
    
"zmwpn/zb_knife/axe_hit.wav"
    
"zmwpn/zb_knife/axe_hit.wav"
    
"zmwpn/zb_knife/axe_hitwall.wav"
    
"zmwpn/zb_knife/axe_slash.wav"
    
"zmwpn/zb_knife/axe_slash.wav"
    
"zmwpn/zb_knife/axe_stab.wav" 


new const 
katana_sounds[][] = 

    
"zmwpn/zb_knife/katana_deploy.wav"
    
"zmwpn/zb_knife/katana_hit.wav"
    
"zmwpn/zb_knife/katana_hit.wav"
    
"zmwpn/zb_knife/katana_hit.wav"
    
"zmwpn/zb_knife/katana_hit.wav"
    
"zmwpn/zb_knife/katana_hitwall.wav"
    
"zmwpn/zb_knife/katana_slash.wav"
    
"zmwpn/zb_knife/katana_slash.wav"
    
"zmwpn/zb_knife/katana_stab.wav" 


new const 
hammer_sounds[][] = 

    
"zmwpn/zb_knife/hammer_deploy.wav"
    
"zmwpn/zb_knife/hammer_hit.wav"
    
"zmwpn/zb_knife/hammer_hit.wav"
    
"zmwpn/zb_knife/hammer_hit.wav"
    
"zmwpn/zb_knife/hammer_hit.wav"
    
"zmwpn/zb_knife/hammer_hitwall.wav"
    
"zmwpn/zb_knife/hammer_slash.wav"
    
"zmwpn/zb_knife/hammer_slash.wav"
    
"zmwpn/zb_knife/hammer_stab.wav" 


new const 
oldknife_sounds[][] = 

    
"weapons/knife_deploy1.wav"
    
"weapons/knife_hit1.wav"
    
"weapons/knife_hit2.wav"
    
"weapons/knife_hit3.wav"
    
"weapons/knife_hit4.wav"
    
"weapons/knife_hitwall1.wav"
    
"weapons/knife_slash1.wav"
    
"weapons/knife_slash2.wav"
    
"weapons/knife_stab.wav" 


public 
plugin_init() 

    
register_plugin(PLUGIN VERSION AUTHOR); 
    
register_cvar("zp_addon_knife"VERSIONFCVAR_SERVER); 
        
SayText get_user_msgid("SayText")    

     
register_clcmd("say /knife","knife_menu",ADMIN_ALL,"knife_menu"
     
register_clcmd("say_team /knife","knife_menu",ADMIN_ALL,"knife_menu"
    
register_clcmd("combat""give_combat"
    
register_clcmd("strong""give_strong"
    
register_clcmd("axe""give_axe"
    
register_clcmd("katana""give_katana"
    
register_clcmd("hammer""give_hammer"

    
register_event("CurWeapon","checkWeapon","be","1=1"); 
    
register_event("Damage" "event_Damage" "b" "2>0"); 

    
register_forward(FM_PlayerPreThink"fw_PlayerPreThink"); 
    
register_forward(FM_EmitSound"fw_EmitSound"); 

    
register_message(get_user_msgid("DeathMsg"), "message_DeathMsg"); 

    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage"); 
        
RegisterHam(Ham_Weapon_SecondaryAttack"weapon_knife""fw_Knife_SecondaryAttack_Post"1)  

    
cvar_knife_combat_jumpregister_cvar("zp_knife_combat_jump""270.0"); 
    
cvar_knife_combat_spd register_cvar("zp_knife_combat_spd""310.0"); 
    
cvar_knife_combat_dmg register_cvar("zp_knife_combat_dmg" "4.0"); 
    
cvar_knife_combat_knock register_cvar("zp_knife_combat_knock" "6.0"); 
    
cvar_knife_combat_spd_attack2 register_cvar("zp_knife_combat_spd_attack2" "1.2"); 

    
cvar_knife_strong_jumpregister_cvar("zp_knife_strong_jump""265.0"); 
    
cvar_knife_strong_spd register_cvar("zp_knife_strong_spd""255.0"); 
    
cvar_knife_strong_dmg register_cvar("zp_knife_strong_dmg" "12.0"); 
    
cvar_knife_strong_knock register_cvar("zp_knife_strong_knock" "7.0"); 
    
cvar_knife_strong_spd_attack2 register_cvar("zp_knife_strong_spd_attack2" "1.6"); 

    
cvar_knife_axe_jumpregister_cvar("zp_knife_axe_jump""335.0"); 
    
cvar_knife_axe_spd register_cvar("zp_knife_axe_spd""250.0"); 
    
cvar_knife_axe_dmg register_cvar("zp_knife_axe_dmg" "5.0"); 
    
cvar_knife_axe_knock register_cvar("zp_knife_axe_knock" "6.0"); 
    
cvar_knife_axe_spd_attack2 register_cvar("zp_knife_axe_spd_attack2" "1.4"); 

    
cvar_knife_katana_jumpregister_cvar("zp_knife_katana_jump""275.0"); 
    
cvar_knife_katana_spd register_cvar("zp_knife_katana_spd""265.0"); 
    
cvar_knife_katana_dmg register_cvar("zp_knife_katana_dmg" "5.0"); 
    
cvar_knife_katana_knock register_cvar("zp_knife_katana_knock" "15.0"); 
    
cvar_knife_katana_spd_attack2 register_cvar("zp_knife_katana_spd_attack2" "1.2"); 

    
cvar_knife_hammer_jumpregister_cvar("zp_knife_hammer_jump""335.0"); 
    
cvar_knife_hammer_spdregister_cvar("zp_knife_hammer_spd""315.0"); 
    
cvar_knife_hammer_dmg register_cvar("zp_knife_hammer_dmg" "15.0"); 
    
cvar_knife_hammer_knock register_cvar("zp_knife_hammer_knock" "15.0"); 
    
cvar_hammer_spd_attack2 register_cvar("zp_knife_hammer_spd_attack2" "1.8"); 

        
register_event("HLTV""event_round_start""a""1=0""2=0"


public 
client_connect(id

    
g_knife_combat[id] = false 
    g_knife_strong
[id] = false 
    g_knife_axe
[id] = false 
    g_knife_katana
[id] = false 
    g_knife_hammer
[id] = false 
    g_hasSpeed
[id] = false 


public 
client_disconnect(id

    
g_knife_combat[id] = false 
    g_knife_strong
[id] = false 
    g_knife_axe
[id] = false 
    g_knife_katana
[id] = false 
    g_knife_hammer
[id] = false 
    g_hasSpeed
[id] = false 


public 
plugin_precache() 

    
precache_model(combat_v_model
    
precache_model(combat_p_model
    
precache_model(strong_v_model
    
precache_model(strong_p_model
    
precache_model(axe_v_model
    
precache_model(axe_p_model
    
precache_model(katana_v_model
    
precache_model(katana_p_model
    
precache_model(hammer_v_model
    
precache_model(hammer_p_model

    
precache_sound(g_sound_knife

    for(new 
0sizeof combat_soundsi++) 
        
precache_sound(combat_sounds[i]) 

    for(new 
0sizeof strong_soundsi++) 
        
precache_sound(strong_sounds[i]) 

    for(new 
0sizeof axe_soundsi++) 
        
precache_sound(axe_sounds[i])   

    for(new 
0sizeof katana_soundsi++) 
        
precache_sound(katana_sounds[i]) 

    for(new 
0sizeof hammer_soundsi++) 
        
precache_sound(hammer_sounds[i]) 


public 
event_round_start(id

        for (new 
iMAXPLAYERS 1i++) 


public 
knife_menu(id


    if(
is_user_alive(id) && !zp_get_user_zombie(id)) 
    { 
        
my_menu(id
    } 

    return 
PLUGIN_HANDLED 


public 
my_menu(id

    new 
menu menu_create("\yChose your knife!""menu_handler"); 
    
menu_additem(menu"\wCombat \y[Speed]""1"0); 
    
menu_additem(menu"\wStrong \y[Damage]""2"0); 
    
menu_additem(menu"\wAxe \y[Jump]""3"0); 
    
menu_additem(menu"\wKatana \y[Knockback]""4"0); 
    
menu_additem(menu"\wHammer \r[VIP]""5"0); 
     
    
menu_setprop(menuMPROP_EXITMEXIT_ALL); 
     
    
menu_display(idmenu0);     
}  

public 
menu_handler(idmenuitem

    if( 
item == MENU_EXIT 
    { 
               
menu_destroy(menu); 
            return 
PLUGIN_HANDLED;     
    } 
     
    new 
data[6], iName[64]; 
    new 
accesscallback
     
    
menu_item_getinfo(menuitemaccessdata,5iName63callback); 
     
    new 
key str_to_num(data); 
     
    switch(
key
    { 
            case 
1
            { 
            
give_combat(id
            
menu_destroy(menu); 
            return 
PLUGIN_HANDLED 
        

        case 
2
        { 
            
give_strong(id
            
menu_destroy(menu); 
            return 
PLUGIN_HANDLED 
        

        case 
3
        { 
            
give_axe(id
            
menu_destroy(menu); 
            return 
PLUGIN_HANDLED 
        

        case 
4
        { 
            
give_katana(id
            
menu_destroy(menu); 
            return 
PLUGIN_HANDLED 
        

        case 
5
        { 
            
give_hammer(id
            
menu_destroy(menu); 
            return 
PLUGIN_HANDLED 
        

    } 
    
menu_destroy(menu); 
    return 
PLUGIN_HANDLED 


public 
give_combat(id

    
g_knife_combat[id] = true     
    g_knife_strong
[id] = false 
    g_knife_axe
[id] = false     
    g_knife_katana
[id] = false     
    g_knife_hammer
[id] = false 
    g_hasSpeed
[id] =  true 

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM


public 
give_strong(id

    
g_knife_combat[id] = false     
    g_knife_strong
[id] = true     
    g_knife_axe
[id] = false 
    g_knife_katana
[id] = false     
    g_knife_hammer
[id] = false 
    g_hasSpeed
[id] = true 

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM


public 
give_axe(id

    
g_knife_combat[id] = false     
    g_knife_strong
[id] = false     
    g_knife_axe
[id] = true 
    g_knife_katana
[id] = false     
    g_knife_hammer
[id] = false 
    g_hasSpeed
[id] = true 

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM


public 
give_katana(id

    
g_knife_combat[id] = false     
    g_knife_strong
[id] = false     
    g_knife_axe
[id] = false 
    g_knife_katana
[id] = true     
    g_knife_hammer
[id] = false 
    g_hasSpeed
[id] = true 

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM



public 
give_hammer(id

    if (
get_user_flags(id) & VIP
    { 
        
g_knife_combat[id] = false     
        g_knife_strong
[id] = false     
        g_knife_axe
[id] = false 
        g_knife_katana
[id] = false 
        g_knife_hammer
[id] = true 
        g_hasSpeed
[id] =  true 

        engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM
    } 
    else  
    { 
        
client_cmd(id"/knife"
    } 


public 
checkWeapon(id

    new 
plrWeapId 
     
    plrWeapId 
get_user_weapon(id
     
    if (
plrWeapId == CSW_KNIFE && (g_knife_combat[id] || g_knife_strong[id] || g_knife_axe[id] || g_knife_katana[id] || g_knife_hammer[id])) 
    { 
        
checkModel(id
    } 


public 
checkModel(id

    if (
zp_get_user_zombie(id)) 
        return 
PLUGIN_HANDLED 
     
    
if (g_knife_combat[id]) 
    { 
        
set_pev(idpev_viewmodel2combat_v_model
        
set_pev(idpev_weaponmodel2combat_p_model
    } 

    if (
g_knife_strong[id]) 
    { 
        
set_pev(idpev_viewmodel2strong_v_model
        
set_pev(idpev_weaponmodel2strong_p_model
    } 

    if (
g_knife_axe[id]) 
    { 
        
set_pev(idpev_viewmodel2axe_v_model
        
set_pev(idpev_weaponmodel2axe_p_model
    } 

    if (
g_knife_katana[id]) 
    { 
        
set_pev(idpev_viewmodel2katana_v_model
        
set_pev(idpev_weaponmodel2katana_p_model
    } 

    if (
g_knife_hammer[id]) 
    { 
        
set_pev(idpev_viewmodel2hammer_v_model
        
set_pev(idpev_weaponmodel2hammer_p_model
    } 
    return 
PLUGIN_HANDLED 


public 
fw_EmitSound(idchannel, const sound[]) 

    if(!
is_user_alive(id) || zp_get_user_zombie(id)) 
        return 
FMRES_IGNORED 
         
    
for(new 0sizeof combat_soundsi++)  
    for(new 
0sizeof strong_soundsi++) 
    for(new 
0sizeof axe_soundsi++) 
    for(new 
0sizeof katana_soundsi++) 
    for(new 
0sizeof hammer_soundsi++) 
    { 
        if(
equal(soundoldknife_sounds[i])) 
        { 
            if (
g_knife_combat[id]) 
            { 
                
emit_sound(idchannelcombat_sounds[i], 1.0ATTN_NORM0PITCH_NORM
                return 
FMRES_SUPERCEDE 
            

            if (
g_knife_strong[id]) 
            { 
                
emit_sound(idchannelstrong_sounds[i], 1.0ATTN_NORM0PITCH_NORM
                return 
FMRES_SUPERCEDE 
            

            if (
g_knife_axe[id]) 
            { 
                
emit_sound(idchannelaxe_sounds[i], 1.0ATTN_NORM0PITCH_NORM
                return 
FMRES_SUPERCEDE 
            

            if (
g_knife_katana[id]) 
            { 
                
emit_sound(idchannelkatana_sounds[i], 1.0ATTN_NORM0PITCH_NORM
                return 
FMRES_SUPERCEDE 
            

            if (
g_knife_hammer[id]) 
            { 
                
emit_sound(idchannelhammer_sounds[i], 1.0ATTN_NORM0PITCH_NORM
                return 
FMRES_SUPERCEDE 
            

            if (!
g_knife_combat[id] || !g_knife_strong[id] || !g_knife_axe[id] || !g_knife_katana[id] || !g_knife_hammer[id]) 
            { 
                
emit_sound(idchanneloldknife_sounds[i], 1.0ATTN_NORM0PITCH_NORM
                return 
FMRES_SUPERCEDE 
            

        } 
    } 
    return 
FMRES_IGNORED 


public 
message_DeathMsg(msg_idmsg_destid

    static 
szTruncatedWeapon[33], iattackerivictim 
     
    get_msg_arg_string
(4szTruncatedWeaponcharsmax(szTruncatedWeapon)) 
     
    
iattacker get_msg_arg_int(1
    
ivictim get_msg_arg_int(2
     
    if(!
is_user_connected(iattacker) || iattacker == ivictim
        return 
PLUGIN_CONTINUE 

    
if (!zp_get_user_zombie(iattacker)) 
    { 
        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE
        { 
            if(
g_knife_combat[iattacker]) 
                
set_msg_arg_string(4"Combat knife"
        } 
     
        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE
        { 
            if(
g_knife_strong[iattacker]) 
                
set_msg_arg_string(4"Strong knife"
        } 

        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE
        { 
            if(
g_knife_axe[iattacker]) 
                
set_msg_arg_string(4"Axe knife"
        } 

        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE
        { 
            if(
g_knife_katana[iattacker]) 
                
set_msg_arg_string(4"Katana knife"
        } 

        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE
        { 
            if(
g_knife_hammer[iattacker]) 
                
set_msg_arg_string(4"Ice knife"
        } 
    } 
    return 
PLUGIN_CONTINUE 


stock print_col_chat(const id, const input[], any:...)   
{   
    new 
count 1players[32];   
        static 
msg[191];   
        
vformat(msg190input3);   
        
replace_all(msg190"!g""^4"); // Green Color   
        
replace_all(msg190"!y""^1"); // Default Color  
        
replace_all(msg190"!t""^3"); // Team Color   
        
if (idplayers[0] = id; else get_players(playerscount"ch");   
        {   
            for ( new 
0counti++ )   
            {   
                    if ( 
is_user_connected(players[i]) )   
                    {   
                        
message_begin(MSG_ONE_UNRELIABLESayText_players[i]);   
                        
write_byte(players[i]);   
                        
write_string(msg);   
                        
message_end();   
                    }   
            }   
        }   
}    

public 
fw_PlayerPreThink(id

    if(!
is_user_alive(id) || zp_get_user_zombie(id)) 
        return 
FMRES_IGNORED 

    
new temp[2], weapon get_user_weapon(idtemp[0], temp[1]) 

    if (
weapon == CSW_KNIFE && g_knife_combat[id]) 
    { 
        
g_hasSpeed[id] = true 
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_combat_spd)) 
    } 

    if(
weapon == CSW_KNIFE && g_knife_combat[id])         
        if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP)) 
        { 
            new 
flags pev(idpev_flags
            new 
waterlvl pev(idpev_waterlevel
             
            if (!(
flags FL_ONGROUND)) 
                return 
FMRES_IGNORED 

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

            
if (waterlvl 1
                return 
FMRES_IGNORED 
             
            
new Float:fVelocity[3
            
pev(idpev_velocityfVelocity
             
            
fVelocity[2] += get_pcvar_num(cvar_knife_combat_jump
             
            
set_pev(idpev_velocityfVelocity
            
set_pev(idpev_gaitsequence6
        } 
    if (
weapon == CSW_KNIFE && g_knife_strong[id]) 
    { 
        
g_hasSpeed[id] = true 
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_strong_spd)) 

        if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP)) 
        { 
            new 
flags pev(idpev_flags
            new 
waterlvl pev(idpev_waterlevel
             
            if (!(
flags FL_ONGROUND)) 
                return 
FMRES_IGNORED 

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

            
if (waterlvl 1
                return 
FMRES_IGNORED 
             
            
new Float:fVelocity[3
            
pev(idpev_velocityfVelocity
             
            
fVelocity[2] += get_pcvar_num(cvar_knife_strong_jump
             
            
set_pev(idpev_velocityfVelocity
            
set_pev(idpev_gaitsequence6
        } 
    } 
    if (
weapon == CSW_KNIFE && g_knife_axe[id]) 
    { 
        
g_hasSpeed[id] = true 
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_axe_spd)) 

        if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP)) 
        { 
            new 
flags pev(idpev_flags
            new 
waterlvl pev(idpev_waterlevel
             
            if (!(
flags FL_ONGROUND)) 
                return 
FMRES_IGNORED 

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

            
if (waterlvl 1
                return 
FMRES_IGNORED 
             
            
new Float:fVelocity[3
            
pev(idpev_velocityfVelocity
             
            
fVelocity[2] += get_pcvar_num(cvar_knife_axe_jump
             
            
set_pev(idpev_velocityfVelocity
            
set_pev(idpev_gaitsequence6
        } 
    } 
    if (
weapon == CSW_KNIFE && g_knife_katana[id]) 
    { 
        
g_hasSpeed[id] = true 
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_katana_spd)) 

        if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP)) 
        { 
            new 
flags pev(idpev_flags
            new 
waterlvl pev(idpev_waterlevel
             
            if (!(
flags FL_ONGROUND)) 
                return 
FMRES_IGNORED 

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

            
if (waterlvl 1
                return 
FMRES_IGNORED 
             
            
new Float:fVelocity[3
            
pev(idpev_velocityfVelocity
             
            
fVelocity[2] += get_pcvar_num(cvar_knife_katana_jump
             
            
set_pev(idpev_velocityfVelocity
            
set_pev(idpev_gaitsequence6
        } 
    } 
    if (
weapon == CSW_KNIFE && g_knife_hammer[id]) 
    { 
        
g_hasSpeed[id] = true 
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_hammer_spd)) 

        if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP)) 
        { 
            new 
flags pev(idpev_flags
            new 
waterlvl pev(idpev_waterlevel
             
            if (!(
flags FL_ONGROUND)) 
                return 
FMRES_IGNORED 

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

            
if (waterlvl 1
                return 
FMRES_IGNORED 
             
            
new Float:fVelocity[3
            
pev(idpev_velocityfVelocity
             
            
fVelocity[2] += get_pcvar_num(cvar_knife_hammer_jump
             
            
set_pev(idpev_velocityfVelocity
            
set_pev(idpev_gaitsequence6
        } 
    } 
    return 
FMRES_IGNORED 
}   

public 
fw_TakeDamage(victiminflictorattackerFloat:damagedamage_type

    if(!
is_user_connected(attacker)) 
        return 
HAM_IGNORED 
     
    
if(zp_get_user_zombie(attacker)) 
        return 
HAM_IGNORED 

    
new weapon get_user_weapon(attacker

    if (
weapon == CSW_KNIFE && g_knife_combat[attacker]) 
    {     
        
SetHamParamFloat(4damage get_pcvar_float(cvar_knife_combat_dmg)) 
    } 
    if (
weapon == CSW_KNIFE && g_knife_strong[attacker]) 
    {     
        
SetHamParamFloat(4damage get_pcvar_float(cvar_knife_strong_dmg)) 
    } 
    if (
weapon == CSW_KNIFE && g_knife_axe[attacker]) 
    {     
        
SetHamParamFloat(4damage get_pcvar_float(cvar_knife_axe_dmg)) 
    } 
    if (
weapon == CSW_KNIFE && g_knife_katana[attacker]) 
    {     
        
SetHamParamFloat(4damage get_pcvar_float(cvar_knife_katana_dmg)) 
    } 
         
    if (
weapon == CSW_KNIFE && g_knife_hammer[attacker]) 
    {      
        
SetHamParamFloat(4damage get_pcvar_float(cvar_knife_hammer_dmg)) 
    } 

    return 
HAM_IGNORED 


public 
fw_Knife_SecondaryAttack_Post(knife)  
{      
        static 
id  
        id 
get_pdata_cbase(knifem_pPlayer4)  

        if(
zp_get_user_zombie(id)) 
        return 
HAM_IGNORED 
     
        
if(is_user_connected(id) && g_knife_combat[id])  
        {  
            static 
Float:flRate  
            flRate 
get_pcvar_float(cvar_knife_combat_spd_attack2)  
          
            
set_pdata_float(knifem_flNextPrimaryAttackflRate4)  
            
set_pdata_float(knifem_flNextSecondaryAttackflRate4)  
            
set_pdata_float(knifem_flTimeWeaponIdleflRate4)  
        }  
  
        if(
is_user_connected(id) && g_knife_strong[id])  
        {  
            static 
Float:flRate  
            flRate 
get_pcvar_float(cvar_knife_strong_spd_attack2)  
              
            
set_pdata_float(knifem_flNextPrimaryAttackflRate4)  
            
set_pdata_float(knifem_flNextSecondaryAttackflRate4)  
            
set_pdata_float(knifem_flTimeWeaponIdleflRate4)  
        }  

        if(
is_user_connected(id) && g_knife_axe[id])  
        {  
            static 
Float:flRate  
            flRate 
get_pcvar_float(cvar_knife_axe_spd_attack2)  
                  
            
set_pdata_float(knifem_flNextPrimaryAttackflRate4)  
            
set_pdata_float(knifem_flNextSecondaryAttackflRate4)  
            
set_pdata_float(knifem_flTimeWeaponIdleflRate4)  
        }  

        if(
is_user_connected(id) && g_knife_katana[id])  
        {  
            static 
Float:flRate  
            flRate 
get_pcvar_float(cvar_knife_katana_spd_attack2)  
                  
            
set_pdata_float(knifem_flNextPrimaryAttackflRate4)  
            
set_pdata_float(knifem_flNextSecondaryAttackflRate4)  
            
set_pdata_float(knifem_flTimeWeaponIdleflRate4)  
        }  

        if(
is_user_connected(id) && g_knife_hammer[id])  
        {  
            static 
Float:flRate  
            flRate 
get_pcvar_float(cvar_hammer_spd_attack2)  
              
            
set_pdata_float(knifem_flNextPrimaryAttackflRate4)  
            
set_pdata_float(knifem_flNextSecondaryAttackflRate4)  
            
set_pdata_float(knifem_flTimeWeaponIdleflRate4)  
        }      
    
        return 
HAM_IGNORED  
}  

public 
event_Damage(id

    new 
weapon attacker get_user_attacker(id weapon); 

    if(!
is_user_alive(attacker)) 
        return 
PLUGIN_CONTINUE

    if(
weapon == CSW_KNIFE && g_knife_combat[attacker]) 
    { 
        new 
Float:vec[3]; 
        new 
Float:oldvelo[3]; 
        
get_user_velocity(idoldvelo); 
        
create_velocity_vector(id attacker vec); 
        
vec[0] += oldvelo[0]; 
        
vec[1] += oldvelo[1]; 
        
set_user_velocity(id vec); 
    } 

    if(
weapon == CSW_KNIFE && g_knife_strong[attacker]) 
    { 
        new 
Float:vec[3]; 
        new 
Float:oldvelo[3]; 
        
get_user_velocity(idoldvelo); 
        
create_velocity_vector(id attacker vec); 
        
vec[0] += oldvelo[0]; 
        
vec[1] += oldvelo[1]; 
        
set_user_velocity(id vec); 
    } 

    if(
weapon == CSW_KNIFE && g_knife_axe[attacker]) 
    { 
        new 
Float:vec[3]; 
        new 
Float:oldvelo[3]; 
        
get_user_velocity(idoldvelo); 
        
create_velocity_vector(id attacker vec); 
        
vec[0] += oldvelo[0]; 
        
vec[1] += oldvelo[1]; 
        
set_user_velocity(id vec); 
    } 

    if(
weapon == CSW_KNIFE && g_knife_katana[attacker]) 
    { 
        new 
Float:vec[3]; 
        new 
Float:oldvelo[3]; 
        
get_user_velocity(idoldvelo); 
        
create_velocity_vector(id attacker vec); 
        
vec[0] += oldvelo[0]; 
        
vec[1] += oldvelo[1]; 
        
set_user_velocity(id vec); 
    } 

    if(
weapon == CSW_KNIFE && g_knife_hammer[attacker]) 
    { 
        new 
Float:vec[3]; 
        new 
Float:oldvelo[3]; 
        
get_user_velocity(idoldvelo); 
        
create_velocity_vector(id attacker vec); 
        
vec[0] += oldvelo[0]; 
        
vec[1] += oldvelo[1]; 
        
set_user_velocity(id vec); 
    } 

    return 
PLUGIN_CONTINUE


stock create_velocity_vector(victim,attacker,Float:velocity[3]) 

    if(!
zp_get_user_zombie(victim) || !is_user_alive(attacker)) 
        return 
0

    new 
Float:vicorigin[3]; 
    new 
Float:attorigin[3]; 
    
entity_get_vector(victim   EV_VEC_origin vicorigin); 
    
entity_get_vector(attacker EV_VEC_origin attorigin); 

    new 
Float:origin2[3
    
origin2[0] = vicorigin[0] - attorigin[0]; 
    
origin2[1] = vicorigin[1] - attorigin[1]; 

    new 
Float:largestnum 0.0

    if(
floatabs(origin2[0])>largestnumlargestnum floatabs(origin2[0]); 
    if(
floatabs(origin2[1])>largestnumlargestnum floatabs(origin2[1]); 

    
origin2[0] /= largestnum
    
origin2[1] /= largestnum

    if (
g_knife_combat[attacker]) 
    { 
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_combat_knock) * 3000) ) / get_entity_distance(victim attacker); 
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_combat_knock) * 3000) ) / get_entity_distance(victim attacker); 
    } 

    if (
g_knife_strong[attacker]) 
    { 
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_strong_knock) * 3000) ) / get_entity_distance(victim attacker); 
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_strong_knock) * 3000) ) / get_entity_distance(victim attacker); 
    } 

    if (
g_knife_axe[attacker]) 
    { 
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_axe_knock) * 3000) ) / get_entity_distance(victim attacker); 
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_axe_knock) * 3000) ) / get_entity_distance(victim attacker); 
    } 

    if (
g_knife_katana[attacker]) 
    { 
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_katana_knock) * 3000) ) / get_entity_distance(victim attacker); 
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_katana_knock) * 3000) ) / get_entity_distance(victim attacker); 
    } 

    if (
g_knife_hammer[attacker]) 
    { 
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_hammer_knock) * 3000) ) / get_entity_distance(victim attacker); 
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_hammer_knock) * 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


public 
client_putinserver(id

    switch(
random_num(00)) 
    { 
        case 
0
        { 
            
g_knife_combat[id] = true 
            g_hasSpeed
[id] = true 
        


    } 

and that's the errors i got in the compline

PHP Code:
AMX Mod X Compiler 1.8.3-dev+5201
Copyright 
(c1997-2006 ITB CompuPhase
Copyright 
(c2004-2013 AMX Mod X Team

Warning
Loose indentation on line 126
Warning
Loose indentation on line 128
Warning
Loose indentation on line 130
Warning
Loose indentation on line 145
Warning
Loose indentation on line 147
Warning
Loose indentation on line 177
Warning
Symbol "client_disconnect" is marked as deprecated: Use client_disconnected() insteadon line 191

Error
Invalid expressionassumed zero on line 234
Warning
Expression has no effect on line 234
Warning
Loose indentation on line 236
Error
Invalid expressionassumed zero on line 236
Error
Undefined symbol "knife_menu" on line 236
Error
Too many error messages on one line on line 236

Compilation aborted
.
4 Errors.
(
compile failed). 
thank you
bashar_beesho is offline
Old 04-30-2019, 17:03
love yoyo
This message has been deleted by love yoyo.
bashar_beesho
Junior Member
Join Date: Jan 2015
Old 04-30-2019 , 17:39   Re: Can anyone help me with this ?
Reply With Quote #2

Quote:
Originally Posted by love yoyo View Post
add this "set_task(1.0, "knife_menu", i)" on 236 line
i could not do it , can you do it and give me the full script ? if you dont mind
bashar_beesho is offline
HITLER
Member
Join Date: Jul 2018
Location: www
Old 05-03-2019 , 14:39   Re: Can anyone help me with this ?
Reply With Quote #3

Try this. it should work

PHP Code:
#include <amxmodx> 
#include <fakemeta> 
#include <fun>  
#include <engine>  
#include <hamsandwich> 
#include <zombieplague> 

#define PLUGIN    "knifemenu" 
#define VERSION    "1.0" 
#define AUTHOR    "kgb-forum" 

#define VIP ADMIN_LEVEL_H 
#define MAXPLAYERS 32 

new combat_v_model[] = "models/zb/v_combat_knife.mdl" 
new combat_p_model[] = "models/zb/p_combat_knife.mdl" 

new strong_v_model[] = "models/zb/v_strong_knife.mdl" 
new strong_p_model[] = "models/zb/p_strong_knife.mdl" 

new axe_v_model[] = "models/zb/v_axe_knife.mdl"     
new axe_p_model[] = "models/zb/p_axe_knife.mdl"     

new katana_v_model[] = "models/zb/v_katana_knife.mdl"     
new katana_p_model[] = "models/zb/p_katana_knife.mdl" 

new hammer_v_model[] = "models/zb/v_hammer_knife.mdl"     
new hammer_p_model[] = "models/zb/p_hammer_knife.mdl"     

const m_pPlayer 41  
const m_flNextPrimaryAttack 46  
const m_flNextSecondaryAttack 47  
const m_flTimeWeaponIdle 48  

new g_hasSpeed[33], SayText 
new bool:g_WasShowed[MAXPLAYERS 1
new 
g_knife_combat[33], cvar_knife_combat_jumpcvar_knife_combat_spdcvar_knife_combat_dmgcvar_knife_combat_knockcvar_knife_combat_spd_attack2 
new g_knife_strong[33], cvar_knife_strong_jumpcvar_knife_strong_spdcvar_knife_strong_dmgcvar_knife_strong_knockcvar_knife_strong_spd_attack2 
new g_knife_axe[33], cvar_knife_axe_jumpcvar_knife_axe_spdcvar_knife_axe_dmgcvar_knife_axe_knockcvar_knife_axe_spd_attack2 
new g_knife_katana[33], cvar_knife_katana_jumpcvar_knife_katana_spdcvar_knife_katana_dmgcvar_knife_katana_knockcvar_knife_katana_spd_attack2 
new g_knife_hammer[33], cvar_knife_hammer_jumpcvar_knife_hammer_spdcvar_knife_hammer_dmgcvar_knife_hammer_knockcvar_hammer_spd_attack2 

new const g_sound_knife[] = { "items/gunpickup2.wav" 

new const 
combat_sounds[][] = 

    
"zmwpn/zb_knife/combat_deploy.wav"
    
"zmwpn/zb_knife/combat_hit.wav"    
    
"zmwpn/zb_knife/combat_hit.wav"    
    
"zmwpn/zb_knife/combat_hit.wav"    
    
"zmwpn/zb_knife/combat_hit.wav"    
    
"zmwpn/zb_knife/combat_hitwall.wav"
    
"zmwpn/zb_knife/combat_slash.wav"
    
"zmwpn/zb_knife/combat_slash.wav"
    
"zmwpn/zb_knife/combat_stab.wav" 


new const 
strong_sounds[][] = 

    
"zmwpn/zb_knife/strong_deploy.wav"
    
"zmwpn/zb_knife/strong_hit.wav"
    
"zmwpn/zb_knife/strong_hit.wav"
    
"zmwpn/zb_knife/strong_hit.wav"
    
"zmwpn/zb_knife/strong_hit.wav"
    
"zmwpn/zb_knife/strong_hitwall.wav"
    
"zmwpn/zb_knife/strong_slash.wav"
    
"zmwpn/zb_knife/strong_slash.wav"
    
"zmwpn/zb_knife/strong_stab.wav" 


new const 
axe_sounds[][] = 

    
"zmwpn/zb_knife/axe_deploy.wav"
    
"zmwpn/zb_knife/axe_hit.wav"
    
"zmwpn/zb_knife/axe_hit.wav"
    
"zmwpn/zb_knife/axe_hit.wav"
    
"zmwpn/zb_knife/axe_hit.wav"
    
"zmwpn/zb_knife/axe_hitwall.wav"
    
"zmwpn/zb_knife/axe_slash.wav"
    
"zmwpn/zb_knife/axe_slash.wav"
    
"zmwpn/zb_knife/axe_stab.wav" 


new const 
katana_sounds[][] = 

    
"zmwpn/zb_knife/katana_deploy.wav"
    
"zmwpn/zb_knife/katana_hit.wav"
    
"zmwpn/zb_knife/katana_hit.wav"
    
"zmwpn/zb_knife/katana_hit.wav"
    
"zmwpn/zb_knife/katana_hit.wav"
    
"zmwpn/zb_knife/katana_hitwall.wav"
    
"zmwpn/zb_knife/katana_slash.wav"
    
"zmwpn/zb_knife/katana_slash.wav"
    
"zmwpn/zb_knife/katana_stab.wav" 


new const 
hammer_sounds[][] = 

    
"zmwpn/zb_knife/hammer_deploy.wav"
    
"zmwpn/zb_knife/hammer_hit.wav"
    
"zmwpn/zb_knife/hammer_hit.wav"
    
"zmwpn/zb_knife/hammer_hit.wav"
    
"zmwpn/zb_knife/hammer_hit.wav"
    
"zmwpn/zb_knife/hammer_hitwall.wav"
    
"zmwpn/zb_knife/hammer_slash.wav"
    
"zmwpn/zb_knife/hammer_slash.wav"
    
"zmwpn/zb_knife/hammer_stab.wav" 


new const 
oldknife_sounds[][] = 

    
"weapons/knife_deploy1.wav"
    
"weapons/knife_hit1.wav"
    
"weapons/knife_hit2.wav"
    
"weapons/knife_hit3.wav"
    
"weapons/knife_hit4.wav"
    
"weapons/knife_hitwall1.wav"
    
"weapons/knife_slash1.wav"
    
"weapons/knife_slash2.wav"
    
"weapons/knife_stab.wav" 


public 
plugin_init() 

    
register_plugin(PLUGIN VERSION AUTHOR); 
    
register_cvar("zp_addon_knife"VERSIONFCVAR_SERVER); 
        
SayText get_user_msgid("SayText")    

     
register_clcmd("say /knife","knife_menu",ADMIN_ALL,"knife_menu"
     
register_clcmd("say_team /knife","knife_menu",ADMIN_ALL,"knife_menu"
    
register_clcmd("combat""give_combat"
    
register_clcmd("strong""give_strong"
    
register_clcmd("axe""give_axe"
    
register_clcmd("katana""give_katana"
    
register_clcmd("hammer""give_hammer"

    
register_event("CurWeapon","checkWeapon","be","1=1"); 
    
register_event("Damage" "event_Damage" "b" "2>0"); 

    
register_forward(FM_PlayerPreThink"fw_PlayerPreThink"); 
    
register_forward(FM_EmitSound"fw_EmitSound"); 

    
register_message(get_user_msgid("DeathMsg"), "message_DeathMsg"); 

    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage"); 
        
RegisterHam(Ham_Weapon_SecondaryAttack"weapon_knife""fw_Knife_SecondaryAttack_Post"1)  

    
cvar_knife_combat_jumpregister_cvar("zp_knife_combat_jump""270.0"); 
    
cvar_knife_combat_spd register_cvar("zp_knife_combat_spd""310.0"); 
    
cvar_knife_combat_dmg register_cvar("zp_knife_combat_dmg" "4.0"); 
    
cvar_knife_combat_knock register_cvar("zp_knife_combat_knock" "6.0"); 
    
cvar_knife_combat_spd_attack2 register_cvar("zp_knife_combat_spd_attack2" "1.2"); 

    
cvar_knife_strong_jumpregister_cvar("zp_knife_strong_jump""265.0"); 
    
cvar_knife_strong_spd register_cvar("zp_knife_strong_spd""255.0"); 
    
cvar_knife_strong_dmg register_cvar("zp_knife_strong_dmg" "12.0"); 
    
cvar_knife_strong_knock register_cvar("zp_knife_strong_knock" "7.0"); 
    
cvar_knife_strong_spd_attack2 register_cvar("zp_knife_strong_spd_attack2" "1.6"); 

    
cvar_knife_axe_jumpregister_cvar("zp_knife_axe_jump""335.0"); 
    
cvar_knife_axe_spd register_cvar("zp_knife_axe_spd""250.0"); 
    
cvar_knife_axe_dmg register_cvar("zp_knife_axe_dmg" "5.0"); 
    
cvar_knife_axe_knock register_cvar("zp_knife_axe_knock" "6.0"); 
    
cvar_knife_axe_spd_attack2 register_cvar("zp_knife_axe_spd_attack2" "1.4"); 

    
cvar_knife_katana_jumpregister_cvar("zp_knife_katana_jump""275.0"); 
    
cvar_knife_katana_spd register_cvar("zp_knife_katana_spd""265.0"); 
    
cvar_knife_katana_dmg register_cvar("zp_knife_katana_dmg" "5.0"); 
    
cvar_knife_katana_knock register_cvar("zp_knife_katana_knock" "15.0"); 
    
cvar_knife_katana_spd_attack2 register_cvar("zp_knife_katana_spd_attack2" "1.2"); 

    
cvar_knife_hammer_jumpregister_cvar("zp_knife_hammer_jump""335.0"); 
    
cvar_knife_hammer_spdregister_cvar("zp_knife_hammer_spd""315.0"); 
    
cvar_knife_hammer_dmg register_cvar("zp_knife_hammer_dmg" "15.0"); 
    
cvar_knife_hammer_knock register_cvar("zp_knife_hammer_knock" "15.0"); 
    
cvar_hammer_spd_attack2 register_cvar("zp_knife_hammer_spd_attack2" "1.8"); 

        
register_event("HLTV""event_round_start""a""1=0""2=0"


public 
client_connect(id

    
g_knife_combat[id] = false 
    g_knife_strong
[id] = false 
    g_knife_axe
[id] = false 
    g_knife_katana
[id] = false 
    g_knife_hammer
[id] = false 
    g_hasSpeed
[id] = false 


public 
client_disconnect(id

    
g_knife_combat[id] = false 
    g_knife_strong
[id] = false 
    g_knife_axe
[id] = false 
    g_knife_katana
[id] = false 
    g_knife_hammer
[id] = false 
    g_hasSpeed
[id] = false 


public 
plugin_precache() 

    
precache_model(combat_v_model
    
precache_model(combat_p_model
    
precache_model(strong_v_model
    
precache_model(strong_p_model
    
precache_model(axe_v_model
    
precache_model(axe_p_model
    
precache_model(katana_v_model
    
precache_model(katana_p_model
    
precache_model(hammer_v_model
    
precache_model(hammer_p_model

    
precache_sound(g_sound_knife

    for(new 
0sizeof combat_soundsi++) 
        
precache_sound(combat_sounds[i]) 

    for(new 
0sizeof strong_soundsi++) 
        
precache_sound(strong_sounds[i]) 

    for(new 
0sizeof axe_soundsi++) 
        
precache_sound(axe_sounds[i])   

    for(new 
0sizeof katana_soundsi++) 
        
precache_sound(katana_sounds[i]) 

    for(new 
0sizeof hammer_soundsi++) 
        
precache_sound(hammer_sounds[i]) 


public 
event_round_start(id

        for (new 
iMAXPLAYERS 1i++) 
            
g_WasShowed[i] = false 


public 
knife_menu(id


    if(
is_user_alive(id) && !zp_get_user_zombie(id)) 
    { 
        
my_menu(id
    } 

    return 
PLUGIN_HANDLED 


public 
my_menu(id

    new 
menu menu_create("\yChose your knife!""menu_handler"); 
    
menu_additem(menu"\wCombat \y[Speed]""1"0); 
    
menu_additem(menu"\wStrong \y[Damage]""2"0); 
    
menu_additem(menu"\wAxe \y[Jump]""3"0); 
    
menu_additem(menu"\wKatana \y[Knockback]""4"0); 
    
menu_additem(menu"\wHammer \r[VIP]""5"0); 
     
    
menu_setprop(menuMPROP_EXITMEXIT_ALL); 
     
    
menu_display(idmenu0);     
}  

public 
menu_handler(idmenuitem

    if( 
item == MENU_EXIT 
    { 
               
menu_destroy(menu); 
            return 
PLUGIN_HANDLED;     
    } 
     
    new 
data[6], iName[64]; 
    new 
accesscallback
     
    
menu_item_getinfo(menuitemaccessdata,5iName63callback); 
     
    new 
key str_to_num(data); 
     
    switch(
key
    { 
            case 
1
            { 
            
give_combat(id
            
menu_destroy(menu); 
            return 
PLUGIN_HANDLED 
        

        case 
2
        { 
            
give_strong(id
            
menu_destroy(menu); 
            return 
PLUGIN_HANDLED 
        

        case 
3
        { 
            
give_axe(id
            
menu_destroy(menu); 
            return 
PLUGIN_HANDLED 
        

        case 
4
        { 
            
give_katana(id
            
menu_destroy(menu); 
            return 
PLUGIN_HANDLED 
        

        case 
5
        { 
            
give_hammer(id
            
menu_destroy(menu); 
            return 
PLUGIN_HANDLED 
        

    } 
    
menu_destroy(menu); 
    return 
PLUGIN_HANDLED 


public 
give_combat(id

    
g_knife_combat[id] = true     
    g_knife_strong
[id] = false 
    g_knife_axe
[id] = false     
    g_knife_katana
[id] = false     
    g_knife_hammer
[id] = false 
    g_hasSpeed
[id] =  true 
    g_WasShowed
[id] = true 

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM


public 
give_strong(id

    
g_knife_combat[id] = false     
    g_knife_strong
[id] = true     
    g_knife_axe
[id] = false 
    g_knife_katana
[id] = false     
    g_knife_hammer
[id] = false 
    g_hasSpeed
[id] = true 
    g_WasShowed
[id] = true 

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM


public 
give_axe(id

    
g_knife_combat[id] = false     
    g_knife_strong
[id] = false     
    g_knife_axe
[id] = true 
    g_knife_katana
[id] = false     
    g_knife_hammer
[id] = false 
    g_hasSpeed
[id] = true 
    g_WasShowed
[id] = true 

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM


public 
give_katana(id

    
g_knife_combat[id] = false     
    g_knife_strong
[id] = false     
    g_knife_axe
[id] = false 
    g_knife_katana
[id] = true     
    g_knife_hammer
[id] = false 
    g_hasSpeed
[id] = true 
    g_WasShowed
[id] = true 

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM



public 
give_hammer(id

    if (
get_user_flags(id) & VIP
    { 
        
g_knife_combat[id] = false     
        g_knife_strong
[id] = false     
        g_knife_axe
[id] = false 
        g_knife_katana
[id] = false 
        g_knife_hammer
[id] = true 
        g_hasSpeed
[id] =  true 
        g_WasShowed
[id] = true 

        engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM
    } 
    else  
    { 
        
client_cmd(id"/knife"
        
g_WasShowed[id] = true 
    



public 
checkWeapon(id

    new 
plrWeapId 
     
    plrWeapId 
get_user_weapon(id
     
    if (
plrWeapId == CSW_KNIFE && (g_knife_combat[id] || g_knife_strong[id] || g_knife_axe[id] || g_knife_katana[id] || g_knife_hammer[id])) 
    { 
        
checkModel(id
    } 


public 
checkModel(id

    if (
zp_get_user_zombie(id)) 
        return 
PLUGIN_HANDLED 
     
    
if (g_knife_combat[id]) 
    { 
        
set_pev(idpev_viewmodel2combat_v_model
        
set_pev(idpev_weaponmodel2combat_p_model
    } 

    if (
g_knife_strong[id]) 
    { 
        
set_pev(idpev_viewmodel2strong_v_model
        
set_pev(idpev_weaponmodel2strong_p_model
    } 

    if (
g_knife_axe[id]) 
    { 
        
set_pev(idpev_viewmodel2axe_v_model
        
set_pev(idpev_weaponmodel2axe_p_model
    } 

    if (
g_knife_katana[id]) 
    { 
        
set_pev(idpev_viewmodel2katana_v_model
        
set_pev(idpev_weaponmodel2katana_p_model
    } 

    if (
g_knife_hammer[id]) 
    { 
        
set_pev(idpev_viewmodel2hammer_v_model
        
set_pev(idpev_weaponmodel2hammer_p_model
    } 
    return 
PLUGIN_HANDLED 


public 
fw_EmitSound(idchannel, const sound[]) 

    if(!
is_user_alive(id) || zp_get_user_zombie(id)) 
        return 
FMRES_IGNORED 
         
    
for(new 0sizeof combat_soundsi++)  
    for(new 
0sizeof strong_soundsi++) 
    for(new 
0sizeof axe_soundsi++) 
    for(new 
0sizeof katana_soundsi++) 
    for(new 
0sizeof hammer_soundsi++) 
    { 
        if(
equal(soundoldknife_sounds[i])) 
        { 
            if (
g_knife_combat[id]) 
            { 
                
emit_sound(idchannelcombat_sounds[i], 1.0ATTN_NORM0PITCH_NORM
                return 
FMRES_SUPERCEDE 
            

            if (
g_knife_strong[id]) 
            { 
                
emit_sound(idchannelstrong_sounds[i], 1.0ATTN_NORM0PITCH_NORM
                return 
FMRES_SUPERCEDE 
            

            if (
g_knife_axe[id]) 
            { 
                
emit_sound(idchannelaxe_sounds[i], 1.0ATTN_NORM0PITCH_NORM
                return 
FMRES_SUPERCEDE 
            

            if (
g_knife_katana[id]) 
            { 
                
emit_sound(idchannelkatana_sounds[i], 1.0ATTN_NORM0PITCH_NORM
                return 
FMRES_SUPERCEDE 
            

            if (
g_knife_hammer[id]) 
            { 
                
emit_sound(idchannelhammer_sounds[i], 1.0ATTN_NORM0PITCH_NORM
                return 
FMRES_SUPERCEDE 
            

            if (!
g_knife_combat[id] || !g_knife_strong[id] || !g_knife_axe[id] || !g_knife_katana[id] || !g_knife_hammer[id]) 
            { 
                
emit_sound(idchanneloldknife_sounds[i], 1.0ATTN_NORM0PITCH_NORM
                return 
FMRES_SUPERCEDE 
            

        } 
    } 
    return 
FMRES_IGNORED 


public 
message_DeathMsg(msg_idmsg_destid

    static 
szTruncatedWeapon[33], iattackerivictim 
     
    get_msg_arg_string
(4szTruncatedWeaponcharsmax(szTruncatedWeapon)) 
     
    
iattacker get_msg_arg_int(1
    
ivictim get_msg_arg_int(2
     
    if(!
is_user_connected(iattacker) || iattacker == ivictim
        return 
PLUGIN_CONTINUE 

    
if (!zp_get_user_zombie(iattacker)) 
    { 
        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE
        { 
            if(
g_knife_combat[iattacker]) 
                
set_msg_arg_string(4"Combat knife"
        } 
     
        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE
        { 
            if(
g_knife_strong[iattacker]) 
                
set_msg_arg_string(4"Strong knife"
        } 

        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE
        { 
            if(
g_knife_axe[iattacker]) 
                
set_msg_arg_string(4"Axe knife"
        } 

        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE
        { 
            if(
g_knife_katana[iattacker]) 
                
set_msg_arg_string(4"Katana knife"
        } 

        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE
        { 
            if(
g_knife_hammer[iattacker]) 
                
set_msg_arg_string(4"Ice knife"
        } 
    } 
    return 
PLUGIN_CONTINUE 


stock print_col_chat(const id, const input[], any:...)   
{   
    new 
count 1players[32];   
        static 
msg[191];   
        
vformat(msg190input3);   
        
replace_all(msg190"!g""^4"); // Green Color   
        
replace_all(msg190"!y""^1"); // Default Color  
        
replace_all(msg190"!t""^3"); // Team Color   
        
if (idplayers[0] = id; else get_players(playerscount"ch");   
        {   
            for ( new 
0counti++ )   
            {   
                    if ( 
is_user_connected(players[i]) )   
                    {   
                        
message_begin(MSG_ONE_UNRELIABLESayText_players[i]);   
                        
write_byte(players[i]);   
                        
write_string(msg);   
                        
message_end();   
                    }   
            }   
        }   
}    

public 
fw_PlayerPreThink(id

    if(!
is_user_alive(id) || zp_get_user_zombie(id)) 
        return 
FMRES_IGNORED 

    
new temp[2], weapon get_user_weapon(idtemp[0], temp[1]) 

    if (
weapon == CSW_KNIFE && g_knife_combat[id]) 
    { 
        
g_hasSpeed[id] = true 
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_combat_spd)) 
    } 

    if(
weapon == CSW_KNIFE && g_knife_combat[id])         
        if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP)) 
        { 
            new 
flags pev(idpev_flags
            new 
waterlvl pev(idpev_waterlevel
             
            if (!(
flags FL_ONGROUND)) 
                return 
FMRES_IGNORED 

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

            
if (waterlvl 1
                return 
FMRES_IGNORED 
             
            
new Float:fVelocity[3
            
pev(idpev_velocityfVelocity
             
            
fVelocity[2] += get_pcvar_num(cvar_knife_combat_jump
             
            
set_pev(idpev_velocityfVelocity
            
set_pev(idpev_gaitsequence6
        } 
    if (
weapon == CSW_KNIFE && g_knife_strong[id]) 
    { 
        
g_hasSpeed[id] = true 
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_strong_spd)) 

        if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP)) 
        { 
            new 
flags pev(idpev_flags
            new 
waterlvl pev(idpev_waterlevel
             
            if (!(
flags FL_ONGROUND)) 
                return 
FMRES_IGNORED 

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

            
if (waterlvl 1
                return 
FMRES_IGNORED 
             
            
new Float:fVelocity[3
            
pev(idpev_velocityfVelocity
             
            
fVelocity[2] += get_pcvar_num(cvar_knife_strong_jump
             
            
set_pev(idpev_velocityfVelocity
            
set_pev(idpev_gaitsequence6
        } 
    } 
    if (
weapon == CSW_KNIFE && g_knife_axe[id]) 
    { 
        
g_hasSpeed[id] = true 
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_axe_spd)) 

        if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP)) 
        { 
            new 
flags pev(idpev_flags
            new 
waterlvl pev(idpev_waterlevel
             
            if (!(
flags FL_ONGROUND)) 
                return 
FMRES_IGNORED 

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

            
if (waterlvl 1
                return 
FMRES_IGNORED 
             
            
new Float:fVelocity[3
            
pev(idpev_velocityfVelocity
             
            
fVelocity[2] += get_pcvar_num(cvar_knife_axe_jump
             
            
set_pev(idpev_velocityfVelocity
            
set_pev(idpev_gaitsequence6
        } 
    } 
    if (
weapon == CSW_KNIFE && g_knife_katana[id]) 
    { 
        
g_hasSpeed[id] = true 
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_katana_spd)) 

        if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP)) 
        { 
            new 
flags pev(idpev_flags
            new 
waterlvl pev(idpev_waterlevel
             
            if (!(
flags FL_ONGROUND)) 
                return 
FMRES_IGNORED 

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

            
if (waterlvl 1
                return 
FMRES_IGNORED 
             
            
new Float:fVelocity[3
            
pev(idpev_velocityfVelocity
             
            
fVelocity[2] += get_pcvar_num(cvar_knife_katana_jump
             
            
set_pev(idpev_velocityfVelocity
            
set_pev(idpev_gaitsequence6
        } 
    } 
    if (
weapon == CSW_KNIFE && g_knife_hammer[id]) 
    { 
        
g_hasSpeed[id] = true 
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_hammer_spd)) 

        if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP)) 
        { 
            new 
flags pev(idpev_flags
            new 
waterlvl pev(idpev_waterlevel
             
            if (!(
flags FL_ONGROUND)) 
                return 
FMRES_IGNORED 

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

            
if (waterlvl 1
                return 
FMRES_IGNORED 
             
            
new Float:fVelocity[3
            
pev(idpev_velocityfVelocity
             
            
fVelocity[2] += get_pcvar_num(cvar_knife_hammer_jump
             
            
set_pev(idpev_velocityfVelocity
            
set_pev(idpev_gaitsequence6
        } 
    } 
    return 
FMRES_IGNORED 
}   

public 
fw_TakeDamage(victiminflictorattackerFloat:damagedamage_type

    if(!
is_user_connected(attacker)) 
        return 
HAM_IGNORED 
     
    
if(zp_get_user_zombie(attacker)) 
        return 
HAM_IGNORED 

    
new weapon get_user_weapon(attacker

    if (
weapon == CSW_KNIFE && g_knife_combat[attacker]) 
    {     
        
SetHamParamFloat(4damage get_pcvar_float(cvar_knife_combat_dmg)) 
    } 
    if (
weapon == CSW_KNIFE && g_knife_strong[attacker]) 
    {     
        
SetHamParamFloat(4damage get_pcvar_float(cvar_knife_strong_dmg)) 
    } 
    if (
weapon == CSW_KNIFE && g_knife_axe[attacker]) 
    {     
        
SetHamParamFloat(4damage get_pcvar_float(cvar_knife_axe_dmg)) 
    } 
    if (
weapon == CSW_KNIFE && g_knife_katana[attacker]) 
    {     
        
SetHamParamFloat(4damage get_pcvar_float(cvar_knife_katana_dmg)) 
    } 
         
    if (
weapon == CSW_KNIFE && g_knife_hammer[attacker]) 
    {      
        
SetHamParamFloat(4damage get_pcvar_float(cvar_knife_hammer_dmg)) 
    } 

    return 
HAM_IGNORED 


public 
fw_Knife_SecondaryAttack_Post(knife)  
{      
        static 
id  
        id 
get_pdata_cbase(knifem_pPlayer4)  

        if(
zp_get_user_zombie(id)) 
        return 
HAM_IGNORED 
     
        
if(is_user_connected(id) && g_knife_combat[id])  
        {  
            static 
Float:flRate  
            flRate 
get_pcvar_float(cvar_knife_combat_spd_attack2)  
          
            
set_pdata_float(knifem_flNextPrimaryAttackflRate4)  
            
set_pdata_float(knifem_flNextSecondaryAttackflRate4)  
            
set_pdata_float(knifem_flTimeWeaponIdleflRate4)  
        }  
  
        if(
is_user_connected(id) && g_knife_strong[id])  
        {  
            static 
Float:flRate  
            flRate 
get_pcvar_float(cvar_knife_strong_spd_attack2)  
              
            
set_pdata_float(knifem_flNextPrimaryAttackflRate4)  
            
set_pdata_float(knifem_flNextSecondaryAttackflRate4)  
            
set_pdata_float(knifem_flTimeWeaponIdleflRate4)  
        }  

        if(
is_user_connected(id) && g_knife_axe[id])  
        {  
            static 
Float:flRate  
            flRate 
get_pcvar_float(cvar_knife_axe_spd_attack2)  
                  
            
set_pdata_float(knifem_flNextPrimaryAttackflRate4)  
            
set_pdata_float(knifem_flNextSecondaryAttackflRate4)  
            
set_pdata_float(knifem_flTimeWeaponIdleflRate4)  
        }  

        if(
is_user_connected(id) && g_knife_katana[id])  
        {  
            static 
Float:flRate  
            flRate 
get_pcvar_float(cvar_knife_katana_spd_attack2)  
                  
            
set_pdata_float(knifem_flNextPrimaryAttackflRate4)  
            
set_pdata_float(knifem_flNextSecondaryAttackflRate4)  
            
set_pdata_float(knifem_flTimeWeaponIdleflRate4)  
        }  

        if(
is_user_connected(id) && g_knife_hammer[id])  
        {  
            static 
Float:flRate  
            flRate 
get_pcvar_float(cvar_hammer_spd_attack2)  
              
            
set_pdata_float(knifem_flNextPrimaryAttackflRate4)  
            
set_pdata_float(knifem_flNextSecondaryAttackflRate4)  
            
set_pdata_float(knifem_flTimeWeaponIdleflRate4)  
        }      
    
        return 
HAM_IGNORED  
}  

public 
event_Damage(id

    new 
weapon attacker get_user_attacker(id weapon); 

    if(!
is_user_alive(attacker)) 
        return 
PLUGIN_CONTINUE

    if(
weapon == CSW_KNIFE && g_knife_combat[attacker]) 
    { 
        new 
Float:vec[3]; 
        new 
Float:oldvelo[3]; 
        
get_user_velocity(idoldvelo); 
        
create_velocity_vector(id attacker vec); 
        
vec[0] += oldvelo[0]; 
        
vec[1] += oldvelo[1]; 
        
set_user_velocity(id vec); 
    } 

    if(
weapon == CSW_KNIFE && g_knife_strong[attacker]) 
    { 
        new 
Float:vec[3]; 
        new 
Float:oldvelo[3]; 
        
get_user_velocity(idoldvelo); 
        
create_velocity_vector(id attacker vec); 
        
vec[0] += oldvelo[0]; 
        
vec[1] += oldvelo[1]; 
        
set_user_velocity(id vec); 
    } 

    if(
weapon == CSW_KNIFE && g_knife_axe[attacker]) 
    { 
        new 
Float:vec[3]; 
        new 
Float:oldvelo[3]; 
        
get_user_velocity(idoldvelo); 
        
create_velocity_vector(id attacker vec); 
        
vec[0] += oldvelo[0]; 
        
vec[1] += oldvelo[1]; 
        
set_user_velocity(id vec); 
    } 

    if(
weapon == CSW_KNIFE && g_knife_katana[attacker]) 
    { 
        new 
Float:vec[3]; 
        new 
Float:oldvelo[3]; 
        
get_user_velocity(idoldvelo); 
        
create_velocity_vector(id attacker vec); 
        
vec[0] += oldvelo[0]; 
        
vec[1] += oldvelo[1]; 
        
set_user_velocity(id vec); 
    } 

    if(
weapon == CSW_KNIFE && g_knife_hammer[attacker]) 
    { 
        new 
Float:vec[3]; 
        new 
Float:oldvelo[3]; 
        
get_user_velocity(idoldvelo); 
        
create_velocity_vector(id attacker vec); 
        
vec[0] += oldvelo[0]; 
        
vec[1] += oldvelo[1]; 
        
set_user_velocity(id vec); 
    } 

    return 
PLUGIN_CONTINUE


stock create_velocity_vector(victim,attacker,Float:velocity[3]) 

    if(!
zp_get_user_zombie(victim) || !is_user_alive(attacker)) 
        return 
0

    new 
Float:vicorigin[3]; 
    new 
Float:attorigin[3]; 
    
entity_get_vector(victim   EV_VEC_origin vicorigin); 
    
entity_get_vector(attacker EV_VEC_origin attorigin); 

    new 
Float:origin2[3
    
origin2[0] = vicorigin[0] - attorigin[0]; 
    
origin2[1] = vicorigin[1] - attorigin[1]; 

    new 
Float:largestnum 0.0

    if(
floatabs(origin2[0])>largestnumlargestnum floatabs(origin2[0]); 
    if(
floatabs(origin2[1])>largestnumlargestnum floatabs(origin2[1]); 

    
origin2[0] /= largestnum
    
origin2[1] /= largestnum

    if (
g_knife_combat[attacker]) 
    { 
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_combat_knock) * 3000) ) / get_entity_distance(victim attacker); 
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_combat_knock) * 3000) ) / get_entity_distance(victim attacker); 
    } 

    if (
g_knife_strong[attacker]) 
    { 
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_strong_knock) * 3000) ) / get_entity_distance(victim attacker); 
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_strong_knock) * 3000) ) / get_entity_distance(victim attacker); 
    } 

    if (
g_knife_axe[attacker]) 
    { 
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_axe_knock) * 3000) ) / get_entity_distance(victim attacker); 
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_axe_knock) * 3000) ) / get_entity_distance(victim attacker); 
    } 

    if (
g_knife_katana[attacker]) 
    { 
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_katana_knock) * 3000) ) / get_entity_distance(victim attacker); 
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_katana_knock) * 3000) ) / get_entity_distance(victim attacker); 
    } 

    if (
g_knife_hammer[attacker]) 
    { 
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_hammer_knock) * 3000) ) / get_entity_distance(victim attacker); 
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_hammer_knock) * 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


public 
client_putinserver(id

    switch(
random_num(00)) 
    { 
        case 
0
        { 
            
g_knife_combat[id] = true 
            g_hasSpeed
[id] = true 
        


    } 

__________________
HITLER is offline
Send a message via Skype™ to HITLER
HITLER
Member
Join Date: Jul 2018
Location: www
Old 05-03-2019 , 14:42   Re: Can anyone help me with this ?
Reply With Quote #4

Quote:
Originally Posted by love yoyo View Post
add this "set_task(1.0, "knife_menu", i)" on 236 line
i think this will not solve his issue. you didn't understand what he want ?
__________________
HITLER is offline
Send a message via Skype™ to HITLER
bashar_beesho
Junior Member
Join Date: Jan 2015
Old 05-06-2019 , 23:53   Re: Can anyone help me with this ?
Reply With Quote #5

Quote:
Originally Posted by HITLER View Post
Try this. it should work

PHP Code:
#include <amxmodx> 
#include <fakemeta> 
#include <fun>  
#include <engine>  
#include <hamsandwich> 
#include <zombieplague> 

#define PLUGIN    "knifemenu" 
#define VERSION    "1.0" 
#define AUTHOR    "kgb-forum" 

#define VIP ADMIN_LEVEL_H 
#define MAXPLAYERS 32 

new combat_v_model[] = "models/zb/v_combat_knife.mdl" 
new combat_p_model[] = "models/zb/p_combat_knife.mdl" 

new strong_v_model[] = "models/zb/v_strong_knife.mdl" 
new strong_p_model[] = "models/zb/p_strong_knife.mdl" 

new axe_v_model[] = "models/zb/v_axe_knife.mdl"     
new axe_p_model[] = "models/zb/p_axe_knife.mdl"     

new katana_v_model[] = "models/zb/v_katana_knife.mdl"     
new katana_p_model[] = "models/zb/p_katana_knife.mdl" 

new hammer_v_model[] = "models/zb/v_hammer_knife.mdl"     
new hammer_p_model[] = "models/zb/p_hammer_knife.mdl"     

const m_pPlayer 41  
const m_flNextPrimaryAttack 46  
const m_flNextSecondaryAttack 47  
const m_flTimeWeaponIdle 48  

new g_hasSpeed[33], SayText 
new bool:g_WasShowed[MAXPLAYERS 1
new 
g_knife_combat[33], cvar_knife_combat_jumpcvar_knife_combat_spdcvar_knife_combat_dmgcvar_knife_combat_knockcvar_knife_combat_spd_attack2 
new g_knife_strong[33], cvar_knife_strong_jumpcvar_knife_strong_spdcvar_knife_strong_dmgcvar_knife_strong_knockcvar_knife_strong_spd_attack2 
new g_knife_axe[33], cvar_knife_axe_jumpcvar_knife_axe_spdcvar_knife_axe_dmgcvar_knife_axe_knockcvar_knife_axe_spd_attack2 
new g_knife_katana[33], cvar_knife_katana_jumpcvar_knife_katana_spdcvar_knife_katana_dmgcvar_knife_katana_knockcvar_knife_katana_spd_attack2 
new g_knife_hammer[33], cvar_knife_hammer_jumpcvar_knife_hammer_spdcvar_knife_hammer_dmgcvar_knife_hammer_knockcvar_hammer_spd_attack2 

new const g_sound_knife[] = { "items/gunpickup2.wav" 

new const 
combat_sounds[][] = 

    
"zmwpn/zb_knife/combat_deploy.wav"
    
"zmwpn/zb_knife/combat_hit.wav"    
    
"zmwpn/zb_knife/combat_hit.wav"    
    
"zmwpn/zb_knife/combat_hit.wav"    
    
"zmwpn/zb_knife/combat_hit.wav"    
    
"zmwpn/zb_knife/combat_hitwall.wav"
    
"zmwpn/zb_knife/combat_slash.wav"
    
"zmwpn/zb_knife/combat_slash.wav"
    
"zmwpn/zb_knife/combat_stab.wav" 


new const 
strong_sounds[][] = 

    
"zmwpn/zb_knife/strong_deploy.wav"
    
"zmwpn/zb_knife/strong_hit.wav"
    
"zmwpn/zb_knife/strong_hit.wav"
    
"zmwpn/zb_knife/strong_hit.wav"
    
"zmwpn/zb_knife/strong_hit.wav"
    
"zmwpn/zb_knife/strong_hitwall.wav"
    
"zmwpn/zb_knife/strong_slash.wav"
    
"zmwpn/zb_knife/strong_slash.wav"
    
"zmwpn/zb_knife/strong_stab.wav" 


new const 
axe_sounds[][] = 

    
"zmwpn/zb_knife/axe_deploy.wav"
    
"zmwpn/zb_knife/axe_hit.wav"
    
"zmwpn/zb_knife/axe_hit.wav"
    
"zmwpn/zb_knife/axe_hit.wav"
    
"zmwpn/zb_knife/axe_hit.wav"
    
"zmwpn/zb_knife/axe_hitwall.wav"
    
"zmwpn/zb_knife/axe_slash.wav"
    
"zmwpn/zb_knife/axe_slash.wav"
    
"zmwpn/zb_knife/axe_stab.wav" 


new const 
katana_sounds[][] = 

    
"zmwpn/zb_knife/katana_deploy.wav"
    
"zmwpn/zb_knife/katana_hit.wav"
    
"zmwpn/zb_knife/katana_hit.wav"
    
"zmwpn/zb_knife/katana_hit.wav"
    
"zmwpn/zb_knife/katana_hit.wav"
    
"zmwpn/zb_knife/katana_hitwall.wav"
    
"zmwpn/zb_knife/katana_slash.wav"
    
"zmwpn/zb_knife/katana_slash.wav"
    
"zmwpn/zb_knife/katana_stab.wav" 


new const 
hammer_sounds[][] = 

    
"zmwpn/zb_knife/hammer_deploy.wav"
    
"zmwpn/zb_knife/hammer_hit.wav"
    
"zmwpn/zb_knife/hammer_hit.wav"
    
"zmwpn/zb_knife/hammer_hit.wav"
    
"zmwpn/zb_knife/hammer_hit.wav"
    
"zmwpn/zb_knife/hammer_hitwall.wav"
    
"zmwpn/zb_knife/hammer_slash.wav"
    
"zmwpn/zb_knife/hammer_slash.wav"
    
"zmwpn/zb_knife/hammer_stab.wav" 


new const 
oldknife_sounds[][] = 

    
"weapons/knife_deploy1.wav"
    
"weapons/knife_hit1.wav"
    
"weapons/knife_hit2.wav"
    
"weapons/knife_hit3.wav"
    
"weapons/knife_hit4.wav"
    
"weapons/knife_hitwall1.wav"
    
"weapons/knife_slash1.wav"
    
"weapons/knife_slash2.wav"
    
"weapons/knife_stab.wav" 


public 
plugin_init() 

    
register_plugin(PLUGIN VERSION AUTHOR); 
    
register_cvar("zp_addon_knife"VERSIONFCVAR_SERVER); 
        
SayText get_user_msgid("SayText")    

     
register_clcmd("say /knife","knife_menu",ADMIN_ALL,"knife_menu"
     
register_clcmd("say_team /knife","knife_menu",ADMIN_ALL,"knife_menu"
    
register_clcmd("combat""give_combat"
    
register_clcmd("strong""give_strong"
    
register_clcmd("axe""give_axe"
    
register_clcmd("katana""give_katana"
    
register_clcmd("hammer""give_hammer"

    
register_event("CurWeapon","checkWeapon","be","1=1"); 
    
register_event("Damage" "event_Damage" "b" "2>0"); 

    
register_forward(FM_PlayerPreThink"fw_PlayerPreThink"); 
    
register_forward(FM_EmitSound"fw_EmitSound"); 

    
register_message(get_user_msgid("DeathMsg"), "message_DeathMsg"); 

    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage"); 
        
RegisterHam(Ham_Weapon_SecondaryAttack"weapon_knife""fw_Knife_SecondaryAttack_Post"1)  

    
cvar_knife_combat_jumpregister_cvar("zp_knife_combat_jump""270.0"); 
    
cvar_knife_combat_spd register_cvar("zp_knife_combat_spd""310.0"); 
    
cvar_knife_combat_dmg register_cvar("zp_knife_combat_dmg" "4.0"); 
    
cvar_knife_combat_knock register_cvar("zp_knife_combat_knock" "6.0"); 
    
cvar_knife_combat_spd_attack2 register_cvar("zp_knife_combat_spd_attack2" "1.2"); 

    
cvar_knife_strong_jumpregister_cvar("zp_knife_strong_jump""265.0"); 
    
cvar_knife_strong_spd register_cvar("zp_knife_strong_spd""255.0"); 
    
cvar_knife_strong_dmg register_cvar("zp_knife_strong_dmg" "12.0"); 
    
cvar_knife_strong_knock register_cvar("zp_knife_strong_knock" "7.0"); 
    
cvar_knife_strong_spd_attack2 register_cvar("zp_knife_strong_spd_attack2" "1.6"); 

    
cvar_knife_axe_jumpregister_cvar("zp_knife_axe_jump""335.0"); 
    
cvar_knife_axe_spd register_cvar("zp_knife_axe_spd""250.0"); 
    
cvar_knife_axe_dmg register_cvar("zp_knife_axe_dmg" "5.0"); 
    
cvar_knife_axe_knock register_cvar("zp_knife_axe_knock" "6.0"); 
    
cvar_knife_axe_spd_attack2 register_cvar("zp_knife_axe_spd_attack2" "1.4"); 

    
cvar_knife_katana_jumpregister_cvar("zp_knife_katana_jump""275.0"); 
    
cvar_knife_katana_spd register_cvar("zp_knife_katana_spd""265.0"); 
    
cvar_knife_katana_dmg register_cvar("zp_knife_katana_dmg" "5.0"); 
    
cvar_knife_katana_knock register_cvar("zp_knife_katana_knock" "15.0"); 
    
cvar_knife_katana_spd_attack2 register_cvar("zp_knife_katana_spd_attack2" "1.2"); 

    
cvar_knife_hammer_jumpregister_cvar("zp_knife_hammer_jump""335.0"); 
    
cvar_knife_hammer_spdregister_cvar("zp_knife_hammer_spd""315.0"); 
    
cvar_knife_hammer_dmg register_cvar("zp_knife_hammer_dmg" "15.0"); 
    
cvar_knife_hammer_knock register_cvar("zp_knife_hammer_knock" "15.0"); 
    
cvar_hammer_spd_attack2 register_cvar("zp_knife_hammer_spd_attack2" "1.8"); 

        
register_event("HLTV""event_round_start""a""1=0""2=0"


public 
client_connect(id

    
g_knife_combat[id] = false 
    g_knife_strong
[id] = false 
    g_knife_axe
[id] = false 
    g_knife_katana
[id] = false 
    g_knife_hammer
[id] = false 
    g_hasSpeed
[id] = false 


public 
client_disconnect(id

    
g_knife_combat[id] = false 
    g_knife_strong
[id] = false 
    g_knife_axe
[id] = false 
    g_knife_katana
[id] = false 
    g_knife_hammer
[id] = false 
    g_hasSpeed
[id] = false 


public 
plugin_precache() 

    
precache_model(combat_v_model
    
precache_model(combat_p_model
    
precache_model(strong_v_model
    
precache_model(strong_p_model
    
precache_model(axe_v_model
    
precache_model(axe_p_model
    
precache_model(katana_v_model
    
precache_model(katana_p_model
    
precache_model(hammer_v_model
    
precache_model(hammer_p_model

    
precache_sound(g_sound_knife

    for(new 
0sizeof combat_soundsi++) 
        
precache_sound(combat_sounds[i]) 

    for(new 
0sizeof strong_soundsi++) 
        
precache_sound(strong_sounds[i]) 

    for(new 
0sizeof axe_soundsi++) 
        
precache_sound(axe_sounds[i])   

    for(new 
0sizeof katana_soundsi++) 
        
precache_sound(katana_sounds[i]) 

    for(new 
0sizeof hammer_soundsi++) 
        
precache_sound(hammer_sounds[i]) 


public 
event_round_start(id

        for (new 
iMAXPLAYERS 1i++) 
            
g_WasShowed[i] = false 


public 
knife_menu(id


    if(
is_user_alive(id) && !zp_get_user_zombie(id)) 
    { 
        
my_menu(id
    } 

    return 
PLUGIN_HANDLED 


public 
my_menu(id

    new 
menu menu_create("\yChose your knife!""menu_handler"); 
    
menu_additem(menu"\wCombat \y[Speed]""1"0); 
    
menu_additem(menu"\wStrong \y[Damage]""2"0); 
    
menu_additem(menu"\wAxe \y[Jump]""3"0); 
    
menu_additem(menu"\wKatana \y[Knockback]""4"0); 
    
menu_additem(menu"\wHammer \r[VIP]""5"0); 
     
    
menu_setprop(menuMPROP_EXITMEXIT_ALL); 
     
    
menu_display(idmenu0);     
}  

public 
menu_handler(idmenuitem

    if( 
item == MENU_EXIT 
    { 
               
menu_destroy(menu); 
            return 
PLUGIN_HANDLED;     
    } 
     
    new 
data[6], iName[64]; 
    new 
accesscallback
     
    
menu_item_getinfo(menuitemaccessdata,5iName63callback); 
     
    new 
key str_to_num(data); 
     
    switch(
key
    { 
            case 
1
            { 
            
give_combat(id
            
menu_destroy(menu); 
            return 
PLUGIN_HANDLED 
        

        case 
2
        { 
            
give_strong(id
            
menu_destroy(menu); 
            return 
PLUGIN_HANDLED 
        

        case 
3
        { 
            
give_axe(id
            
menu_destroy(menu); 
            return 
PLUGIN_HANDLED 
        

        case 
4
        { 
            
give_katana(id
            
menu_destroy(menu); 
            return 
PLUGIN_HANDLED 
        

        case 
5
        { 
            
give_hammer(id
            
menu_destroy(menu); 
            return 
PLUGIN_HANDLED 
        

    } 
    
menu_destroy(menu); 
    return 
PLUGIN_HANDLED 


public 
give_combat(id

    
g_knife_combat[id] = true     
    g_knife_strong
[id] = false 
    g_knife_axe
[id] = false     
    g_knife_katana
[id] = false     
    g_knife_hammer
[id] = false 
    g_hasSpeed
[id] =  true 
    g_WasShowed
[id] = true 

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM


public 
give_strong(id

    
g_knife_combat[id] = false     
    g_knife_strong
[id] = true     
    g_knife_axe
[id] = false 
    g_knife_katana
[id] = false     
    g_knife_hammer
[id] = false 
    g_hasSpeed
[id] = true 
    g_WasShowed
[id] = true 

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM


public 
give_axe(id

    
g_knife_combat[id] = false     
    g_knife_strong
[id] = false     
    g_knife_axe
[id] = true 
    g_knife_katana
[id] = false     
    g_knife_hammer
[id] = false 
    g_hasSpeed
[id] = true 
    g_WasShowed
[id] = true 

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM


public 
give_katana(id

    
g_knife_combat[id] = false     
    g_knife_strong
[id] = false     
    g_knife_axe
[id] = false 
    g_knife_katana
[id] = true     
    g_knife_hammer
[id] = false 
    g_hasSpeed
[id] = true 
    g_WasShowed
[id] = true 

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM



public 
give_hammer(id

    if (
get_user_flags(id) & VIP
    { 
        
g_knife_combat[id] = false     
        g_knife_strong
[id] = false     
        g_knife_axe
[id] = false 
        g_knife_katana
[id] = false 
        g_knife_hammer
[id] = true 
        g_hasSpeed
[id] =  true 
        g_WasShowed
[id] = true 

        engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM
    } 
    else  
    { 
        
client_cmd(id"/knife"
        
g_WasShowed[id] = true 
    



public 
checkWeapon(id

    new 
plrWeapId 
     
    plrWeapId 
get_user_weapon(id
     
    if (
plrWeapId == CSW_KNIFE && (g_knife_combat[id] || g_knife_strong[id] || g_knife_axe[id] || g_knife_katana[id] || g_knife_hammer[id])) 
    { 
        
checkModel(id
    } 


public 
checkModel(id

    if (
zp_get_user_zombie(id)) 
        return 
PLUGIN_HANDLED 
     
    
if (g_knife_combat[id]) 
    { 
        
set_pev(idpev_viewmodel2combat_v_model
        
set_pev(idpev_weaponmodel2combat_p_model
    } 

    if (
g_knife_strong[id]) 
    { 
        
set_pev(idpev_viewmodel2strong_v_model
        
set_pev(idpev_weaponmodel2strong_p_model
    } 

    if (
g_knife_axe[id]) 
    { 
        
set_pev(idpev_viewmodel2axe_v_model
        
set_pev(idpev_weaponmodel2axe_p_model
    } 

    if (
g_knife_katana[id]) 
    { 
        
set_pev(idpev_viewmodel2katana_v_model
        
set_pev(idpev_weaponmodel2katana_p_model
    } 

    if (
g_knife_hammer[id]) 
    { 
        
set_pev(idpev_viewmodel2hammer_v_model
        
set_pev(idpev_weaponmodel2hammer_p_model
    } 
    return 
PLUGIN_HANDLED 


public 
fw_EmitSound(idchannel, const sound[]) 

    if(!
is_user_alive(id) || zp_get_user_zombie(id)) 
        return 
FMRES_IGNORED 
         
    
for(new 0sizeof combat_soundsi++)  
    for(new 
0sizeof strong_soundsi++) 
    for(new 
0sizeof axe_soundsi++) 
    for(new 
0sizeof katana_soundsi++) 
    for(new 
0sizeof hammer_soundsi++) 
    { 
        if(
equal(soundoldknife_sounds[i])) 
        { 
            if (
g_knife_combat[id]) 
            { 
                
emit_sound(idchannelcombat_sounds[i], 1.0ATTN_NORM0PITCH_NORM
                return 
FMRES_SUPERCEDE 
            

            if (
g_knife_strong[id]) 
            { 
                
emit_sound(idchannelstrong_sounds[i], 1.0ATTN_NORM0PITCH_NORM
                return 
FMRES_SUPERCEDE 
            

            if (
g_knife_axe[id]) 
            { 
                
emit_sound(idchannelaxe_sounds[i], 1.0ATTN_NORM0PITCH_NORM
                return 
FMRES_SUPERCEDE 
            

            if (
g_knife_katana[id]) 
            { 
                
emit_sound(idchannelkatana_sounds[i], 1.0ATTN_NORM0PITCH_NORM
                return 
FMRES_SUPERCEDE 
            

            if (
g_knife_hammer[id]) 
            { 
                
emit_sound(idchannelhammer_sounds[i], 1.0ATTN_NORM0PITCH_NORM
                return 
FMRES_SUPERCEDE 
            

            if (!
g_knife_combat[id] || !g_knife_strong[id] || !g_knife_axe[id] || !g_knife_katana[id] || !g_knife_hammer[id]) 
            { 
                
emit_sound(idchanneloldknife_sounds[i], 1.0ATTN_NORM0PITCH_NORM
                return 
FMRES_SUPERCEDE 
            

        } 
    } 
    return 
FMRES_IGNORED 


public 
message_DeathMsg(msg_idmsg_destid

    static 
szTruncatedWeapon[33], iattackerivictim 
     
    get_msg_arg_string
(4szTruncatedWeaponcharsmax(szTruncatedWeapon)) 
     
    
iattacker get_msg_arg_int(1
    
ivictim get_msg_arg_int(2
     
    if(!
is_user_connected(iattacker) || iattacker == ivictim
        return 
PLUGIN_CONTINUE 

    
if (!zp_get_user_zombie(iattacker)) 
    { 
        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE
        { 
            if(
g_knife_combat[iattacker]) 
                
set_msg_arg_string(4"Combat knife"
        } 
     
        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE
        { 
            if(
g_knife_strong[iattacker]) 
                
set_msg_arg_string(4"Strong knife"
        } 

        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE
        { 
            if(
g_knife_axe[iattacker]) 
                
set_msg_arg_string(4"Axe knife"
        } 

        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE
        { 
            if(
g_knife_katana[iattacker]) 
                
set_msg_arg_string(4"Katana knife"
        } 

        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE
        { 
            if(
g_knife_hammer[iattacker]) 
                
set_msg_arg_string(4"Ice knife"
        } 
    } 
    return 
PLUGIN_CONTINUE 


stock print_col_chat(const id, const input[], any:...)   
{   
    new 
count 1players[32];   
        static 
msg[191];   
        
vformat(msg190input3);   
        
replace_all(msg190"!g""^4"); // Green Color   
        
replace_all(msg190"!y""^1"); // Default Color  
        
replace_all(msg190"!t""^3"); // Team Color   
        
if (idplayers[0] = id; else get_players(playerscount"ch");   
        {   
            for ( new 
0counti++ )   
            {   
                    if ( 
is_user_connected(players[i]) )   
                    {   
                        
message_begin(MSG_ONE_UNRELIABLESayText_players[i]);   
                        
write_byte(players[i]);   
                        
write_string(msg);   
                        
message_end();   
                    }   
            }   
        }   
}    

public 
fw_PlayerPreThink(id

    if(!
is_user_alive(id) || zp_get_user_zombie(id)) 
        return 
FMRES_IGNORED 

    
new temp[2], weapon get_user_weapon(idtemp[0], temp[1]) 

    if (
weapon == CSW_KNIFE && g_knife_combat[id]) 
    { 
        
g_hasSpeed[id] = true 
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_combat_spd)) 
    } 

    if(
weapon == CSW_KNIFE && g_knife_combat[id])         
        if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP)) 
        { 
            new 
flags pev(idpev_flags
            new 
waterlvl pev(idpev_waterlevel
             
            if (!(
flags FL_ONGROUND)) 
                return 
FMRES_IGNORED 

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

            
if (waterlvl 1
                return 
FMRES_IGNORED 
             
            
new Float:fVelocity[3
            
pev(idpev_velocityfVelocity
             
            
fVelocity[2] += get_pcvar_num(cvar_knife_combat_jump
             
            
set_pev(idpev_velocityfVelocity
            
set_pev(idpev_gaitsequence6
        } 
    if (
weapon == CSW_KNIFE && g_knife_strong[id]) 
    { 
        
g_hasSpeed[id] = true 
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_strong_spd)) 

        if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP)) 
        { 
            new 
flags pev(idpev_flags
            new 
waterlvl pev(idpev_waterlevel
             
            if (!(
flags FL_ONGROUND)) 
                return 
FMRES_IGNORED 

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

            
if (waterlvl 1
                return 
FMRES_IGNORED 
             
            
new Float:fVelocity[3
            
pev(idpev_velocityfVelocity
             
            
fVelocity[2] += get_pcvar_num(cvar_knife_strong_jump
             
            
set_pev(idpev_velocityfVelocity
            
set_pev(idpev_gaitsequence6
        } 
    } 
    if (
weapon == CSW_KNIFE && g_knife_axe[id]) 
    { 
        
g_hasSpeed[id] = true 
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_axe_spd)) 

        if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP)) 
        { 
            new 
flags pev(idpev_flags
            new 
waterlvl pev(idpev_waterlevel
             
            if (!(
flags FL_ONGROUND)) 
                return 
FMRES_IGNORED 

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

            
if (waterlvl 1
                return 
FMRES_IGNORED 
             
            
new Float:fVelocity[3
            
pev(idpev_velocityfVelocity
             
            
fVelocity[2] += get_pcvar_num(cvar_knife_axe_jump
             
            
set_pev(idpev_velocityfVelocity
            
set_pev(idpev_gaitsequence6
        } 
    } 
    if (
weapon == CSW_KNIFE && g_knife_katana[id]) 
    { 
        
g_hasSpeed[id] = true 
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_katana_spd)) 

        if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP)) 
        { 
            new 
flags pev(idpev_flags
            new 
waterlvl pev(idpev_waterlevel
             
            if (!(
flags FL_ONGROUND)) 
                return 
FMRES_IGNORED 

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

            
if (waterlvl 1
                return 
FMRES_IGNORED 
             
            
new Float:fVelocity[3
            
pev(idpev_velocityfVelocity
             
            
fVelocity[2] += get_pcvar_num(cvar_knife_katana_jump
             
            
set_pev(idpev_velocityfVelocity
            
set_pev(idpev_gaitsequence6
        } 
    } 
    if (
weapon == CSW_KNIFE && g_knife_hammer[id]) 
    { 
        
g_hasSpeed[id] = true 
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_hammer_spd)) 

        if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP)) 
        { 
            new 
flags pev(idpev_flags
            new 
waterlvl pev(idpev_waterlevel
             
            if (!(
flags FL_ONGROUND)) 
                return 
FMRES_IGNORED 

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

            
if (waterlvl 1
                return 
FMRES_IGNORED 
             
            
new Float:fVelocity[3
            
pev(idpev_velocityfVelocity
             
            
fVelocity[2] += get_pcvar_num(cvar_knife_hammer_jump
             
            
set_pev(idpev_velocityfVelocity
            
set_pev(idpev_gaitsequence6
        } 
    } 
    return 
FMRES_IGNORED 
}   

public 
fw_TakeDamage(victiminflictorattackerFloat:damagedamage_type

    if(!
is_user_connected(attacker)) 
        return 
HAM_IGNORED 
     
    
if(zp_get_user_zombie(attacker)) 
        return 
HAM_IGNORED 

    
new weapon get_user_weapon(attacker

    if (
weapon == CSW_KNIFE && g_knife_combat[attacker]) 
    {     
        
SetHamParamFloat(4damage get_pcvar_float(cvar_knife_combat_dmg)) 
    } 
    if (
weapon == CSW_KNIFE && g_knife_strong[attacker]) 
    {     
        
SetHamParamFloat(4damage get_pcvar_float(cvar_knife_strong_dmg)) 
    } 
    if (
weapon == CSW_KNIFE && g_knife_axe[attacker]) 
    {     
        
SetHamParamFloat(4damage get_pcvar_float(cvar_knife_axe_dmg)) 
    } 
    if (
weapon == CSW_KNIFE && g_knife_katana[attacker]) 
    {     
        
SetHamParamFloat(4damage get_pcvar_float(cvar_knife_katana_dmg)) 
    } 
         
    if (
weapon == CSW_KNIFE && g_knife_hammer[attacker]) 
    {      
        
SetHamParamFloat(4damage get_pcvar_float(cvar_knife_hammer_dmg)) 
    } 

    return 
HAM_IGNORED 


public 
fw_Knife_SecondaryAttack_Post(knife)  
{      
        static 
id  
        id 
get_pdata_cbase(knifem_pPlayer4)  

        if(
zp_get_user_zombie(id)) 
        return 
HAM_IGNORED 
     
        
if(is_user_connected(id) && g_knife_combat[id])  
        {  
            static 
Float:flRate  
            flRate 
get_pcvar_float(cvar_knife_combat_spd_attack2)  
          
            
set_pdata_float(knifem_flNextPrimaryAttackflRate4)  
            
set_pdata_float(knifem_flNextSecondaryAttackflRate4)  
            
set_pdata_float(knifem_flTimeWeaponIdleflRate4)  
        }  
  
        if(
is_user_connected(id) && g_knife_strong[id])  
        {  
            static 
Float:flRate  
            flRate 
get_pcvar_float(cvar_knife_strong_spd_attack2)  
              
            
set_pdata_float(knifem_flNextPrimaryAttackflRate4)  
            
set_pdata_float(knifem_flNextSecondaryAttackflRate4)  
            
set_pdata_float(knifem_flTimeWeaponIdleflRate4)  
        }  

        if(
is_user_connected(id) && g_knife_axe[id])  
        {  
            static 
Float:flRate  
            flRate 
get_pcvar_float(cvar_knife_axe_spd_attack2)  
                  
            
set_pdata_float(knifem_flNextPrimaryAttackflRate4)  
            
set_pdata_float(knifem_flNextSecondaryAttackflRate4)  
            
set_pdata_float(knifem_flTimeWeaponIdleflRate4)  
        }  

        if(
is_user_connected(id) && g_knife_katana[id])  
        {  
            static 
Float:flRate  
            flRate 
get_pcvar_float(cvar_knife_katana_spd_attack2)  
                  
            
set_pdata_float(knifem_flNextPrimaryAttackflRate4)  
            
set_pdata_float(knifem_flNextSecondaryAttackflRate4)  
            
set_pdata_float(knifem_flTimeWeaponIdleflRate4)  
        }  

        if(
is_user_connected(id) && g_knife_hammer[id])  
        {  
            static 
Float:flRate  
            flRate 
get_pcvar_float(cvar_hammer_spd_attack2)  
              
            
set_pdata_float(knifem_flNextPrimaryAttackflRate4)  
            
set_pdata_float(knifem_flNextSecondaryAttackflRate4)  
            
set_pdata_float(knifem_flTimeWeaponIdleflRate4)  
        }      
    
        return 
HAM_IGNORED  
}  

public 
event_Damage(id

    new 
weapon attacker get_user_attacker(id weapon); 

    if(!
is_user_alive(attacker)) 
        return 
PLUGIN_CONTINUE

    if(
weapon == CSW_KNIFE && g_knife_combat[attacker]) 
    { 
        new 
Float:vec[3]; 
        new 
Float:oldvelo[3]; 
        
get_user_velocity(idoldvelo); 
        
create_velocity_vector(id attacker vec); 
        
vec[0] += oldvelo[0]; 
        
vec[1] += oldvelo[1]; 
        
set_user_velocity(id vec); 
    } 

    if(
weapon == CSW_KNIFE && g_knife_strong[attacker]) 
    { 
        new 
Float:vec[3]; 
        new 
Float:oldvelo[3]; 
        
get_user_velocity(idoldvelo); 
        
create_velocity_vector(id attacker vec); 
        
vec[0] += oldvelo[0]; 
        
vec[1] += oldvelo[1]; 
        
set_user_velocity(id vec); 
    } 

    if(
weapon == CSW_KNIFE && g_knife_axe[attacker]) 
    { 
        new 
Float:vec[3]; 
        new 
Float:oldvelo[3]; 
        
get_user_velocity(idoldvelo); 
        
create_velocity_vector(id attacker vec); 
        
vec[0] += oldvelo[0]; 
        
vec[1] += oldvelo[1]; 
        
set_user_velocity(id vec); 
    } 

    if(
weapon == CSW_KNIFE && g_knife_katana[attacker]) 
    { 
        new 
Float:vec[3]; 
        new 
Float:oldvelo[3]; 
        
get_user_velocity(idoldvelo); 
        
create_velocity_vector(id attacker vec); 
        
vec[0] += oldvelo[0]; 
        
vec[1] += oldvelo[1]; 
        
set_user_velocity(id vec); 
    } 

    if(
weapon == CSW_KNIFE && g_knife_hammer[attacker]) 
    { 
        new 
Float:vec[3]; 
        new 
Float:oldvelo[3]; 
        
get_user_velocity(idoldvelo); 
        
create_velocity_vector(id attacker vec); 
        
vec[0] += oldvelo[0]; 
        
vec[1] += oldvelo[1]; 
        
set_user_velocity(id vec); 
    } 

    return 
PLUGIN_CONTINUE


stock create_velocity_vector(victim,attacker,Float:velocity[3]) 

    if(!
zp_get_user_zombie(victim) || !is_user_alive(attacker)) 
        return 
0

    new 
Float:vicorigin[3]; 
    new 
Float:attorigin[3]; 
    
entity_get_vector(victim   EV_VEC_origin vicorigin); 
    
entity_get_vector(attacker EV_VEC_origin attorigin); 

    new 
Float:origin2[3
    
origin2[0] = vicorigin[0] - attorigin[0]; 
    
origin2[1] = vicorigin[1] - attorigin[1]; 

    new 
Float:largestnum 0.0

    if(
floatabs(origin2[0])>largestnumlargestnum floatabs(origin2[0]); 
    if(
floatabs(origin2[1])>largestnumlargestnum floatabs(origin2[1]); 

    
origin2[0] /= largestnum
    
origin2[1] /= largestnum

    if (
g_knife_combat[attacker]) 
    { 
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_combat_knock) * 3000) ) / get_entity_distance(victim attacker); 
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_combat_knock) * 3000) ) / get_entity_distance(victim attacker); 
    } 

    if (
g_knife_strong[attacker]) 
    { 
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_strong_knock) * 3000) ) / get_entity_distance(victim attacker); 
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_strong_knock) * 3000) ) / get_entity_distance(victim attacker); 
    } 

    if (
g_knife_axe[attacker]) 
    { 
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_axe_knock) * 3000) ) / get_entity_distance(victim attacker); 
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_axe_knock) * 3000) ) / get_entity_distance(victim attacker); 
    } 

    if (
g_knife_katana[attacker]) 
    { 
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_katana_knock) * 3000) ) / get_entity_distance(victim attacker); 
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_katana_knock) * 3000) ) / get_entity_distance(victim attacker); 
    } 

    if (
g_knife_hammer[attacker]) 
    { 
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knife_hammer_knock) * 3000) ) / get_entity_distance(victim attacker); 
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knife_hammer_knock) * 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


public 
client_putinserver(id

    switch(
random_num(00)) 
    { 
        case 
0
        { 
            
g_knife_combat[id] = true 
            g_hasSpeed
[id] = true 
        


    } 

thank you , it totally works without any mistakes .
bashar_beesho is offline
Reply


Thread Tools
Display Modes

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 14:35.


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