Русское сообщество по скриптингу

Меню ножей зм

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Меню ножей зм

Сообщение Squizz » 23 дек 2024, 05:04

Парни привет очень устал уже...И решил к вам обратится я планирую создать большой проект. Но я столкнулся с проблемой в меню ножей тоисть они работают оч не понятно когда меняю им урон они не работают у них были способности теперь их нету почему-то...Плагин я взял со слитой сборки хотел сделать под себя переделал модели название оформил меню но способности у меня на сервере не работают...В чём проблема помогите исправить код очень буду благодарен :zzz:
Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <fakemeta>
#include <fakemeta_util>
#include <engine>
#include <hamsandwich>
#include <zombieplague>

native zp_give_user_phantomslayer(id)
native native_knifes_menu(id)
native DualSword_Remove(id)

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

#define MAX_CLIENTS                32

new bool:g_fRoundEnd

#define FIRE_DURATION            1
#define FIRE_DAMAGE                255

const Float:TIME_FREEZE            =    3.0
const Float:TIME_WAIT_FREEZE        =    6.0

new g_flameSprg_flameSpr2g_flameSpr3g_flameSpr4g_smokeSprg_burning_durationMAX_CLIENTS ]
new 
g_freeze_wait[33]
new 
g_frozen[33], g_SpriteGlass

#define PLUGIN    "[ZP] Knifes: IIo3uTuBHue 3oM6u"
#define VERSION    "1.0"
#define AUTHOR    "Edition by inf"

#define VIP ADMIN_LEVEL_A
#define ADMIN ADMIN_LEVEL_B
#define BOSS ADMIN_LEVEL_C
#define BUFF ADMIN_LEVEL_D
#define ARCANA ADMIN_LEVEL_F
#define LEVEL 15

new KNIFE1_V_MODEL[] = "models/edition_knifes/v_combat_knife.mdl"
new KNIFE1_P_MODEL[] = "models/edition_knifes/p_combat_knife.mdl"

new KNIFE2_V_MODEL[] = "models/edition_knifes/v_katana_dragon.mdl"
new KNIFE2_P_MODEL[] = "models/edition_knifes/p_katana_dragon.mdl"

new KNIFE3_V_MODEL[] = "models/edition_knifes/v_vetki.mdl"
new KNIFE3_P_MODEL[] = "models/edition_knifes/p_vetki.mdl"

new KNIFE4_V_MODEL[] = "models/edition_knifes/v_hammer_n.mdl"
new KNIFE4_P_MODEL[] = "models/edition_knifes/p_hammer_n.mdl"

new KNIFE5_V_MODEL[] = "models/edition_knifes/v_skull_fire.mdl"
new KNIFE5_P_MODEL[] = "models/edition_knifes/p_skull_blood.mdl"

new KNIFE6_V_MODEL[] = "models/edition_knifes/v_balrog_kosa.mdl"
new KNIFE6_P_MODEL[] = "models/edition_knifes/p_balrog_kosa.mdl"

new KNIFE7_V_MODEL[] = "models/edition_knifes/v_PhantomSlayer_Wolf.mdl"
new KNIFE7_P_MODEL[] = "models/edition_knifes/p_PhantomSlayer_Wolf.mdl"

new KNIFESURV_V_MODEL[] = "models/edition_knifes/v_xyu.mdl"
new KNIFESURV_P_MODEL[] = "models/edition_knifes/p_xyu.mdl"

new const g_SpriteGlasses[] = "models/glassgibs.mdl"

new bool:g_KNIFE1[33]
new 
bool:g_KNIFE2[33]
new 
bool:g_KNIFE3[33]
new 
bool:g_KNIFE4[33]
new 
bool:g_KNIFE5[33]
new 
bool:g_KNIFE6[33]
new 
bool:g_KNIFE7[33]
new 
bool:g_KNIFE8[33]
new 
bool:g_has_survivor[33]
new 
bool:g_hasSpeed[33]

new 
g_knife_menucvar_knockcvar_jumpcvar_dmgmult1cvar_dmgmult2cvar_dmgmult3cvar_knife_spd
new cvar_jump_vipcvar_dmgmult_vipcvar_dmgmult_admincvar_dmgmult_bosscvar_dmgmult_buffcvar_dmgmult_survcvar_knife_spd_vipcvar_knock_vip

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

new const 
a_sounds[][] =
{
    
"edition_knifes/combat/knife_draw_fix.wav",
    
"edition_knifes/combat/knife_hit_fix.wav",
    
"edition_knifes/combat/knife_hit_fix.wav",
    
"edition_knifes/combat/knife_wall_fix.wav",
    
"edition_knifes/combat/knife_slash_fix.wav",
    
"edition_knifes/combat/knife_stab_fix.wav"
}

new const 
b_sounds[][] =
{
    
"edition_knifes/katana/knife_draw_fix.wav",
    
"edition_knifes/katana/knife_hit_fix.wav",
    
"edition_knifes/katana/knife_hit_fix.wav",
    
"edition_knifes/katana/knife_stab_fix.wav",
    
"edition_knifes/katana/knife_slash_fix.wav",
    
"edition_knifes/katana/knife_stab_fix.wav"
}

new const 
c_sounds[][] =
{
    
"edition_knifes/strong/tomahawk_xmas_draw.wav",
    
"edition_knifes/strong/tomahawk_xmas_stab.wav",
    
"edition_knifes/strong/tomahawk_xmas_stab.wav",
    
"edition_knifes/strong/tomahawk_xmas_slash1.wav",
    
"edition_knifes/strong/tomahawk_xmas_slash1.wav",
    
"edition_knifes/strong/tomahawk_xmas_stab.wav"
}

new const 
d_sounds[][] =
{
    
"edition_knifes/Skull/knife_draw_fix.wav",
    
"edition_knifes/Skull/knife_hit_fix.wav",
    
"edition_knifes/Skull/knife_hit_fix.wav",
    
"edition_knifes/Skull/knife_wall_fix.wav",
    
"edition_knifes/Skull/knife_slash_fix.wav",
    
"edition_knifes/Skull/knife_hit_fix.wav"
}

new const 
e_sounds[][] =
{
    
"edition_knifes/Skull/knife_draw_fix.wav",
    
"edition_knifes/Skull/knife_hit_fix.wav",
    
"edition_knifes/Skull/knife_hit_fix.wav",
    
"edition_knifes/Skull/knife_wall_fix.wav",
    
"edition_knifes/Skull/knife_slash_fix.wav",
    
"edition_knifes/Skull/knife_hit_fix.wav"
}

new const 
f_sounds[][] =
{
    
"edition_knifes/Skull/knife_draw_fix.wav",
    
"edition_knifes/Skull/knife_hit_fix.wav",
    
"edition_knifes/Skull/knife_hit_fix.wav",
    
"edition_knifes/Skull/knife_wall_fix.wav",
    
"edition_knifes/Skull/knife_slash_fix.wav",
    
"edition_knifes/Skull/knife_hit_fix.wav"
}

new const 
i_sounds[][] =
{
    
"edition_knifes/Skull/knife_draw_fix.wav",
    
"edition_knifes/Skull/knife_hit_fix.wav",
    
"edition_knifes/Skull/knife_hit_fix.wav",
    
"edition_knifes/Skull/knife_wall_fix.wav",
    
"edition_knifes/Skull/knife_slash_fix.wav",
    
"edition_knifes/Skull/knife_hit_fix.wav"
}

new const 
g_sounds[][] =
{
    
"edition_knifes/warhammer/stormgiant_draw.wav",
    
"edition_knifes/warhammer/buffkatana_hit1.wav",
    
"edition_knifes/warhammer/buffkatana_hit1.wav",
    
"edition_knifes/warhammer/buffkatana_hitwall1.wav",
    
"edition_knifes/warhammer/buffkatana_slash1.wav",
    
"edition_knifes/warhammer/buffkatana_stab.wav"
}

new const 
surv_sounds[][] =
{
    
"edition_knifes/surv/chainsaw2_draw.wav",
    
"edition_knifes/surv/chainsaw2_hit1.wav",
    
"edition_knifes/surv/chainsaw2_hit1.wav",
    
"edition_knifes/surv/chainsaw2_hitwall1.wav",
    
"edition_knifes/surv/chainsaw2_slash1.wav",
    
"edition_knifes/surv/chainsaw2_stab.wav"
}

new const 
pre_sounds[][] =
{
    
"edition_knifes/surv/chainsaw_idle.wav",
    
"edition_knifes/surv/chainsaw_steam.wav"
}

#define KNIFE1_ARMOR        50

public plugin_init()
{
    
register_plugin(PLUGIN VERSION AUTHOR);
    
register_cvar("zp_addon_knife"VERSIONFCVAR_SERVER);
    
    
register_forward(FM_AddToFullPack"fw_PlayerAddToFullPack");
    
    
RegisterHam(Ham_Spawn"player""fw_playerspawn_post"1)

     
g_knife_menu menu_create("Knife","menu_handle")
    
     
register_clcmd("/knife","knifemenu")
    
    
build_menu()

    
register_event("CurWeapon","checkWeapon","be","1=1");
    
register_forward(FM_EmitSound"CEntity__EmitSound");
    
register_forward(FM_PlayerPreThink"fw_PlayerPreThink");
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage");
    
RegisterHam(Ham_Use"func_tank""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tankmortar""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tankrocket""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tanklaser""fw_UseStationary_Post"1)

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

    
cvar_knock        register_cvar("zp_knife_power"        "5");
    
cvar_jump        register_cvar("zp_knife_jump"            "350.0");
    
cvar_dmgmult1        register_cvar("zp_knife_dmg_muiti1"        "15");
    
cvar_dmgmult2        register_cvar("zp_knife_dmg_muiti2"        "10");
    
cvar_dmgmult3        register_cvar("zp_knife_dmg_muiti3"        "5");
    
cvar_knife_spd        register_cvar("zp_knife_spd"            "280");
    
cvar_jump_vip        register_cvar("zp_knife_jump_vip"        "400.0");
    
cvar_dmgmult_vip    register_cvar("zp_knife_dmg_vip"        "20");
    
cvar_dmgmult_admin    register_cvar("zp_knife_dmg_admin"        "25");
    
cvar_dmgmult_boss    register_cvar("zp_knife_dmg_boss"        "30");
    
cvar_dmgmult_buff    register_cvar("zp_knife_dmg_buff"        "35");
    
cvar_dmgmult_surv    register_cvar("zp_knife_dmg_surv"        "40");
    
cvar_knife_spd_vip    register_cvar("zp_knife_spd_vip"        "320");
    
cvar_knock_vip        register_cvar("zp_knife_power_vip"        "10");
}

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

        
iAnim get_esES_HandleES_Sequence );

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

        
iAnim get_esES_HandleES_Sequence );

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

public 
plugin_natives()
{
    
register_native("native_knifes_menu""native_knifes"1)
}

public 
native_knifes(id)
{
    
client_cmd(id"native_menu_choose_knifes_by_inf_2017")
}

public 
client_connect(id)
{
    
g_KNIFE1[id] = false
    g_KNIFE2
[id] = false
    g_KNIFE3
[id] = false
    g_KNIFE4
[id] = false
    g_KNIFE5
[id] = false
    g_KNIFE6
[id] = false
    g_KNIFE7
[id] = false
    g_KNIFE8
[id] = false
    g_has_survivor
[id] = false
    g_hasSpeed
[id] = false
}

public 
client_disconnect(id)
{
    
g_KNIFE1[id] = false
    g_KNIFE2
[id] = false
    g_KNIFE3
[id] = false
    g_KNIFE4
[id] = false
    g_KNIFE5
[id] = false
    g_KNIFE6
[id] = false
    g_KNIFE7
[id] = false
    g_KNIFE8
[id] = false
    g_has_survivor
[id] = false
    g_hasSpeed
[id] = false
}

public 
zp_user_infected_post(id)
{
    
g_KNIFE1[id] = false
    g_KNIFE2
[id] = false
    g_KNIFE3
[id] = false
    g_KNIFE4
[id] = false
    g_KNIFE5
[id] = false
    g_KNIFE6
[id] = false
    g_KNIFE7
[id] = false
    g_KNIFE8
[id] = false
    DualSword_Remove
(id)
    
g_has_survivor[id] = false
    g_hasSpeed
[id] = false
}

public 
zp_user_humanized_post(iPlayer
{
    if(
zp_get_user_survivor(iPlayer)) 
    {
        
buy_knife_surv(iPlayer)
    }
    else 
ChekKnife(iPlayer)
}

public 
plugin_precache()
{
    
precache_model(KNIFE1_V_MODEL)
    
precache_model(KNIFE1_P_MODEL)
    
precache_model(KNIFE2_V_MODEL)
    
precache_model(KNIFE2_P_MODEL)
    
precache_model(KNIFE3_V_MODEL)
    
precache_model(KNIFE3_P_MODEL)
    
precache_model(KNIFE4_V_MODEL)
    
precache_model(KNIFE4_P_MODEL)
    
precache_model(KNIFE5_V_MODEL)
    
precache_model(KNIFE5_P_MODEL)
    
precache_model(KNIFE6_V_MODEL)
    
precache_model(KNIFE6_P_MODEL)
    
precache_model(KNIFE7_V_MODEL)
    
precache_model(KNIFE7_P_MODEL)
    
    
precache_model(KNIFESURV_V_MODEL)
    
precache_model(KNIFESURV_P_MODEL)

    
precache_sound(g_sound_knife)

    for(new 
0sizeof a_soundsi++)
    
precache_sound(a_sounds[i])

    for(new 
0sizeof b_soundsi++)
    
precache_sound(b_sounds[i])

    for(new 
0sizeof c_soundsi++)
    
precache_sound(c_sounds[i])

    for(new 
0sizeof d_soundsi++)
    
precache_sound(d_sounds[i])

    for(new 
0sizeof e_soundsi++)
    
precache_sound(e_sounds[i])

    for(new 
0sizeof f_soundsi++)
    
precache_sound(f_sounds[i])
    
    for(new 
0sizeof g_soundsi++)
    
precache_sound(g_sounds[i])
    
    for(new 
0sizeof i_soundsi++)
    
precache_sound(i_sounds[i])

    for(new 
0sizeof surv_soundsi++)
    
precache_sound(surv_sounds[i]) 
    
    for(new 
0sizeof pre_soundsi++)
    
precache_sound(pre_sounds[i]) 

    
g_flameSpr precache_model"sprites/flame.spr" );
    
g_flameSpr2 precache_model"sprites/flame.spr" );
    
g_flameSpr3 precache_model"sprites/shadow_flame.spr" );
    
g_flameSpr4 precache_model"sprites/shadow_flame.spr" );
    
    
g_smokeSpr precache_model"sprites/black_smoke3.spr" );
    
    
g_SpriteGlass precache_model(g_SpriteGlasses);
}

build_menu()
{
    
menu_additem(g_knife_menu"\wНож Бойца \r[Урон]""1]")
    
menu_additem(g_knife_menu"\wМеч \r[Прыжок]""2")
    
menu_additem(g_knife_menu"\wНовогоднии Веточки \r[Скорость]""3")
    
menu_additem(g_knife_menu"\yХаммер  \r[VIP]""4")
    
menu_additem(g_knife_menu"\yТопор \r[ADMIN]""5")
    
menu_additem(g_knife_menu"\yКоса \r[BOSS]""6")
    
menu_additem(g_knife_menu"\yФантомубийца \r[LORD]""7")
    
menu_additem(g_knife_menu"\yКлинки \r[SPONSOR]""8")
    
menu_setprop(g_knife_menuMPROP_PERPAGE0)
}

public 
knifemenu(id)
{
    if (
zp_has_round_started())
    return 
PLUGIN_HANDLED

    
if (!zp_has_round_started())
    {
         
menu_display(idg_knife_menu0)
    }
     return 
PLUGIN_HANDLED
}

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


public 
buy_knife1(id)
{
    
g_KNIFE1[id] = true    
    g_KNIFE2
[id] = false    
    g_KNIFE3
[id] = false
    g_KNIFE4
[id] = false
    g_KNIFE5
[id] = false
    g_KNIFE6
[id] = false
    g_KNIFE7
[id] = false
    g_KNIFE8
[id] = false
    g_has_survivor
[id] = false
    g_hasSpeed
[id] = false
    
    set_user_armor
(idget_user_armor(id) + KNIFE1_ARMOR)
    
    
checkWeapon(id)

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
}

public 
buy_knife2(id)
{
    
g_KNIFE1[id] = false    
    g_KNIFE2
[id] = true    
    g_KNIFE3
[id] = false
    g_KNIFE4
[id] = false
    g_KNIFE5
[id] = false
    g_KNIFE6
[id] = false
    g_KNIFE7
[id] = false
    g_KNIFE8
[id] = false
    g_has_survivor
[id] = false
    g_hasSpeed
[id] = false
    
    checkWeapon
(id)

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
}

public 
buy_knife3(id)

    
g_KNIFE1[id] = false    
    g_KNIFE2
[id] = false    
    g_KNIFE3
[id] = true
    g_KNIFE4
[id] = false
    g_KNIFE5
[id] = false
    g_KNIFE6
[id] = false
    g_KNIFE7
[id] = false
    g_KNIFE8
[id] = false
    g_has_survivor
[id] = false
    g_hasSpeed
[id] = true
    
    checkWeapon
(id)

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
    }

public 
buy_knife4(id)
{
    if (
get_user_flags(id) & VIP)
    {
        
g_KNIFE1[id] = false    
        g_KNIFE2
[id] = false    
        g_KNIFE3
[id] = false
        g_KNIFE4
[id] = true
        g_KNIFE5
[id] = false
        g_KNIFE6
[id] = false
        g_KNIFE7
[id] = false
        g_KNIFE8
[id] = false
        g_has_survivor
[id] = false
        g_hasSpeed
[id] = true
        
        checkWeapon
(id)

        
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
    }
    else 
    {
        
native_knifes_menu(id)
    }

}

public 
buy_knife5(id)
{
    if (
get_user_flags(id) & ADMIN)
    {
        
g_KNIFE1[id] = false    
        g_KNIFE2
[id] = false    
        g_KNIFE3
[id] = false
        g_KNIFE4
[id] = false
        g_KNIFE5
[id] = true
        g_KNIFE6
[id] = false
        g_KNIFE7
[id] = false
        g_KNIFE8
[id] = false
        g_has_survivor
[id] = false
        g_hasSpeed
[id] = true
        
        checkWeapon
(id)

        
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
    }
    else 
    {
        
native_knifes_menu(id)
    }

}

public 
buy_knife6(id)
{
    if (
get_user_flags(id) & BOSS)
    {
        
g_KNIFE1[id] = false    
        g_KNIFE2
[id] = false    
        g_KNIFE3
[id] = false
        g_KNIFE4
[id] = false
        g_KNIFE5
[id] = false
        g_KNIFE6
[id] = true
        g_KNIFE7
[id] = false
        g_KNIFE8
[id] = false
        g_has_survivor
[id] = false
        g_hasSpeed
[id] = true
        
        checkWeapon
(id)

        
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
    }
    else 
    {
        
native_knifes_menu(id)
    }

}

public 
buy_knife7(id)
{
    if (
get_user_flags(id) & BUFF)
    {
        
g_KNIFE1[id] = false    
        g_KNIFE2
[id] = false    
        g_KNIFE3
[id] = false
        g_KNIFE4
[id] = false
        g_KNIFE5
[id] = false
        g_KNIFE6
[id] = false
        g_KNIFE7
[id] = true
        g_KNIFE8
[id] = false
        g_has_survivor
[id] = false
        g_hasSpeed
[id] = true
        
        checkWeapon
(id)

        
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
    }
    else 
    {
        
native_knifes_menu(id)
    }

}

public 
buy_knife8(id)
{
    if (
get_user_flags(id) & ARCANA)
    {
        
g_KNIFE1[id] = false    
        g_KNIFE2
[id] = false    
        g_KNIFE3
[id] = false
        g_KNIFE4
[id] = false
        g_KNIFE5
[id] = false
        g_KNIFE6
[id] = false
        g_KNIFE7
[id] = false
        g_KNIFE8
[id] = true
        g_has_survivor
[id] = false
        g_hasSpeed
[id] = true
        zp_give_user_phantomslayer
(id)
        
checkWeapon(id)

        
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
    }
    else 
    {
        
native_knifes_menu(id)
    }

}

public 
buy_knife_surv(id)
{
    
g_KNIFE1[id] = false    
    g_KNIFE2
[id] = false    
    g_KNIFE3
[id] = false
    g_KNIFE4
[id] = false
    g_KNIFE5
[id] = false
    g_KNIFE6
[id] = false
    g_KNIFE7
[id] = false
    g_KNIFE8
[id] = false
    g_has_survivor
[id] = true
    g_hasSpeed
[id] = true
    
    checkWeapon
(id)

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
}

public 
fw_playerspawn_post(id)
{
    if(!
is_user_alive(id))
    return;
    
    
ChekKnife(id)
    
    return;
}

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

public 
checkWeapon(id)
{
    new 
plrWeapId
    
    plrWeapId 
get_user_weapon(id)
    
    if (
plrWeapId == CSW_KNIFE && (g_KNIFE1[id] || g_KNIFE2[id] || g_KNIFE3[id] || g_KNIFE4[id] || g_KNIFE5[id] || g_KNIFE6[id] || g_KNIFE7[id] || g_KNIFE8[id] || g_has_survivor[id]))
    {
        
checkModel(id)
    }
}

public 
checkModel(id)
{
    if (
zp_get_user_zombie(id))
    return 
PLUGIN_HANDLED
    
    
if (g_KNIFE1[id])
    {
        
set_pev(idpev_viewmodel2KNIFE1_V_MODEL)
        
set_pev(idpev_weaponmodel2KNIFE1_P_MODEL)
    }

    if (
g_KNIFE2[id])
    {
        
set_pev(idpev_viewmodel2KNIFE2_V_MODEL)
        
set_pev(idpev_weaponmodel2KNIFE2_P_MODEL)
    }

    if (
g_KNIFE3[id])
    {
        
set_pev(idpev_viewmodel2KNIFE3_V_MODEL)
        
set_pev(idpev_weaponmodel2KNIFE3_P_MODEL)
    }

    if (
g_KNIFE4[id])
    {
        
set_pev(idpev_viewmodel2KNIFE4_V_MODEL)
        
set_pev(idpev_weaponmodel2KNIFE4_P_MODEL)
    }
    
    if (
g_KNIFE5[id])
    {
        
set_pev(idpev_viewmodel2KNIFE5_V_MODEL)
        
set_pev(idpev_weaponmodel2KNIFE5_P_MODEL)
    }
    
    if (
g_KNIFE6[id])
    {
        
set_pev(idpev_viewmodel2KNIFE6_V_MODEL)
        
set_pev(idpev_weaponmodel2KNIFE6_P_MODEL)
    }
    
    if (
g_KNIFE7[id])
    {
        
set_pev(idpev_viewmodel2KNIFE7_V_MODEL)
        
set_pev(idpev_weaponmodel2KNIFE7_P_MODEL)
    }
    
    if (
g_has_survivor[id])
    {
        
set_pev(idpev_viewmodel2KNIFESURV_V_MODEL)
        
set_pev(idpev_weaponmodel2KNIFESURV_P_MODEL)
    }
    return 
PLUGIN_HANDLED
}

public 
CEntity__EmitSound(idchannel, const sample[], Float:volumeFloat:attnflagspitch)
{
    if (!
is_user_connected(id)) 
        return 
HAM_IGNORED
    
    
if (zp_get_user_zombie(id)) 
        return 
HAM_IGNORED
    
    
if (sample[8] == 'k' && sample[9] == 'n' && sample[10] == 'i')
    {
        if (
sample[14] == 'd'
        {
            if(
g_KNIFE1[id])
                
emit_sound(idchannela_sounds[0], volumeattnflagspitch)
            if(
g_KNIFE2[id])
                
emit_sound(idchannelb_sounds[0], volumeattnflagspitch)
            if(
g_KNIFE3[id])
                
emit_sound(idchannelc_sounds[0], volumeattnflagspitch)
            if(
g_KNIFE4[id])
                
emit_sound(idchanneld_sounds[0], volumeattnflagspitch)
            if(
g_KNIFE5[id])
                
emit_sound(idchannele_sounds[0], volumeattnflagspitch)
            if(
g_KNIFE6[id])
                
emit_sound(idchannelf_sounds[0], volumeattnflagspitch)
            if(
g_KNIFE7[id])
                
emit_sound(idchannelg_sounds[0], volumeattnflagspitch)
            if(
g_has_survivor[id])
                
emit_sound(idchannelsurv_sounds[0], volumeattnflagspitch)
        }
        else if (
sample[14] == 'h')
        {
            if (
sample[17] == 'w'
            {
                if(
g_KNIFE1[id])
                    
emit_sound(idchannela_sounds[3], volumeattnflagspitch)
                if(
g_KNIFE2[id])
                    
emit_sound(idchannelb_sounds[3], volumeattnflagspitch)
                if(
g_KNIFE3[id])
                    
emit_sound(idchannelc_sounds[3], volumeattnflagspitch)
                if(
g_KNIFE4[id])
                    
emit_sound(idchanneld_sounds[3], volumeattnflagspitch)
                if(
g_KNIFE5[id])
                    
emit_sound(idchannele_sounds[3], volumeattnflagspitch)
                if(
g_KNIFE6[id])
                    
emit_sound(idchannelf_sounds[3], volumeattnflagspitch)
                if(
g_KNIFE7[id])
                    
emit_sound(idchannelg_sounds[3], volumeattnflagspitch)
                if(
g_has_survivor[id])
                    
emit_sound(idchannelsurv_sounds[3], volumeattnflagspitch)
            }
            else
            {
                if(
g_KNIFE1[id])
                    
emit_sound(idchannela_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_KNIFE2[id])
                    
emit_sound(idchannelb_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_KNIFE3[id])
                    
emit_sound(idchannelc_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_KNIFE4[id])
                    
emit_sound(idchanneld_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_KNIFE5[id])
                    
emit_sound(idchannele_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_KNIFE6[id])
                    
emit_sound(idchannelf_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_KNIFE7[id])
                    
emit_sound(idchannelg_sounds[random_num(1,2)], volumeattnflagspitch)
                if(
g_has_survivor[id])
                    
emit_sound(idchannelsurv_sounds[random_num(1,2)], volumeattnflagspitch)
            }
        }
        else
        {
            if (
sample[15] == 'l'
            {
                if(
g_KNIFE1[id])
                    
emit_sound(idchannela_sounds[4], volumeattnflagspitch)
                if(
g_KNIFE2[id])
                    
emit_sound(idchannelb_sounds[4], volumeattnflagspitch)
                if(
g_KNIFE3[id])
                    
emit_sound(idchannelc_sounds[4], volumeattnflagspitch)
                if(
g_KNIFE4[id])
                    
emit_sound(idchanneld_sounds[4], volumeattnflagspitch)
                if(
g_KNIFE5[id])
                    
emit_sound(idchannele_sounds[4], volumeattnflagspitch)
                if(
g_KNIFE6[id])
                    
emit_sound(idchannelf_sounds[4], volumeattnflagspitch)
                if(
g_KNIFE7[id])
                    
emit_sound(idchannelg_sounds[4], volumeattnflagspitch)
                if(
g_has_survivor[id])
                    
emit_sound(idchannelsurv_sounds[4], volumeattnflagspitch)
            }
            else 
            {
                if(
g_KNIFE1[id])
                    
emit_sound(idchannela_sounds[5], volumeattnflagspitch)
                if(
g_KNIFE2[id] )
                    
emit_sound(idchannelb_sounds[5], volumeattnflagspitch)
                if(
g_KNIFE3[id] )
                    
emit_sound(idchannelc_sounds[5], volumeattnflagspitch)
                if(
g_KNIFE4[id])
                    
emit_sound(idchanneld_sounds[5], volumeattnflagspitch)
                if(
g_KNIFE5[id])
                    
emit_sound(idchannele_sounds[5], volumeattnflagspitch)
                if(
g_KNIFE6[id])
                    
emit_sound(idchannelf_sounds[5], volumeattnflagspitch)
                if(
g_KNIFE7[id])
                    
emit_sound(idchannelg_sounds[5], volumeattnflagspitch)
                if(
g_has_survivor[id])
                    
emit_sound(idchannelsurv_sounds[5], volumeattnflagspitch)
            }
        }
        return 
HAM_SUPERCEDE
    
}
    return 
HAM_IGNORED
}

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

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

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

    if(
weapon == CSW_KNIFE && g_KNIFE2[id]) 
    {
        
g_hasSpeed[id] = true
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_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_jump)

            
set_pev(idpev_velocityfVelocity)
            
set_pev(idpev_gaitsequence6)
        }
    }
    if(
weapon == CSW_KNIFE && g_KNIFE3[id]) 
    {
        
g_hasSpeed[id] = true
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_spd_vip))

        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)

            
set_pev(idpev_velocityfVelocity)
            
set_pev(idpev_gaitsequence6)
        }
    }
    if (
weapon == CSW_KNIFE && g_KNIFE4[id])
    {
        
g_hasSpeed[id] = true
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_spd_vip))

        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_jump_vip)

            
set_pev(idpev_velocityfVelocity)
            
set_pev(idpev_gaitsequence6)
        }
    }
    if (
weapon == CSW_KNIFE && g_KNIFE5[id])
    {
        
g_hasSpeed[id] = true
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_spd_vip))

        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_jump_vip)

            
set_pev(idpev_velocityfVelocity)
            
set_pev(idpev_gaitsequence6)
        }
    }
    if (
weapon == CSW_KNIFE && g_KNIFE6[id])
    {
        
g_hasSpeed[id] = true
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_spd_vip))

        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_jump_vip)

            
set_pev(idpev_velocityfVelocity)
            
set_pev(idpev_gaitsequence6)
        }
    }
    if (
weapon == CSW_KNIFE && g_KNIFE7[id])
    {
        
g_hasSpeed[id] = true
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_spd_vip))

        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_jump_vip)

            
set_pev(idpev_velocityfVelocity)
            
set_pev(idpev_gaitsequence6)
        }
    }
    if (
weapon == CSW_KNIFE && g_KNIFE8[id])
    {
        
g_hasSpeed[id] = true
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_spd_vip))

        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_jump_vip)

            
set_pev(idpev_velocityfVelocity)
            
set_pev(idpev_gaitsequence6)
        }
    }
    if (
weapon == CSW_KNIFE && g_has_survivor[id])
    {
        
g_hasSpeed[id] = true
        set_pev
(idpev_maxspeedget_pcvar_float(cvar_knife_spd_vip))

        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_jump_vip)

            
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_KNIFE1[attacker])
    {
        
SetHamParamFloat(4damage get_pcvar_float(cvar_dmgmult1))    
    }
    if (
weapon == CSW_KNIFE && g_KNIFE2[attacker])
    {    
        
SetHamParamFloat(4damage get_pcvar_float(cvar_dmgmult2))
    }
    if (
weapon == CSW_KNIFE && g_KNIFE3[attacker])
    {    
        
SetHamParamFloat(4damage get_pcvar_float(cvar_dmgmult3))
        
        new 
Float:vec[3];
        new 
Float:oldvelo[3];
        
pev(victimpev_velocityoldvelo);
        
create_velocity_vector(victim attacker vec);
        
vec[0] += oldvelo[0];
        
vec[1] += oldvelo[1];
        
set_pev(victimpev_velocityvec);    
    }
    if (
weapon == CSW_KNIFE && g_KNIFE4[attacker])
    {    
        
SetHamParamFloat(4damage get_pcvar_float(cvar_dmgmult_vip))    

        new 
Float:vec[3];
        new 
Float:oldvelo[3];
        
pev(victimpev_velocityoldvelo);
        
create_velocity_vector(victim attacker vec);
        
vec[0] += oldvelo[0];
        
vec[1] += oldvelo[1];
        
set_pev(victimpev_velocityvec);

        if(!
g_freeze_wait[attacker] && !zp_get_user_nemesis(victim))
        {
            
set_pev(victimpev_flagspev(victimpev_flags) | FL_FROZEN)
            
set_user_rendering(victimkRenderFxGlowShell0206209kRenderNormal25)
            
g_frozen[victim] = true
            set_task
(TIME_FREEZE"end"victim)
            
g_freeze_wait[attacker] = true
            set_task
(TIME_WAIT_FREEZE"Freeze_Wait"attacker 1233123)
        }    
    }
    if (
weapon == CSW_KNIFE && g_KNIFE5[attacker])
    {    
        
SetHamParamFloat(4damage get_pcvar_float(cvar_dmgmult_admin))    

        new 
Float:vec[3];
        new 
Float:oldvelo[3];
        
pev(victimpev_velocityoldvelo);
        
create_velocity_vector(victim attacker vec);
        
vec[0] += oldvelo[0];
        
vec[1] += oldvelo[1];
        
set_pev(victimpev_velocityvec);
        
        if( !
task_existsvictim TASK_FBURN ) )
        {
            
g_burning_durationvictim ] += FIRE_DURATION 5
            set_task
0.1"CTask__BurningFlame"victim TASK_FBURN__"b" )
        }
    }
    if (
weapon == CSW_KNIFE && g_KNIFE6[attacker])
    {    
        
SetHamParamFloat(4damage get_pcvar_float(cvar_dmgmult_boss))    

        new 
Float:vec[3];
        new 
Float:oldvelo[3];
        
pev(victimpev_velocityoldvelo);
        
create_velocity_vector(victim attacker vec);
        
vec[0] += oldvelo[0];
        
vec[1] += oldvelo[1];
        
set_pev(victimpev_velocityvec);

        if( !
task_existsvictim TASK_FBURN ) )
        {
            
g_burning_durationvictim ] += FIRE_DURATION 5
            set_task
0.1"CTask__BurningFlame2"victim TASK_FBURN__"b" )
        }
    }
    if (
weapon == CSW_KNIFE && g_KNIFE7[attacker])
    {    
        
SetHamParamFloat(4damage get_pcvar_float(cvar_dmgmult_buff))    

        new 
Float:vec[3];
        new 
Float:oldvelo[3];
        
pev(victimpev_velocityoldvelo);
        
create_velocity_vector(victim attacker vec);
        
vec[0] += oldvelo[0];
        
vec[1] += oldvelo[1];
        
set_pev(victimpev_velocityvec);

        if( !
task_existsvictim TASK_FBURN ) )
        {
            
g_burning_durationvictim ] += FIRE_DURATION 5
            set_task
0.1"CTask__BurningFlame3"victim TASK_FBURN__"b" )
        }
    }
    if (
weapon == CSW_KNIFE && g_KNIFE8[attacker])
    {    
        
SetHamParamFloat(4damage get_pcvar_float(cvar_dmgmult_buff))    

        new 
Float:vec[3];
        new 
Float:oldvelo[3];
        
pev(victimpev_velocityoldvelo);
        
create_velocity_vector(victim attacker vec);
        
vec[0] += oldvelo[0];
        
vec[1] += oldvelo[1];
        
set_pev(victimpev_velocityvec);

        if( !
task_existsvictim TASK_FBURN ) )
        {
            
g_burning_durationvictim ] += FIRE_DURATION 5
            set_task
0.1"CTask__BurningFlame4"victim TASK_FBURN__"b" )
        }
    }
    if (
weapon == CSW_KNIFE && g_has_survivor[attacker])
    {    
        
SetHamParamFloat(4damage get_pcvar_float(cvar_dmgmult_surv))    

        new 
Float:vec[3];
        new 
Float:oldvelo[3];
        
pev(victimpev_velocityoldvelo);
        
create_velocity_vector(victim attacker vec);
        
vec[0] += oldvelo[0];
        
vec[1] += oldvelo[1];
        
set_pev(victimpev_velocityvec);
    }

    return 
HAM_IGNORED
}

public 
Freeze_Wait(taskid)
{
    new 
attacker taskid 1233123

    
if(is_user_alive(attacker))
    {
        
remove_task(attacker 1233123)
        
g_freeze_wait[attacker] = false
        ChatColor
(attacker"!yВаша способность заморозить готова")
    }
    else 
remove_task(attacker 1233123)
}

public 
end(victim)
{
    if(
g_frozen[victim])
        
g_frozen[victim] = false

    set_pev
(victimpev_flagspev(victimpev_flags) & ~FL_FROZEN)
    
set_user_rendering(victimkRenderFxGlowShell000kRenderNormal25)
    
CreateGlass(victim)

    
remove_task(victim)
}

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_KNIFE1[iattacker])
            
set_msg_arg_string(4"knife1")
        }
    
        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
        {
            if(
g_KNIFE2[iattacker])
            
set_msg_arg_string(4"knife2")
        }
    
        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
        {
            if(
g_KNIFE3[iattacker])
            
set_msg_arg_string(4"knife3")
        }
    
        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
        {
            if(
g_KNIFE4[iattacker])
            
set_msg_arg_string(4"knife4")
        }
        
        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
        {
            if(
g_KNIFE5[iattacker])
            
set_msg_arg_string(4"knife5")
        }
        
        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
        {
            if(
g_KNIFE6[iattacker])
            
set_msg_arg_string(4"knife6")
        }
        
        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
        {
            if(
g_KNIFE7[iattacker])
            
set_msg_arg_string(4"knife7")
        }
        
        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
        {
            if(
g_KNIFE8[iattacker])
            
set_msg_arg_string(4"knife8")
        }
        
        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
        {
            if(
g_has_survivor[iattacker])
            
set_msg_arg_string(4"survivor")
        }
    
        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
        {
            if(!
g_KNIFE1[iattacker] && !g_KNIFE2[iattacker] && !g_KNIFE3[iattacker] && !zp_get_user_zombie(iattacker))
            
set_msg_arg_string(4"knife")
        }
    }
    if (
zp_get_user_zombie(iattacker))
    {
        if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
        {
            if(
g_KNIFE1[iattacker] || g_KNIFE2[iattacker] || g_KNIFE3[iattacker])
            
set_msg_arg_string(4"Claws")
        }
    }
    return 
PLUGIN_CONTINUE
}

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

    new 
Float:vicorigin[3];
    new 
Float:attorigin[3];
    
pev(victimpev_origin vicorigin);
    
pev(attackerpev_origin attorigin);

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

    new 
Float:largestnum 0.0;

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

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

    if (
g_KNIFE3[attacker])
    {
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knock) * 3000) ) / floatround(get_distance_f(vicoriginattorigin));
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knock) * 3000) ) / floatround(get_distance_f(vicoriginattorigin));
    }
    if (
g_KNIFE4[attacker])
    {
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knock_vip) * 3000) ) / floatround(get_distance_f(vicoriginattorigin));
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knock_vip) * 3000) ) / floatround(get_distance_f(vicoriginattorigin));
    }
    if (
g_KNIFE5[attacker])
    {
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knock_vip) * 3000) ) / floatround(get_distance_f(vicoriginattorigin));
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knock_vip) * 3000) ) / floatround(get_distance_f(vicoriginattorigin));
    }
    if (
g_KNIFE6[attacker])
    {
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knock_vip) * 3000) ) / floatround(get_distance_f(vicoriginattorigin));
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knock_vip) * 3000) ) / floatround(get_distance_f(vicoriginattorigin));
    }
    if (
g_KNIFE7[attacker])
    {
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knock_vip) * 3000) ) / floatround(get_distance_f(vicoriginattorigin));
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knock_vip) * 3000) ) / floatround(get_distance_f(vicoriginattorigin));
    }
    if (
g_KNIFE8[attacker])
    {
        
velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_knock_vip) * 3000) ) / floatround(get_distance_f(vicoriginattorigin));
        
velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_knock_vip) * 3000) ) / floatround(get_distance_f(vicoriginattorigin));
    }

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

    return 
1;
}

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

    
g_burning_duration[ID_FBURN]--
}

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

    
g_burning_duration[ID_FBURN]--
}

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

    
g_burning_duration[ID_FBURN]--
}

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

    
g_burning_duration[ID_FBURN]--
}


stock CreateGlass(id)
{
    new 
szOrigin[3];
    
get_user_origin(idszOrigin);

    
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
    
write_byte(TE_BREAKMODEL);
    
write_coordszOrigin[0] );
    
write_coordszOrigin[1] );
    
write_coordszOrigin[2] + 24 );
    
write_coord(16);
    
write_coord(16);
    
write_coord(16);
    
write_coordrandom_num(-5050) );
    
write_coordrandom_num(-5050) );
    
write_coord(25);
    
write_byte(10);
    
write_short(g_SpriteGlass);
    
write_byte(10);
    
write_byte(25);
    
write_byte(0x01);
    
message_end();
}

stock ChekKnife(id)
{
    
g_has_survivor[id] = false
}

stock ChatColor(const id, const input[], any:...)
{
    new 
count 1players[32]
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4")
    
replace_all(msg190"!y""^1")
    
replace_all(msg190"!team""^3")
    
    if (
idplayers[0] = id; else get_players(playerscount"ch")
    {
        for (new 
0counti++)
        {
            if (
is_user_connected(players[i]))
            {
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i]);
                
write_byte(players[i]);
                
write_string(msg);
                
message_end();
            }
        }
    }
Аватара пользователя
Squizz
 
Сообщения: 1
Зарегистрирован: 23 дек 2024, 04:58
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше недели
Языки программирования: Я ничего не знаю

Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 12