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

Zp knife menu


Post New Thread Reply   
 
Thread Tools Display Modes
GaBy96
Member
Join Date: Oct 2012
Location: Spain
Old 01-08-2019 , 11:28   Re: Zp knife menu
Reply With Quote #11

Thanks a lot. But I have a question, this menu appears only on the "/ knife" command or appears in the menu at zp?
GaBy96 is offline
Send a message via Skype™ to GaBy96
Nutu_
AlliedModders Donor
Join Date: Mar 2016
Location: Germany
Old 01-08-2019 , 11:33   Re: Zp knife menu
Reply With Quote #12

you can edit your zp menu, by adding it, like
1 - xx
2 - xx
3 - xx
4 - Knife Menu

case 4: say /knife
__________________
a simple act of caring creates an endless ripple.
Nutu_ is offline
GaBy96
Member
Join Date: Oct 2012
Location: Spain
Old 01-08-2019 , 13:17   Re: Zp knife menu
Reply With Quote #13

Excuse me, you can help me and I'm not good at this thing.
Attached Files
File Type: sma Get Plugin or Get Source (zombie_plague40.sma - 193 views - 344.0 KB)
GaBy96 is offline
Send a message via Skype™ to GaBy96
Nutu_
AlliedModders Donor
Join Date: Mar 2016
Location: Germany
Old 01-08-2019 , 14:05   Re: Zp knife menu
Reply With Quote #14

PHP Code:
show_menu_game(id)
{
    
// Player disconnected?
    
if (!g_isconnected[id])
        return;
    
    static 
menu[250], lenuserflags
    len 
0
    userflags 
get_user_flags(id)
    
    
// Title
    
len += formatex(menu[len], charsmax(menu) - len"\y%s^n^n"g_modname)
    
    
// 1. Buy weapons
    
if (get_pcvar_num(cvar_buycustom))
        
len += formatex(menu[len], charsmax(menu) - len"\r1.\w %L^n"id"MENU_BUY")
    else
        
len += formatex(menu[len], charsmax(menu) - len"\d1. %L^n"id"MENU_BUY")
    
    
// 2. Extra items
    
if (get_pcvar_num(cvar_extraitems) && g_isalive[id])
        
len += formatex(menu[len], charsmax(menu) - len"\r2.\w %L^n"id"MENU_EXTRABUY")
    else
        
len += formatex(menu[len], charsmax(menu) - len"\d2. %L^n"id"MENU_EXTRABUY")
    
    
// 3. Zombie class
    
if (get_pcvar_num(cvar_zclasses))
        
len += formatex(menu[len], charsmax(menu) - len"\r3.\w %L^n"id,"MENU_ZCLASS")
    else
        
len += formatex(menu[len], charsmax(menu) - len"\d3. %L^n"id,"MENU_ZCLASS")
    
    
// 4. Unstuck
    
if (g_isalive[id])
        
len += formatex(menu[len], charsmax(menu) - len"\r4.\w %L^n"id"MENU_UNSTUCK")
    else
        
len += formatex(menu[len], charsmax(menu) - len"\d4. %L^n"id"MENU_UNSTUCK")
    
    
// 5. Help
    
len += formatex(menu[len], charsmax(menu) - len"\r5.\w %L^n^n"id"MENU_INFO")
    
    
// 6. Join spec
    
if (!g_isalive[id] || !get_pcvar_num(cvar_blocksuicide) || (userflags g_access_flag[ACCESS_ADMIN_MENU]))
        
len += formatex(menu[len], charsmax(menu) - len"\r6.\w %L^n^n"id"MENU_SPECTATOR")
    else
        
len += formatex(menu[len], charsmax(menu) - len"\d6. %L^n^n"id"MENU_SPECTATOR")
    
    
// 9. Admin menu
    
if (userflags g_access_flag[ACCESS_ADMIN_MENU])
        
len += formatex(menu[len], charsmax(menu) - len"\r9.\w %L"id"MENU_ADMIN")
    else
        
len += formatex(menu[len], charsmax(menu) - len"\d9. %L"id"MENU_ADMIN")
    
    
// 0. Exit
    
len += formatex(menu[len], charsmax(menu) - len"^n^n\r0.\w %L"id"MENU_EXIT")
    
    
// Fix for AMXX custom menus
    
if (pev_valid(id) == PDATA_SAFE)
        
set_pdata_int(idOFFSET_CSMENUCODE0OFFSET_LINUX)
    
    
show_menu(idKEYSMENUmenu, -1"Game Menu")

exactly here, add what i told you above, i wont edit that for you yet because i want you to learn for next time
__________________
a simple act of caring creates an endless ripple.
Nutu_ is offline
GaBy96
Member
Join Date: Oct 2012
Location: Spain
Old 01-08-2019 , 14:30   Re: Zp knife menu
Reply With Quote #15

Thank you very much!
GaBy96 is offline
Send a message via Skype™ to GaBy96
bashar_beesho
Junior Member
Join Date: Jan 2015
Old 04-29-2019 , 20:06   Re: Zp knife menu
Reply With Quote #16

Quote:
Originally Posted by Nutu_ View Post
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

Hey Sorry for borthering but can you edit the open per round thing ? and let it open couple times in the round ? " remove the open one time only thing "
bashar_beesho is offline
ZaX
Senior Member
Join Date: Jan 2015
Old 04-29-2019 , 23:23   Re: Zp knife menu
Reply With Quote #17

@bashar_beesho

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

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

#define VIP ADMIN_LEVEL_H 
#define MAXPLAYERS 32 

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

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

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

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

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

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

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

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

new const 
combat_sounds[][] = 

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


new const 
strong_sounds[][] = 

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


new const 
axe_sounds[][] = 

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


new const 
katana_sounds[][] = 

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


new const 
hammer_sounds[][] = 

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


new const 
oldknife_sounds[][] = 

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


public 
plugin_init() 

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

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

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

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

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

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

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

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

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

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

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

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


public 
client_connect(id

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


public 
client_disconnect(id

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


public 
plugin_precache() 

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

    
precache_sound(g_sound_knife

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

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

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

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

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


public 
event_round_start(id

        for (new 
iMAXPLAYERS 1i++) 


public 
knife_menu(id


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

    return 
PLUGIN_HANDLED 


public 
my_menu(id

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

public 
menu_handler(idmenuitem

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

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

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

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

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

    } 
    
menu_destroy(menu); 
    return 
PLUGIN_HANDLED 


public 
give_combat(id

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

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM


public 
give_strong(id

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

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM


public 
give_axe(id

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

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM


public 
give_katana(id

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

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM



public 
give_hammer(id

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

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


public 
checkWeapon(id

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


public 
checkModel(id

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

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

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

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

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


public 
fw_EmitSound(idchannel, const sound[]) 

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

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

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

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

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

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

        } 
    } 
    return 
FMRES_IGNORED 


public 
message_DeathMsg(msg_idmsg_destid

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

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

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

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

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


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

public 
fw_PlayerPreThink(id

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

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

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

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

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

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

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

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

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

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

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

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

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

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

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

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

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

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

public 
fw_TakeDamage(victiminflictorattackerFloat:damagedamage_type

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

    
new weapon get_user_weapon(attacker

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

    return 
HAM_IGNORED 


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

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

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

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

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

public 
event_Damage(id

    new 
weapon attacker get_user_attacker(id weapon); 

    if(!
is_user_alive(attacker)) 
        return 
PLUGIN_CONTINUE

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

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

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

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

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

    return 
PLUGIN_CONTINUE


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

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

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

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

    new 
Float:largestnum 0.0

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

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

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

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

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

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

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

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

    return 
1


public 
client_putinserver(id

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


    } 

ZaX is offline
bashar_beesho
Junior Member
Join Date: Jan 2015
Old 04-30-2019 , 01:17   Re: Zp knife menu
Reply With Quote #18

Quote:
Originally Posted by ZaX View Post
@bashar_beesho

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

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

#define VIP ADMIN_LEVEL_H 
#define MAXPLAYERS 32 

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

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

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

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

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

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

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

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

new const 
combat_sounds[][] = 

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


new const 
strong_sounds[][] = 

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


new const 
axe_sounds[][] = 

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


new const 
katana_sounds[][] = 

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


new const 
hammer_sounds[][] = 

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


new const 
oldknife_sounds[][] = 

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


public 
plugin_init() 

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

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

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

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

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

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

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

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

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

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

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

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


public 
client_connect(id

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


public 
client_disconnect(id

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


public 
plugin_precache() 

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

    
precache_sound(g_sound_knife

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

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

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

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

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


public 
event_round_start(id

        for (new 
iMAXPLAYERS 1i++) 


public 
knife_menu(id


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

    return 
PLUGIN_HANDLED 


public 
my_menu(id

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

public 
menu_handler(idmenuitem

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

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

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

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

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

    } 
    
menu_destroy(menu); 
    return 
PLUGIN_HANDLED 


public 
give_combat(id

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

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM


public 
give_strong(id

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

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM


public 
give_axe(id

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

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM


public 
give_katana(id

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

    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM



public 
give_hammer(id

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

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


public 
checkWeapon(id

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


public 
checkModel(id

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

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

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

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

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


public 
fw_EmitSound(idchannel, const sound[]) 

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

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

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

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

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

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

        } 
    } 
    return 
FMRES_IGNORED 


public 
message_DeathMsg(msg_idmsg_destid

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

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

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

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

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


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

public 
fw_PlayerPreThink(id

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

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

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

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

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

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

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

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

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

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

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

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

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

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

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

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

            
if (flags FL_WATERJUMP
                return 
FMRES_IGNORED 

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

public 
fw_TakeDamage(victiminflictorattackerFloat:damagedamage_type

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

    
new weapon get_user_weapon(attacker

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

    return 
HAM_IGNORED 


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

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

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

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

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

public 
event_Damage(id

    new 
weapon attacker get_user_attacker(id weapon); 

    if(!
is_user_alive(attacker)) 
        return 
PLUGIN_CONTINUE

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

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

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

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

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

    return 
PLUGIN_CONTINUE


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

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

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

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

    new 
Float:largestnum 0.0

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

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

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

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

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

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

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

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

    return 
1


public 
client_putinserver(id

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


    } 

im getting this errors when i try to compile

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

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

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

Compilation aborted
.
4 Errors.
(
compile failed). 
Note* i have tried to compline in 2 amx mode versions * 2 game modes

Last edited by bashar_beesho; 04-30-2019 at 01:18.
bashar_beesho is offline
DON KHAN 1
Senior Member
Join Date: Mar 2019
Location: Pakistan
Old 04-30-2019 , 05:04   Re: Zp knife menu
Reply With Quote #19

Quote:
Originally Posted by Nutu_ View Post
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


You Should Gave Him Resources Also.

Here Are Resources With Model + Sounds
Attached Files
File Type: zip Resources.zip (2.55 MB, 85 views)
__________________
Facebook
My YouTube
Ro{Y}aL WarLanD CommuniTy
Selling Zombie CSO 4.3 Money System Mod
DON KHAN 1 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 03:47.


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