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

knock nemesis  [Решено]

Все вопросы по работе и настройке AMXX и его плагинов.

Модератор: liFe iS GoOD

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

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

knock nemesis

Сообщение Kedrix » 21 июл 2017, 19:10

Привет всем, не могу решить проблему с knock немезиды, пытался делать но выдает разные ошибки, не знаю что сделать чтобы убрать отброс ножей в раунде немезиды, помогите буду благодарен
Код: Выделить всё
#include <amxmodx>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>
 
#define PLUGIN  "[ZP] Addon: Knifes"
#define VERSION "NEW"
#define AUTHOR  "Mr.TheFold"
 
#define VIP ADMIN_CHAT
 
new KNIFE1_V_MODEL[] = "models/CSO_Knifes/v_strong.mdl"
new KNIFE1_P_MODEL[] = "models/CSO_Knifes/p_strong.mdl"
 
new KNIFE2_V_MODEL[] = "models/CSO_Knifes/v_chainsaw.mdl"
new KNIFE2_P_MODEL[] = "models/CSO_Knifes/p_chainsaw.mdl"
 
new KNIFE3_V_MODEL[] = "models/CSO_Knifes/v_combat.mdl"
new KNIFE3_P_MODEL[] = "models/CSO_Knifes/p_combat.mdl"
 
new KNIFE4_V_MODEL[] = "models/CSO_Knifes/v_hammersq1.mdl"
new KNIFE4_P_MODEL[] = "models/CSO_Knifes/p_hammersq1.mdl"
 
new bool:g_has_strong[33]
new 
bool:g_has_katana[33]
new 
bool:g_has_combat[33]
new 
bool:g_has_hammer[33]
 
new 
g_knife_menug_vip_knife_menu
new cvar_knock_strongcvar_jump_strongcvar_speed_strongcvar_damage_strong
new cvar_knock_katanacvar_jump_katanacvar_speed_katanacvar_damage_katana
new cvar_knock_combatcvar_jump_combatcvar_speed_combatcvar_damage_combat
new cvar_knock_hammercvar_jump_hammercvar_speed_hammercvar_damage_hammer
 
new const g_sound_knife[] = { "items/gunpickup2.wav" }
 
new const 
strong_sounds[][] =
{
        
"CSO_Knifes/strong_draw.wav",
        
"CSO_Knifes/strong_hit_01.wav",
        
"CSO_Knifes/strong_hit_02.wav",
        
"CSO_Knifes/strong_hit_wall.wav",
        
"CSO_Knifes/strong_miss.wav",
        
"CSO_Knifes/strong_stab.wav"
}
 
new const 
katana_sounds[][] =
{
        
"CSO_Knifes/chainsaw_deploy.wav",
        
"CSO_Knifes/chainsaw_hit1.wav",
        
"CSO_Knifes/chainsaw_hit2.wav",
        
"CSO_Knifes/chainsaw_hitwall.wav",
        
"CSO_Knifes/chainsaw_miss.wav",
        
"CSO_Knifes/chainsaw_stab.wav"
}
 
new const 
combat_sounds[][] =
{
        
"CSO_Knifes/combat_draw.wav",
        
"CSO_Knifes/combat_hit_01.wav",
        
"CSO_Knifes/combat_hit_02.wav",
        
"CSO_Knifes/combat_hit_wall.wav",
        
"CSO_Knifes/combat_miss.wav",
        
"CSO_Knifes/combat_stab.wav"
}
 
new const 
hammer_sounds[][] =
{
        
"CSO_Knifes/hammer_draw.wav",
        
"CSO_Knifes/hammer_hit_01.wav",
        
"CSO_Knifes/hammer_hit_02.wav",
        
"CSO_Knifes/hammer_hit_wall.wav",
        
"CSO_Knifes/hammer_miss.wav",
        
"CSO_Knifes/hammer_stab.wav"
}
 
public 
plugin_init()
{
        
register_plugin(PLUGIN VERSION AUTHOR);
        
register_cvar("zp_addon_knife"VERSIONFCVAR_SERVER);
       
        
g_knife_menu menu_create("Выбор ножа","menu_handle")
        
g_vip_knife_menu menu_create("Выбор ножа","menu_handle_vip")
       
        
register_clcmd("knife_zb","knifemenu",ADMIN_ALL,"knife_menu")
       
        
build_menu()
        
build_menu_vip()
       
        
register_event("CurWeapon","checkWeapon","be","1=1");
       
        
register_forward(FM_EmitSound"CEntity__EmitSound");
        
register_forward(FM_PlayerPreThink"fw_PlayerPreThink");
       
        
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage");
        
RegisterHam(Ham_Use"func_tank""fw_UseStationary_Post"1)
        
RegisterHam(Ham_Use"func_tankmortar""fw_UseStationary_Post"1)
        
RegisterHam(Ham_Use"func_tankrocket""fw_UseStationary_Post"1)
        
RegisterHam(Ham_Use"func_tanklaser""fw_UseStationary_Post"1)
       
        
register_message(get_user_msgid("DeathMsg"), "message_DeathMsg");
       
        
register_clcmd("zm_knife_katana""clcmd_knife")
        
register_clcmd("zm_knife_hammer""clcmd_knife")
        
register_clcmd("zm_knife_combat""clcmd_knife")
        
register_clcmd("zm_knife_strong""clcmd_knife")
       
        
cvar_jump_strong register_cvar("zp_strong_jump""240.0")
        
cvar_speed_strong register_cvar("zp_strong_speed""435.0")
        
cvar_damage_strong register_cvar("zp_strong_damage""5.7")
        
cvar_knock_strong register_cvar("zp_strong_knockback""3.2")
       
        
cvar_jump_katana register_cvar("zp_katana_jump""450.0")
        
cvar_speed_katana register_cvar("zp_katana_speed""250.0")
        
cvar_damage_katana register_cvar("zp_katana_damage""7.0")
        
cvar_knock_katana register_cvar("zp_katana_knockback""2.6")
       
        
cvar_jump_combat register_cvar("zp_combat_jump""250.0")
        
cvar_speed_combat register_cvar("zp_combat_speed""280.0")
        
cvar_damage_combat register_cvar("zp_combat_damage""5.2")
        
cvar_knock_combat register_cvar("zp_combat_knockback""8.0")
       
        
cvar_jump_hammer register_cvar("zp_hammer_jump""450.0")
        
cvar_speed_hammer register_cvar("zp_hammer_speed""280.0")
        
cvar_damage_hammer register_cvar("zp_hammer_damage""6.4")
        
cvar_knock_hammer register_cvar("zp_hammer_knockback""10.0")
}
 
public 
client_connect(id)
{
        
g_has_strong[id] = true
        g_has_katana
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
}
 
public 
client_disconnect(id)
{
        
g_has_strong[id] = false
        g_has_katana
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
}
 
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_generic("sprites/zm_knife_katana.txt")
        
precache_generic("sprites/zm_knife_hammer.txt")
        
precache_generic("sprites/zm_knife_combat.txt")
        
precache_generic("sprites/zm_knife_strong.txt")
       
        
precache_generic("sprites/CSO_Knifes/640hud7.spr")
        
precache_generic("sprites/CSO_Knifes/640hud53.spr")
        
precache_generic("sprites/CSO_Knifes/640hud38.spr")
        
precache_generic("sprites/CSO_Knifes/640hud381.spr")
        
precache_generic("sprites/CSO_Knifes/640hud40.spr")
        
precache_generic("sprites/CSO_Knifes/640hud84.spr")
        
precache_generic("sprites/CSO_Knifes/640hud21.spr")
       
        
precache_sound(g_sound_knife)
       
        for(new 
0sizeof strong_soundsi++)
        
precache_sound(strong_sounds[i])
       
        for(new 
0sizeof katana_soundsi++)
        
precache_sound(katana_sounds[i])
       
        for(new 
0sizeof combat_soundsi++)
        
precache_sound(combat_sounds[i])
       
        for(new 
0sizeof hammer_soundsi++)
        
precache_sound(hammer_sounds[i])
}
 
public 
clcmd_knife(id)
{
        if(!
is_user_alive(id))
        return;
       
        
engclient_cmd(id"weapon_knife")
}
 
build_menu()
{
        
menu_additem(g_knife_menu"\y[Chainsaw] \r[Гравити]""2")
        
menu_additem(g_knife_menu"\y[Combat] \r[Отброс]""3")        
    
menu_additem(g_knife_menu"\y[Axe] \r[Скорость]""1")
        
menu_additem(g_knife_menu"\y[Hammer] \r[VIP]""4")
        
menu_setprop(g_knife_menuMPROP_PERPAGE0)
}
 
build_menu_vip()
{
        
menu_additem(g_vip_knife_menu"\y[Chainsaw] \r[Гравити]""2")
        
menu_additem(g_vip_knife_menu"\y[Combat] \r[Скорость]""3")
        
menu_additem(g_vip_knife_menu"\y[Axe] \r[Скорость]""1")
        
menu_additem(g_vip_knife_menu"\y[Hammer] \r[VIP]""4")
        
menu_setprop(g_vip_knife_menuMPROP_PERPAGE0)
}
 
public 
knifemenu(id)
{
        if (
zp_has_round_started())
        return;
       
        if (!
zp_has_round_started())
        {
                
menu_display(id, !(get_user_flags(id) & VIP) ? g_knife_menu g_vip_knife_menu0)
        }
}
 
public 
menu_handle_vip(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)
        }
        return 
PLUGIN_HANDLED;
}
 
public 
menu_handle(idmenuitem)
{
        if(
item 0)
        return 
PLUGIN_CONTINUE
       
        
new cmd[2];
        new 
accesscallback;
        
menu_item_getinfo(menuitemaccesscmd,2,_,_callback);
        new 
choice str_to_num(cmd)
       
        switch (
choice)
        {
                case 
1buy_knife1(id)
                case 
2buy_knife2(id)
                case 
3buy_knife3(id)
                case 
4buy_knife4(id)
        }
        return 
PLUGIN_HANDLED;
}
 
public 
buy_knife1(id)
{
        
g_has_strong[id] = true
        g_has_katana
[id] = false
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
       
        set_sprite
(id)
       
        
message_begin(MSG_ONEget_user_msgid("WeapPickup"), {0,0,0}, id)
        
write_byte(29)
        
message_end()
       
        
checkWeapon(id)
       
        
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
}
 
public 
buy_knife2(id)
{
        
g_has_strong[id] = false
        g_has_katana
[id] = true
        g_has_combat
[id] = false
        g_has_hammer
[id] = false
       
        set_sprite
(id)
       
        
message_begin(MSG_ONEget_user_msgid("WeapPickup"), {0,0,0}, id)
        
write_byte(29)
        
message_end()
       
        
checkWeapon(id)
       
        
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
}
 
public 
buy_knife3(id)
{
        
g_has_strong[id] = false
        g_has_katana
[id] = false
        g_has_combat
[id] = true
        g_has_hammer
[id] = false
       
        set_sprite
(id)
       
        
message_begin(MSG_ONEget_user_msgid("WeapPickup"), {0,0,0}, id)
        
write_byte(29)
        
message_end()
       
        
checkWeapon(id)
       
        
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
}
 
public 
buy_knife4(id)
{
        if (
get_user_flags(id) & VIP)
        {
                
g_has_strong[id] = false
                g_has_katana
[id] = false
                g_has_combat
[id] = false
                g_has_hammer
[id] = true
               
                set_sprite
(id)
               
                
message_begin(MSG_ONEget_user_msgid("WeapPickup"), {0,0,0}, id)
                
write_byte(29)
                
message_end()
               
                
checkWeapon(id)
               
                
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_knife1.0ATTN_NORM0PITCH_NORM)
        }
        else
        {
                
knifemenu(id)
                
ChatColor(id"!g[Knife] !yНож !teamHammer !yдоступен только для !gVIP!")
        }
       
}
 
public 
fw_UseStationary_Post(entitycalleractivatoruse_type)
{
        if (
use_type == && is_user_connected(caller))
        
checkWeapon(caller)
}
 
public 
zp_user_infected_post(id)
{
        
set_sprite(id)
}
 
public 
checkWeapon(id)
{
        if(
get_user_weapon(id) != CSW_KNIFE)
        return;
       
        if (
g_has_strong[id] || g_has_katana[id] || g_has_combat[id] || g_has_hammer[id])
        {
                
checkModel(id)
        }
        return;
}
 
public 
checkModel(id)
{
        if (
zp_get_user_zombie(id))
        {
                
set_sprite(id)
                return;
        }
       
        if(
get_user_weapon(id) != CSW_KNIFE)
        return;
       
        if (
g_has_strong[id])
        {
                
set_pev(idpev_viewmodel2KNIFE1_V_MODEL)
                
set_pev(idpev_weaponmodel2KNIFE1_P_MODEL)
        }
        else if (
g_has_katana[id])
        {
                
set_pev(idpev_viewmodel2KNIFE2_V_MODEL)
                
set_pev(idpev_weaponmodel2KNIFE2_P_MODEL)
        }
        else if (
g_has_combat[id])
        {
                
set_pev(idpev_viewmodel2KNIFE3_V_MODEL)
                
set_pev(idpev_weaponmodel2KNIFE3_P_MODEL)
        }
        else if (
g_has_hammer[id])
        {
                
set_pev(idpev_viewmodel2KNIFE4_V_MODEL)
                
set_pev(idpev_weaponmodel2KNIFE4_P_MODEL)
        }
        
set_sprite(id)
}
 
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_strong[id])
                        
emit_sound(idchannelstrong_sounds[0], volumeattnflagspitch)
                        if(
g_has_katana[id])
                        
emit_sound(idchannelkatana_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)
                }
                else if (
sample[14] == 'h')
                {
                        if (
sample[17] == 'w')
                        {
                                if(
g_has_strong[id])
                                
emit_sound(idchannelstrong_sounds[3], volumeattnflagspitch)
                                if(
g_has_katana[id])
                                
emit_sound(idchannelkatana_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)
                        }
                        else
                        {
                                if(
g_has_strong[id])
                                
emit_sound(idchannelstrong_sounds[random_num(1,2)], volumeattnflagspitch)
                                if(
g_has_katana[id])
                                
emit_sound(idchannelkatana_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)
                        }
                }
                else
                {
                        if (
sample[15] == 'l')
                        {
                                if(
g_has_strong[id])
                                
emit_sound(idchannelstrong_sounds[4], volumeattnflagspitch)
                                if(
g_has_katana[id])
                                
emit_sound(idchannelkatana_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)
                        }
                        else
                        {
                                if(
g_has_strong[id])
                                
emit_sound(idchannelstrong_sounds[5], volumeattnflagspitch)
                                if(
g_has_katana[id] )
                                
emit_sound(idchannelkatana_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)
                        }
                }
                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_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[3]
                        
pev(idpev_velocityfVelocity)
                       
                        
fVelocity[2] += get_pcvar_num(cvar_jump_strong)
                       
                        
set_pev(idpev_velocityfVelocity)
                        
set_pev(idpev_gaitsequence6)
                }
        }
       
        if(
weapon == CSW_KNIFE && g_has_katana[id])
        {
                
set_user_maxspeed(id,get_pcvar_float(cvar_speed_katana))
               
                if ((
pev(idpev_button) & IN_JUMP) && !(pev(idpev_oldbuttons) & IN_JUMP))
                {
                        new 
flags pev(idpev_flags)
                        new 
waterlvl pev(idpev_waterlevel)
                       
                        if (!(
flags FL_ONGROUND))
                        return 
FMRES_IGNORED
                       
                        
if (flags FL_WATERJUMP)
                        return 
FMRES_IGNORED
                       
                        
if (waterlvl 1)
                        return 
FMRES_IGNORED
                       
                        
new Float:fVelocity[3]
                        
pev(idpev_velocityfVelocity)
                       
                        
fVelocity[2] += get_pcvar_num(cvar_jump_katana)
                       
                        
set_pev(idpev_velocityfVelocity)
                        
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[3]
                        
pev(idpev_velocityfVelocity)
                       
                        
fVelocity[2] += get_pcvar_num(cvar_jump_combat)
                       
                        
set_pev(idpev_velocityfVelocity)
                        
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[3]
                        
pev(idpev_velocityfVelocity)
                       
                        
fVelocity[2] += get_pcvar_num(cvar_jump_hammer)
                       
                        
set_pev(idpev_velocityfVelocity)
                        
set_pev(idpev_gaitsequence6)
                }
               
                
set_user_maxspeed(idget_pcvar_float(cvar_speed_hammer))
        }
        return 
FMRES_IGNORED
}
 
public 
fw_TakeDamage(victiminflictorattackerFloat:damagedamage_type)
{
        if(!
is_user_connected(attacker))
        return 
HAM_IGNORED
       
        
if(zp_get_user_zombie(attacker))
        return 
HAM_IGNORED
       
        
if(get_user_weapon(attacker) == CSW_KNIFE)
        {
               
                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_katana[attacker])
                {
                        
SetHamParamFloat(4damage get_pcvar_float(cvar_damage_katana))
                       
                        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_katana);
                        
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);
                }
                
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_strong[iattacker])
                        
set_msg_arg_string(4"strong")
                }
               
                if(
equal(szTruncatedWeapon"knife") && get_user_weapon(iattacker) == CSW_KNIFE)
                {
                        if(
g_has_katana[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_strong[iattacker] && !g_has_katana[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_strong[iattacker] || g_has_katana[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_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_katana[attacker])
        {
                
velocity[0] = ( origin2[0] * get_pcvar_float(cvar_knock_katana) * 10000 ) / floatround(get_distance_f(vicoriginattorigin));
                
velocity[1] = ( origin2[1] * get_pcvar_float(cvar_knock_katana) * 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));
        }
       
        if(
velocity[0] <= 20.0 || velocity[1] <= 20.0)
        
velocity[2] = random_float(200.0 275.0);
       
        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, -121290)
                return;
        }
       
        if(
g_has_strong[id])
        {
                
sprite(id"zm_knife_strong", -1, -1, -1, -121290)
                return;
        }
       
        if(
g_has_katana[id])
        {
                
sprite(id"zm_knife_katana", -1, -1, -1, -121290)
                return;
        }
       
        if(
g_has_combat[id])
        {
                
sprite(id"zm_knife_combat", -1, -1, -1, -121290)
                return;
        }
       
        if(
g_has_hammer[id])
        {
                
sprite(id"zm_knife_hammer", -1, -1, -1, -121290)
                return;
        }
}
 
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();
                        }
                }
        }
Аватара пользователя
Kedrix
 
Сообщения: 39
Зарегистрирован: 19 июл 2017, 18:22
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: knock nemesis

Сообщение артист666 » 22 июл 2017, 00:20

лог.
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: knock nemesis

Сообщение Kedrix » 22 июл 2017, 14:07

артист666 писал(а):лог.
Что лог. не понимаю?
Аватара пользователя
Kedrix
 
Сообщения: 39
Зарегистрирован: 19 июл 2017, 18:22
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: knock nemesis

Сообщение артист666 » 22 июл 2017, 15:31

Логирование ошибок.
Ты написал ошибки выдаёт, так покажи их.
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: knock nemesis

Сообщение Kedrix » 22 июл 2017, 19:44

Я немного разобраляся, мне надо зделать проверку на немезиду но низнаю как и куда
Аватара пользователя
Kedrix
 
Сообщения: 39
Зарегистрирован: 19 июл 2017, 18:22
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: knock nemesis

Сообщение Subb98 » 22 июл 2017, 20:15

Код: Выделить всё
public zp_round_started(gamemodeid) {
    if(!
g_bSwitch && gamemode == 2/*Nemesis*/) {
        
g_bSwitch true;
        
SwitchCVars(true);
    }
}

SwitchCVars(const bool:isNemesis true) {
    if(
isNemesis) {
        
set_pcvar_float(cvar_knock_katana0.0);
        
set_pcvar_float(cvar_knock_combat0.0);
        
set_pcvar_float(cvar_knock_hammer0.0);
    } else {
        
set_pcvar_float(cvar_knock_katana2.6);
        
set_pcvar_float(cvar_knock_combat8.0);
        
set_pcvar_float(cvar_knock_hammer10.0);
    }
}

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

Re: knock nemesis

Сообщение Kedrix » 22 июл 2017, 23:50

Выдает вот такую ошибку
Код: Выделить всё
/hlds/web/www/amxxpc/work/scripting/zp_addon_knifes.sma(850) : error 017undefined symbol "g_bSwitch"
/hlds/web/www/amxxpc/work/scripting/zp_addon_knifes.sma(851) : error 017undefined symbol "g_bSwitch"
/hlds/web/www/amxxpc/work/scripting/zp_addon_knifes.sma(851) : warning 215expression has no effect
/hlds/web/www/amxxpc/work/scripting/zp_addon_knifes.sma(896) : warning 203symbol is never used"zp_round_ended"
 
2 Errors.
Could not locate output file /hlds/web/www/amxxpc/work/plugins/zp_addon_knifes.amx (compile failed).
 
Аватара пользователя
Kedrix
 
Сообщения: 39
Зарегистрирован: 19 июл 2017, 18:22
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: knock nemesis

Сообщение Subb98 » 23 июл 2017, 09:06

Kedrix, я полагал, что вы догадаетесь объявить новую глобальную переменную в начале...

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

Re: knock nemesis

Сообщение Kedrix » 23 июл 2017, 14:24

Subb98 писал(а):Kedrix, я полагал, что вы догадаетесь объявить новую глобальную переменную в начале...

Код: Выделить всё
new bool:g_bSwitch;

Потом догадался
Аватара пользователя
Kedrix
 
Сообщения: 39
Зарегистрирован: 19 июл 2017, 18:22
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: knock nemesis

Сообщение Kedrix » 26 июл 2017, 18:23

/hlds/web/www/amxxpc/work/scripting/zp_addon_knifes.sma(896) : warning 203: symbol is never used: "zp_round_ended

А с этой ошибкой что делать, заметил после раунда немезиды, Отброс вобще не работает на зомби
Аватара пользователя
Kedrix
 
Сообщения: 39
Зарегистрирован: 19 июл 2017, 18:22
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

След.

Вернуться в Вопросы по AMXX и его плагинам

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5