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

Zp knife menu


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
GaBy96
Member
Join Date: Oct 2012
Location: Spain
Old 01-07-2019 , 13:03   Zp knife menu
Reply With Quote #1

Hello guys. I also need a knife menu for the zombie plague to appear in the traditional menu "m".
GaBy96 is offline
Send a message via Skype™ to GaBy96
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 01-07-2019 , 14:38   Re: Zp knife menu
Reply With Quote #2

https://forums.alliedmods.net/showthread.php?t=293632
__________________
OciXCrom is offline
Send a message via Skype™ to OciXCrom
Nutu_
AlliedModders Donor
Join Date: Mar 2016
Location: Germany
Old 01-07-2019 , 15:09   Re: Zp knife menu
Reply With Quote #3

he asked for knife menu, not knife models, so i guess with powers
there is one in kgb forum, search for 'knife menu kgb forum'
__________________
a simple act of caring creates an endless ripple.
Nutu_ is offline
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 01-07-2019 , 16:00   Re: Zp knife menu
Reply With Quote #4

Quote:
Originally Posted by Nutu_ View Post
he asked for knife menu, not knife models, so i guess with powers
there is one in kgb forum, search for 'knife menu kgb forum'
I don't see a difference between "knife menu" and "knife models" that would represent "powers".
__________________
OciXCrom is offline
Send a message via Skype™ to OciXCrom
Nutu_
AlliedModders Donor
Join Date: Mar 2016
Location: Germany
Old 01-07-2019 , 17:02   Re: Zp knife menu
Reply With Quote #5

i mean, one knife has speed, one knife has gravity, and more, you get it? your plugin changes only models
__________________
a simple act of caring creates an endless ripple.
Nutu_ is offline
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 01-07-2019 , 18:07   Re: Zp knife menu
Reply With Quote #6

I get it, don't worry. My point is that such thing isn't requested in the first post.
__________________
OciXCrom is offline
Send a message via Skype™ to OciXCrom
Nutu_
AlliedModders Donor
Join Date: Mar 2016
Location: Germany
Old 01-07-2019 , 19:32   Re: Zp knife menu
Reply With Quote #7

why would he use knife skins on ZP? really bro..
__________________
a simple act of caring creates an endless ripple.
Nutu_ is offline
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 01-08-2019 , 08:39   Re: Zp knife menu
Reply With Quote #8

Quote:
Originally Posted by Nutu_ View Post
why would he use knife skins on ZP? really bro..
Dude, what's the point in arguing? He didn't explain what we wants, so I gave him what he described. In fact, what's the point of using special powers and how exaclty are they suppoed to even work when zombie plague has full control over the player's speed, gravity and most of the common "special powers" and I doubt it can be accomplished without editing the main mod itself.
__________________

Last edited by OciXCrom; 01-08-2019 at 08:40.
OciXCrom is offline
Send a message via Skype™ to OciXCrom
GaBy96
Member
Join Date: Oct 2012
Location: Spain
Old 01-08-2019 , 10:39   Re: Zp knife menu
Reply With Quote #9

Sorry I really did not explain exactly, but I want the knife menu with powers for the zombie plague to appear in the classic menu "m".
GaBy96 is offline
Send a message via Skype™ to GaBy96
Nutu_
AlliedModders Donor
Join Date: Mar 2016
Location: Germany
Old 01-08-2019 , 10:46   Re: Zp knife menu
Reply With Quote #10

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

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

#define VIP ADMIN_LEVEL_H
#define MAXPLAYERS 32

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
precache_sound(g_sound_knife)

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

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

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

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

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

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

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

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

    return 
PLUGIN_HANDLED
}

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


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

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

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
}

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

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
}

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

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
}

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

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
}


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

            
if (flags FL_WATERJUMP)
                return 
FMRES_IGNORED

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

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

            
if (flags FL_WATERJUMP)
                return 
FMRES_IGNORED

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

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

            
if (flags FL_WATERJUMP)
                return 
FMRES_IGNORED

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

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

            
if (flags FL_WATERJUMP)
                return 
FMRES_IGNORED

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

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

            
if (flags FL_WATERJUMP)
                return 
FMRES_IGNORED

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

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

    
new weapon get_user_weapon(attacker)

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

    return 
HAM_IGNORED
}

public 
fw_Knife_SecondaryAttack_Post(knife
{     
        static 
id 
        id 
get_pdata_cbase(knifem_pPlayer4

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

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

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

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


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

    if(!
is_user_alive(attacker))
        return 
PLUGIN_CONTINUE;

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

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

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

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

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

    return 
PLUGIN_CONTINUE;
}

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

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

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

    new 
Float:largestnum 0.0;

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

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

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

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

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

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

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

    if(
velocity[0] <= 20.0 || velocity[1] <= 20.0)
        
velocity[2] = random_float(200.0 275.0);

    return 
1;
}

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

    }

you have models and sounds on kgb forum, just search
__________________
a simple act of caring creates an endless ripple.
Nutu_ is offline
Reply



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

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

Forum Jump


All times are GMT -4. The time now is 13:31.


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