Raised This Month: $32 Target: $400
 8% 

Help / Support Hard Request ! KnifeMenu Again !


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
bashar_beesho
Junior Member
Join Date: Jan 2015
Old 05-07-2019 , 13:23   Hard Request ! KnifeMenu Again !
Reply With Quote #1

Sub ..

i'm trying to edit this knife menu , so i have thought about adding " JUMP ( Gravity advantage ) " in every knife ( that menu dosen't have this thing ) so , could anyone add jump cvars for the plugin ? i have tried to do it my self but im not so professional in this subjects .. thank you

thats the plugin


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

//native is_chainsaw(id)
//native set_knife(id, num)
//native get_balrog9(id)

#define TASK_FBURN                100
#define ID_FBURN                ( taskid - TASK_FBURN )

#define TASK_FBURN1                100
#define ID_FBURN1                ( taskid - TASK_FBURN )

#define MAX_CLIENTS                32

new bool:g_fRoundEnd

#define FIRE_DURATION            1
#define FIRE_DAMAGE                50

#define FIRE_DURATION1            5
#define FIRE_DAMAGE1                150

new g_flameSprg_flameSpr1g_smokeSprg_burning_durationMAX_CLIENTS ], g_burning_duration1MAX_CLIENTS ]

#define PLUGIN    "[ZP] Addon: Knifes"
#define VERSION    "1.0"
#define AUTHOR    "BlackCat"

#define VIP        ADMIN_LEVEL_A
#define ADMIN    ADMIN_LEVEL_B
#define BOSS    ADMIN_LEVEL_H
#define GLADMIN ADMIN_CFG
#pragma tabsize 0

new KNIFE1_V_MODEL[] = "models/Vaas/v_spsword.mdl"
new KNIFE1_P_MODEL[] = "models/Vaas/p_spsword.mdl"

new KNIFE2_V_MODEL[] = "models/Vaas/v_silver_wolf.mdl"
new KNIFE2_P_MODEL[] = "models/Vaas/p_silver_wolf.mdl"

new KNIFE6_V_MODEL[] = "models/Vaas/v_thanatos10.mdl"
new KNIFE6_P_MODEL[] = "models/Vaas/p_thanatos10.mdl"

new KNIFE3_V_MODEL[] = "models/Vaas/v_galaxy_banka.mdl"
new KNIFE3_P_MODEL[] = "models/Vaas/p_galaxy_banka.mdl"

new KNIFE4_V_MODEL[] =  "models/Vaas/v_war_kosa.mdl"
new KNIFE4_P_MODEL[] =  "models/Vaas/p_war_kosa.mdl"

new KNIFE5_V_MODEL[] = "models/Vaas/v_ts_war.mdl"
new KNIFE5_P_MODEL[] = "models/Vaas/p_ts_war.mdl"

new KNIFE7_V_MODEL[] =  "models/Vaas/v_WarHammer_dark_knight.mdl"
new KNIFE7_P_MODEL[] =  "models/Vaas/p_stormgiant_dk.mdl"

new KNIFESURV_V_MODEL[] = "models/Vaas/v_WarHammer_dark_knight.mdl"
new KNIFESURV_P_MODEL[] = "models/Vaas/p_stormgiant_dk.mdl"


new bool:g_has_axe[33]
new 
bool:g_has_strong[33]
new 
bool:g_has_combat[33]
new 
bool:g_has_hammer[33]
new 
bool:g_has_saxe[33]
new 
bool:g_has_knife6[33]
new 
bool:g_has_knife7[33]
new 
bool:g_has_survivoraxe[33]

new 
cvar_knock_axecvar_speed_axecvar_damage_axecvar_damage_axe_nemesis
new cvar_knock_strongcvar_speed_strongcvar_damage_strong
new cvar_knock_combatcvar_speed_combatcvar_damage_combat
new cvar_knock_hammercvar_speed_hammercvar_damage_hammer
new cvar_knock_saxecvar_speed_saxecvar_damage_saxe
new cvar_knock_knife6cvar_speed_knife6cvar_damage_knife6
new cvar_knock_knife7cvar_speed_knife7cvar_damage_knife7
new cvar_knock_survcvar_speed_survcvar_damage_surv

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

new const 
axe_sounds[][] =
{
        
"Vaas/dkatana_titan_draw.wav",
        
"Vaas/dkatana_titan_hit1.wav",
        
"Vaas/dkatana_titan_hitwall.wav",
        
"Vaas/dkatana_titan_hitwall.wav",
        
"Vaas/dkatana_titan_slash1.wav",
        
"Vaas/dkatana_titan_stab.wav"
}

new const 
strong_sounds[][] =
{
        
"Vaas/crow9_draw.wav",
        
"Vaas/crow9_hitwall1.wav",
        
"Vaas/crow9_hitwall1.wav",
        
"Vaas/crow9_hitwall1.wav",
        
"Vaas/crow9_slash1.wav",
        
"Vaas/crow9_stab.wav"
}

new const 
knife6_sounds[][] =
{
        
"Vaas/sgsaw_draw.wav",
        
"Vaas/sgsaw_hit1.wav",
        
"Vaas/sgsaw_hitwall1.wav",
        
"Vaas/sgsaw_hitwall1.wav",
        
"Vaas/sgsaw_slash1.wav",
        
"Vaas/sgsaw_stab.wav"
}

new const 
combat_sounds[][] =
{
        
"Vaas/hammer_blood_hunter_draw.wav",
        
"Vaas/hammer_blood_hunter_hit.wav",
        
"Vaas/hammer_blood_hunter_miss.wav",
        
"Vaas/hammer_blood_hunter_slash1.wav",
        
"Vaas/hammer_blood_hunter_slash2.wav",
        
"Vaas/hammer_blood_hunter_wall.wav"
}

new const 
hammer_sounds[][] =
{
        
"Vaas/hammer_blood_hunter_draw.wav",
        
"Vaas/hammer_blood_hunter_hit.wav",
        
"Vaas/hammer_blood_hunter_miss.wav",
        
"Vaas/hammer_blood_hunter_slash1.wav",
        
"Vaas/hammer_blood_hunter_slash2.wav",
        
"Vaas/hammer_blood_hunter_wall.wav"
}

new const 
saxe_sounds[][] =
{
        
"Vaas/coilhammer_draw.wav",
        
"Vaas/coilhammer_hit1.wav",
        
"Vaas/coilhammer_hit2.wav",
        
"Vaas/coilhammer_hitwall.wav",
        
"Vaas/coilhammer_slash2.wav",
        
"Vaas/coilhammer_stab.wav"
}

new const 
knife7_sounds[][] =
{
        
"Vaas/coilhammer_draw.wav",
        
"Vaas/coilhammer_hit1.wav",
        
"Vaas/coilhammer_hit2.wav",
        
"Vaas/coilhammer_hitwall.wav",
        
"Vaas/coilhammer_slash2.wav",
        
"Vaas/coilhammer_stab.wav"
}

new const 
surv_sounds[][] =
{
        
"Vaas/coilhammer_draw.wav",
        
"Vaas/coilhammer_hit1.wav",
        
"Vaas/coilhammer_hit2.wav",
        
"Vaas/coilhammer_hitwall.wav",
        
"Vaas/coilhammer_slash2.wav",
        
"Vaas/coilhammer_stab.wav"
}

//new g_result[33]

public plugin_init()
{
        
register_plugin(PLUGIN VERSION AUTHOR);
        
register_forward(FM_AddToFullPack"fw_PlayerAddToFullPack");
        
register_cvar("zp_addon_knife"VERSIONFCVAR_SERVER);
        
        
register_clcmd("say /knife","knifemenu")
     
register_clcmd("knife_zb","knifemenu")
    

    
register_event("CurWeapon","checkWeapon","be","1=1");

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

    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage");
    
RegisterHam(Ham_Spawn"player""fw_playerspawn_post"1)
    
RegisterHam(Ham_Use"func_tank""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tankmortar""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tankrocket""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tanklaser""fw_UseStationary_Post"1)
    
        
register_message(get_user_msgid("DeathMsg"), "message_DeathMsg"); 
        
       
/* register_clcmd("zm_knife_strong", "clcmd_knife")
        register_clcmd("zm_knife_hammer", "clcmd_knife")
        register_clcmd("zm_knife_combat", "clcmd_knife")
        register_clcmd("zm_knife_axe", "clcmd_knife") */

        
cvar_speed_axe register_cvar("zp_axe_speed""250.0")
        
cvar_damage_axe register_cvar("zp_axe_damage""9.5")
        
cvar_damage_axe_nemesis register_cvar("zp_axe_dmg_nemesis""300.9")
        
cvar_knock_axe register_cvar("zp_axe_knockback""2.5")
        
        
cvar_speed_strong register_cvar("zp_strong_speed""235.0")
        
cvar_damage_strong register_cvar("zp_strong_damage""3.5")
        
cvar_knock_strong register_cvar("zp_strong_knockback""7.6")
        
        
cvar_speed_combat register_cvar("zp_combat_speed""600.0")
        
cvar_damage_combat register_cvar("zp_combat_damage""8.3")
        
cvar_knock_combat register_cvar("zp_combat_knockback""2.5")
        
        
cvar_speed_hammer register_cvar("zp_hammer_speed""275.0")
        
cvar_damage_hammer register_cvar("zp_hammer_damage""9.2")
        
cvar_knock_hammer register_cvar("zp_hammer_knockback""3.0")
        
    
cvar_speed_saxe register_cvar("zp_saxe_speed""300.0")
    
cvar_damage_saxe register_cvar("zp_saxe_damage""10.3")
    
cvar_knock_saxe register_cvar("zp_saxe_knockback""6.0")
    
    
cvar_speed_knife6 register_cvar("zp_knife6_speed""320.0")
    
cvar_damage_knife6 register_cvar("zp_knife6_damage""2.3")
    
cvar_knock_knife6 register_cvar("zp_knife6_knockback""2.0")
    
    
cvar_speed_knife7 register_cvar("zp_knife6_speed""300.0")
    
cvar_damage_knife7 register_cvar("zp_knife6_damage""10.3")
    
cvar_knock_knife7 register_cvar("zp_knife6_knockback""6.0")
        
        
cvar_speed_surv register_cvar("zp_axe_surv_speed""273.0")
        
cvar_damage_surv register_cvar("zp_axe_surv_damage""20.5")
        
cvar_knock_surv register_cvar("zp_axe_surv_knockback""7.0")
}

public 
native_zp_knifes_get(id)
{
    if(
g_has_axe[id])
    {
        return 
1
    
}else
    if(
g_has_strong[id])
    {
        return 
2
    
}else
    if(
g_has_knife6[id])
    {
        return 
3
    
}else
    if(
g_has_combat[id])
    {
        return 
4
    
}else
    if(
g_has_hammer[id])
    {
        return 
5
    
}else
    if(
g_has_saxe[id])
    {
        return 
6
    
}
    if(
g_has_knife7[id])
    {
        return 
7
    
}
    return 
0
}

public 
native_zp_knifes_set(idiKnife)
{
        switch( 
iKnife )
        {
                case 
1buy_knife1(id)
                case 
2buy_knife2(id)
    case 
3buy_knife6(id)
                case 
4buy_knife3(id)
                case 
5buy_knife4(id)
                case 
6buy_knife5(id)
                case 
7buy_knife7(id)
        }
}

public 
fw_PlayerAddToFullPackES_HandleEpEntpHostbsHostFlagspPlayerpSet )
{       
        if( 
pPlayer && get_user_weapon(pEnt) == CSW_KNIFE && g_has_hammer[pEnt] && !zp_get_user_zombie(pEnt))
        {
                static 
iAnim;

                
iAnim get_esES_HandleES_Sequence );

                switch( 
iAnim )
                {
                        case 
73747576:
                        {
                                
set_esES_HandleES_SequenceiAnim += 10 );
                        }
                }
        }
    
                if( 
pPlayer && get_user_weapon(pEnt) == CSW_KNIFE && g_has_saxe[pEnt] && !zp_get_user_zombie(pEnt))
        {
                static 
iAnim;

                
iAnim get_esES_HandleES_Sequence );

                switch( 
iAnim )
                {
                        case 
73747576:
                        {
                                
set_esES_HandleES_SequenceiAnim += 20 );
                        }
                }
        }
        return 
FMRES_IGNORED;
}

public 
plugin_natives() 
{
    
register_native"knife_0""knife_0")

    
register_native("zp_get_user_knife""native_zp_knifes_get"1)
    
register_native("zp_set_user_knife""native_zp_knifes_set"1)
}

public 
knife_0(id)
{
    
g_has_axe[id] = false
    g_has_strong
[id] = false
    g_has_combat
[id] = false
    g_has_hammer
[id] = false
    g_has_saxe
[id] = false
    g_has_knife6
[id] = false
    g_has_knife7
[id] = false
    g_has_survivoraxe
[id] = false
}

public 
client_connect(id)
{
    
g_has_axe[id] = true
    g_has_strong
[id] = false
    g_has_combat
[id] = false
    g_has_hammer
[id] = false
    g_has_saxe
[id] = false
    g_has_knife6
[id] = false
    g_has_knife7
[id] = false
    g_has_survivoraxe
[id] = false
}

public 
client_disconnect(id)
{
        
g_has_axe[id] = false
        g_has_strong
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
        g_has_saxe
[id] = false
        g_has_knife6
[id] = false
        g_has_knife7
[id] = false
        g_has_survivoraxe
[id] = false
}

public 
clcmd_knife(id)
{
    if(!
is_user_alive(id))
        return 
PLUGIN_HANDLED

    engclient_cmd
(id"weapon_knife")

    return 
PLUGIN_HANDLED
}

public 
zp_user_humanized_postiPlayer 
{
    if( 
zp_get_user_survivoriPlayer ) ) 
    {
        
buy_knife_surv(iPlayer)
    }
    else 
ChekKnife(iPlayer)
}

public 
plugin_precache()
{    
        
precache_model(KNIFE1_V_MODEL)
        
precache_model(KNIFE1_P_MODEL)
        
precache_model(KNIFE2_V_MODEL)
        
precache_model(KNIFE2_P_MODEL)
        
precache_model(KNIFE3_V_MODEL)
        
precache_model(KNIFE3_P_MODEL)
        
precache_model(KNIFE4_V_MODEL)
        
precache_model(KNIFE4_P_MODEL)
        
precache_model(KNIFE5_V_MODEL)
        
precache_model(KNIFE5_P_MODEL)
        
precache_model(KNIFE6_V_MODEL)
        
precache_model(KNIFE6_P_MODEL)
        
precache_model(KNIFE7_V_MODEL)
        
precache_model(KNIFE7_P_MODEL)
        
precache_model(KNIFESURV_V_MODEL)
        
precache_model(KNIFESURV_P_MODEL)
        
        
/*precache_generic("sprites/zm_knife_strong.txt")
        precache_generic("sprites/zm_knife_hammer.txt")
        precache_generic("sprites/zm_knife_combat.txt")
        precache_generic("sprites/zm_knife_axe.txt")
        
        precache_generic("sprites/zm_cso/640hud7.spr")
        precache_generic("sprites/zm_cso/640hud21.spr")
        precache_generic("sprites/zm_cso/640hud23.spr")
        precache_generic("sprites/zm_cso/640hud38.spr")
        precache_generic("sprites/zm_cso/640hud39.spr")*/
        
        
precache_sound(g_sound_knife)

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

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

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

        for(new 
0sizeof hammer_soundsi++)
                
precache_sound(hammer_sounds[i])
                
        for(new 
0sizeof saxe_soundsi++)
                
precache_sound(saxe_sounds[i])
    for(new 
0sizeof knife6_soundsi++)
                
precache_sound(knife6_sounds[i])
    for(new 
0sizeof knife7_soundsi++)
                
precache_sound(knife7_sounds[i])
                
        
g_flameSpr precache_model"sprites/Vaas/thanatos11_fire.spr" );
        
g_flameSpr1 precache_model"sprites/Vaas/thanatos11_fire.spr" );
        
g_smokeSpr precache_model"sprites/Vaas/thanatos_smoke.spr" );
                
      for(new 
0sizeof surv_soundsi++)
                
precache_sound(surv_sounds[i]) 
}

public 
knifemenu(id)
{
    if(!
zp_get_user_survivor(id)) {
    new 
menu menu_create("\yKnife Menu ","menu_handle")

        
menu_additem(menu"\yAXE Knife \r~|Damage|~""1")
        
menu_additem(menu"\yStrong Knife \r~|knockback|~""2")
      
menu_additem(menu"\yThanatos Knife \r~|Speed|~^n""3")
        
    if(
get_user_flags(id) & VIP)
        
menu_additem(menu"\yHAMMER Knife \r~|VIP|~""4")
    else
        
menu_additem(menu"\dHAMMER Knife° \r~|VIP|~""4")

    if(
get_user_flags(id) & ADMIN)
        
menu_additem(menu"\ySuperAXE Knife° \r~|ADMIN|~""5")
    else
        
menu_additem(menu"\dHAMMER-HEAD Knfie° \r~|Super-ADMIN|~""5")
        
    if(
get_user_flags(id) & BOSS)
        
menu_additem(menu"\yWar-HAMMER Knife \r~|HEAD-ADMIN|~^n""6")
    else
        
menu_additem(menu"\dWar-HAMMER Knife \r~|HEAD-ADMIN|~^n""6")
        
    if(
get_user_flags(id) & GLADMIN)
        
menu_additem(menu"\yDark-HAMMER Knife \r~|OWNER|~""7")
    else
        
menu_additem(menu"\dDark-HAMMER Knife \r~|OWNER|~""7")
        
        
menu_setprop(menuMPROP_PERPAGE0)

    
menu_display(idmenu0)
}
}

public 
menu_handle(idmenuitem)
{
        if(
item 0
                return 
PLUGIN_CONTINUE
        
        
new cmd[2];
        new 
accesscallback;
        
menu_item_getinfo(menuitemaccesscmd,2,_,_callback);
        new 
choice str_to_num(cmd)
        
        switch (
choice)
        {
                case 
1buy_knife1(id)
                case 
2buy_knife2(id)
        case 
3buy_knife6(id)
                case 
4buy_knife3(id)
                case 
5buy_knife4(id)
                case 
6buy_knife5(id)
                case 
7buy_knife7(id)
        }
        return 
PLUGIN_HANDLED;


public 
buy_knife1(id)
{
    
g_has_axe[id] = true     
        g_has_strong
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
        g_has_saxe
[id] = false
        g_has_knife6
[id] = false
        g_has_knife7
[id] = false
       g_has_survivoraxe
[id] = false
        
    
//set_sprite(id)
        
    
message_begin(MSG_ONEget_user_msgid("WeapPickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
        
    
checkWeapon(id)
    
//set_knife(id, 1)

    
client_cmd(id"setinfo Knifes 1")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
}

public 
buy_knife2(id)
{
        
g_has_axe[id] = false
        g_has_strong
[id] = true
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
        g_has_saxe
[id] = false
        g_has_knife6
[id] = false
        g_has_knife7
[id] = false
        g_has_survivoraxe
[id] = false
        
    
//set_sprite(id)
        
    
message_begin(MSG_ONEget_user_msgid("WeapPickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
        
    
checkWeapon(id)
    
//set_knife(id, 2)

    
client_cmd(id"setinfo Knifes 2")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
}

public 
buy_knife3(id)
{
    if (
get_user_flags(id) & VIP)
    {
        
g_has_axe[id] = false
        g_has_strong
[id] = false
        g_has_combat
[id] = true
        g_has_hammer
[id] = false
        g_has_saxe
[id] = false
        g_has_knife6
[id] = false
        g_has_knife7
[id] = false
        g_has_survivoraxe
[id] = false
        
    
//set_sprite(id)
        
    
message_begin(MSG_ONEget_user_msgid("WeapPickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
        
    
checkWeapon(id)
    
//set_knife(id, 3)

    
client_cmd(id"setinfo Knifes 4")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
    }
}

public 
buy_knife4(id)
{
    if (
get_user_flags(id) & ADMIN)
    {
        
g_has_axe[id] = false
        g_has_strong
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = true
        g_has_saxe
[id] = false
        g_has_knife6
[id] = false
        g_has_knife7
[id] = false
        g_has_survivoraxe
[id] = false
                
    
//set_sprite(id)
                
    
message_begin(MSG_ONEget_user_msgid("WeapPickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
                
    
checkWeapon(id)
    
//set_knife(id, 4)

    
client_cmd(id"setinfo Knifes 5")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
        }

}

public 
buy_knife5(id)
{
    if (
get_user_flags(id) & BOSS)
    {
        
g_has_axe[id] = false
        g_has_strong
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
        g_has_saxe
[id] = true
        g_has_knife6
[id] = false
        g_has_knife7
[id] = false
        g_has_survivoraxe
[id] = false
                
    
//set_sprite(id)
                
    
message_begin(MSG_ONEget_user_msgid("WeapPickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
                
    
checkWeapon(id)
    
//set_knife(id, 4)

    
client_cmd(id"setinfo Knifes 6")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
        }

}

public 
buy_knife6(id)
{
        
g_has_axe[id] = false
        g_has_strong
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
        g_has_saxe
[id] = false
        g_has_knife6
[id] = true
        g_has_knife7
[id] = false
        g_has_survivoraxe
[id] = false
                
    
//set_sprite(id)
                
    
message_begin(MSG_ONEget_user_msgid("WeapPickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
                
    
checkWeapon(id)
    
//set_knife(id, 4)

    
client_cmd(id"setinfo Knifes 3")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)

}

public 
buy_knife7(id)
{
    if (
get_user_flags(id) & GLADMIN)
    {
        
g_has_axe[id] = false
        g_has_strong
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
        g_has_saxe
[id] = false
        g_has_knife6
[id] = false
        g_has_knife7
[id] = true
        g_has_survivoraxe
[id] = false
                
    
//set_sprite(id)
                
    
message_begin(MSG_ONEget_user_msgid("WeapPickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
                
    
checkWeapon(id)
    
//set_knife(id, 4)

    
client_cmd(id"setinfo Knifes 7")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
    }

}

public 
buy_knife_surv(id)
{
        
g_has_axe[id] = false
        g_has_strong
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
        g_has_saxe
[id] = false
        g_has_knife6
[id] = false
        g_has_knife7
[id] = false
        g_has_survivoraxe
[id] = true
                
    
//set_sprite(id)
                
    
message_begin(MSG_ONEget_user_msgid("WeapPickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
                
    
checkWeapon(id)
    
//set_knife(id, 4)

    // client_cmd(id, "setinfo Knifes 6")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)

}

public 
fw_UseStationary_Post(entitycalleractivatoruse_type)
{    
    if (
use_type == && is_user_connected(caller))
        
checkWeapon(caller)
}

public 
checkWeapon(id)
{
        if(!
zp_get_user_zombie(id))
        {
            if(
get_user_weapon(id) == CSW_KNIFE)
        {
            if(
g_has_axe[id])
            {
                        
set_pev(idpev_viewmodel2KNIFE1_V_MODEL)
                        
set_pev(idpev_weaponmodel2KNIFE1_P_MODEL)
                
//set_pev(id, pev_gravity, 0.6)
            
}
            else if(
g_has_strong[id] )
            {
                        
set_pev(idpev_viewmodel2KNIFE2_V_MODEL)
                
set_pev(idpev_weaponmodel2KNIFE2_P_MODEL)
                
//set_pev(id, pev_gravity, 0.6)
            
}
            else if(
g_has_combat[id])
            {
                            
set_pev(idpev_viewmodel2KNIFE3_V_MODEL)
                            
set_pev(idpev_weaponmodel2KNIFE3_P_MODEL)
                
//set_pev(id, pev_gravity, 0.6)
            
}
            else if(
g_has_hammer[id])
            {
                        
set_pev(idpev_viewmodel2KNIFE4_V_MODEL)
                        
set_pev(idpev_weaponmodel2KNIFE4_P_MODEL)
                
//set_pev(id, pev_gravity, 0.6)
            
}
            else if(
g_has_saxe[id])
            {
                
set_pev(idpev_viewmodel2KNIFE5_V_MODEL)
                
set_pev(idpev_weaponmodel2KNIFE5_P_MODEL)
            }
            else if(
g_has_knife6[id])
            {
                
set_pev(idpev_viewmodel2KNIFE6_V_MODEL)
                
set_pev(idpev_weaponmodel2KNIFE6_P_MODEL)
            }
            else if(
g_has_knife7[id])
            {
                
set_pev(idpev_viewmodel2KNIFE7_V_MODEL)
                
set_pev(idpev_weaponmodel2KNIFE7_P_MODEL)
            }
            else if(
g_has_survivoraxe[id])
            {
                       
set_pev(idpev_viewmodel2KNIFESURV_V_MODEL)
                        
set_pev(idpev_weaponmodel2KNIFESURV_P_MODEL)
            
//set_pev(id, pev_gravity, 0.4)
            
}
            
//else if(get_balrog9(id) || is_chainsaw(id))
                //set_pev(id, pev_gravity, 0.5)
        
}
    }
}
    
public 
fw_playerspawn_post(id)
{
    if(!
is_user_alive(id))
        return;
        
    
//ChekKnife(id)
    //if(g_has_survivoraxe[id])
    //{
    //        g_has_strong[id] = false
    //        g_has_combat[id] = false
    //        g_has_hammer[id] = false
    //        g_has_saxe[id] = false
    //        g_has_survivoraxe[id] = false
    //    }
    
ChekKnife(id)
       
// set_sprite(id)
    
return;
}

public 
CEntity__EmitSound(idchannel, const sample[], Float:volumeFloat:attnflagspitch)
{
    if (!
is_user_connected(id)) 
        return 
HAM_IGNORED
    
    
if (zp_get_user_zombie(id)) 
        return 
HAM_IGNORED
    
    
if (sample[8] == 'k' && sample[9] == 'n' && sample[10] == 'i')
    {
        if (
sample[14] == 'd'
        {
            if(
g_has_axe[id])
                
emit_sound(idchannelaxe_sounds[0], volumeattnflagspitch)
            if(
g_has_strong[id])
                
emit_sound(idchannelstrong_sounds[0], volumeattnflagspitch)
            if(
g_has_combat[id])
                
emit_sound(idchannelcombat_sounds[0], volumeattnflagspitch)
            if(
g_has_hammer[id])
                
emit_sound(idchannelhammer_sounds[0], volumeattnflagspitch)
            if(
g_has_saxe[id])
                
emit_sound(idchannelsaxe_sounds[0], volumeattnflagspitch)
            if(
g_has_knife6[id])
                
emit_sound(idchannelknife6_sounds[0], volumeattnflagspitch)
            if(
g_has_knife7[id])
                
emit_sound(idchannelknife7_sounds[0], volumeattnflagspitch)
            if(
g_has_survivoraxe[id])
                
emit_sound(idchannelsurv_sounds[0], volumeattnflagspitch)
        }
        else if (
sample[14] == 'h')
        {
            if (
sample[17] == 'w'
            {
                if(
g_has_axe[id])
                    
emit_sound(idchannelaxe_sounds[3], volumeattnflagspitch)
                if(
g_has_strong[id])
                    
emit_sound(idchannelstrong_sounds[3], volumeattnflagspitch)
                if(
g_has_combat[id])
                    
emit_sound(idchannelcombat_sounds[3], volumeattnflagspitch)
                if(
g_has_hammer[id] )
                    
emit_sound(idchannelhammer_sounds[3], volumeattnflagspitch)
                if(
g_has_saxe[id])
                    
emit_sound(idchannelsaxe_sounds[3], volumeattnflagspitch)
                if(
g_has_knife6[id])
                    
emit_sound(idchannelknife6_sounds[3], volumeattnflagspitch)
                if(
g_has_knife7[id])
                    
emit_sound(idchannelknife7_sounds[3], volumeattnflagspitch)
                if(
g_has_survivoraxe[id])
                    
emit_sound(idchannelsurv_sounds[3], volumeattnflagspitch)
            }
            else
            {
                if(
g_has_axe[id])
                    
emit_sound(idchannelaxe_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_has_strong[id])
                    
emit_sound(idchannelstrong_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_has_combat[id])
                    
emit_sound(idchannelcombat_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_has_hammer[id])
                    
emit_sound(idchannelhammer_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_has_saxe[id])
                    
emit_sound(idchannelsaxe_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_has_knife6[id])
                    
emit_sound(idchannelknife6_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_has_knife7[id])
                    
emit_sound(idchannelknife7_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_has_survivoraxe[id])
                    
emit_sound(idchannelsurv_sounds[random_num(1,2)], volumeattnflagspitch)
            }
        }
        else
        {
            if (
sample[15] == 'l'
            {
                if(
g_has_axe[id])
                    
emit_sound(idchannelaxe_sounds[4], volumeattnflagspitch)
                if(
g_has_strong[id])
                    
emit_sound(idchannelstrong_sounds[4], volumeattnflagspitch)
                if(
g_has_combat[id])
                    
emit_sound(idchannelcombat_sounds[4], volumeattnflagspitch)
                if(
g_has_hammer[id])
                    
emit_sound(idchannelhammer_sounds[4], volumeattnflagspitch)
                if(
g_has_saxe[id])
                    
emit_sound(idchannelsaxe_sounds[4], volumeattnflagspitch)
                if(
g_has_knife6[id])
                    
emit_sound(idchannelknife6_sounds[4], volumeattnflagspitch)
                if(
g_has_knife7[id])
                    
emit_sound(idchannelknife7_sounds[4], volumeattnflagspitch)
                if(
g_has_survivoraxe[id])
                    
emit_sound(idchannelsurv_sounds[4], volumeattnflagspitch)
            }
            else 
            {
                if(
g_has_axe[id])
                    
emit_sound(idchannelaxe_sounds[5], volumeattnflagspitch)
                if(
g_has_strong[id] )
                    
emit_sound(idchannelstrong_sounds[5], volumeattnflagspitch)
                if(
g_has_combat[id] )
                    
emit_sound(idchannelcombat_sounds[5], volumeattnflagspitch)
                if(
g_has_hammer[id])
                    
emit_sound(idchannelhammer_sounds[5], volumeattnflagspitch)
                if(
g_has_saxe[id])
                    
emit_sound(idchannelsaxe_sounds[5], volumeattnflagspitch)
                if(
g_has_knife6[id])
                    
emit_sound(idchannelknife6_sounds[5], volumeattnflagspitch)
                if(
g_has_knife7[id])
                    
emit_sound(idchannelknife7_sounds[5], volumeattnflagspitch)
                if(
g_has_survivoraxe[id])
                    
emit_sound(idchannelsurv_sounds[5], volumeattnflagspitch)
            }
        }
        return 
HAM_SUPERCEDE
    
}
    return 
HAM_IGNORED
}

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_has_axe[id])
        {
                
set_user_maxspeed(id,get_pcvar_float(cvar_speed_axe))
                
                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]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 325

                        set_pev
id pev_velocity fVelocity )

                        
set_pev(idpev_gaitsequence6)
                }
        }
        
        if(
weapon == CSW_KNIFE && g_has_strong[id])
        {
                
set_user_maxspeed(id,get_pcvar_float(cvar_speed_strong)) 
                
                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]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 320

                        set_pev
id pev_velocity fVelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }       
        }

        if(
weapon == CSW_KNIFE && g_has_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]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 320

                        set_pev
id pev_velocity fVelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
                
set_user_maxspeed(id,get_pcvar_float(cvar_speed_combat))  
        }
        if (
weapon == CSW_KNIFE && g_has_hammer[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]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 345

                        set_pev
id pev_velocity fVelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
                
set_user_maxspeed(idget_pcvar_float(cvar_speed_hammer))
        }
        if (
weapon == CSW_KNIFE && g_has_saxe[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]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 345

                        set_pev
id pev_velocity fVelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
                
set_user_maxspeed(idget_pcvar_float(cvar_speed_saxe))
        }
    if (
weapon == CSW_KNIFE && g_has_knife6[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]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 345

                        set_pev
id pev_velocity fVelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
                
set_user_maxspeed(idget_pcvar_float(cvar_speed_knife6))
        }
    if (
weapon == CSW_KNIFE && g_has_knife7[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]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 345

                        set_pev
id pev_velocity fVelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
                
set_user_maxspeed(idget_pcvar_float(cvar_speed_knife7))
        }
        if(
weapon == CSW_KNIFE && g_has_survivoraxe[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]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 357

                        set_pev
id pev_velocity fVelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
set_user_maxspeed(idget_pcvar_float(cvar_speed_surv))
        }
        
        return 
FMRES_IGNORED
}  

public 
fw_TakeDamage(victiminflictorattackerFloat:damage_type)
{
        if(!
is_user_connected(attacker))
                return 
HAM_IGNORED
        
        
if(zp_get_user_zombie(attacker))
                return 
HAM_IGNORED
        
        
if(get_user_weapon(attacker) == CSW_KNIFE)
        {
                if (
g_has_axe[attacker])
                {
                        if(
zp_is_nemesis_round())
                            
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_axe_nemesis))
                        else
                            
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_axe)) 
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_axe);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);   
                }
                else if (
g_has_strong[attacker])
                {       
                        
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_strong)) 
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_strong);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);   
                }
                else if (
g_has_combat[attacker])
                {       
                        
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_combat)) 
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_combat);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);   
                }
                else if (
g_has_hammer[attacker])
                {       
                        
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_hammer)) 
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_hammer);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);
                }
                else if (
g_has_saxe[attacker])
                {       
                        
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_saxe)) 
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_saxe);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);
                        
                        if( !
task_existsvictim TASK_FBURN ) )
                        {
                            
g_burning_durationvictim ] += FIRE_DURATION 5
                            set_task
0.2"CTask__BurningFlame"victim TASK_FBURN__"b" )
                        }
                }
        else if (
g_has_knife6[attacker])
                {       
                        
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_knife6)) 
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_knife6);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);   
                }
                else if (
g_has_knife7[attacker])
                {       
                        
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_knife7)) 
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_saxe);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);
                        
                        if( !
task_existsvictim TASK_FBURN1 ) )
                        {
                            
g_burning_duration1victim ] += FIRE_DURATION1 5
                            set_task
0.2"CTask__BurningFlame1"victim TASK_FBURN1__"b" )
                        }
                }
                 else if(
g_has_survivoraxe[attacker])
                {       
                        
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_surv)) 
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_surv);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);
    
                }
                
more_blood(victim)
        }

        return 
HAM_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_has_axe[iattacker])
                                
set_msg_arg_string(4"axe")
                }
        
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_strong[iattacker])
                                
set_msg_arg_string(4"hatchet")
                }
        
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_combat[iattacker])
                                
set_msg_arg_string(4"mastercombat")
                }
        
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_hammer[iattacker])
                                
set_msg_arg_string(4"hammer")
                }
                
                 if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_saxe[iattacker])
                                
set_msg_arg_string(4"skullaxe")
                }
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_knife6[iattacker])
                                
set_msg_arg_string(4"knife6")
                }
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_knife7[iattacker])
                                
set_msg_arg_string(4"knife7")
                }
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_survivoraxe[iattacker])
                               
set_msg_arg_string(4"survivoraxe")
                } 
        
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(!
g_has_axe[iattacker] && !g_has_strong[iattacker] && !g_has_combat[iattacker] && !g_has_hammer[iattacker] && !zp_get_user_zombie(iattacker))
                                
set_msg_arg_string(4"knife")
                }
        }
        if (
zp_get_user_zombie(iattacker))
        {
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_axe[iattacker] || g_has_strong[iattacker] || g_has_combat[iattacker] || g_has_hammer[iattacker])
                                
set_msg_arg_string(4"Claws")
                }
        }
        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];
        
pev(victimpev_origin vicorigin);
        
pev(attackerpev_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_has_axe[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_axe) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_axe) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
        else if (
g_has_strong[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_strong) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_strong) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
        else if (
g_has_combat[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_combat) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_combat) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
        else if (
g_has_hammer[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_hammer) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_hammer) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
        else if (
g_has_saxe[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_saxe) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_saxe) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
    else if (
g_has_knife6[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_knife6) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_knife6) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
    else if (
g_has_knife7[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_knife7) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_knife7) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
       else if(
g_has_survivoraxe[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_surv) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_surv) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        } 
 
        if(
velocity[0] <= 20.0 || velocity[1] <= 20.0)
        
velocity[2] = random_float(200.0 275.0);

        return 
1;
}

stock fm_set_user_maxspeed(indexFloat:speed = -1.0
{
        
engfunc(EngFunc_SetClientMaxspeedindexspeed);
        
set_pev(indexpev_maxspeedspeed);

        return 
1;
}       

more_blood(id)
{
        static 
iOrigin[3]
        
get_user_origin(idiOrigin)
        
        
message_begin(MSG_PVSSVC_TEMPENTITYiOrigin)
        
write_byte(TE_BLOODSTREAM)
        
write_coord(iOrigin[0])
        
write_coord(iOrigin[1])
        
write_coord(iOrigin[2]+10)
        
write_coord(random_num(-360360))
        
write_coord(random_num(-360360))
        
write_coord(-10)
        
write_byte(70)
        
write_byte(random_num(50100))
        
message_end()

        for (new 
04j++) 
        {
                
message_begin(MSG_PVSSVC_TEMPENTITYiOrigin)
                
write_byte(TE_WORLDDECAL)
                
write_coord(iOrigin[0]+random_num(-100100))
                
write_coord(iOrigin[1]+random_num(-100100))
                
write_coord(iOrigin[2]-36)
                
write_byte(random_num(190197))
                
message_end()
        }
}

public 
sprite(const player, const string_msg[], byte_1byte_2byte_3byte_4byte_5byte_6byte_7byte_8)
{
    
message_beginMSG_ONEget_user_msgid("WeaponList"), .player player );
    {
        
write_string(string_msg);
        
write_byte(byte_1);
        
write_byte(byte_2);
        
write_byte(byte_3);
        
write_byte(byte_4);
        
write_byte(byte_5);
        
write_byte(byte_6);
        
write_byte(byte_7);
        
write_byte(byte_8);
    }
    
message_end();
}

/*public set_sprite(id)
{
        if(!is_user_alive(id))
        {
                return;
        }
                
        if(zp_get_user_zombie(id))
        {
                sprite(id, "weapon_knife", -1, -1, -1, -1, 2, 1, 29, 0)
                return;
    }

        if(g_has_axe[id])
        {
                sprite(id, "zm_knife_axe", -1, -1, -1, -1, 2, 1, 29, 0)
                return;
        }
        
        if(g_has_strong[id])
        {
                sprite(id, "zm_knife_strong", -1, -1, -1, -1, 2, 1, 29, 0)
                return;
        }
        
        if(g_has_combat[id])
        {
                sprite(id, "zm_knife_combat", -1, -1, -1, -1, 2, 1, 29, 0)
                return;
        }
         
        if(g_has_hammer[id])
        {
                sprite(id, "zm_knife_hammer", -1, -1, -1, -1, 2, 1, 29, 0)
                return;
        }
        
        if(g_has_survivoraxe[id])
        {
                sprite(id, "zm_knife_axe", -1, -1, -1, -1, 2, 1, 29, 0)
        return;
    }
}*/

stock ChekKnife(id)
{
    new 
str[3]
    
get_user_info(id"Knifes"strcharsmax(str))

    switch(
str[0])
    {
        case 
'1':
        {
                
g_has_axe[id] = true
                g_has_strong
[id] = false
                g_has_combat
[id] = false
                g_has_hammer
[id] = false
                g_has_saxe
[id] = false
                g_has_knife6
[id] = false
                g_has_knife7
[id] = false
        
}
        case 
'2':
        {
                
g_has_axe[id] = false
                g_has_strong
[id] = true
                g_has_combat
[id] = false
                g_has_hammer
[id] = false    
                g_has_saxe
[id] = false
                g_has_knife6
[id] = false
                g_has_knife7
[id] = false
        
}
        case 
'3':
        {
                
g_has_axe[id] = false
                g_has_strong
[id] = false
                g_has_combat
[id] = false
                g_has_hammer
[id] = false    
                g_has_saxe
[id] = false
                g_has_knife6
[id] = true
                g_has_knife7
[id] = false
        
}
        case 
'4':
        {
            if(
get_user_flags(id) & VIP)
            {
                
g_has_axe[id] = false
                g_has_strong
[id] = false
                g_has_combat
[id] = true
                g_has_hammer
[id] = false    
                g_has_saxe
[id] = false
                g_has_knife6
[id] = false
                g_has_knife7
[id] = false
            
}                
            else 
random_num(buy_knife1(id) , buy_knife2(id))
        }
        case 
'5':
        {
            if(
get_user_flags(id) & ADMIN)
            {
                    
g_has_axe[id] = false
                    g_has_strong
[id] = false
                g_has_combat
[id] = false
                    g_has_hammer
[id] = true    
                    g_has_saxe
[id] = false
                    g_has_knife6
[id] = false
                g_has_knife7
[id] = false
            
}
            else 
random_num(buy_knife1(id) , buy_knife2(id))
        }
        case 
'6':
        {
            if(
get_user_flags(id) & BOSS)
            {
                    
g_has_axe[id] = false
                    g_has_strong
[id] = false
                g_has_combat
[id] = false
                    g_has_hammer
[id] = false    
                    g_has_saxe
[id] = true
                    g_has_knife6
[id] = false
                g_has_knife7
[id] = false
            
}
            else 
random_num(buy_knife1(id) , buy_knife2(id))
        }
        case 
'7':
        {
            if(
get_user_flags(id) & GLADMIN)
            {
                    
g_has_axe[id] = false
                    g_has_strong
[id] = false
                g_has_combat
[id] = false
                    g_has_hammer
[id] = false    
                    g_has_saxe
[id] = false
                    g_has_knife6
[id] = false
                g_has_knife7
[id] = true
            
}
            else 
random_num(buy_knife1(id) , buy_knife2(id))
        }
    }
        
g_has_survivoraxe[id] = false
}

public 
CTask__BurningFlametaskid )
{
    
// Get player origin and flags
    
static origin[3], flags
    get_user_origin
(ID_FBURNorigin)
    
flags pev(ID_FBURNpev_flags)
    
    
// Madness mode - in water - burning stopped
    
if ((flags FL_INWATER) || g_burning_duration[ID_FBURN] < || g_fRoundEnd || !is_user_alive(ID_FBURN))
    {
        
// Smoke sprite
        
message_begin(MSG_PVSSVC_TEMPENTITYorigin)
        
write_byte(TE_SMOKE// TE id
        
write_coord(origin[0]) // x
        
write_coord(origin[1]) // y
        
write_coord(origin[2]-50// z
        
write_short(g_smokeSpr// sprite
        
write_byte(random_num(1520)) // scale
        
write_byte(random_num(1020)) // framerate
        
message_end()
        
        
// Task not needed anymore
        
remove_task(taskid)
        return
    }
    
    
// Get player's health
    
static health
    health 
pev(ID_FBURNpev_health)
    
    
// Take damage from the fire
    
if (health FIRE_DAMAGE 0)
        
fm_set_user_health(ID_FBURNhealth FIRE_DAMAGE)
    
    
// Flame sprite
    
message_begin(MSG_PVSSVC_TEMPENTITYorigin)
    
write_byte(TE_SPRITE// TE id
    
write_coord(origin[0]+random_num(-55)) // x
    
write_coord(origin[1]+random_num(-55)) // y
    
write_coord(origin[2]+random_num(-1010)) // z
    
write_short(g_flameSpr// sprite
    
write_byte(random_num(510)) // scale
    
write_byte(200// brightness
    
message_end()

    
g_burning_duration[ID_FBURN]--
}

public 
CTask__BurningFlame1taskid )
{
    
// Get player origin and flags
    
static origin[3], flags
    get_user_origin
(ID_FBURN1origin)
    
flags pev(ID_FBURN1pev_flags)
    
    
// Madness mode - in water - burning stopped
    
if ((flags FL_INWATER) || g_burning_duration1[ID_FBURN1] < || g_fRoundEnd || !is_user_alive(ID_FBURN1))
    {
        
// Smoke sprite
        
message_begin(MSG_PVSSVC_TEMPENTITYorigin)
        
write_byte(TE_SMOKE// TE id
        
write_coord(origin[0]) // x
        
write_coord(origin[1]) // y
        
write_coord(origin[2]-50// z
        
write_short(g_smokeSpr// sprite
        
write_byte(random_num(1520)) // scale
        
write_byte(random_num(1020)) // framerate
        
message_end()
        
        
// Task not needed anymore
        
remove_task(taskid)
        return
    }
    
    
// Get player's health
    
static health
    health 
pev(ID_FBURN1pev_health)
    
    
// Take damage from the fire
    
if (health FIRE_DAMAGE1 0)
        
fm_set_user_health(ID_FBURN1health FIRE_DAMAGE1)
    
    
// Flame sprite
    
message_begin(MSG_PVSSVC_TEMPENTITYorigin)
    
write_byte(TE_SPRITE// TE id
    
write_coord(origin[0]+random_num(-55)) // x
    
write_coord(origin[1]+random_num(-55)) // y
    
write_coord(origin[2]+random_num(-1010)) // z
    
write_short(g_flameSpr1// sprite
    
write_byte(random_num(510)) // scale
    
write_byte(200// brightness
    
message_end()

    
g_burning_duration1[ID_FBURN1]--
}

stock fm_set_user_healthindexhealth 
    
health set_pev(indexpev_healthfloat(health)) : dllfunc(DLLFunc_ClientKillindex)

stock ChatColor(const id, const input[], any:...)
{
    new 
count 1players[32]
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4")
    
replace_all(msg190"!y""^1")
    
replace_all(msg190"!team""^3")
    
    if (
idplayers[0] = id; else get_players(playerscount"ch")
    {
        for (new 
0counti++)
        {
            if (
is_user_connected(players[i]))
            {
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i]);
                
write_byte(players[i]);
                
write_string(msg);
                
message_end();
            }
        }
    }

I DON'T HAVE ANYCOPYRIGHT FOR THIS PLUGIN

THANKS

Last edited by bashar_beesho; 05-07-2019 at 13:24.
bashar_beesho is offline
AmXDusT
Member
Join Date: Feb 2019
Location: Italy / Albania
Old 05-09-2019 , 09:00   Re: Hard Request ! KnifeMenu Again !
Reply With Quote #2

Added gravity cvars for every knife (should work, hopefully)
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <fakemeta>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>

//native is_chainsaw(id)
//native set_knife(id, num)
//native get_balrog9(id)

#define TASK_FBURN                100
#define ID_FBURN                ( taskid - TASK_FBURN )

#define TASK_FBURN1                100
#define ID_FBURN1                ( taskid - TASK_FBURN )

#define MAX_CLIENTS                32

new bool:g_fRoundEnd

#define FIRE_DURATION            1
#define FIRE_DAMAGE                50

#define FIRE_DURATION1            5
#define FIRE_DAMAGE1                150

new g_flameSprg_flameSpr1g_smokeSprg_burning_durationMAX_CLIENTS ], g_burning_duration1MAX_CLIENTS ]

#define PLUGIN    "[ZP] Addon: Knifes"
#define VERSION    "1.0"
#define AUTHOR    "BlackCat"

#define VIP        ADMIN_LEVEL_A
#define ADMIN    ADMIN_LEVEL_B
#define BOSS    ADMIN_LEVEL_H
#define GLADMIN ADMIN_CFG
#pragma tabsize 0

new KNIFE1_V_MODEL[] = "models/Vaas/v_spsword.mdl"
new KNIFE1_P_MODEL[] = "models/Vaas/p_spsword.mdl"

new KNIFE2_V_MODEL[] = "models/Vaas/v_silver_wolf.mdl"
new KNIFE2_P_MODEL[] = "models/Vaas/p_silver_wolf.mdl"

new KNIFE6_V_MODEL[] = "models/Vaas/v_thanatos10.mdl"
new KNIFE6_P_MODEL[] = "models/Vaas/p_thanatos10.mdl"

new KNIFE3_V_MODEL[] = "models/Vaas/v_galaxy_banka.mdl"
new KNIFE3_P_MODEL[] = "models/Vaas/p_galaxy_banka.mdl"

new KNIFE4_V_MODEL[] =  "models/Vaas/v_war_kosa.mdl"
new KNIFE4_P_MODEL[] =  "models/Vaas/p_war_kosa.mdl"

new KNIFE5_V_MODEL[] = "models/Vaas/v_ts_war.mdl"
new KNIFE5_P_MODEL[] = "models/Vaas/p_ts_war.mdl"

new KNIFE7_V_MODEL[] =  "models/Vaas/v_WarHammer_dark_knight.mdl"
new KNIFE7_P_MODEL[] =  "models/Vaas/p_stormgiant_dk.mdl"

new KNIFESURV_V_MODEL[] = "models/Vaas/v_WarHammer_dark_knight.mdl"
new KNIFESURV_P_MODEL[] = "models/Vaas/p_stormgiant_dk.mdl"


new bool:g_has_axe[33]
new 
bool:g_has_strong[33]
new 
bool:g_has_combat[33]
new 
bool:g_has_hammer[33]
new 
bool:g_has_saxe[33]
new 
bool:g_has_knife6[33]
new 
bool:g_has_knife7[33]
new 
bool:g_has_survivoraxe[33]

new 
cvar_knock_axecvar_speed_axecvar_damage_axecvar_damage_axe_nemesiscvar_grav_axe
new cvar_knock_strongcvar_speed_strongcvar_damage_strongcvar_grav_strong
new cvar_knock_combatcvar_speed_combatcvar_damage_combatcvar_grav_combat
new cvar_knock_hammercvar_speed_hammercvar_damage_hammercvar_grav_hammer
new cvar_knock_saxecvar_speed_saxecvar_damage_saxecvar_grav_saxe
new cvar_knock_knife6cvar_speed_knife6cvar_damage_knife6cvar_grav_knife6
new cvar_knock_knife7cvar_speed_knife7cvar_damage_knife7cvar_grav_knife7
new cvar_knock_survcvar_speed_survcvar_damage_survcvar_grav_surv

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

new const 
axe_sounds[][] =
{
        
"Vaas/dkatana_titan_draw.wav",
        
"Vaas/dkatana_titan_hit1.wav",
        
"Vaas/dkatana_titan_hitwall.wav",
        
"Vaas/dkatana_titan_hitwall.wav",
        
"Vaas/dkatana_titan_slash1.wav",
        
"Vaas/dkatana_titan_stab.wav"
}

new const 
strong_sounds[][] =
{
        
"Vaas/crow9_draw.wav",
        
"Vaas/crow9_hitwall1.wav",
        
"Vaas/crow9_hitwall1.wav",
        
"Vaas/crow9_hitwall1.wav",
        
"Vaas/crow9_slash1.wav",
        
"Vaas/crow9_stab.wav"
}

new const 
knife6_sounds[][] =
{
        
"Vaas/sgsaw_draw.wav",
        
"Vaas/sgsaw_hit1.wav",
        
"Vaas/sgsaw_hitwall1.wav",
        
"Vaas/sgsaw_hitwall1.wav",
        
"Vaas/sgsaw_slash1.wav",
        
"Vaas/sgsaw_stab.wav"
}

new const 
combat_sounds[][] =
{
        
"Vaas/hammer_blood_hunter_draw.wav",
        
"Vaas/hammer_blood_hunter_hit.wav",
        
"Vaas/hammer_blood_hunter_miss.wav",
        
"Vaas/hammer_blood_hunter_slash1.wav",
        
"Vaas/hammer_blood_hunter_slash2.wav",
        
"Vaas/hammer_blood_hunter_wall.wav"
}

new const 
hammer_sounds[][] =
{
        
"Vaas/hammer_blood_hunter_draw.wav",
        
"Vaas/hammer_blood_hunter_hit.wav",
        
"Vaas/hammer_blood_hunter_miss.wav",
        
"Vaas/hammer_blood_hunter_slash1.wav",
        
"Vaas/hammer_blood_hunter_slash2.wav",
        
"Vaas/hammer_blood_hunter_wall.wav"
}

new const 
saxe_sounds[][] =
{
        
"Vaas/coilhammer_draw.wav",
        
"Vaas/coilhammer_hit1.wav",
        
"Vaas/coilhammer_hit2.wav",
        
"Vaas/coilhammer_hitwall.wav",
        
"Vaas/coilhammer_slash2.wav",
        
"Vaas/coilhammer_stab.wav"
}

new const 
knife7_sounds[][] =
{
        
"Vaas/coilhammer_draw.wav",
        
"Vaas/coilhammer_hit1.wav",
        
"Vaas/coilhammer_hit2.wav",
        
"Vaas/coilhammer_hitwall.wav",
        
"Vaas/coilhammer_slash2.wav",
        
"Vaas/coilhammer_stab.wav"
}

new const 
surv_sounds[][] =
{
        
"Vaas/coilhammer_draw.wav",
        
"Vaas/coilhammer_hit1.wav",
        
"Vaas/coilhammer_hit2.wav",
        
"Vaas/coilhammer_hitwall.wav",
        
"Vaas/coilhammer_slash2.wav",
        
"Vaas/coilhammer_stab.wav"
}

//new g_result[33]

public plugin_init()
{
        
register_plugin(PLUGIN VERSION AUTHOR);
        
register_forward(FM_AddToFullPack"fw_PlayerAddToFullPack");
        
register_cvar("zp_addon_knife"VERSIONFCVAR_SERVER);
        
        
register_clcmd("say /knife","knifemenu")
     
register_clcmd("knife_zb","knifemenu")
    

    
register_event("CurWeapon","checkWeapon","be","1=1");

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

    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage");
    
RegisterHam(Ham_Spawn"player""fw_playerspawn_post"1)
    
RegisterHam(Ham_Use"func_tank""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tankmortar""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tankrocket""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tanklaser""fw_UseStationary_Post"1)
    
    
register_message(get_user_msgid("DeathMsg"), "message_DeathMsg"); 
    
    
/* register_clcmd("zm_knife_strong", "clcmd_knife")
    register_clcmd("zm_knife_hammer", "clcmd_knife")
    register_clcmd("zm_knife_combat", "clcmd_knife")
    register_clcmd("zm_knife_axe", "clcmd_knife") */

    
cvar_grav_axe register_cvar("zp_axe_gravity""800")
    
cvar_speed_axe register_cvar("zp_axe_speed""250.0")
    
cvar_damage_axe register_cvar("zp_axe_damage""9.5")
    
cvar_damage_axe_nemesis register_cvar("zp_axe_dmg_nemesis""300.9")
    
cvar_knock_axe register_cvar("zp_axe_knockback""2.5")
    
    
cvar_grav_strong register_cvar("zp_strong_gravity""800")
    
cvar_speed_strong register_cvar("zp_strong_speed""235.0")
    
cvar_damage_strong register_cvar("zp_strong_damage""3.5")
    
cvar_knock_strong register_cvar("zp_strong_knockback""7.6")
    
    
cvar_grav_combat register_cvar("zp_combat_gravity""800")
    
cvar_speed_combat register_cvar("zp_combat_speed""600.0")
    
cvar_damage_combat register_cvar("zp_combat_damage""8.3")
    
cvar_knock_combat register_cvar("zp_combat_knockback""2.5")
    
    
cvar_grav_hammer register_cvar("zp_hammer_gravity""800")
    
cvar_speed_hammer register_cvar("zp_hammer_speed""275.0")
    
cvar_damage_hammer register_cvar("zp_hammer_damage""9.2")
    
cvar_knock_hammer register_cvar("zp_hammer_knockback""3.0")
        
    
cvar_grav_saxe register_cvar("zp_saxe_gravity""800")
    
cvar_speed_saxe register_cvar("zp_saxe_speed""300.0")
    
cvar_damage_saxe register_cvar("zp_saxe_damage""10.3")
    
cvar_knock_saxe register_cvar("zp_saxe_knockback""6.0")
    
    
cvar_grav_knife6 register_cvar("zp_knife6_gravity""800")
    
cvar_speed_knife6 register_cvar("zp_knife6_speed""320.0")
    
cvar_damage_knife6 register_cvar("zp_knife6_damage""2.3")
    
cvar_knock_knife6 register_cvar("zp_knife6_knockback""2.0")
    
    
cvar_grav_knife7 register_cvar("zp_knife7_gravity""800")
    
cvar_speed_knife7 register_cvar("zp_knife7_speed""300.0")
    
cvar_damage_knife7 register_cvar("zp_knife7_damage""10.3")
    
cvar_knock_knife7 register_cvar("zp_knife7_knockback""6.0")
    
    
cvar_grav_surv register_cvar("zp_axe_surv_gravity""800")
    
cvar_speed_surv register_cvar("zp_axe_surv_speed""273.0")
    
cvar_damage_surv register_cvar("zp_axe_surv_damage""20.5")
    
cvar_knock_surv register_cvar("zp_axe_surv_knockback""7.0")
}

public 
native_zp_knifes_get(id)
{
    if(
g_has_axe[id])
    {
        return 
1
    
}else
    if(
g_has_strong[id])
    {
        return 
2
    
}else
    if(
g_has_knife6[id])
    {
        return 
3
    
}else
    if(
g_has_combat[id])
    {
        return 
4
    
}else
    if(
g_has_hammer[id])
    {
        return 
5
    
}else
    if(
g_has_saxe[id])
    {
        return 
6
    
}
    if(
g_has_knife7[id])
    {
        return 
7
    
}
    return 
0
}

public 
native_zp_knifes_set(idiKnife)
{
        switch( 
iKnife )
        {
                case 
1buy_knife1(id)
                case 
2buy_knife2(id)
    case 
3buy_knife6(id)
                case 
4buy_knife3(id)
                case 
5buy_knife4(id)
                case 
6buy_knife5(id)
                case 
7buy_knife7(id)
        }
}

public 
fw_PlayerAddToFullPackES_HandleEpEntpHostbsHostFlagspPlayerpSet )
{       
        if( 
pPlayer && get_user_weapon(pEnt) == CSW_KNIFE && g_has_hammer[pEnt] && !zp_get_user_zombie(pEnt))
        {
                static 
iAnim;

                
iAnim get_esES_HandleES_Sequence );

                switch( 
iAnim )
                {
                        case 
73747576:
                        {
                                
set_esES_HandleES_SequenceiAnim += 10 );
                        }
                }
        }
    
                if( 
pPlayer && get_user_weapon(pEnt) == CSW_KNIFE && g_has_saxe[pEnt] && !zp_get_user_zombie(pEnt))
        {
                static 
iAnim;

                
iAnim get_esES_HandleES_Sequence );

                switch( 
iAnim )
                {
                        case 
73747576:
                        {
                                
set_esES_HandleES_SequenceiAnim += 20 );
                        }
                }
        }
        return 
FMRES_IGNORED;
}

public 
plugin_natives() 
{
    
register_native"knife_0""knife_0")

    
register_native("zp_get_user_knife""native_zp_knifes_get"1)
    
register_native("zp_set_user_knife""native_zp_knifes_set"1)
}

public 
knife_0(id)
{
    
g_has_axe[id] = false
    g_has_strong
[id] = false
    g_has_combat
[id] = false
    g_has_hammer
[id] = false
    g_has_saxe
[id] = false
    g_has_knife6
[id] = false
    g_has_knife7
[id] = false
    g_has_survivoraxe
[id] = false
}

public 
client_connect(id)
{
    
g_has_axe[id] = true
    g_has_strong
[id] = false
    g_has_combat
[id] = false
    g_has_hammer
[id] = false
    g_has_saxe
[id] = false
    g_has_knife6
[id] = false
    g_has_knife7
[id] = false
    g_has_survivoraxe
[id] = false
}

public 
client_disconnect(id)
{
        
g_has_axe[id] = false
        g_has_strong
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
        g_has_saxe
[id] = false
        g_has_knife6
[id] = false
        g_has_knife7
[id] = false
        g_has_survivoraxe
[id] = false
}

public 
clcmd_knife(id)
{
    if(!
is_user_alive(id))
        return 
PLUGIN_HANDLED

    engclient_cmd
(id"weapon_knife")

    return 
PLUGIN_HANDLED
}

public 
zp_user_humanized_postiPlayer 
{
    if( 
zp_get_user_survivoriPlayer ) ) 
    {
        
buy_knife_surv(iPlayer)
    }
    else 
ChekKnife(iPlayer)
}

public 
plugin_precache()
{    
        
precache_model(KNIFE1_V_MODEL)
        
precache_model(KNIFE1_P_MODEL)
        
precache_model(KNIFE2_V_MODEL)
        
precache_model(KNIFE2_P_MODEL)
        
precache_model(KNIFE3_V_MODEL)
        
precache_model(KNIFE3_P_MODEL)
        
precache_model(KNIFE4_V_MODEL)
        
precache_model(KNIFE4_P_MODEL)
        
precache_model(KNIFE5_V_MODEL)
        
precache_model(KNIFE5_P_MODEL)
        
precache_model(KNIFE6_V_MODEL)
        
precache_model(KNIFE6_P_MODEL)
        
precache_model(KNIFE7_V_MODEL)
        
precache_model(KNIFE7_P_MODEL)
        
precache_model(KNIFESURV_V_MODEL)
        
precache_model(KNIFESURV_P_MODEL)
        
        
/*precache_generic("sprites/zm_knife_strong.txt")
        precache_generic("sprites/zm_knife_hammer.txt")
        precache_generic("sprites/zm_knife_combat.txt")
        precache_generic("sprites/zm_knife_axe.txt")
        
        precache_generic("sprites/zm_cso/640hud7.spr")
        precache_generic("sprites/zm_cso/640hud21.spr")
        precache_generic("sprites/zm_cso/640hud23.spr")
        precache_generic("sprites/zm_cso/640hud38.spr")
        precache_generic("sprites/zm_cso/640hud39.spr")*/
        
        
precache_sound(g_sound_knife)

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

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

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

        for(new 
0sizeof hammer_soundsi++)
                
precache_sound(hammer_sounds[i])
                
        for(new 
0sizeof saxe_soundsi++)
                
precache_sound(saxe_sounds[i])
    for(new 
0sizeof knife6_soundsi++)
                
precache_sound(knife6_sounds[i])
    for(new 
0sizeof knife7_soundsi++)
                
precache_sound(knife7_sounds[i])
                
        
g_flameSpr precache_model"sprites/Vaas/thanatos11_fire.spr" );
        
g_flameSpr1 precache_model"sprites/Vaas/thanatos11_fire.spr" );
        
g_smokeSpr precache_model"sprites/Vaas/thanatos_smoke.spr" );
                
      for(new 
0sizeof surv_soundsi++)
                
precache_sound(surv_sounds[i]) 
}

public 
knifemenu(id)
{
    if(!
zp_get_user_survivor(id)) {
    new 
menu menu_create("\yKnife Menu ","menu_handle")

        
menu_additem(menu"\yAXE Knife \r~|Damage|~""1")
        
menu_additem(menu"\yStrong Knife \r~|knockback|~""2")
      
menu_additem(menu"\yThanatos Knife \r~|Speed|~^n""3")
        
    if(
get_user_flags(id) & VIP)
        
menu_additem(menu"\yHAMMER Knife \r~|VIP|~""4")
    else
        
menu_additem(menu"\dHAMMER Knife° \r~|VIP|~""4")

    if(
get_user_flags(id) & ADMIN)
        
menu_additem(menu"\ySuperAXE Knife° \r~|ADMIN|~""5")
    else
        
menu_additem(menu"\dHAMMER-HEAD Knfie° \r~|Super-ADMIN|~""5")
        
    if(
get_user_flags(id) & BOSS)
        
menu_additem(menu"\yWar-HAMMER Knife \r~|HEAD-ADMIN|~^n""6")
    else
        
menu_additem(menu"\dWar-HAMMER Knife \r~|HEAD-ADMIN|~^n""6")
        
    if(
get_user_flags(id) & GLADMIN)
        
menu_additem(menu"\yDark-HAMMER Knife \r~|OWNER|~""7")
    else
        
menu_additem(menu"\dDark-HAMMER Knife \r~|OWNER|~""7")
        
        
menu_setprop(menuMPROP_PERPAGE0)

    
menu_display(idmenu0)
}
}

public 
menu_handle(idmenuitem)
{
        if(
item 0
                return 
PLUGIN_CONTINUE
        
        
new cmd[2];
        new 
accesscallback;
        
menu_item_getinfo(menuitemaccesscmd,2,_,_callback);
        new 
choice str_to_num(cmd)
        
        switch (
choice)
        {
                case 
1buy_knife1(id)
                case 
2buy_knife2(id)
        case 
3buy_knife6(id)
                case 
4buy_knife3(id)
                case 
5buy_knife4(id)
                case 
6buy_knife5(id)
                case 
7buy_knife7(id)
        }
        return 
PLUGIN_HANDLED;


public 
buy_knife1(id)
{
    
g_has_axe[id] = true     
        g_has_strong
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
        g_has_saxe
[id] = false
        g_has_knife6
[id] = false
        g_has_knife7
[id] = false
       g_has_survivoraxe
[id] = false
        
    
//set_sprite(id)
        
    
message_begin(MSG_ONEget_user_msgid("WeapPickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
        
    
checkWeapon(id)
    
//set_knife(id, 1)

    
client_cmd(id"setinfo Knifes 1")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
}

public 
buy_knife2(id)
{
        
g_has_axe[id] = false
        g_has_strong
[id] = true
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
        g_has_saxe
[id] = false
        g_has_knife6
[id] = false
        g_has_knife7
[id] = false
        g_has_survivoraxe
[id] = false
        
    
//set_sprite(id)
        
    
message_begin(MSG_ONEget_user_msgid("WeapPickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
        
    
checkWeapon(id)
    
//set_knife(id, 2)

    
client_cmd(id"setinfo Knifes 2")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
}

public 
buy_knife3(id)
{
    if (
get_user_flags(id) & VIP)
    {
        
g_has_axe[id] = false
        g_has_strong
[id] = false
        g_has_combat
[id] = true
        g_has_hammer
[id] = false
        g_has_saxe
[id] = false
        g_has_knife6
[id] = false
        g_has_knife7
[id] = false
        g_has_survivoraxe
[id] = false
        
    
//set_sprite(id)
        
    
message_begin(MSG_ONEget_user_msgid("WeapPickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
        
    
checkWeapon(id)
    
//set_knife(id, 3)

    
client_cmd(id"setinfo Knifes 4")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
    }
}

public 
buy_knife4(id)
{
    if (
get_user_flags(id) & ADMIN)
    {
        
g_has_axe[id] = false
        g_has_strong
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = true
        g_has_saxe
[id] = false
        g_has_knife6
[id] = false
        g_has_knife7
[id] = false
        g_has_survivoraxe
[id] = false
                
    
//set_sprite(id)
                
    
message_begin(MSG_ONEget_user_msgid("WeapPickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
                
    
checkWeapon(id)
    
//set_knife(id, 4)

    
client_cmd(id"setinfo Knifes 5")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
        }

}

public 
buy_knife5(id)
{
    if (
get_user_flags(id) & BOSS)
    {
        
g_has_axe[id] = false
        g_has_strong
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
        g_has_saxe
[id] = true
        g_has_knife6
[id] = false
        g_has_knife7
[id] = false
        g_has_survivoraxe
[id] = false
                
    
//set_sprite(id)
                
    
message_begin(MSG_ONEget_user_msgid("WeapPickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
                
    
checkWeapon(id)
    
//set_knife(id, 4)

    
client_cmd(id"setinfo Knifes 6")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
        }

}

public 
buy_knife6(id)
{
        
g_has_axe[id] = false
        g_has_strong
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
        g_has_saxe
[id] = false
        g_has_knife6
[id] = true
        g_has_knife7
[id] = false
        g_has_survivoraxe
[id] = false
                
    
//set_sprite(id)
                
    
message_begin(MSG_ONEget_user_msgid("WeapPickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
                
    
checkWeapon(id)
    
//set_knife(id, 4)

    
client_cmd(id"setinfo Knifes 3")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)

}

public 
buy_knife7(id)
{
    if (
get_user_flags(id) & GLADMIN)
    {
        
g_has_axe[id] = false
        g_has_strong
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
        g_has_saxe
[id] = false
        g_has_knife6
[id] = false
        g_has_knife7
[id] = true
        g_has_survivoraxe
[id] = false
                
    
//set_sprite(id)
                
    
message_begin(MSG_ONEget_user_msgid("WeapPickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
                
    
checkWeapon(id)
    
//set_knife(id, 4)

    
client_cmd(id"setinfo Knifes 7")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
    }

}

public 
buy_knife_surv(id)
{
        
g_has_axe[id] = false
        g_has_strong
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
        g_has_saxe
[id] = false
        g_has_knife6
[id] = false
        g_has_knife7
[id] = false
        g_has_survivoraxe
[id] = true
                
    
//set_sprite(id)
                
    
message_begin(MSG_ONEget_user_msgid("WeapPickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
                
    
checkWeapon(id)
    
//set_knife(id, 4)

    // client_cmd(id, "setinfo Knifes 6")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)

}

public 
fw_UseStationary_Post(entitycalleractivatoruse_type)
{    
    if (
use_type == && is_user_connected(caller))
        
checkWeapon(caller)
}

public 
checkWeapon(id)
{
        if(!
zp_get_user_zombie(id))
        {
            if(
get_user_weapon(id) == CSW_KNIFE)
        {
            if(
g_has_axe[id])
            {
                        
set_pev(idpev_viewmodel2KNIFE1_V_MODEL)
                        
set_pev(idpev_weaponmodel2KNIFE1_P_MODEL)
                
//set_pev(id, pev_gravity, 0.6)
            
}
            else if(
g_has_strong[id] )
            {
                        
set_pev(idpev_viewmodel2KNIFE2_V_MODEL)
                
set_pev(idpev_weaponmodel2KNIFE2_P_MODEL)
                
//set_pev(id, pev_gravity, 0.6)
            
}
            else if(
g_has_combat[id])
            {
                            
set_pev(idpev_viewmodel2KNIFE3_V_MODEL)
                            
set_pev(idpev_weaponmodel2KNIFE3_P_MODEL)
                
//set_pev(id, pev_gravity, 0.6)
            
}
            else if(
g_has_hammer[id])
            {
                        
set_pev(idpev_viewmodel2KNIFE4_V_MODEL)
                        
set_pev(idpev_weaponmodel2KNIFE4_P_MODEL)
                
//set_pev(id, pev_gravity, 0.6)
            
}
            else if(
g_has_saxe[id])
            {
                
set_pev(idpev_viewmodel2KNIFE5_V_MODEL)
                
set_pev(idpev_weaponmodel2KNIFE5_P_MODEL)
            }
            else if(
g_has_knife6[id])
            {
                
set_pev(idpev_viewmodel2KNIFE6_V_MODEL)
                
set_pev(idpev_weaponmodel2KNIFE6_P_MODEL)
            }
            else if(
g_has_knife7[id])
            {
                
set_pev(idpev_viewmodel2KNIFE7_V_MODEL)
                
set_pev(idpev_weaponmodel2KNIFE7_P_MODEL)
            }
            else if(
g_has_survivoraxe[id])
            {
                       
set_pev(idpev_viewmodel2KNIFESURV_V_MODEL)
                        
set_pev(idpev_weaponmodel2KNIFESURV_P_MODEL)
            
//set_pev(id, pev_gravity, 0.4)
            
}
            
//else if(get_balrog9(id) || is_chainsaw(id))
                //set_pev(id, pev_gravity, 0.5)
        
}
    }
}
    
public 
fw_playerspawn_post(id)
{
    if(!
is_user_alive(id))
        return;
        
    
//ChekKnife(id)
    //if(g_has_survivoraxe[id])
    //{
    //        g_has_strong[id] = false
    //        g_has_combat[id] = false
    //        g_has_hammer[id] = false
    //        g_has_saxe[id] = false
    //        g_has_survivoraxe[id] = false
    //    }
    
ChekKnife(id)
       
// set_sprite(id)
    
return;
}

public 
CEntity__EmitSound(idchannel, const sample[], Float:volumeFloat:attnflagspitch)
{
    if (!
is_user_connected(id)) 
        return 
HAM_IGNORED
    
    
if (zp_get_user_zombie(id)) 
        return 
HAM_IGNORED
    
    
if (sample[8] == 'k' && sample[9] == 'n' && sample[10] == 'i')
    {
        if (
sample[14] == 'd'
        {
            if(
g_has_axe[id])
                
emit_sound(idchannelaxe_sounds[0], volumeattnflagspitch)
            if(
g_has_strong[id])
                
emit_sound(idchannelstrong_sounds[0], volumeattnflagspitch)
            if(
g_has_combat[id])
                
emit_sound(idchannelcombat_sounds[0], volumeattnflagspitch)
            if(
g_has_hammer[id])
                
emit_sound(idchannelhammer_sounds[0], volumeattnflagspitch)
            if(
g_has_saxe[id])
                
emit_sound(idchannelsaxe_sounds[0], volumeattnflagspitch)
            if(
g_has_knife6[id])
                
emit_sound(idchannelknife6_sounds[0], volumeattnflagspitch)
            if(
g_has_knife7[id])
                
emit_sound(idchannelknife7_sounds[0], volumeattnflagspitch)
            if(
g_has_survivoraxe[id])
                
emit_sound(idchannelsurv_sounds[0], volumeattnflagspitch)
        }
        else if (
sample[14] == 'h')
        {
            if (
sample[17] == 'w'
            {
                if(
g_has_axe[id])
                    
emit_sound(idchannelaxe_sounds[3], volumeattnflagspitch)
                if(
g_has_strong[id])
                    
emit_sound(idchannelstrong_sounds[3], volumeattnflagspitch)
                if(
g_has_combat[id])
                    
emit_sound(idchannelcombat_sounds[3], volumeattnflagspitch)
                if(
g_has_hammer[id] )
                    
emit_sound(idchannelhammer_sounds[3], volumeattnflagspitch)
                if(
g_has_saxe[id])
                    
emit_sound(idchannelsaxe_sounds[3], volumeattnflagspitch)
                if(
g_has_knife6[id])
                    
emit_sound(idchannelknife6_sounds[3], volumeattnflagspitch)
                if(
g_has_knife7[id])
                    
emit_sound(idchannelknife7_sounds[3], volumeattnflagspitch)
                if(
g_has_survivoraxe[id])
                    
emit_sound(idchannelsurv_sounds[3], volumeattnflagspitch)
            }
            else
            {
                if(
g_has_axe[id])
                    
emit_sound(idchannelaxe_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_has_strong[id])
                    
emit_sound(idchannelstrong_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_has_combat[id])
                    
emit_sound(idchannelcombat_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_has_hammer[id])
                    
emit_sound(idchannelhammer_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_has_saxe[id])
                    
emit_sound(idchannelsaxe_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_has_knife6[id])
                    
emit_sound(idchannelknife6_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_has_knife7[id])
                    
emit_sound(idchannelknife7_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_has_survivoraxe[id])
                    
emit_sound(idchannelsurv_sounds[random_num(1,2)], volumeattnflagspitch)
            }
        }
        else
        {
            if (
sample[15] == 'l'
            {
                if(
g_has_axe[id])
                    
emit_sound(idchannelaxe_sounds[4], volumeattnflagspitch)
                if(
g_has_strong[id])
                    
emit_sound(idchannelstrong_sounds[4], volumeattnflagspitch)
                if(
g_has_combat[id])
                    
emit_sound(idchannelcombat_sounds[4], volumeattnflagspitch)
                if(
g_has_hammer[id])
                    
emit_sound(idchannelhammer_sounds[4], volumeattnflagspitch)
                if(
g_has_saxe[id])
                    
emit_sound(idchannelsaxe_sounds[4], volumeattnflagspitch)
                if(
g_has_knife6[id])
                    
emit_sound(idchannelknife6_sounds[4], volumeattnflagspitch)
                if(
g_has_knife7[id])
                    
emit_sound(idchannelknife7_sounds[4], volumeattnflagspitch)
                if(
g_has_survivoraxe[id])
                    
emit_sound(idchannelsurv_sounds[4], volumeattnflagspitch)
            }
            else 
            {
                if(
g_has_axe[id])
                    
emit_sound(idchannelaxe_sounds[5], volumeattnflagspitch)
                if(
g_has_strong[id] )
                    
emit_sound(idchannelstrong_sounds[5], volumeattnflagspitch)
                if(
g_has_combat[id] )
                    
emit_sound(idchannelcombat_sounds[5], volumeattnflagspitch)
                if(
g_has_hammer[id])
                    
emit_sound(idchannelhammer_sounds[5], volumeattnflagspitch)
                if(
g_has_saxe[id])
                    
emit_sound(idchannelsaxe_sounds[5], volumeattnflagspitch)
                if(
g_has_knife6[id])
                    
emit_sound(idchannelknife6_sounds[5], volumeattnflagspitch)
                if(
g_has_knife7[id])
                    
emit_sound(idchannelknife7_sounds[5], volumeattnflagspitch)
                if(
g_has_survivoraxe[id])
                    
emit_sound(idchannelsurv_sounds[5], volumeattnflagspitch)
            }
        }
        return 
HAM_SUPERCEDE
    
}
    return 
HAM_IGNORED
}

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_has_axe[id])
        {
                
set_user_maxspeed(id,get_pcvar_float(cvar_speed_axe))
                
set_user_gravity(idget_pcvar_float(cvar_grav_axe)/800.0)
                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]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 325

                        set_pev
id pev_velocity fVelocity )

                        
set_pev(idpev_gaitsequence6)
                }
        }
        
        if(
weapon == CSW_KNIFE && g_has_strong[id])
        {
                
set_user_maxspeed(id,get_pcvar_float(cvar_speed_strong)) 
                
set_user_gravity(idget_pcvar_float(cvar_grav_strong)/800.0)
                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]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 320

                        set_pev
id pev_velocity fVelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }       
        }

        if(
weapon == CSW_KNIFE && g_has_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]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 320

                        set_pev
id pev_velocity fVelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
                
set_user_maxspeed(id,get_pcvar_float(cvar_speed_combat))  
                
set_user_gravity(idget_pcvar_float(cvar_grav_combat)/800.0)
        }
        if (
weapon == CSW_KNIFE && g_has_hammer[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]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 345

                        set_pev
id pev_velocity fVelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
                
set_user_maxspeed(idget_pcvar_float(cvar_speed_hammer))
                
set_user_gravity(idget_pcvar_float(cvar_grav_hammer)/800.0)
        }
        if (
weapon == CSW_KNIFE && g_has_saxe[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]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 345

                        set_pev
id pev_velocity fVelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
                
set_user_maxspeed(idget_pcvar_float(cvar_speed_saxe))
                
set_user_gravity(idget_pcvar_float(cvar_grav_saxe)/800.0)
        }
    if (
weapon == CSW_KNIFE && g_has_knife6[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]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 345

                        set_pev
id pev_velocity fVelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
                
set_user_maxspeed(idget_pcvar_float(cvar_speed_knife6))
                
set_user_gravity(idget_pcvar_float(cvar_grav_knife6)/800.0)
        }
    if (
weapon == CSW_KNIFE && g_has_knife7[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]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 345

                        set_pev
id pev_velocity fVelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
                
set_user_maxspeed(idget_pcvar_float(cvar_speed_knife7))
                
set_user_gravity(idget_pcvar_float(cvar_grav_knife7)/800.0)
        }
        if(
weapon == CSW_KNIFE && g_has_survivoraxe[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]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 357

                        set_pev
id pev_velocity fVelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
set_user_maxspeed(idget_pcvar_float(cvar_speed_surv))
                
set_user_gravity(idget_pcvar_float(cvar_grav_surv)/800.0)
        }
        
        return 
FMRES_IGNORED
}  

public 
fw_TakeDamage(victiminflictorattackerFloat:damage_type)
{
        if(!
is_user_connected(attacker))
                return 
HAM_IGNORED
        
        
if(zp_get_user_zombie(attacker))
                return 
HAM_IGNORED
        
        
if(get_user_weapon(attacker) == CSW_KNIFE)
        {
                if (
g_has_axe[attacker])
                {
                        if(
zp_is_nemesis_round())
                            
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_axe_nemesis))
                        else
                            
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_axe)) 
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_axe);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);   
                }
                else if (
g_has_strong[attacker])
                {       
                        
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_strong)) 
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_strong);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);   
                }
                else if (
g_has_combat[attacker])
                {       
                        
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_combat)) 
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_combat);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);   
                }
                else if (
g_has_hammer[attacker])
                {       
                        
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_hammer)) 
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_hammer);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);
                }
                else if (
g_has_saxe[attacker])
                {       
                        
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_saxe)) 
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_saxe);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);
                        
                        if( !
task_existsvictim TASK_FBURN ) )
                        {
                            
g_burning_durationvictim ] += FIRE_DURATION 5
                            set_task
0.2"CTask__BurningFlame"victim TASK_FBURN__"b" )
                        }
                }
        else if (
g_has_knife6[attacker])
                {       
                        
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_knife6)) 
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_knife6);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);   
                }
                else if (
g_has_knife7[attacker])
                {       
                        
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_knife7)) 
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_saxe);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);
                        
                        if( !
task_existsvictim TASK_FBURN1 ) )
                        {
                            
g_burning_duration1victim ] += FIRE_DURATION1 5
                            set_task
0.2"CTask__BurningFlame1"victim TASK_FBURN1__"b" )
                        }
                }
                 else if(
g_has_survivoraxe[attacker])
                {       
                        
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_surv)) 
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_surv);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);
    
                }
                
more_blood(victim)
        }

        return 
HAM_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_has_axe[iattacker])
                                
set_msg_arg_string(4"axe")
                }
        
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_strong[iattacker])
                                
set_msg_arg_string(4"hatchet")
                }
        
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_combat[iattacker])
                                
set_msg_arg_string(4"mastercombat")
                }
        
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_hammer[iattacker])
                                
set_msg_arg_string(4"hammer")
                }
                
                 if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_saxe[iattacker])
                                
set_msg_arg_string(4"skullaxe")
                }
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_knife6[iattacker])
                                
set_msg_arg_string(4"knife6")
                }
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_knife7[iattacker])
                                
set_msg_arg_string(4"knife7")
                }
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_survivoraxe[iattacker])
                               
set_msg_arg_string(4"survivoraxe")
                } 
        
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(!
g_has_axe[iattacker] && !g_has_strong[iattacker] && !g_has_combat[iattacker] && !g_has_hammer[iattacker] && !zp_get_user_zombie(iattacker))
                                
set_msg_arg_string(4"knife")
                }
        }
        if (
zp_get_user_zombie(iattacker))
        {
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_axe[iattacker] || g_has_strong[iattacker] || g_has_combat[iattacker] || g_has_hammer[iattacker])
                                
set_msg_arg_string(4"Claws")
                }
        }
        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];
        
pev(victimpev_origin vicorigin);
        
pev(attackerpev_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_has_axe[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_axe) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_axe) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
        else if (
g_has_strong[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_strong) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_strong) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
        else if (
g_has_combat[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_combat) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_combat) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
        else if (
g_has_hammer[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_hammer) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_hammer) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
        else if (
g_has_saxe[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_saxe) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_saxe) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
    else if (
g_has_knife6[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_knife6) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_knife6) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
    else if (
g_has_knife7[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_knife7) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_knife7) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
       else if(
g_has_survivoraxe[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_surv) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_surv) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        } 
 
        if(
velocity[0] <= 20.0 || velocity[1] <= 20.0)
        
velocity[2] = random_float(200.0 275.0);

        return 
1;
}

stock fm_set_user_maxspeed(indexFloat:speed = -1.0
{
        
engfunc(EngFunc_SetClientMaxspeedindexspeed);
        
set_pev(indexpev_maxspeedspeed);

        return 
1;
}       

more_blood(id)
{
        static 
iOrigin[3]
        
get_user_origin(idiOrigin)
        
        
message_begin(MSG_PVSSVC_TEMPENTITYiOrigin)
        
write_byte(TE_BLOODSTREAM)
        
write_coord(iOrigin[0])
        
write_coord(iOrigin[1])
        
write_coord(iOrigin[2]+10)
        
write_coord(random_num(-360360))
        
write_coord(random_num(-360360))
        
write_coord(-10)
        
write_byte(70)
        
write_byte(random_num(50100))
        
message_end()

        for (new 
04j++) 
        {
                
message_begin(MSG_PVSSVC_TEMPENTITYiOrigin)
                
write_byte(TE_WORLDDECAL)
                
write_coord(iOrigin[0]+random_num(-100100))
                
write_coord(iOrigin[1]+random_num(-100100))
                
write_coord(iOrigin[2]-36)
                
write_byte(random_num(190197))
                
message_end()
        }
}

public 
sprite(const player, const string_msg[], byte_1byte_2byte_3byte_4byte_5byte_6byte_7byte_8)
{
    
message_beginMSG_ONEget_user_msgid("WeaponList"), .player player );
    {
        
write_string(string_msg);
        
write_byte(byte_1);
        
write_byte(byte_2);
        
write_byte(byte_3);
        
write_byte(byte_4);
        
write_byte(byte_5);
        
write_byte(byte_6);
        
write_byte(byte_7);
        
write_byte(byte_8);
    }
    
message_end();
}

/*public set_sprite(id)
{
        if(!is_user_alive(id))
        {
                return;
        }
                
        if(zp_get_user_zombie(id))
        {
                sprite(id, "weapon_knife", -1, -1, -1, -1, 2, 1, 29, 0)
                return;
    }

        if(g_has_axe[id])
        {
                sprite(id, "zm_knife_axe", -1, -1, -1, -1, 2, 1, 29, 0)
                return;
        }
        
        if(g_has_strong[id])
        {
                sprite(id, "zm_knife_strong", -1, -1, -1, -1, 2, 1, 29, 0)
                return;
        }
        
        if(g_has_combat[id])
        {
                sprite(id, "zm_knife_combat", -1, -1, -1, -1, 2, 1, 29, 0)
                return;
        }
         
        if(g_has_hammer[id])
        {
                sprite(id, "zm_knife_hammer", -1, -1, -1, -1, 2, 1, 29, 0)
                return;
        }
        
        if(g_has_survivoraxe[id])
        {
                sprite(id, "zm_knife_axe", -1, -1, -1, -1, 2, 1, 29, 0)
        return;
    }
}*/

stock ChekKnife(id)
{
    new 
str[3]
    
get_user_info(id"Knifes"strcharsmax(str))

    switch(
str[0])
    {
        case 
'1':
        {
                
g_has_axe[id] = true
                g_has_strong
[id] = false
                g_has_combat
[id] = false
                g_has_hammer
[id] = false
                g_has_saxe
[id] = false
                g_has_knife6
[id] = false
                g_has_knife7
[id] = false
        
}
        case 
'2':
        {
                
g_has_axe[id] = false
                g_has_strong
[id] = true
                g_has_combat
[id] = false
                g_has_hammer
[id] = false    
                g_has_saxe
[id] = false
                g_has_knife6
[id] = false
                g_has_knife7
[id] = false
        
}
        case 
'3':
        {
                
g_has_axe[id] = false
                g_has_strong
[id] = false
                g_has_combat
[id] = false
                g_has_hammer
[id] = false    
                g_has_saxe
[id] = false
                g_has_knife6
[id] = true
                g_has_knife7
[id] = false
        
}
        case 
'4':
        {
            if(
get_user_flags(id) & VIP)
            {
                
g_has_axe[id] = false
                g_has_strong
[id] = false
                g_has_combat
[id] = true
                g_has_hammer
[id] = false    
                g_has_saxe
[id] = false
                g_has_knife6
[id] = false
                g_has_knife7
[id] = false
            
}                
            else 
random_num(buy_knife1(id) , buy_knife2(id))
        }
        case 
'5':
        {
            if(
get_user_flags(id) & ADMIN)
            {
                    
g_has_axe[id] = false
                    g_has_strong
[id] = false
                g_has_combat
[id] = false
                    g_has_hammer
[id] = true    
                    g_has_saxe
[id] = false
                    g_has_knife6
[id] = false
                g_has_knife7
[id] = false
            
}
            else 
random_num(buy_knife1(id) , buy_knife2(id))
        }
        case 
'6':
        {
            if(
get_user_flags(id) & BOSS)
            {
                    
g_has_axe[id] = false
                    g_has_strong
[id] = false
                g_has_combat
[id] = false
                    g_has_hammer
[id] = false    
                    g_has_saxe
[id] = true
                    g_has_knife6
[id] = false
                g_has_knife7
[id] = false
            
}
            else 
random_num(buy_knife1(id) , buy_knife2(id))
        }
        case 
'7':
        {
            if(
get_user_flags(id) & GLADMIN)
            {
                    
g_has_axe[id] = false
                    g_has_strong
[id] = false
                g_has_combat
[id] = false
                    g_has_hammer
[id] = false    
                    g_has_saxe
[id] = false
                    g_has_knife6
[id] = false
                g_has_knife7
[id] = true
            
}
            else 
random_num(buy_knife1(id) , buy_knife2(id))
        }
    }
        
g_has_survivoraxe[id] = false
}

public 
CTask__BurningFlametaskid )
{
    
// Get player origin and flags
    
static origin[3], flags
    get_user_origin
(ID_FBURNorigin)
    
flags pev(ID_FBURNpev_flags)
    
    
// Madness mode - in water - burning stopped
    
if ((flags FL_INWATER) || g_burning_duration[ID_FBURN] < || g_fRoundEnd || !is_user_alive(ID_FBURN))
    {
        
// Smoke sprite
        
message_begin(MSG_PVSSVC_TEMPENTITYorigin)
        
write_byte(TE_SMOKE// TE id
        
write_coord(origin[0]) // x
        
write_coord(origin[1]) // y
        
write_coord(origin[2]-50// z
        
write_short(g_smokeSpr// sprite
        
write_byte(random_num(1520)) // scale
        
write_byte(random_num(1020)) // framerate
        
message_end()
        
        
// Task not needed anymore
        
remove_task(taskid)
        return
    }
    
    
// Get player's health
    
static health
    health 
pev(ID_FBURNpev_health)
    
    
// Take damage from the fire
    
if (health FIRE_DAMAGE 0)
        
fm_set_user_health(ID_FBURNhealth FIRE_DAMAGE)
    
    
// Flame sprite
    
message_begin(MSG_PVSSVC_TEMPENTITYorigin)
    
write_byte(TE_SPRITE// TE id
    
write_coord(origin[0]+random_num(-55)) // x
    
write_coord(origin[1]+random_num(-55)) // y
    
write_coord(origin[2]+random_num(-1010)) // z
    
write_short(g_flameSpr// sprite
    
write_byte(random_num(510)) // scale
    
write_byte(200// brightness
    
message_end()

    
g_burning_duration[ID_FBURN]--
}

public 
CTask__BurningFlame1taskid )
{
    
// Get player origin and flags
    
static origin[3], flags
    get_user_origin
(ID_FBURN1origin)
    
flags pev(ID_FBURN1pev_flags)
    
    
// Madness mode - in water - burning stopped
    
if ((flags FL_INWATER) || g_burning_duration1[ID_FBURN1] < || g_fRoundEnd || !is_user_alive(ID_FBURN1))
    {
        
// Smoke sprite
        
message_begin(MSG_PVSSVC_TEMPENTITYorigin)
        
write_byte(TE_SMOKE// TE id
        
write_coord(origin[0]) // x
        
write_coord(origin[1]) // y
        
write_coord(origin[2]-50// z
        
write_short(g_smokeSpr// sprite
        
write_byte(random_num(1520)) // scale
        
write_byte(random_num(1020)) // framerate
        
message_end()
        
        
// Task not needed anymore
        
remove_task(taskid)
        return
    }
    
    
// Get player's health
    
static health
    health 
pev(ID_FBURN1pev_health)
    
    
// Take damage from the fire
    
if (health FIRE_DAMAGE1 0)
        
fm_set_user_health(ID_FBURN1health FIRE_DAMAGE1)
    
    
// Flame sprite
    
message_begin(MSG_PVSSVC_TEMPENTITYorigin)
    
write_byte(TE_SPRITE// TE id
    
write_coord(origin[0]+random_num(-55)) // x
    
write_coord(origin[1]+random_num(-55)) // y
    
write_coord(origin[2]+random_num(-1010)) // z
    
write_short(g_flameSpr1// sprite
    
write_byte(random_num(510)) // scale
    
write_byte(200// brightness
    
message_end()

    
g_burning_duration1[ID_FBURN1]--
}

stock fm_set_user_healthindexhealth 
    
health set_pev(indexpev_healthfloat(health)) : dllfunc(DLLFunc_ClientKillindex)

stock ChatColor(const id, const input[], any:...)
{
    new 
count 1players[32]
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4")
    
replace_all(msg190"!y""^1")
    
replace_all(msg190"!team""^3")
    
    if (
idplayers[0] = id; else get_players(playerscount"ch")
    {
        for (new 
0counti++)
        {
            if (
is_user_connected(players[i]))
            {
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i]);
                
write_byte(players[i]);
                
write_string(msg);
                
message_end();
            }
        }
    }

AmXDusT is offline
bashar_beesho
Junior Member
Join Date: Jan 2015
Old 05-09-2019 , 13:01   Re: Hard Request ! KnifeMenu Again !
Reply With Quote #3

Quote:
Originally Posted by amxdust View Post
added gravity cvars for every knife (should work, hopefully)
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <fakemeta>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>

//native is_chainsaw(id)
//native set_knife(id, num)
//native get_balrog9(id)

#define task_fburn                100
#define id_fburn                ( taskid - task_fburn )

#define task_fburn1                100
#define id_fburn1                ( taskid - task_fburn )

#define max_clients                32

new bool:g_froundend

#define fire_duration            1
#define fire_damage                50

#define fire_duration1            5
#define fire_damage1                150

new g_flamesprg_flamespr1g_smokesprg_burning_durationmax_clients ], g_burning_duration1max_clients ]

#define plugin    "[zp] addon: Knifes"
#define version    "1.0"
#define author    "blackcat"

#define vip        admin_level_a
#define admin    admin_level_b
#define boss    admin_level_h
#define gladmin admin_cfg
#pragma tabsize 0

new knife1_v_model[] = "models/vaas/v_spsword.mdl"
new knife1_p_model[] = "models/vaas/p_spsword.mdl"

new knife2_v_model[] = "models/vaas/v_silver_wolf.mdl"
new knife2_p_model[] = "models/vaas/p_silver_wolf.mdl"

new knife6_v_model[] = "models/vaas/v_thanatos10.mdl"
new knife6_p_model[] = "models/vaas/p_thanatos10.mdl"

new knife3_v_model[] = "models/vaas/v_galaxy_banka.mdl"
new knife3_p_model[] = "models/vaas/p_galaxy_banka.mdl"

new knife4_v_model[] =  "models/vaas/v_war_kosa.mdl"
new knife4_p_model[] =  "models/vaas/p_war_kosa.mdl"

new knife5_v_model[] = "models/vaas/v_ts_war.mdl"
new knife5_p_model[] = "models/vaas/p_ts_war.mdl"

new knife7_v_model[] =  "models/vaas/v_warhammer_dark_knight.mdl"
new knife7_p_model[] =  "models/vaas/p_stormgiant_dk.mdl"

new knifesurv_v_model[] = "models/vaas/v_warhammer_dark_knight.mdl"
new knifesurv_p_model[] = "models/vaas/p_stormgiant_dk.mdl"


new bool:g_has_axe[33]
new 
bool:g_has_strong[33]
new 
bool:g_has_combat[33]
new 
bool:g_has_hammer[33]
new 
bool:g_has_saxe[33]
new 
bool:g_has_knife6[33]
new 
bool:g_has_knife7[33]
new 
bool:g_has_survivoraxe[33]

new 
cvar_knock_axecvar_speed_axecvar_damage_axecvar_damage_axe_nemesiscvar_grav_axe
new cvar_knock_strongcvar_speed_strongcvar_damage_strongcvar_grav_strong
new cvar_knock_combatcvar_speed_combatcvar_damage_combatcvar_grav_combat
new cvar_knock_hammercvar_speed_hammercvar_damage_hammercvar_grav_hammer
new cvar_knock_saxecvar_speed_saxecvar_damage_saxecvar_grav_saxe
new cvar_knock_knife6cvar_speed_knife6cvar_damage_knife6cvar_grav_knife6
new cvar_knock_knife7cvar_speed_knife7cvar_damage_knife7cvar_grav_knife7
new cvar_knock_survcvar_speed_survcvar_damage_survcvar_grav_surv

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

new const 
axe_sounds[][] =
{
        
"vaas/dkatana_titan_draw.wav",
        
"vaas/dkatana_titan_hit1.wav",
        
"vaas/dkatana_titan_hitwall.wav",
        
"vaas/dkatana_titan_hitwall.wav",
        
"vaas/dkatana_titan_slash1.wav",
        
"vaas/dkatana_titan_stab.wav"
}

new const 
strong_sounds[][] =
{
        
"vaas/crow9_draw.wav",
        
"vaas/crow9_hitwall1.wav",
        
"vaas/crow9_hitwall1.wav",
        
"vaas/crow9_hitwall1.wav",
        
"vaas/crow9_slash1.wav",
        
"vaas/crow9_stab.wav"
}

new const 
knife6_sounds[][] =
{
        
"vaas/sgsaw_draw.wav",
        
"vaas/sgsaw_hit1.wav",
        
"vaas/sgsaw_hitwall1.wav",
        
"vaas/sgsaw_hitwall1.wav",
        
"vaas/sgsaw_slash1.wav",
        
"vaas/sgsaw_stab.wav"
}

new const 
combat_sounds[][] =
{
        
"vaas/hammer_blood_hunter_draw.wav",
        
"vaas/hammer_blood_hunter_hit.wav",
        
"vaas/hammer_blood_hunter_miss.wav",
        
"vaas/hammer_blood_hunter_slash1.wav",
        
"vaas/hammer_blood_hunter_slash2.wav",
        
"vaas/hammer_blood_hunter_wall.wav"
}

new const 
hammer_sounds[][] =
{
        
"vaas/hammer_blood_hunter_draw.wav",
        
"vaas/hammer_blood_hunter_hit.wav",
        
"vaas/hammer_blood_hunter_miss.wav",
        
"vaas/hammer_blood_hunter_slash1.wav",
        
"vaas/hammer_blood_hunter_slash2.wav",
        
"vaas/hammer_blood_hunter_wall.wav"
}

new const 
saxe_sounds[][] =
{
        
"vaas/coilhammer_draw.wav",
        
"vaas/coilhammer_hit1.wav",
        
"vaas/coilhammer_hit2.wav",
        
"vaas/coilhammer_hitwall.wav",
        
"vaas/coilhammer_slash2.wav",
        
"vaas/coilhammer_stab.wav"
}

new const 
knife7_sounds[][] =
{
        
"vaas/coilhammer_draw.wav",
        
"vaas/coilhammer_hit1.wav",
        
"vaas/coilhammer_hit2.wav",
        
"vaas/coilhammer_hitwall.wav",
        
"vaas/coilhammer_slash2.wav",
        
"vaas/coilhammer_stab.wav"
}

new const 
surv_sounds[][] =
{
        
"vaas/coilhammer_draw.wav",
        
"vaas/coilhammer_hit1.wav",
        
"vaas/coilhammer_hit2.wav",
        
"vaas/coilhammer_hitwall.wav",
        
"vaas/coilhammer_slash2.wav",
        
"vaas/coilhammer_stab.wav"
}

//new g_result[33]

public plugin_init()
{
        
register_plugin(plugin version author);
        
register_forward(fm_addtofullpack"fw_playeraddtofullpack");
        
register_cvar("zp_addon_knife"versionfcvar_server);
        
        
register_clcmd("say /knife","knifemenu")
     
register_clcmd("knife_zb","knifemenu")
    

    
register_event("curweapon","checkweapon","be","1=1");

    
register_forward(fm_emitsound"centity__emitsound");
    
register_forward(fm_playerprethink"fw_playerprethink");

    
registerham(ham_takedamage"player""fw_takedamage");
    
registerham(ham_spawn"player""fw_playerspawn_post"1)
    
registerham(ham_use"func_tank""fw_usestationary_post"1)
    
registerham(ham_use"func_tankmortar""fw_usestationary_post"1)
    
registerham(ham_use"func_tankrocket""fw_usestationary_post"1)
    
registerham(ham_use"func_tanklaser""fw_usestationary_post"1)
    
    
register_message(get_user_msgid("deathmsg"), "message_deathmsg"); 
    
    
/* register_clcmd("zm_knife_strong", "clcmd_knife")
    register_clcmd("zm_knife_hammer", "clcmd_knife")
    register_clcmd("zm_knife_combat", "clcmd_knife")
    register_clcmd("zm_knife_axe", "clcmd_knife") */

    
cvar_grav_axe register_cvar("zp_axe_gravity""800")
    
cvar_speed_axe register_cvar("zp_axe_speed""250.0")
    
cvar_damage_axe register_cvar("zp_axe_damage""9.5")
    
cvar_damage_axe_nemesis register_cvar("zp_axe_dmg_nemesis""300.9")
    
cvar_knock_axe register_cvar("zp_axe_knockback""2.5")
    
    
cvar_grav_strong register_cvar("zp_strong_gravity""800")
    
cvar_speed_strong register_cvar("zp_strong_speed""235.0")
    
cvar_damage_strong register_cvar("zp_strong_damage""3.5")
    
cvar_knock_strong register_cvar("zp_strong_knockback""7.6")
    
    
cvar_grav_combat register_cvar("zp_combat_gravity""800")
    
cvar_speed_combat register_cvar("zp_combat_speed""600.0")
    
cvar_damage_combat register_cvar("zp_combat_damage""8.3")
    
cvar_knock_combat register_cvar("zp_combat_knockback""2.5")
    
    
cvar_grav_hammer register_cvar("zp_hammer_gravity""800")
    
cvar_speed_hammer register_cvar("zp_hammer_speed""275.0")
    
cvar_damage_hammer register_cvar("zp_hammer_damage""9.2")
    
cvar_knock_hammer register_cvar("zp_hammer_knockback""3.0")
        
    
cvar_grav_saxe register_cvar("zp_saxe_gravity""800")
    
cvar_speed_saxe register_cvar("zp_saxe_speed""300.0")
    
cvar_damage_saxe register_cvar("zp_saxe_damage""10.3")
    
cvar_knock_saxe register_cvar("zp_saxe_knockback""6.0")
    
    
cvar_grav_knife6 register_cvar("zp_knife6_gravity""800")
    
cvar_speed_knife6 register_cvar("zp_knife6_speed""320.0")
    
cvar_damage_knife6 register_cvar("zp_knife6_damage""2.3")
    
cvar_knock_knife6 register_cvar("zp_knife6_knockback""2.0")
    
    
cvar_grav_knife7 register_cvar("zp_knife7_gravity""800")
    
cvar_speed_knife7 register_cvar("zp_knife7_speed""300.0")
    
cvar_damage_knife7 register_cvar("zp_knife7_damage""10.3")
    
cvar_knock_knife7 register_cvar("zp_knife7_knockback""6.0")
    
    
cvar_grav_surv register_cvar("zp_axe_surv_gravity""800")
    
cvar_speed_surv register_cvar("zp_axe_surv_speed""273.0")
    
cvar_damage_surv register_cvar("zp_axe_surv_damage""20.5")
    
cvar_knock_surv register_cvar("zp_axe_surv_knockback""7.0")
}

public 
native_zp_knifes_get(id)
{
    if(
g_has_axe[id])
    {
        return 
1
    
}else
    if(
g_has_strong[id])
    {
        return 
2
    
}else
    if(
g_has_knife6[id])
    {
        return 
3
    
}else
    if(
g_has_combat[id])
    {
        return 
4
    
}else
    if(
g_has_hammer[id])
    {
        return 
5
    
}else
    if(
g_has_saxe[id])
    {
        return 
6
    
}
    if(
g_has_knife7[id])
    {
        return 
7
    
}
    return 
0
}

public 
native_zp_knifes_set(idiknife)
{
        switch( 
iknife )
        {
                case 
1Buy_knife1(id)
                case 
2Buy_knife2(id)
    case 
3Buy_knife6(id)
                case 
4Buy_knife3(id)
                case 
5Buy_knife4(id)
                case 
6Buy_knife5(id)
                case 
7Buy_knife7(id)
        }
}

public 
fw_playeraddtofullpackes_handleepentphostbshostflagspplayerpset )
{       
        if( 
pplayer && get_user_weapon(pent) == csw_knife && g_has_hammer[pent] && !zp_get_user_zombie(pent))
        {
                static 
ianim;

                
ianim get_eses_handlees_sequence );

                switch( 
ianim )
                {
                        case 
73747576:
                        {
                                
set_eses_handlees_sequenceianim += 10 );
                        }
                }
        }
    
                if( 
pplayer && get_user_weapon(pent) == csw_knife && g_has_saxe[pent] && !zp_get_user_zombie(pent))
        {
                static 
ianim;

                
ianim get_eses_handlees_sequence );

                switch( 
ianim )
                {
                        case 
73747576:
                        {
                                
set_eses_handlees_sequenceianim += 20 );
                        }
                }
        }
        return 
fmres_ignored;
}

public 
plugin_natives() 
{
    
register_native"knife_0""knife_0")

    
register_native("zp_get_user_knife""native_zp_knifes_get"1)
    
register_native("zp_set_user_knife""native_zp_knifes_set"1)
}

public 
knife_0(id)
{
    
g_has_axe[id] = false
    g_has_strong
[id] = false
    g_has_combat
[id] = false
    g_has_hammer
[id] = false
    g_has_saxe
[id] = false
    g_has_knife6
[id] = false
    g_has_knife7
[id] = false
    g_has_survivoraxe
[id] = false
}

public 
client_connect(id)
{
    
g_has_axe[id] = true
    g_has_strong
[id] = false
    g_has_combat
[id] = false
    g_has_hammer
[id] = false
    g_has_saxe
[id] = false
    g_has_knife6
[id] = false
    g_has_knife7
[id] = false
    g_has_survivoraxe
[id] = false
}

public 
client_disconnect(id)
{
        
g_has_axe[id] = false
        g_has_strong
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
        g_has_saxe
[id] = false
        g_has_knife6
[id] = false
        g_has_knife7
[id] = false
        g_has_survivoraxe
[id] = false
}

public 
clcmd_knife(id)
{
    if(!
is_user_alive(id))
        return 
plugin_handled

    engclient_cmd
(id"weapon_knife")

    return 
plugin_handled
}

public 
zp_user_humanized_postiplayer 
{
    if( 
zp_get_user_survivoriplayer ) ) 
    {
        
buy_knife_surv(iplayer)
    }
    else 
chekknife(iplayer)
}

public 
plugin_precache()
{    
        
precache_model(knife1_v_model)
        
precache_model(knife1_p_model)
        
precache_model(knife2_v_model)
        
precache_model(knife2_p_model)
        
precache_model(knife3_v_model)
        
precache_model(knife3_p_model)
        
precache_model(knife4_v_model)
        
precache_model(knife4_p_model)
        
precache_model(knife5_v_model)
        
precache_model(knife5_p_model)
        
precache_model(knife6_v_model)
        
precache_model(knife6_p_model)
        
precache_model(knife7_v_model)
        
precache_model(knife7_p_model)
        
precache_model(knifesurv_v_model)
        
precache_model(knifesurv_p_model)
        
        
/*precache_generic("sprites/zm_knife_strong.txt")
        precache_generic("sprites/zm_knife_hammer.txt")
        precache_generic("sprites/zm_knife_combat.txt")
        precache_generic("sprites/zm_knife_axe.txt")
        
        precache_generic("sprites/zm_cso/640hud7.spr")
        precache_generic("sprites/zm_cso/640hud21.spr")
        precache_generic("sprites/zm_cso/640hud23.spr")
        precache_generic("sprites/zm_cso/640hud38.spr")
        precache_generic("sprites/zm_cso/640hud39.spr")*/
        
        
precache_sound(g_sound_knife)

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

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

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

        for(new 
0sizeof hammer_soundsi++)
                
precache_sound(hammer_sounds[i])
                
        for(new 
0sizeof saxe_soundsi++)
                
precache_sound(saxe_sounds[i])
    for(new 
0sizeof knife6_soundsi++)
                
precache_sound(knife6_sounds[i])
    for(new 
0sizeof knife7_soundsi++)
                
precache_sound(knife7_sounds[i])
                
        
g_flamespr precache_model"sprites/vaas/thanatos11_fire.spr" );
        
g_flamespr1 precache_model"sprites/vaas/thanatos11_fire.spr" );
        
g_smokespr precache_model"sprites/vaas/thanatos_smoke.spr" );
                
      for(new 
0sizeof surv_soundsi++)
                
precache_sound(surv_sounds[i]) 
}

public 
knifemenu(id)
{
    if(!
zp_get_user_survivor(id)) {
    new 
menu menu_create("\yknife menu ","menu_handle")

        
menu_additem(menu"\yaxe knife \r~|damage|~""1")
        
menu_additem(menu"\ystrong knife \r~|knockback|~""2")
      
menu_additem(menu"\ythanatos knife \r~|speed|~^n""3")
        
    if(
get_user_flags(id) & vip)
        
menu_additem(menu"\yhammer knife \r~|vip|~""4")
    else
        
menu_additem(menu"\dhammer knife° \r~|vip|~""4")

    if(
get_user_flags(id) & admin)
        
menu_additem(menu"\ysuperaxe knife° \r~|admin|~""5")
    else
        
menu_additem(menu"\dhammer-head knfie° \r~|super-admin|~""5")
        
    if(
get_user_flags(id) & boss)
        
menu_additem(menu"\ywar-hammer knife \r~|head-admin|~^n""6")
    else
        
menu_additem(menu"\dwar-hammer knife \r~|head-admin|~^n""6")
        
    if(
get_user_flags(id) & gladmin)
        
menu_additem(menu"\ydark-hammer knife \r~|owner|~""7")
    else
        
menu_additem(menu"\ddark-hammer knife \r~|owner|~""7")
        
        
menu_setprop(menumprop_perpage0)

    
menu_display(idmenu0)
}
}

public 
menu_handle(idmenuitem)
{
        if(
item 0
                return 
plugin_continue
        
        
new cmd[2];
        new 
accesscallback;
        
menu_item_getinfo(menuitemaccesscmd,2,_,_callback);
        new 
choice str_to_num(cmd)
        
        switch (
choice)
        {
                case 
1Buy_knife1(id)
                case 
2Buy_knife2(id)
        case 
3Buy_knife6(id)
                case 
4Buy_knife3(id)
                case 
5Buy_knife4(id)
                case 
6Buy_knife5(id)
                case 
7Buy_knife7(id)
        }
        return 
plugin_handled;


public 
buy_knife1(id)
{
    
g_has_axe[id] = true     
        g_has_strong
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
        g_has_saxe
[id] = false
        g_has_knife6
[id] = false
        g_has_knife7
[id] = false
       g_has_survivoraxe
[id] = false
        
    
//set_sprite(id)
        
    
message_begin(msg_oneget_user_msgid("weappickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
        
    
checkweapon(id)
    
//set_knife(id, 1)

    
client_cmd(id"setinfo knifes 1")

    
engfunc(engfunc_emitsoundidchan_bodyg_sound_knife1.0attn_norm0pitch_norm)
}

public 
buy_knife2(id)
{
        
g_has_axe[id] = false
        g_has_strong
[id] = true
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
        g_has_saxe
[id] = false
        g_has_knife6
[id] = false
        g_has_knife7
[id] = false
        g_has_survivoraxe
[id] = false
        
    
//set_sprite(id)
        
    
message_begin(msg_oneget_user_msgid("weappickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
        
    
checkweapon(id)
    
//set_knife(id, 2)

    
client_cmd(id"setinfo knifes 2")

    
engfunc(engfunc_emitsoundidchan_bodyg_sound_knife1.0attn_norm0pitch_norm)
}

public 
buy_knife3(id)
{
    if (
get_user_flags(id) & vip)
    {
        
g_has_axe[id] = false
        g_has_strong
[id] = false
        g_has_combat
[id] = true
        g_has_hammer
[id] = false
        g_has_saxe
[id] = false
        g_has_knife6
[id] = false
        g_has_knife7
[id] = false
        g_has_survivoraxe
[id] = false
        
    
//set_sprite(id)
        
    
message_begin(msg_oneget_user_msgid("weappickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
        
    
checkweapon(id)
    
//set_knife(id, 3)

    
client_cmd(id"setinfo knifes 4")

    
engfunc(engfunc_emitsoundidchan_bodyg_sound_knife1.0attn_norm0pitch_norm)
    }
}

public 
buy_knife4(id)
{
    if (
get_user_flags(id) & admin)
    {
        
g_has_axe[id] = false
        g_has_strong
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = true
        g_has_saxe
[id] = false
        g_has_knife6
[id] = false
        g_has_knife7
[id] = false
        g_has_survivoraxe
[id] = false
                
    
//set_sprite(id)
                
    
message_begin(msg_oneget_user_msgid("weappickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
                
    
checkweapon(id)
    
//set_knife(id, 4)

    
client_cmd(id"setinfo knifes 5")

    
engfunc(engfunc_emitsoundidchan_bodyg_sound_knife1.0attn_norm0pitch_norm)
        }

}

public 
buy_knife5(id)
{
    if (
get_user_flags(id) & boss)
    {
        
g_has_axe[id] = false
        g_has_strong
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
        g_has_saxe
[id] = true
        g_has_knife6
[id] = false
        g_has_knife7
[id] = false
        g_has_survivoraxe
[id] = false
                
    
//set_sprite(id)
                
    
message_begin(msg_oneget_user_msgid("weappickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
                
    
checkweapon(id)
    
//set_knife(id, 4)

    
client_cmd(id"setinfo knifes 6")

    
engfunc(engfunc_emitsoundidchan_bodyg_sound_knife1.0attn_norm0pitch_norm)
        }

}

public 
buy_knife6(id)
{
        
g_has_axe[id] = false
        g_has_strong
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
        g_has_saxe
[id] = false
        g_has_knife6
[id] = true
        g_has_knife7
[id] = false
        g_has_survivoraxe
[id] = false
                
    
//set_sprite(id)
                
    
message_begin(msg_oneget_user_msgid("weappickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
                
    
checkweapon(id)
    
//set_knife(id, 4)

    
client_cmd(id"setinfo knifes 3")

    
engfunc(engfunc_emitsoundidchan_bodyg_sound_knife1.0attn_norm0pitch_norm)

}

public 
buy_knife7(id)
{
    if (
get_user_flags(id) & gladmin)
    {
        
g_has_axe[id] = false
        g_has_strong
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
        g_has_saxe
[id] = false
        g_has_knife6
[id] = false
        g_has_knife7
[id] = true
        g_has_survivoraxe
[id] = false
                
    
//set_sprite(id)
                
    
message_begin(msg_oneget_user_msgid("weappickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
                
    
checkweapon(id)
    
//set_knife(id, 4)

    
client_cmd(id"setinfo knifes 7")

    
engfunc(engfunc_emitsoundidchan_bodyg_sound_knife1.0attn_norm0pitch_norm)
    }

}

public 
buy_knife_surv(id)
{
        
g_has_axe[id] = false
        g_has_strong
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
        g_has_saxe
[id] = false
        g_has_knife6
[id] = false
        g_has_knife7
[id] = false
        g_has_survivoraxe
[id] = true
                
    
//set_sprite(id)
                
    
message_begin(msg_oneget_user_msgid("weappickup"), {0,0,0}, id
    
write_byte(29)
    
message_end()
                
    
checkweapon(id)
    
//set_knife(id, 4)

    // client_cmd(id, "setinfo knifes 6")

    
engfunc(engfunc_emitsoundidchan_bodyg_sound_knife1.0attn_norm0pitch_norm)

}

public 
fw_usestationary_post(entitycalleractivatoruse_type)
{    
    if (
use_type == && is_user_connected(caller))
        
checkweapon(caller)
}

public 
checkweapon(id)
{
        if(!
zp_get_user_zombie(id))
        {
            if(
get_user_weapon(id) == csw_knife)
        {
            if(
g_has_axe[id])
            {
                        
set_pev(idpev_viewmodel2knife1_v_model)
                        
set_pev(idpev_weaponmodel2knife1_p_model)
                
//set_pev(id, pev_gravity, 0.6)
            
}
            else if(
g_has_strong[id] )
            {
                        
set_pev(idpev_viewmodel2knife2_v_model)
                
set_pev(idpev_weaponmodel2knife2_p_model)
                
//set_pev(id, pev_gravity, 0.6)
            
}
            else if(
g_has_combat[id])
            {
                            
set_pev(idpev_viewmodel2knife3_v_model)
                            
set_pev(idpev_weaponmodel2knife3_p_model)
                
//set_pev(id, pev_gravity, 0.6)
            
}
            else if(
g_has_hammer[id])
            {
                        
set_pev(idpev_viewmodel2knife4_v_model)
                        
set_pev(idpev_weaponmodel2knife4_p_model)
                
//set_pev(id, pev_gravity, 0.6)
            
}
            else if(
g_has_saxe[id])
            {
                
set_pev(idpev_viewmodel2knife5_v_model)
                
set_pev(idpev_weaponmodel2knife5_p_model)
            }
            else if(
g_has_knife6[id])
            {
                
set_pev(idpev_viewmodel2knife6_v_model)
                
set_pev(idpev_weaponmodel2knife6_p_model)
            }
            else if(
g_has_knife7[id])
            {
                
set_pev(idpev_viewmodel2knife7_v_model)
                
set_pev(idpev_weaponmodel2knife7_p_model)
            }
            else if(
g_has_survivoraxe[id])
            {
                       
set_pev(idpev_viewmodel2knifesurv_v_model)
                        
set_pev(idpev_weaponmodel2knifesurv_p_model)
            
//set_pev(id, pev_gravity, 0.4)
            
}
            
//else if(get_balrog9(id) || is_chainsaw(id))
                //set_pev(id, pev_gravity, 0.5)
        
}
    }
}
    
public 
fw_playerspawn_post(id)
{
    if(!
is_user_alive(id))
        return;
        
    
//chekknife(id)
    //if(g_has_survivoraxe[id])
    //{
    //        g_has_strong[id] = false
    //        g_has_combat[id] = false
    //        g_has_hammer[id] = false
    //        g_has_saxe[id] = false
    //        g_has_survivoraxe[id] = false
    //    }
    
chekknife(id)
       
// set_sprite(id)
    
return;
}

public 
centity__emitsound(idchannel, const sample[], float:volumefloat:attnflagspitch)
{
    if (!
is_user_connected(id)) 
        return 
ham_ignored
    
    
if (zp_get_user_zombie(id)) 
        return 
ham_ignored
    
    
if (sample[8] == 'k' && sample[9] == 'n' && sample[10] == 'i')
    {
        if (
sample[14] == 'd'
        {
            if(
g_has_axe[id])
                
emit_sound(idchannelaxe_sounds[0], volumeattnflagspitch)
            if(
g_has_strong[id])
                
emit_sound(idchannelstrong_sounds[0], volumeattnflagspitch)
            if(
g_has_combat[id])
                
emit_sound(idchannelcombat_sounds[0], volumeattnflagspitch)
            if(
g_has_hammer[id])
                
emit_sound(idchannelhammer_sounds[0], volumeattnflagspitch)
            if(
g_has_saxe[id])
                
emit_sound(idchannelsaxe_sounds[0], volumeattnflagspitch)
            if(
g_has_knife6[id])
                
emit_sound(idchannelknife6_sounds[0], volumeattnflagspitch)
            if(
g_has_knife7[id])
                
emit_sound(idchannelknife7_sounds[0], volumeattnflagspitch)
            if(
g_has_survivoraxe[id])
                
emit_sound(idchannelsurv_sounds[0], volumeattnflagspitch)
        }
        else if (
sample[14] == 'h')
        {
            if (
sample[17] == 'w'
            {
                if(
g_has_axe[id])
                    
emit_sound(idchannelaxe_sounds[3], volumeattnflagspitch)
                if(
g_has_strong[id])
                    
emit_sound(idchannelstrong_sounds[3], volumeattnflagspitch)
                if(
g_has_combat[id])
                    
emit_sound(idchannelcombat_sounds[3], volumeattnflagspitch)
                if(
g_has_hammer[id] )
                    
emit_sound(idchannelhammer_sounds[3], volumeattnflagspitch)
                if(
g_has_saxe[id])
                    
emit_sound(idchannelsaxe_sounds[3], volumeattnflagspitch)
                if(
g_has_knife6[id])
                    
emit_sound(idchannelknife6_sounds[3], volumeattnflagspitch)
                if(
g_has_knife7[id])
                    
emit_sound(idchannelknife7_sounds[3], volumeattnflagspitch)
                if(
g_has_survivoraxe[id])
                    
emit_sound(idchannelsurv_sounds[3], volumeattnflagspitch)
            }
            else
            {
                if(
g_has_axe[id])
                    
emit_sound(idchannelaxe_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_has_strong[id])
                    
emit_sound(idchannelstrong_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_has_combat[id])
                    
emit_sound(idchannelcombat_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_has_hammer[id])
                    
emit_sound(idchannelhammer_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_has_saxe[id])
                    
emit_sound(idchannelsaxe_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_has_knife6[id])
                    
emit_sound(idchannelknife6_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_has_knife7[id])
                    
emit_sound(idchannelknife7_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_has_survivoraxe[id])
                    
emit_sound(idchannelsurv_sounds[random_num(1,2)], volumeattnflagspitch)
            }
        }
        else
        {
            if (
sample[15] == 'l'
            {
                if(
g_has_axe[id])
                    
emit_sound(idchannelaxe_sounds[4], volumeattnflagspitch)
                if(
g_has_strong[id])
                    
emit_sound(idchannelstrong_sounds[4], volumeattnflagspitch)
                if(
g_has_combat[id])
                    
emit_sound(idchannelcombat_sounds[4], volumeattnflagspitch)
                if(
g_has_hammer[id])
                    
emit_sound(idchannelhammer_sounds[4], volumeattnflagspitch)
                if(
g_has_saxe[id])
                    
emit_sound(idchannelsaxe_sounds[4], volumeattnflagspitch)
                if(
g_has_knife6[id])
                    
emit_sound(idchannelknife6_sounds[4], volumeattnflagspitch)
                if(
g_has_knife7[id])
                    
emit_sound(idchannelknife7_sounds[4], volumeattnflagspitch)
                if(
g_has_survivoraxe[id])
                    
emit_sound(idchannelsurv_sounds[4], volumeattnflagspitch)
            }
            else 
            {
                if(
g_has_axe[id])
                    
emit_sound(idchannelaxe_sounds[5], volumeattnflagspitch)
                if(
g_has_strong[id] )
                    
emit_sound(idchannelstrong_sounds[5], volumeattnflagspitch)
                if(
g_has_combat[id] )
                    
emit_sound(idchannelcombat_sounds[5], volumeattnflagspitch)
                if(
g_has_hammer[id])
                    
emit_sound(idchannelhammer_sounds[5], volumeattnflagspitch)
                if(
g_has_saxe[id])
                    
emit_sound(idchannelsaxe_sounds[5], volumeattnflagspitch)
                if(
g_has_knife6[id])
                    
emit_sound(idchannelknife6_sounds[5], volumeattnflagspitch)
                if(
g_has_knife7[id])
                    
emit_sound(idchannelknife7_sounds[5], volumeattnflagspitch)
                if(
g_has_survivoraxe[id])
                    
emit_sound(idchannelsurv_sounds[5], volumeattnflagspitch)
            }
        }
        return 
ham_supercede
    
}
    return 
ham_ignored
}

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_has_axe[id])
        {
                
set_user_maxspeed(id,get_pcvar_float(cvar_speed_axe))
                
set_user_gravity(idget_pcvar_float(cvar_grav_axe)/800.0)
                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]
                        
pevid pev_velocity fvelocity )
        
            
fvelocity] += 325

                        set_pev
id pev_velocity fvelocity )

                        
set_pev(idpev_gaitsequence6)
                }
        }
        
        if(
weapon == csw_knife && g_has_strong[id])
        {
                
set_user_maxspeed(id,get_pcvar_float(cvar_speed_strong)) 
                
set_user_gravity(idget_pcvar_float(cvar_grav_strong)/800.0)
                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]
                        
pevid pev_velocity fvelocity )
        
            
fvelocity] += 320

                        set_pev
id pev_velocity fvelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }       
        }

        if(
weapon == csw_knife && g_has_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]
                        
pevid pev_velocity fvelocity )
        
            
fvelocity] += 320

                        set_pev
id pev_velocity fvelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
                
set_user_maxspeed(id,get_pcvar_float(cvar_speed_combat))  
                
set_user_gravity(idget_pcvar_float(cvar_grav_combat)/800.0)
        }
        if (
weapon == csw_knife && g_has_hammer[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]
                        
pevid pev_velocity fvelocity )
        
            
fvelocity] += 345

                        set_pev
id pev_velocity fvelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
                
set_user_maxspeed(idget_pcvar_float(cvar_speed_hammer))
                
set_user_gravity(idget_pcvar_float(cvar_grav_hammer)/800.0)
        }
        if (
weapon == csw_knife && g_has_saxe[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]
                        
pevid pev_velocity fvelocity )
        
            
fvelocity] += 345

                        set_pev
id pev_velocity fvelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
                
set_user_maxspeed(idget_pcvar_float(cvar_speed_saxe))
                
set_user_gravity(idget_pcvar_float(cvar_grav_saxe)/800.0)
        }
    if (
weapon == csw_knife && g_has_knife6[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]
                        
pevid pev_velocity fvelocity )
        
            
fvelocity] += 345

                        set_pev
id pev_velocity fvelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
                
set_user_maxspeed(idget_pcvar_float(cvar_speed_knife6))
                
set_user_gravity(idget_pcvar_float(cvar_grav_knife6)/800.0)
        }
    if (
weapon == csw_knife && g_has_knife7[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]
                        
pevid pev_velocity fvelocity )
        
            
fvelocity] += 345

                        set_pev
id pev_velocity fvelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
                
set_user_maxspeed(idget_pcvar_float(cvar_speed_knife7))
                
set_user_gravity(idget_pcvar_float(cvar_grav_knife7)/800.0)
        }
        if(
weapon == csw_knife && g_has_survivoraxe[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]
                        
pevid pev_velocity fvelocity )
        
            
fvelocity] += 357

                        set_pev
id pev_velocity fvelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
set_user_maxspeed(idget_pcvar_float(cvar_speed_surv))
                
set_user_gravity(idget_pcvar_float(cvar_grav_surv)/800.0)
        }
        
        return 
fmres_ignored
}  

public 
fw_takedamage(victiminflictorattackerfloat:damage_type)
{
        if(!
is_user_connected(attacker))
                return 
ham_ignored
        
        
if(zp_get_user_zombie(attacker))
                return 
ham_ignored
        
        
if(get_user_weapon(attacker) == csw_knife)
        {
                if (
g_has_axe[attacker])
                {
                        if(
zp_is_nemesis_round())
                            
sethamparamfloat(4damage get_pcvar_float(cvar_damage_axe_nemesis))
                        else
                            
sethamparamfloat(4damage get_pcvar_float(cvar_damage_axe)) 
                        
                        new 
float:vec[3];
                        new 
float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_axe);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);   
                }
                else if (
g_has_strong[attacker])
                {       
                        
sethamparamfloat(4damage get_pcvar_float(cvar_damage_strong)) 
                        
                        new 
float:vec[3];
                        new 
float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_strong);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);   
                }
                else if (
g_has_combat[attacker])
                {       
                        
sethamparamfloat(4damage get_pcvar_float(cvar_damage_combat)) 
                        
                        new 
float:vec[3];
                        new 
float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_combat);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);   
                }
                else if (
g_has_hammer[attacker])
                {       
                        
sethamparamfloat(4damage get_pcvar_float(cvar_damage_hammer)) 
                        
                        new 
float:vec[3];
                        new 
float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_hammer);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);
                }
                else if (
g_has_saxe[attacker])
                {       
                        
sethamparamfloat(4damage get_pcvar_float(cvar_damage_saxe)) 
                        
                        new 
float:vec[3];
                        new 
float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_saxe);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);
                        
                        if( !
task_existsvictim task_fburn ) )
                        {
                            
g_burning_durationvictim ] += fire_duration 5
                            set_task
0.2"ctask__burningflame"victim task_fburn__"b" )
                        }
                }
        else if (
g_has_knife6[attacker])
                {       
                        
sethamparamfloat(4damage get_pcvar_float(cvar_damage_knife6)) 
                        
                        new 
float:vec[3];
                        new 
float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_knife6);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);   
                }
                else if (
g_has_knife7[attacker])
                {       
                        
sethamparamfloat(4damage get_pcvar_float(cvar_damage_knife7)) 
                        
                        new 
float:vec[3];
                        new 
float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_saxe);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);
                        
                        if( !
task_existsvictim task_fburn1 ) )
                        {
                            
g_burning_duration1victim ] += fire_duration1 5
                            set_task
0.2"ctask__burningflame1"victim task_fburn1__"b" )
                        }
                }
                 else if(
g_has_survivoraxe[attacker])
                {       
                        
sethamparamfloat(4damage get_pcvar_float(cvar_damage_surv)) 
                        
                        new 
float:vec[3];
                        new 
float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_surv);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);
    
                }
                
more_blood(victim)
        }

        return 
ham_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_has_axe[iattacker])
                                
set_msg_arg_string(4"axe")
                }
        
                if(
equal(sztruncatedweapon"knife") && get_user_weapon(iattacker) == csw_knife)
                {
                        if(
g_has_strong[iattacker])
                                
set_msg_arg_string(4"hatchet")
                }
        
                if(
equal(sztruncatedweapon"knife") && get_user_weapon(iattacker) == csw_knife)
                {
                        if(
g_has_combat[iattacker])
                                
set_msg_arg_string(4"mastercombat")
                }
        
                if(
equal(sztruncatedweapon"knife") && get_user_weapon(iattacker) == csw_knife)
                {
                        if(
g_has_hammer[iattacker])
                                
set_msg_arg_string(4"hammer")
                }
                
                 if(
equal(sztruncatedweapon"knife") && get_user_weapon(iattacker) == csw_knife)
                {
                        if(
g_has_saxe[iattacker])
                                
set_msg_arg_string(4"skullaxe")
                }
                if(
equal(sztruncatedweapon"knife") && get_user_weapon(iattacker) == csw_knife)
                {
                        if(
g_has_knife6[iattacker])
                                
set_msg_arg_string(4"knife6")
                }
                if(
equal(sztruncatedweapon"knife") && get_user_weapon(iattacker) == csw_knife)
                {
                        if(
g_has_knife7[iattacker])
                                
set_msg_arg_string(4"knife7")
                }
                if(
equal(sztruncatedweapon"knife") && get_user_weapon(iattacker) == csw_knife)
                {
                        if(
g_has_survivoraxe[iattacker])
                               
set_msg_arg_string(4"survivoraxe")
                } 
        
                if(
equal(sztruncatedweapon"knife") && get_user_weapon(iattacker) == csw_knife)
                {
                        if(!
g_has_axe[iattacker] && !g_has_strong[iattacker] && !g_has_combat[iattacker] && !g_has_hammer[iattacker] && !zp_get_user_zombie(iattacker))
                                
set_msg_arg_string(4"knife")
                }
        }
        if (
zp_get_user_zombie(iattacker))
        {
                if(
equal(sztruncatedweapon"knife") && get_user_weapon(iattacker) == csw_knife)
                {
                        if(
g_has_axe[iattacker] || g_has_strong[iattacker] || g_has_combat[iattacker] || g_has_hammer[iattacker])
                                
set_msg_arg_string(4"claws")
                }
        }
        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];
        
pev(victimpev_origin vicorigin);
        
pev(attackerpev_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_has_axe[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_axe) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_axe) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
        else if (
g_has_strong[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_strong) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_strong) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
        else if (
g_has_combat[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_combat) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_combat) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
        else if (
g_has_hammer[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_hammer) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_hammer) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
        else if (
g_has_saxe[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_saxe) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_saxe) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
    else if (
g_has_knife6[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_knife6) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_knife6) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
    else if (
g_has_knife7[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_knife7) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_knife7) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
       else if(
g_has_survivoraxe[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_surv) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_surv) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        } 
 
        if(
velocity[0] <= 20.0 || velocity[1] <= 20.0)
        
velocity[2] = random_float(200.0 275.0);

        return 
1;
}

stock fm_set_user_maxspeed(indexfloat:speed = -1.0
{
        
engfunc(engfunc_setclientmaxspeedindexspeed);
        
set_pev(indexpev_maxspeedspeed);

        return 
1;
}       

more_blood(id)
{
        static 
iorigin[3]
        
get_user_origin(idiorigin)
        
        
message_begin(msg_pvssvc_tempentityiorigin)
        
write_byte(te_bloodstream)
        
write_coord(iorigin[0])
        
write_coord(iorigin[1])
        
write_coord(iorigin[2]+10)
        
write_coord(random_num(-360360))
        
write_coord(random_num(-360360))
        
write_coord(-10)
        
write_byte(70)
        
write_byte(random_num(50100))
        
message_end()

        for (new 
04j++) 
        {
                
message_begin(msg_pvssvc_tempentityiorigin)
                
write_byte(te_worlddecal)
                
write_coord(iorigin[0]+random_num(-100100))
                
write_coord(iorigin[1]+random_num(-100100))
                
write_coord(iorigin[2]-36)
                
write_byte(random_num(190197))
                
message_end()
        }
}

public 
sprite(const player, const string_msg[], byte_1byte_2byte_3byte_4byte_5byte_6byte_7byte_8)
{
    
message_beginmsg_oneget_user_msgid("weaponlist"), .player player );
    {
        
write_string(string_msg);
        
write_byte(byte_1);
        
write_byte(byte_2);
        
write_byte(byte_3);
        
write_byte(byte_4);
        
write_byte(byte_5);
        
write_byte(byte_6);
        
write_byte(byte_7);
        
write_byte(byte_8);
    }
    
message_end();
}

/*public set_sprite(id)
{
        if(!is_user_alive(id))
        {
                return;
        }
                
        if(zp_get_user_zombie(id))
        {
                sprite(id, "weapon_knife", -1, -1, -1, -1, 2, 1, 29, 0)
                return;
    }

        if(g_has_axe[id])
        {
                sprite(id, "zm_knife_axe", -1, -1, -1, -1, 2, 1, 29, 0)
                return;
        }
        
        if(g_has_strong[id])
        {
                sprite(id, "zm_knife_strong", -1, -1, -1, -1, 2, 1, 29, 0)
                return;
        }
        
        if(g_has_combat[id])
        {
                sprite(id, "zm_knife_combat", -1, -1, -1, -1, 2, 1, 29, 0)
                return;
        }
         
        if(g_has_hammer[id])
        {
                sprite(id, "zm_knife_hammer", -1, -1, -1, -1, 2, 1, 29, 0)
                return;
        }
        
        if(g_has_survivoraxe[id])
        {
                sprite(id, "zm_knife_axe", -1, -1, -1, -1, 2, 1, 29, 0)
        return;
    }
}*/

stock chekknife(id)
{
    new 
str[3]
    
get_user_info(id"knifes"strcharsmax(str))

    switch(
str[0])
    {
        case 
'1':
        {
                
g_has_axe[id] = true
                g_has_strong
[id] = false
                g_has_combat
[id] = false
                g_has_hammer
[id] = false
                g_has_saxe
[id] = false
                g_has_knife6
[id] = false
                g_has_knife7
[id] = false
        
}
        case 
'2':
        {
                
g_has_axe[id] = false
                g_has_strong
[id] = true
                g_has_combat
[id] = false
                g_has_hammer
[id] = false    
                g_has_saxe
[id] = false
                g_has_knife6
[id] = false
                g_has_knife7
[id] = false
        
}
        case 
'3':
        {
                
g_has_axe[id] = false
                g_has_strong
[id] = false
                g_has_combat
[id] = false
                g_has_hammer
[id] = false    
                g_has_saxe
[id] = false
                g_has_knife6
[id] = true
                g_has_knife7
[id] = false
        
}
        case 
'4':
        {
            if(
get_user_flags(id) & vip)
            {
                
g_has_axe[id] = false
                g_has_strong
[id] = false
                g_has_combat
[id] = true
                g_has_hammer
[id] = false    
                g_has_saxe
[id] = false
                g_has_knife6
[id] = false
                g_has_knife7
[id] = false
            
}                
            else 
random_num(buy_knife1(id) , buy_knife2(id))
        }
        case 
'5':
        {
            if(
get_user_flags(id) & admin)
            {
                    
g_has_axe[id] = false
                    g_has_strong
[id] = false
                g_has_combat
[id] = false
                    g_has_hammer
[id] = true    
                    g_has_saxe
[id] = false
                    g_has_knife6
[id] = false
                g_has_knife7
[id] = false
            
}
            else 
random_num(buy_knife1(id) , buy_knife2(id))
        }
        case 
'6':
        {
            if(
get_user_flags(id) & boss)
            {
                    
g_has_axe[id] = false
                    g_has_strong
[id] = false
                g_has_combat
[id] = false
                    g_has_hammer
[id] = false    
                    g_has_saxe
[id] = true
                    g_has_knife6
[id] = false
                g_has_knife7
[id] = false
            
}
            else 
random_num(buy_knife1(id) , buy_knife2(id))
        }
        case 
'7':
        {
            if(
get_user_flags(id) & gladmin)
            {
                    
g_has_axe[id] = false
                    g_has_strong
[id] = false
                g_has_combat
[id] = false
                    g_has_hammer
[id] = false    
                    g_has_saxe
[id] = false
                    g_has_knife6
[id] = false
                g_has_knife7
[id] = true
            
}
            else 
random_num(buy_knife1(id) , buy_knife2(id))
        }
    }
        
g_has_survivoraxe[id] = false
}

public 
ctask__burningflametaskid )
{
    
// get player origin and flags
    
static origin[3], flags
    get_user_origin
(id_fburnorigin)
    
flags pev(id_fburnpev_flags)
    
    
// madness mode - in water - burning stopped
    
if ((flags fl_inwater) || g_burning_duration[id_fburn] < || g_froundend || !is_user_alive(id_fburn))
    {
        
// smoke sprite
        
message_begin(msg_pvssvc_tempentityorigin)
        
write_byte(te_smoke// te id
        
write_coord(origin[0]) // x
        
write_coord(origin[1]) // y
        
write_coord(origin[2]-50// z
        
write_short(g_smokespr// sprite
        
write_byte(random_num(1520)) // scale
        
write_byte(random_num(1020)) // framerate
        
message_end()
        
        
// task not needed anymore
        
remove_task(taskid)
        return
    }
    
    
// get player's health
    
static health
    health 
pev(id_fburnpev_health)
    
    
// take damage from the fire
    
if (health fire_damage 0)
        
fm_set_user_health(id_fburnhealth fire_damage)
    
    
// flame sprite
    
message_begin(msg_pvssvc_tempentityorigin)
    
write_byte(te_sprite// te id
    
write_coord(origin[0]+random_num(-55)) // x
    
write_coord(origin[1]+random_num(-55)) // y
    
write_coord(origin[2]+random_num(-1010)) // z
    
write_short(g_flamespr// sprite
    
write_byte(random_num(510)) // scale
    
write_byte(200// brightness
    
message_end()

    
g_burning_duration[id_fburn]--
}

public 
ctask__burningflame1taskid )
{
    
// get player origin and flags
    
static origin[3], flags
    get_user_origin
(id_fburn1origin)
    
flags pev(id_fburn1pev_flags)
    
    
// madness mode - in water - burning stopped
    
if ((flags fl_inwater) || g_burning_duration1[id_fburn1] < || g_froundend || !is_user_alive(id_fburn1))
    {
        
// smoke sprite
        
message_begin(msg_pvssvc_tempentityorigin)
        
write_byte(te_smoke// te id
        
write_coord(origin[0]) // x
        
write_coord(origin[1]) // y
        
write_coord(origin[2]-50// z
        
write_short(g_smokespr// sprite
        
write_byte(random_num(1520)) // scale
        
write_byte(random_num(1020)) // framerate
        
message_end()
        
        
// task not needed anymore
        
remove_task(taskid)
        return
    }
    
    
// get player's health
    
static health
    health 
pev(id_fburn1pev_health)
    
    
// take damage from the fire
    
if (health fire_damage1 0)
        
fm_set_user_health(id_fburn1health fire_damage1)
    
    
// flame sprite
    
message_begin(msg_pvssvc_tempentityorigin)
    
write_byte(te_sprite// te id
    
write_coord(origin[0]+random_num(-55)) // x
    
write_coord(origin[1]+random_num(-55)) // y
    
write_coord(origin[2]+random_num(-1010)) // z
    
write_short(g_flamespr1// sprite
    
write_byte(random_num(510)) // scale
    
write_byte(200// brightness
    
message_end()

    
g_burning_duration1[id_fburn1]--
}

stock fm_set_user_healthindexhealth 
    
health Set_pev(indexpev_healthfloat(health)) : Dllfunc(dllfunc_clientkillindex)

stock chatcolor(const id, const input[], any:...)
{
    new 
count 1players[32]
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4")
    
replace_all(msg190"!y""^1")
    
replace_all(msg190"!team""^3")
    
    if (
idplayers[0] = id; else get_players(playerscount"ch")
    {
        for (new 
0counti++)
        {
            if (
is_user_connected(players[i]))
            {
                
message_begin(msg_one_unreliableget_user_msgid("saytext"), _players[i]);
                
write_byte(players[i]);
                
write_string(msg);
                
message_end();
            }
        }
    }

totally worked <3 , thank you ;)
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 09:43.


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