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

invalid cvar pointer  [Решено]

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

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

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

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

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

invalid cvar pointer

Сообщение Zeek » 29 мар 2017, 10:44

Всем привет, сегодня решил создать сервер, начинать с 0 было очень лень, и я решил заюзать сборку Пирога, который давно уже слили, уже давно был сервер с этой сборкой, хорошо окупился, ещё тогда проблем небыло, скачал ту же сборку, с того же ресурса, и запустил, конечно переделал там все, amxmodx обновил, dproto , и т.д . Решил я зайти на сервер, как называется протестировать, начал пробовать все, все отлично работает, кроме ножа босса, ну там менюшка типо есть такая, мол вибирите нож, все проверил, а вот в самом последнем , я когда его беру в консоль сервера жесткого спамит надписи:

Код: Выделить всё
L 03/29/2017 - 09:45:19: Start of error session.
L 03/29/2017 - 09:45:19: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20170329.log")
L 03/29/2017 - 09:45:19: [AMXX] Plugin file open error (plugin "azp_weapon_m14ebr.amxx")
L 03/29/2017 - 09:53:15: Invalid CVAR pointer
L 03
/29/2017 - 09:53:15: [AMXX] Displaying debug trace (plugin "zp_addon_knife_boss_terke.amxx")
L 03/29/2017 - 09:53:15: [AMXX] Run time error 10: native error (native "get_pcvar_float")
L 03/29/2017 - 09:53:15: [AMXX]    [0] zp_addon_knife_boss_terke.sma::fw_PlayerPreThink (line 809)
L 03/29/2017 - 09:53:15: Invalid CVAR pointer
L 03
/29/2017 - 09:53:15: [AMXX] Displaying debug trace (plugin "zp_addon_knife_boss_terke.amxx")
L 03/29/2017 - 09:53:15: [AMXX] Run time error 10: native error (native "get_pcvar_float")
L 03/29/2017 - 09:53:15: [AMXX]    [0] zp_addon_knife_boss_terke.sma::fw_PlayerPreThink (line 809)
L 03/29/2017 - 09:53:15: Invalid CVAR pointer
L 03
/29/2017 - 09:53:15: [AMXX] Displaying debug trace (plugin "zp_addon_knife_boss_terke.amxx")
L 03/29/2017 - 09:53:15: [AMXX] Run time error 10: native error (native "get_pcvar_float")
L 03/29/2017 - 09:53:15: [AMXX]    [0] zp_addon_knife_boss_terke.sma::fw_PlayerPreThink (line 809)
L 03/29/2017 - 09:53:15: Invalid CVAR pointer
L 03
/29/2017 - 09:53:15: [AMXX] Displaying debug trace (plugin "zp_addon_knife_boss_terke.amxx")
L 03/29/2017 - 09:53:15: [AMXX] Run time error 10: native error (native "get_pcvar_float")
L 03/29/2017 - 09:53:15: [AMXX]    [0] zp_addon_knife_boss_terke.sma::fw_PlayerPreThink (line 809)
L 03/29/2017 - 09:53:15: Invalid CVAR pointer
L 03
/29/2017 - 09:53:15: [AMXX] Displaying debug trace (plugin "zp_addon_knife_boss_terke.amxx")
L 03/29/2017 - 09:53:15: [AMXX] Run time error 10: native error (native "get_pcvar_float")
L 03/29/2017 - 09:53:15: [AMXX]    [0] zp_addon_knife_boss_terke.sma::fw_PlayerPreThink (line 809)
L 03/29/2017 - 09:53:15: Invalid CVAR pointer
L 03
/29/2017 - 09:53:15: [AMXX] Displaying debug trace (plugin "zp_addon_knife_boss_terke.amxx")
L 03/29/2017 - 09:53:15: [AMXX] Run time error 10: native error (native "get_pcvar_float")
L 03/29/2017 - 09:53:15: [AMXX]    [0] zp_addon_knife_boss_terke.sma::fw_PlayerPreThink (line 809)
L 03/29/2017 - 09:53:15: Invalid CVAR pointer
L 03
/29/2017 - 09:53:15: [AMXX] Displaying debug trace (plugin "zp_addon_knife_boss_terke.amxx")
L 03/29/2017 - 09:53:15: [AMXX] Run time error 10: native error (native "get_pcvar_float")
L 03/29/2017 - 09:53:15: [AMXX]    [0] zp_addon_knife_boss_terke.sma::fw_PlayerPreThink (line 809)
L 03/29/2017 - 09:53:15: Invalid CVAR pointer
L 03
/29/2017 - 09:53:15: [AMXX] Displaying debug trace (plugin "zp_addon_knife_boss_terke.amxx")
L 03/29/2017 - 09:53:15: [AMXX] Run time error 10: native error (native "get_pcvar_float")
L 03/29/2017 - 09:53:15: [AMXX]    [0] zp_addon_knife_boss_terke.sma::fw_PlayerPreThink (line 809)
L 03/29/2017 - 09:53:15: Invalid CVAR pointer
L 03
/29/2017 - 09:53:15: [AMXX] Displaying debug trace (plugin "zp_addon_knife_boss_terke.amxx")
L 03/29/2017 - 09:53:15: [AMXX] Run time error 10: native error (native "get_pcvar_float")
L 03/29/2017 - 09:53:15: [AMXX]    [0] zp_addon_knife_boss_terke.sma::fw_PlayerPreThink (line 809)
L 03/29/2017 - 09:53:15: Invalid CVAR pointer
L 03
/29/2017 - 09:53:15: [AMXX] Displaying debug trace (plugin "zp_addon_knife_boss_terke.amxx")
L 03/29/2017 - 09:53:15: [AMXX] Run time error 10: native error (native "get_pcvar_float")
L 03/29/2017 - 09:53:15: [AMXX]    [0] zp_addon_knife_boss_terke.sma::fw_PlayerPreThink (line 809)
L 03/29/2017 - 09:53:15: Invalid CVAR pointer
L 03
/29/2017 - 09:53:15: [AMXX] Displaying debug trace (plugin "zp_addon_knife_boss_terke.amxx")
L 03/29/2017 - 09:53:15: [AMXX] Run time error 10: native error (native "get_pcvar_float")
L 03/29/2017 - 09:53:15: [AMXX]    [0] zp_addon_knife_boss_terke.sma::fw_PlayerPreThink (line 809)
L 03/29/2017 - 09:53:15: Invalid CVAR pointer
L 03
/29/2017 - 09:53:15: [AMXX] Displaying debug trace (plugin "zp_addon_knife_boss_terke.amxx")
L 03/29/2017 - 09:53:15: [AMXX] Run time error 10: native error (native "get_pcvar_float")
L 03/29/2017 - 09:53:15: [AMXX]    [0] zp_addon_knife_boss_terke.sma::fw_PlayerPreThink (line 809)
L 03/29/2017 - 09:53:15: Invalid CVAR pointer
L 03
/29/2017 - 09:53:15: [AMXX] Displaying debug trace (plugin "zp_addon_knife_boss_terke.amxx")
L 03/29/2017 - 09:53:15: [AMXX] Run time error 10: native error (native "get_pcvar_float")
L 03/29/2017 - 09:53:15: [AMXX]    [0] zp_addon_knife_boss_terke.sma::fw_PlayerPreThink (line 809)
L 03/29/2017 - 09:53:15: Invalid CVAR pointer
L 03
/29/2017 - 09:53:15: [AMXX] Displaying debug trace (plugin "zp_addon_knife_boss_terke.amxx")
L 03/29/2017 - 09:53:15: [AMXX] Run time error 10: native error (native "get_pcvar_float")
L 03/29/2017 - 09:53:15: [AMXX]    [0] zp_addon_knife_boss_terke.sma::fw_PlayerPreThink (line 809)
L 03/29/2017 - 09:53:15: Invalid CVAR pointer
L 03
/29/2017 - 09:53:15: [AMXX] Displaying debug trace (plugin "zp_addon_knife_boss_terke.amxx")
L 03/29/2017 - 09:53:15: [AMXX] Run time error 10: native error (native "get_pcvar_float")
L 03/29/2017 - 09:53:15: [AMXX]    [0] zp_addon_knife_boss_terke.sma::fw_PlayerPreThink (line 809)
L 03/29/2017 - 09:53:15: Invalid CVAR pointer
L 03
/29/2017 - 09:53:15: [AMXX] Displaying debug trace (plugin "zp_addon_knife_boss_terke.amxx")
L 03/29/2017 - 09:53:15: [AMXX] Run time error 10: native error (native "get_pcvar_float")
L 03/29/2017 - 09:53:15: [AMXX]    [0] zp_addon_knife_boss_terke.sma::fw_PlayerPreThink (line 809)


Я решил убрать плагин с debug'a , запустил , уже было обрадовался, все работает, минуту пробегал с этим ножом, и тут он заменился вообще на другой нож, и опять начался спам в консоль, только уже с другими ошибками в логе:

Код: Выделить всё
L 03/29/2017 10:49:39Invalid CVAR pointer
L 03
/29/2017 10:49:39: [AMXXRun time error 10 (plugin "zp_addon_knife_boss_terke.amxx") (native "get_pcvar_float") - debug not enabled!
L 03/29/2017 10:49:39: [AMXXTo enable debug modeadd "debug" after the plugin name in plugins.ini (without quotes).
L 03/29/2017 10:49:39Invalid CVAR pointer
L 03
/29/2017 10:49:39: [AMXXRun time error 10 (plugin "zp_addon_knife_boss_terke.amxx") (native "get_pcvar_float") - debug not enabled!
L 03/29/2017 10:49:39: [AMXXTo enable debug modeadd "debug" after the plugin name in plugins.ini (without quotes).
L 03/29/2017 10:49:39Invalid CVAR pointer
L 03
/29/2017 10:49:39: [AMXXRun time error 10 (plugin "zp_addon_knife_boss_terke.amxx") (native "get_pcvar_float") - debug not enabled!
L 03/29/2017 10:49:39: [AMXXTo enable debug modeadd "debug" after the plugin name in plugins.ini (without quotes).
L 03/29/2017 10:49:39Invalid CVAR pointer
L 03
/29/2017 10:49:39: [AMXXRun time error 10 (plugin "zp_addon_knife_boss_terke.amxx") (native "get_pcvar_float") - debug not enabled!
L 03/29/2017 10:49:39: [AMXXTo enable debug modeadd "debug" after the plugin name in plugins.ini (without quotes).
L 03/29/2017 10:49:39Invalid CVAR pointer
L 03
/29/2017 10:49:39: [AMXXRun time error 10 (plugin "zp_addon_knife_boss_terke.amxx") (native "get_pcvar_float") - debug not enabled!
L 03/29/2017 10:49:39: [AMXXTo enable debug modeadd "debug" after the plugin name in plugins.ini (without quotes).
L 03/29/2017 10:49:39Invalid CVAR pointer
L 03
/29/2017 10:49:39: [AMXXRun time error 10 (plugin "zp_addon_knife_boss_terke.amxx") (native "get_pcvar_float") - debug not enabled!
L 03/29/2017 10:49:39: [AMXXTo enable debug modeadd "debug" after the plugin name in plugins.ini (without quotes).
L 03/29/2017 10:49:39Invalid CVAR pointer
L 03
/29/2017 10:49:39: [AMXXRun time error 10 (plugin "zp_addon_knife_boss_terke.amxx") (native "get_pcvar_float") - debug not enabled!
L 03/29/2017 10:49:39: [AMXXTo enable debug modeadd "debug" after the plugin name in plugins.ini (without quotes).
L 03/29/2017 10:49:39Invalid CVAR pointer
L 03
/29/2017 10:49:39: [AMXXRun time error 10 (plugin "zp_addon_knife_boss_terke.amxx") (native "get_pcvar_float") - debug not enabled!
L 03/29/2017 10:49:39: [AMXXTo enable debug modeadd "debug" after the plugin name in plugins.ini (without quotes).
L 03/29/2017 10:49:39Invalid CVAR pointer
L 03
/29/2017 10:49:39: [AMXXRun time error 10 (plugin "zp_addon_knife_boss_terke.amxx") (native "get_pcvar_float") - debug not enabled!
L 03/29/2017 10:49:39: [AMXXTo enable debug modeadd "debug" after the plugin name in plugins.ini (without quotes).
L 03/29/2017 10:49:39Invalid CVAR pointer
L 03
/29/2017 10:49:39: [AMXXRun time error 10 (plugin "zp_addon_knife_boss_terke.amxx") (native "get_pcvar_float") - debug not enabled!
L 03/29/2017 10:49:39: [AMXXTo enable debug modeadd "debug" after the plugin name in plugins.ini (without quotes).
 
Последний раз редактировалось Zeek 29 мар 2017, 10:55, всего редактировалось 1 раз.
Аватара пользователя
Zeek
 
Сообщения: 6
Зарегистрирован: 29 мар 2017, 10:35
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Языки программирования: Php

Re: invalid cvar pointer

Сообщение Subb98 » 29 мар 2017, 10:54

Данная ошибка означает, что в силу каких-то причин указатель квара (pointer) оказался не действительным. Проверьте, существует ли вообще такой квар. Проверьте, существует ли он на момент получения указателя.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: invalid cvar pointer

Сообщение Zeek » 29 мар 2017, 11:01

Subb98 писал(а):Данная ошибка означает, что в силу каких-то причин указатель квара (pointer) оказался не действительным. Проверьте, существует ли вообще такой квар. Проверьте, существует ли он на момент получения указателя.


Либо мне память изменяет, либо тут вообще такого нет, так.. что делать? там где-то слов 200 cvar , поинтер вообще нет, что делать-то?

Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <fakemeta>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>

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

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

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

new KNIFE1_V_MODEL[] = "models/Reega_kz/v_crowbar.mdl"
new KNIFE1_P_MODEL[] = "models/Reega_kz/p_crowbar.mdl"

new KNIFE2_V_MODEL[] = "models/Reega_kz/v_chainsaw.mdl"
new KNIFE2_P_MODEL[] = "models/Reega_kz/p_chainsaw.mdl"

new KNIFE3_V_MODEL[] = "models/Reega_kz/v_hammer.mdl"
new KNIFE3_P_MODEL[] = "models/Reega_kz/p_hammer.mdl"

new KNIFE4_V_MODEL[] = "models/Reega_kz/v_axe_red.mdl"
new KNIFE4_P_MODEL[] = "models/Reega_kz/p_axe_red.mdl"

new KNIFE5_V_MODEL[] = "models/Reega_kz/v_skull_fire.mdl"
new KNIFE5_P_MODEL[] = "models/Reega_kz/p_skull_fire.mdl"

/* new KNIFESURV_V_MODEL[] = "models/Reega_kz/v_crowbar.mdl"
new KNIFESURV_P_MODEL[] = "models/Reega_kz/p_crowbar.mdl" */


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

new cvar_knock_axecvar_speed_axecvar_damage_axe
new cvar_knock_strongcvar_speed_strongcvar_damage_strong
new cvar_knock_combatcvar_speed_combatcvar_damage_combat
new cvar_knock_hammercvar_speed_hammercvar_damage_hammer
new cvar_knock_saxecvar_speed_saxecvar_damage_saxe
// new cvar_knock_surv, cvar_speed_surv, cvar_damage_surv

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

new const 
axe_sounds[][] =
{
        
"Reega_kz/crowbarcraft_draw.wav",
        
"Reega_kz/crowbarcraft_hit1.wav",
        
"Reega_kz/crowbarcraft_hit2.wav",
        
"Reega_kz/crowbarcraft_hitwall.wav",
        
"Reega_kz/crowbarcraft_slash1.wav",
        
"Reega_kz/crowbarcraft_stab.wav"
}

new const 
strong_sounds[][] =
{
        
"Reega_kz/chainsaw_draw.wav",
        
"Reega_kz/chainsaw_hit1.wav",
        
"Reega_kz/chainsaw_hit2.wav",
        
"Reega_kz/chainsaw_hitwall1.wav",
        
"Reega_kz/chainsaw_slash1.wav",
        
"Reega_kz/chainsaw_hit2.wav"
}

new const 
combat_sounds[][] =
{
        
"Reega_kz/hammer_draw.wav",
        
"Reega_kz/hammer_hit_01.wav",
        
"Reega_kz/hammer_hit_02.wav",
        
"Reega_kz/hammer_hitwall1.wav",
        
"Reega_kz/hammer_slash1.wav",
        
"Reega_kz/hammer_stab.wav"
}

new const 
hammer_sounds[][] =
{
        
"Reega_kz/hammer_axe_draw.wav",
        
"Reega_kz/hammer_hit_01.wav",
        
"Reega_kz/hammer_hit_02.wav",
        
"Reega_kz/hammer_hitwall1.wav",
        
"Reega_kz/hammer_axe_slash1.wav",
        
"Reega_kz/hammer_stab.wav"
}

new const 
saxe_sounds[][] =
{
        
"Reega_kz/hammer_axe_draw.wav",
        
"Reega_kz/hammer_hit_01.wav",
        
"Reega_kz/hammer_hit_02.wav",
        
"Reega_kz/hammer_hitwall1.wav",
        
"Reega_kz/hammer_axe_slash1.wav",
        
"Reega_kz/hammer_stab.wav"
}

/* new const surv_sounds[][] =
{
        "Reega_kz/crowbarcraft_draw.wav",
        "Reega_kz/crowbarcraft_hit1.wav",
        "Reega_kz/crowbarcraft_hit2.wav",
        "Reega_kz/crowbarcraft_hitwall.wav",
        "Reega_kz/crowbarcraft_slash1.wav",
        "Reega_kz/crowbarcraft_stab.wav"
} */

//new g_result[33]

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

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

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

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

        
cvar_speed_axe register_cvar("zp_axe_speed""250.0")
        
cvar_damage_axe register_cvar("zp_axe_damage""2.3")
        
cvar_knock_axe register_cvar("zp_axe_knockback""2.0")
        
        
cvar_speed_strong register_cvar("zp_strong_speed""235.0")
        
cvar_damage_strong register_cvar("zp_strong_damage""4.5")
        
cvar_knock_strong register_cvar("zp_strong_knockback""2.6")
        
        
cvar_speed_combat register_cvar("zp_combat_speed""260.0")
        
cvar_damage_combat register_cvar("zp_combat_damage""8.3")
        
cvar_knock_combat register_cvar("zp_combat_knockback""2.5")
        
        
cvar_speed_hammer register_cvar("zp_hammer_speed""275.0")
        
cvar_damage_hammer register_cvar("zp_hammer_damage""9.2")
        
cvar_knock_hammer register_cvar("zp_hammer_knockback""6.0")
        
        
cvar_knock_saxe register_cvar("zp_saxe_speed""290.0")
        
cvar_damage_saxe register_cvar("zp_saxe_damage""10.3")
        
cvar_knock_saxe register_cvar("zp_saxe_knockback""6.0")
        
        
/* cvar_speed_surv = register_cvar("zp_axe_surv_speed", "273.0")
        cvar_damage_surv = register_cvar("zp_axe_surv_damage", "9.5")
        cvar_knock_surv = register_cvar("zp_axe_surv_knockback", "7.0") */
}

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

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

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

                
iAnim get_esES_HandleES_Sequence );

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

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

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

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

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

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

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

    engclient_cmd
(id"weapon_knife")

    return 
PLUGIN_HANDLED
}

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(KNIFESURV_V_MODEL)
       // precache_model(KNIFESURV_P_MODEL)
        
        /*precache_generic("sprites/zm_knife_strong.txt")
        precache_generic("sprites/zm_knife_hammer.txt")
        precache_generic("sprites/zm_knife_combat.txt")
        precache_generic("sprites/zm_knife_axe.txt")
        
        precache_generic("sprites/zm_cso/640hud7.spr")
        precache_generic("sprites/zm_cso/640hud21.spr")
        precache_generic("sprites/zm_cso/640hud23.spr")
        precache_generic("sprites/zm_cso/640hud38.spr")
        precache_generic("sprites/zm_cso/640hud39.spr")*/
        
        
precache_sound(g_sound_knife)

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

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

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

        for(new 
0sizeof hammer_soundsi++)
                
precache_sound(hammer_sounds[i])
                
      
/*  for(new i = 0; i < sizeof surv_sounds; i++)
                precache_sound(surv_sounds[i]) */
}

public 
knifemenu(id)
{
    new 
menu menu_create("Выбор Ножей by \rReega!","menu_handle")

        
menu_additem(menu"Энерджи Лом \r[New]""1")
        
menu_additem(menu"Бензопила \r[NeW]^n""2")
        
    if(
get_user_flags(id) & VIP)
        
menu_additem(menu"Хаммер [VIP]""3")
    else
        
menu_additem(menu"\dХаммер [VIP]""3")

    if(
get_user_flags(id) & ADMIN)
        
menu_additem(menu"Топор [Админ]""4")
    else
        
menu_additem(menu"\dТопор [Админ]""4")
        
    if(
get_user_flags(id) & BOSS)
        
menu_additem(menu"Огненный Топор [Босс]""5")
    else
        
menu_additem(menu"\dОгненный Топор [Босс]""5")
        
menu_setprop(menuMPROP_PERPAGE0)

    
menu_display(idmenu0)
}

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


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

    
client_cmd(id"setinfo Knifes 1")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
}

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

    
client_cmd(id"setinfo Knifes 2")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
}

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

    
client_cmd(id"setinfo Knifes 3")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
    }
}

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

    
client_cmd(id"setinfo Knifes 4")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
        }

}

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

    
client_cmd(id"setinfo Knifes 5")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
        }

}

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

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

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

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

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

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

                        
if (flags FL_WATERJUMP)
                                return 
FMRES_IGNORED

                        
if (waterlvl 1)
                                return 
FMRES_IGNORED

                        
new Float:fVelocity]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 325

                        set_pev
id pev_velocity fVelocity )

                        
set_pev(idpev_gaitsequence6)
                }
        }
        
        if(
weapon == CSW_KNIFE && g_has_strong[id])
        {
                
set_user_maxspeed(id,get_pcvar_float(cvar_speed_strong)) 
                
                if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP))
                {
                        new 
flags pev(idpev_flags)
                        new 
waterlvl pev(idpev_waterlevel)
                        
                        if (!(
flags FL_ONGROUND))
                                return 
FMRES_IGNORED

                        
if (flags FL_WATERJUMP)
                                return 
FMRES_IGNORED

                        
if (waterlvl 1)
                                return 
FMRES_IGNORED

                        
new Float:fVelocity]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 320

                        set_pev
id pev_velocity fVelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }       
        }

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

                        
if (flags FL_WATERJUMP)
                                return 
FMRES_IGNORED

                        
if (waterlvl 1)
                                return 
FMRES_IGNORED

                        
new Float:fVelocity]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 320

                        set_pev
id pev_velocity fVelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
                
set_user_maxspeed(id,get_pcvar_float(cvar_speed_combat))  
        }
        if (
weapon == CSW_KNIFE && g_has_hammer[id])
        {
                if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP))
                {
                        new 
flags pev(idpev_flags)
                        new 
waterlvl pev(idpev_waterlevel)
                        
                        if (!(
flags FL_ONGROUND))
                                return 
FMRES_IGNORED

                        
if (flags FL_WATERJUMP)
                                return 
FMRES_IGNORED

                        
if (waterlvl 1)
                                return 
FMRES_IGNORED

                        
new Float:fVelocity]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 345

                        set_pev
id pev_velocity fVelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
                
set_user_maxspeed(idget_pcvar_float(cvar_speed_hammer))
        }
        if (
weapon == CSW_KNIFE && g_has_saxe[id])
        {
                if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP))
                {
                        new 
flags pev(idpev_flags)
                        new 
waterlvl pev(idpev_waterlevel)
                        
                        if (!(
flags FL_ONGROUND))
                                return 
FMRES_IGNORED

                        
if (flags FL_WATERJUMP)
                                return 
FMRES_IGNORED

                        
if (waterlvl 1)
                                return 
FMRES_IGNORED

                        
new Float:fVelocity]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 345

                        set_pev
id pev_velocity fVelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
                
set_user_maxspeed(idget_pcvar_float(cvar_speed_saxe))
        }
        
/*if(weapon == CSW_KNIFE && g_has_survivoraxe[id])
        {
                if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
                {
                        new flags = pev(id, pev_flags)
                        new waterlvl = pev(id, pev_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( id , pev_velocity , fVelocity )
        
            fVelocity[ 2 ] += 357

                        set_pev( id , pev_velocity , fVelocity )
                        
                        set_pev(id, pev_gaitsequence, 6)
                }
                set_user_maxspeed(id, get_pcvar_float(cvar_speed_surv))
        }
        */
        
return FMRES_IGNORED
}  

public 
fw_TakeDamage(victiminflictorattackerFloat:damage_type)
{
        if(!
is_user_connected(attacker))
                return 
HAM_IGNORED
        
        
if(zp_get_user_zombie(attacker))
                return 
HAM_IGNORED
        
        
if(get_user_weapon(attacker) == CSW_KNIFE)
        {
                if (
g_has_axe[attacker])
                {
                        
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_axe)) 
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_axe);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);   
                }
                else if (
g_has_strong[attacker])
                {       
                        
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_strong)) 
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_strong);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);   
                }
                else if (
g_has_combat[attacker])
                {       
                        
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_combat)) 
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_combat);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);   
                }
                else if (
g_has_hammer[attacker])
                {       
                        
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_hammer)) 
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_hammer);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);
                }
                else if (
g_has_saxe[attacker])
                {       
                        
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_saxe)) 
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_saxe);
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);
                }
                
/* else if(g_has_survivoraxe[attacker])
                {       
                        SetHamParamFloat(4, damage * get_pcvar_float(cvar_damage_surv)) 
                        
                        new Float:vec[3];
                        new Float:oldvelo[3];
                        pev(victim, pev_velocity, oldvelo);
                        create_velocity_vector(victim , attacker , vec);
                        vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_surv);
                        vec[1] += oldvelo[1] + 0;
                        set_pev(victim, pev_velocity, vec);
                } */
                
more_blood(victim)
        }

        return 
HAM_IGNORED
}

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

        
if (!zp_get_user_zombie(iattacker))
        {
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_axe[iattacker])
                                
set_msg_arg_string(4"axe")
                }
        
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_strong[iattacker])
                                
set_msg_arg_string(4"hatchet")
                }
        
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_combat[iattacker])
                                
set_msg_arg_string(4"mastercombat")
                }
        
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_hammer[iattacker])
                                
set_msg_arg_string(4"hammer")
                }
                
                 if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_saxe[iattacker])
                                
set_msg_arg_string(4"skullaxe")
                }
                
                
/*if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(g_has_survivoraxe[iattacker])
                                set_msg_arg_string(4, "survivoraxe")
                } */
        
                
if(equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(!
g_has_axe[iattacker] && !g_has_strong[iattacker] && !g_has_combat[iattacker] && !g_has_hammer[iattacker] && !zp_get_user_zombie(iattacker))
                                
set_msg_arg_string(4"knife")
                }
        }
        if (
zp_get_user_zombie(iattacker))
        {
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_axe[iattacker] || g_has_strong[iattacker] || g_has_combat[iattacker] || g_has_hammer[iattacker])
                                
set_msg_arg_string(4"Claws")
                }
        }
        return 
PLUGIN_CONTINUE
}

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

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

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

        new 
Float:largestnum 0.0;

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

        
origin2[0] /= largestnum;
        
origin2[1] /= largestnum;
        
        if (
g_has_axe[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_axe) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_axe) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
        else if (
g_has_strong[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_strong) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_strong) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
        else if (
g_has_combat[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_combat) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_combat) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
        else if (
g_has_hammer[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_hammer) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_hammer) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
        else if (
g_has_saxe[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_saxe) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_saxe) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
       
/* else if(g_has_survivoraxe[attacker])
        {
                velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_surv) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
                velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_surv) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
        } */
 
        
if(velocity[0] <= 20.0 || velocity[1] <= 20.0)
        
velocity[2] = random_float(200.0 275.0);

        return 
1;
}

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

        return 
1;
}       

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

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

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

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

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

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

    switch(
str[0])
    {
        case 
'1':
        {
                
g_has_axe[id] = true
                g_has_strong
[id] = false
                g_has_combat
[id] = false
                g_has_hammer
[id] = false
                g_has_saxe
[id] = false
        
}
        case 
'2':
        {
                
g_has_axe[id] = false
                g_has_strong
[id] = true
                g_has_combat
[id] = false
                g_has_hammer
[id] = false    
                g_has_saxe
[id] = false
        
}
        case 
'3':
        {
            if(
get_user_flags(id) & VIP)
            {
                
g_has_axe[id] = false
                g_has_strong
[id] = false
                g_has_combat
[id] = true
                g_has_hammer
[id] = false    
                g_has_saxe
[id] = false
            
}                
            else 
random_num(buy_knife1(id) , buy_knife2(id))
        }
        case 
'4':
        {
            if(
get_user_flags(id) & ADMIN)
            {
                    
g_has_axe[id] = false
                    g_has_strong
[id] = false
                g_has_combat
[id] = false
                    g_has_hammer
[id] = true    
                    g_has_saxe
[id] = false
            
}
            else 
random_num(buy_knife1(id) , buy_knife2(id))
        }
        case 
'5':
        {
            if(
get_user_flags(id) & BOSS)
            {
                    
g_has_axe[id] = false
                    g_has_strong
[id] = false
                g_has_combat
[id] = false
                    g_has_hammer
[id] = false    
                    g_has_saxe
[id] = true
            
}
            else 
random_num(buy_knife1(id) , buy_knife2(id))
        }
    }
        
//g_has_survivoraxe[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();
            }
        }
    }
Аватара пользователя
Zeek
 
Сообщения: 6
Зарегистрирован: 29 мар 2017, 10:35
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Языки программирования: Php

Re: invalid cvar pointer  [Решено]

Сообщение Subb98 » 29 мар 2017, 11:13

Код: Выделить всё
        cvar_speed_axe register_cvar("zp_axe_speed""250.0")
        
cvar_damage_axe register_cvar("zp_axe_damage""2.3")
        
cvar_knock_axe register_cvar("zp_axe_knockback""2.0")
        
        
cvar_speed_strong register_cvar("zp_strong_speed""235.0")
        
cvar_damage_strong register_cvar("zp_strong_damage""4.5")
        
cvar_knock_strong register_cvar("zp_strong_knockback""2.6")
        
        
cvar_speed_combat register_cvar("zp_combat_speed""260.0")
        
cvar_damage_combat register_cvar("zp_combat_damage""8.3")
        
cvar_knock_combat register_cvar("zp_combat_knockback""2.5")
        
        
cvar_speed_hammer register_cvar("zp_hammer_speed""275.0")
        
cvar_damage_hammer register_cvar("zp_hammer_damage""9.2")
        
cvar_knock_hammer register_cvar("zp_hammer_knockback""6.0")
        
        
cvar_knock_saxe register_cvar("zp_saxe_speed""290.0")
        
cvar_damage_saxe register_cvar("zp_saxe_damage""10.3")
        
cvar_knock_saxe register_cvar("zp_saxe_knockback""6.0"

Все эти переменные - и есть указатели (pointer'ы).
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: invalid cvar pointer

Сообщение Zeek » 29 мар 2017, 11:25

Subb98 писал(а):
Код: Выделить всё
        cvar_speed_axe = register_cvar("zp_axe_speed", "250.0")
        cvar_damage_axe = register_cvar("zp_axe_damage", "2.3")
        cvar_knock_axe = register_cvar("zp_axe_knockback", "2.0")
        
        cvar_speed_strong 
= register_cvar("zp_strong_speed", "235.0")
        cvar_damage_strong = register_cvar("zp_strong_damage", "4.5")
        cvar_knock_strong = register_cvar("zp_strong_knockback", "2.6")
        
        cvar_speed_combat 
= register_cvar("zp_combat_speed", "260.0")
        cvar_damage_combat = register_cvar("zp_combat_damage", "8.3")
        cvar_knock_combat = register_cvar("zp_combat_knockback", "2.5")
        
        cvar_speed_hammer 
= register_cvar("zp_hammer_speed", "275.0")
        cvar_damage_hammer = register_cvar("zp_hammer_damage", "9.2")
        cvar_knock_hammer = register_cvar("zp_hammer_knockback", "6.0")
        
        cvar_knock_saxe 
= register_cvar("zp_saxe_speed", "290.0")
        cvar_damage_saxe = register_cvar("zp_saxe_damage", "10.3")
        cvar_knock_saxe = register_cvar("zp_saxe_knockback", "6.0")

Все эти переменные - и есть указатели (pointer'ы).


Сорь, я тупой. Стоит ли его ставить на debug ? он просто просит, всю консоль засирает, и сервер падает.. а если поставить, он просит снять, бред..
Аватара пользователя
Zeek
 
Сообщения: 6
Зарегистрирован: 29 мар 2017, 10:35
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Языки программирования: Php

Re: invalid cvar pointer

Сообщение Subb98 » 29 мар 2017, 12:53

Zeek, самым простым решением, если нет желания разбираться и если нет нужды менять значения этих кваров, например, на отдельных картах или "на лету" - просто "загнать" свойства в константы и проблемы не будет.

Добавлено спустя 1 минуту 3 секунды:
Например:

Код: Выделить всё
const Float:cvar_speed_axe = 250.0


Добавлено спустя 47 секунд:
И, конечно, в самом коде уже убрать получение значения кваров и вставить просто значения констант.

Добавлено спустя 1 час 14 минут 6 секунд:
Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <fakemeta>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>

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

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

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

new KNIFE1_V_MODEL[] = "models/Reega_kz/v_crowbar.mdl"
new KNIFE1_P_MODEL[] = "models/Reega_kz/p_crowbar.mdl"

new KNIFE2_V_MODEL[] = "models/Reega_kz/v_chainsaw.mdl"
new KNIFE2_P_MODEL[] = "models/Reega_kz/p_chainsaw.mdl"

new KNIFE3_V_MODEL[] = "models/Reega_kz/v_hammer.mdl"
new KNIFE3_P_MODEL[] = "models/Reega_kz/p_hammer.mdl"

new KNIFE4_V_MODEL[] = "models/Reega_kz/v_axe_red.mdl"
new KNIFE4_P_MODEL[] = "models/Reega_kz/p_axe_red.mdl"

new KNIFE5_V_MODEL[] = "models/Reega_kz/v_skull_fire.mdl"
new KNIFE5_P_MODEL[] = "models/Reega_kz/p_skull_fire.mdl"

/* new KNIFESURV_V_MODEL[] = "models/Reega_kz/v_crowbar.mdl"
new KNIFESURV_P_MODEL[] = "models/Reega_kz/p_crowbar.mdl" */


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

const Float:cvar_speed_axe 250.0;
const 
Float:cvar_damage_axe 2.3;
const 
Float:cvar_knock_axe 2.0;

const 
Float:cvar_speed_strong 235.0;
const 
Float:cvar_damage_strong 4.5;
const 
Float:cvar_knock_strong 2.6;

const 
Float:cvar_speed_combat 260.0;
const 
Float:cvar_damage_combat 8.3;
const 
Float:cvar_knock_combat 2.5;

const 
Float:cvar_speed_hammer 275.0;
const 
Float:cvar_damage_hammer 9.2;
const 
Float:cvar_knock_hammer 6.0;

const 
Float:cvar_knock_saxe 290.0;
const 
Float:cvar_damage_saxe 10.3;
const 
Float:cvar_knock_saxe 6.0;
// new cvar_knock_surv, cvar_speed_surv, cvar_damage_surv

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

new const 
axe_sounds[][] =
{
        
"Reega_kz/crowbarcraft_draw.wav",
        
"Reega_kz/crowbarcraft_hit1.wav",
        
"Reega_kz/crowbarcraft_hit2.wav",
        
"Reega_kz/crowbarcraft_hitwall.wav",
        
"Reega_kz/crowbarcraft_slash1.wav",
        
"Reega_kz/crowbarcraft_stab.wav"
}

new const 
strong_sounds[][] =
{
        
"Reega_kz/chainsaw_draw.wav",
        
"Reega_kz/chainsaw_hit1.wav",
        
"Reega_kz/chainsaw_hit2.wav",
        
"Reega_kz/chainsaw_hitwall1.wav",
        
"Reega_kz/chainsaw_slash1.wav",
        
"Reega_kz/chainsaw_hit2.wav"
}

new const 
combat_sounds[][] =
{
        
"Reega_kz/hammer_draw.wav",
        
"Reega_kz/hammer_hit_01.wav",
        
"Reega_kz/hammer_hit_02.wav",
        
"Reega_kz/hammer_hitwall1.wav",
        
"Reega_kz/hammer_slash1.wav",
        
"Reega_kz/hammer_stab.wav"
}

new const 
hammer_sounds[][] =
{
        
"Reega_kz/hammer_axe_draw.wav",
        
"Reega_kz/hammer_hit_01.wav",
        
"Reega_kz/hammer_hit_02.wav",
        
"Reega_kz/hammer_hitwall1.wav",
        
"Reega_kz/hammer_axe_slash1.wav",
        
"Reega_kz/hammer_stab.wav"
}

new const 
saxe_sounds[][] =
{
        
"Reega_kz/hammer_axe_draw.wav",
        
"Reega_kz/hammer_hit_01.wav",
        
"Reega_kz/hammer_hit_02.wav",
        
"Reega_kz/hammer_hitwall1.wav",
        
"Reega_kz/hammer_axe_slash1.wav",
        
"Reega_kz/hammer_stab.wav"
}

/* new const surv_sounds[][] =
{
        "Reega_kz/crowbarcraft_draw.wav",
        "Reega_kz/crowbarcraft_hit1.wav",
        "Reega_kz/crowbarcraft_hit2.wav",
        "Reega_kz/crowbarcraft_hitwall.wav",
        "Reega_kz/crowbarcraft_slash1.wav",
        "Reega_kz/crowbarcraft_stab.wav"
} */

//new g_result[33]

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

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

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

    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage");
    
RegisterHam(Ham_Spawn"player""fw_playerspawn_post"1)
    
RegisterHam(Ham_Use"func_tank""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tankmortar""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tankrocket""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tanklaser""fw_UseStationary_Post"1)
    
    
register_message(get_user_msgid("DeathMsg"), "message_DeathMsg");
}

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

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

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

                
iAnim get_esES_HandleES_Sequence );

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

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

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

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

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

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

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

    engclient_cmd
(id"weapon_knife")

    return 
PLUGIN_HANDLED
}

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(KNIFESURV_V_MODEL)
       // precache_model(KNIFESURV_P_MODEL)
        
        /*precache_generic("sprites/zm_knife_strong.txt")
        precache_generic("sprites/zm_knife_hammer.txt")
        precache_generic("sprites/zm_knife_combat.txt")
        precache_generic("sprites/zm_knife_axe.txt")
        
        precache_generic("sprites/zm_cso/640hud7.spr")
        precache_generic("sprites/zm_cso/640hud21.spr")
        precache_generic("sprites/zm_cso/640hud23.spr")
        precache_generic("sprites/zm_cso/640hud38.spr")
        precache_generic("sprites/zm_cso/640hud39.spr")*/
        
        
precache_sound(g_sound_knife)

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

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

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

        for(new 
0sizeof hammer_soundsi++)
                
precache_sound(hammer_sounds[i])
                
      
/*  for(new i = 0; i < sizeof surv_sounds; i++)
                precache_sound(surv_sounds[i]) */
}

public 
knifemenu(id)
{
    new 
menu menu_create("Выбор Ножей by \rReega!","menu_handle")

        
menu_additem(menu"Энерджи Лом \r[New]""1")
        
menu_additem(menu"Бензопила \r[NeW]^n""2")
        
    if(
get_user_flags(id) & VIP)
        
menu_additem(menu"Хаммер [VIP]""3")
    else
        
menu_additem(menu"\dХаммер [VIP]""3")

    if(
get_user_flags(id) & ADMIN)
        
menu_additem(menu"Топор [Админ]""4")
    else
        
menu_additem(menu"\dТопор [Админ]""4")
        
    if(
get_user_flags(id) & BOSS)
        
menu_additem(menu"Огненный Топор [Босс]""5")
    else
        
menu_additem(menu"\dОгненный Топор [Босс]""5")
        
menu_setprop(menuMPROP_PERPAGE0)

    
menu_display(idmenu0)
}

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


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

    
client_cmd(id"setinfo Knifes 1")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
}

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

    
client_cmd(id"setinfo Knifes 2")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
}

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

    
client_cmd(id"setinfo Knifes 3")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
    }
}

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

    
client_cmd(id"setinfo Knifes 4")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
        }

}

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

    
client_cmd(id"setinfo Knifes 5")

    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
        }

}

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

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

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

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

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

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

                        
if (flags FL_WATERJUMP)
                                return 
FMRES_IGNORED

                        
if (waterlvl 1)
                                return 
FMRES_IGNORED

                        
new Float:fVelocity]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 325

                        set_pev
id pev_velocity fVelocity )

                        
set_pev(idpev_gaitsequence6)
                }
        }
        
        if(
weapon == CSW_KNIFE && g_has_strong[id])
        {
                
set_user_maxspeed(id,cvar_speed_strong
                
                if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP))
                {
                        new 
flags pev(idpev_flags)
                        new 
waterlvl pev(idpev_waterlevel)
                        
                        if (!(
flags FL_ONGROUND))
                                return 
FMRES_IGNORED

                        
if (flags FL_WATERJUMP)
                                return 
FMRES_IGNORED

                        
if (waterlvl 1)
                                return 
FMRES_IGNORED

                        
new Float:fVelocity]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 320

                        set_pev
id pev_velocity fVelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }       
        }

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

                        
if (flags FL_WATERJUMP)
                                return 
FMRES_IGNORED

                        
if (waterlvl 1)
                                return 
FMRES_IGNORED

                        
new Float:fVelocity]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 320

                        set_pev
id pev_velocity fVelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
                
set_user_maxspeed(id,cvar_speed_combat)  
        }
        if (
weapon == CSW_KNIFE && g_has_hammer[id])
        {
                if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP))
                {
                        new 
flags pev(idpev_flags)
                        new 
waterlvl pev(idpev_waterlevel)
                        
                        if (!(
flags FL_ONGROUND))
                                return 
FMRES_IGNORED

                        
if (flags FL_WATERJUMP)
                                return 
FMRES_IGNORED

                        
if (waterlvl 1)
                                return 
FMRES_IGNORED

                        
new Float:fVelocity]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 345

                        set_pev
id pev_velocity fVelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
                
set_user_maxspeed(idcvar_speed_hammer)
        }
        if (
weapon == CSW_KNIFE && g_has_saxe[id])
        {
                if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP))
                {
                        new 
flags pev(idpev_flags)
                        new 
waterlvl pev(idpev_waterlevel)
                        
                        if (!(
flags FL_ONGROUND))
                                return 
FMRES_IGNORED

                        
if (flags FL_WATERJUMP)
                                return 
FMRES_IGNORED

                        
if (waterlvl 1)
                                return 
FMRES_IGNORED

                        
new Float:fVelocity]
                        
pevid pev_velocity fVelocity )
        
            
fVelocity] += 345

                        set_pev
id pev_velocity fVelocity )
                        
                        
set_pev(idpev_gaitsequence6)
                }
                
                
set_user_maxspeed(idcvar_speed_saxe)
        }
        
/*if(weapon == CSW_KNIFE && g_has_survivoraxe[id])
        {
                if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
                {
                        new flags = pev(id, pev_flags)
                        new waterlvl = pev(id, pev_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( id , pev_velocity , fVelocity )
        
            fVelocity[ 2 ] += 357

                        set_pev( id , pev_velocity , fVelocity )
                        
                        set_pev(id, pev_gaitsequence, 6)
                }
                set_user_maxspeed(id, get_pcvar_float(cvar_speed_surv))
        }
        */
        
return FMRES_IGNORED
}  

public 
fw_TakeDamage(victiminflictorattackerFloat:damage_type)
{
        if(!
is_user_connected(attacker))
                return 
HAM_IGNORED
        
        
if(zp_get_user_zombie(attacker))
                return 
HAM_IGNORED
        
        
if(get_user_weapon(attacker) == CSW_KNIFE)
        {
                if (
g_has_axe[attacker])
                {
                        
SetHamParamFloat(4damage cvar_damage_axe
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + cvar_knock_axe;
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);   
                }
                else if (
g_has_strong[attacker])
                {       
                        
SetHamParamFloat(4damage cvar_damage_strong
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + cvar_knock_strong;
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);   
                }
                else if (
g_has_combat[attacker])
                {       
                        
SetHamParamFloat(4damage cvar_damage_combat
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + cvar_knock_combat;
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);   
                }
                else if (
g_has_hammer[attacker])
                {       
                        
SetHamParamFloat(4damage cvar_damage_hammer)
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + cvar_knock_hammer;
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);
                }
                else if (
g_has_saxe[attacker])
                {       
                        
SetHamParamFloat(4damage cvar_damage_saxe
                        
                        new 
Float:vec[3];
                        new 
Float:oldvelo[3];
                        
pev(victimpev_velocityoldvelo);
                        
create_velocity_vector(victim attacker vec);
                        
vec[0] += oldvelo[0] + cvar_knock_saxe;
                        
vec[1] += oldvelo[1] + 0;
                        
set_pev(victimpev_velocityvec);
                }
                
/* else if(g_has_survivoraxe[attacker])
                {       
                        SetHamParamFloat(4, damage * get_pcvar_float(cvar_damage_surv)) 
                        
                        new Float:vec[3];
                        new Float:oldvelo[3];
                        pev(victim, pev_velocity, oldvelo);
                        create_velocity_vector(victim , attacker , vec);
                        vec[0] += oldvelo[0] + get_pcvar_float(cvar_knock_surv);
                        vec[1] += oldvelo[1] + 0;
                        set_pev(victim, pev_velocity, vec);
                } */
                
more_blood(victim)
        }

        return 
HAM_IGNORED
}

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

        
if (!zp_get_user_zombie(iattacker))
        {
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_axe[iattacker])
                                
set_msg_arg_string(4"axe")
                }
        
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_strong[iattacker])
                                
set_msg_arg_string(4"hatchet")
                }
        
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_combat[iattacker])
                                
set_msg_arg_string(4"mastercombat")
                }
        
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_hammer[iattacker])
                                
set_msg_arg_string(4"hammer")
                }
                
                 if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_saxe[iattacker])
                                
set_msg_arg_string(4"skullaxe")
                }
                
                
/*if(equal(szTruncatedWeapon, "knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(g_has_survivoraxe[iattacker])
                                set_msg_arg_string(4, "survivoraxe")
                } */
        
                
if(equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(!
g_has_axe[iattacker] && !g_has_strong[iattacker] && !g_has_combat[iattacker] && !g_has_hammer[iattacker] && !zp_get_user_zombie(iattacker))
                                
set_msg_arg_string(4"knife")
                }
        }
        if (
zp_get_user_zombie(iattacker))
        {
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_axe[iattacker] || g_has_strong[iattacker] || g_has_combat[iattacker] || g_has_hammer[iattacker])
                                
set_msg_arg_string(4"Claws")
                }
        }
        return 
PLUGIN_CONTINUE
}

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

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

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

        new 
Float:largestnum 0.0;

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

        
origin2[0] /= largestnum;
        
origin2[1] /= largestnum;
        
        if (
g_has_axe[attacker])
        {
                
velocity[0] = ( origin2[0] * cvar_knock_axe 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * cvar_knock_axe 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
        else if (
g_has_strong[attacker])
        {
                
velocity[0] = ( origin2[0] * cvar_knock_strong 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * cvar_knock_strong 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
        else if (
g_has_combat[attacker])
        {
                
velocity[0] = ( origin2[0] * cvar_knock_combat 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * cvar_knock_combat 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
        else if (
g_has_hammer[attacker])
        {
                
velocity[0] = ( origin2[0] * cvar_knock_hammer 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * cvar_knock_hammer 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
        else if (
g_has_saxe[attacker])
        {
                
velocity[0] = ( origin2[0] * cvar_knock_saxe 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * cvar_knock_saxe 10000 ) / floatround(get_distance_f(vicoriginattorigin));
        }
       
/* else if(g_has_survivoraxe[attacker])
        {
                velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_surv) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
                velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_surv) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
        } */
 
        
if(velocity[0] <= 20.0 || velocity[1] <= 20.0)
        
velocity[2] = random_float(200.0 275.0);

        return 
1;
}

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

        return 
1;
}       

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

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

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

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

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

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

    switch(
str[0])
    {
        case 
'1':
        {
                
g_has_axe[id] = true
                g_has_strong
[id] = false
                g_has_combat
[id] = false
                g_has_hammer
[id] = false
                g_has_saxe
[id] = false
        
}
        case 
'2':
        {
                
g_has_axe[id] = false
                g_has_strong
[id] = true
                g_has_combat
[id] = false
                g_has_hammer
[id] = false    
                g_has_saxe
[id] = false
        
}
        case 
'3':
        {
            if(
get_user_flags(id) & VIP)
            {
                
g_has_axe[id] = false
                g_has_strong
[id] = false
                g_has_combat
[id] = true
                g_has_hammer
[id] = false    
                g_has_saxe
[id] = false
            
}                
            else 
random_num(buy_knife1(id) , buy_knife2(id))
        }
        case 
'4':
        {
            if(
get_user_flags(id) & ADMIN)
            {
                    
g_has_axe[id] = false
                    g_has_strong
[id] = false
                g_has_combat
[id] = false
                    g_has_hammer
[id] = true    
                    g_has_saxe
[id] = false
            
}
            else 
random_num(buy_knife1(id) , buy_knife2(id))
        }
        case 
'5':
        {
            if(
get_user_flags(id) & BOSS)
            {
                    
g_has_axe[id] = false
                    g_has_strong
[id] = false
                g_has_combat
[id] = false
                    g_has_hammer
[id] = false    
                    g_has_saxe
[id] = true
            
}
            else 
random_num(buy_knife1(id) , buy_knife2(id))
        }
    }
        
//g_has_survivoraxe[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();
            }
        }
    }
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: invalid cvar pointer

Сообщение DiMaN.ZM » 07 ноя 2017, 19:51

попробовал компилировать твой текст и вот что:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team

/hlds/web/www/amxxpc/work/scripting/zp_addon_knife_boss_dimka.sma(67) : warning 201: redefinition of constant/macro (symbol "cvar_knock_saxe")
/hlds/web/www/amxxpc/work/scripting/zp_addon_knife_boss_dimka.sma(794) : error 017: undefined symbol "cvar_speed_saxe"

1 Error.
Could not locate output file /hlds/web/www/amxxpc/work/plugins/zp_addon_knife_boss_dimka.amx (compile failed).
Аватара пользователя
DiMaN.ZM
 
Сообщения: 6
Зарегистрирован: 29 ноя 2014, 14:22
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6


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

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

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