Ревенант ICE не парализирует

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
99
Реакции
-1
Ошибка
Не работает способность Ревенанта ICE
ОС
Linux
Amx Mod X
1.9.0
Билд
Exe version 1.1.2.7/Stdio (cstrike)
ReHLDS version: 3.10.0.764-dev
Build date: 08:37:13 Oct 07 2021 (2735)
ReGamedll
ReGameDLL version: 5.21.0.540-dev
Build date: 17:33:16 Oct 25 2021
Версия Metamod
Metamod v1.21p37 2013/05/30 (5:13)
Список метамодулей
description stat pend file vers src load unlod
[ 1] AMX Mod X RUN - amxmodx_mm_i386. v1.9.0-d ini Start ANY
[ 2] Reunion RUN - reunion_mm_i386. v0.1.92d ini Start Never
[ 3] Rechecker RUN - rechecker_mm_i38 v2.3 ini Chlvl ANY
[ 4] VoiceTranscoder RUN - VoiceTranscoder. v2017RC5 ini ANY ANY
[ 5] ReAPI RUN - reapi_amxx_i386. v5.22.0. pl1 ANY Never
[ 6] Ham Sandwich RUN - hamsandwich_amxx v1.9.0-d pl1 ANY ANY
[ 7] CSX RUN - csx_amxx_i386.so v1.9.0-d pl1 ANY ANY
[ 8] FakeMeta RUN - fakemeta_amxx_i3 v1.9.0-d pl1 ANY ANY
[ 9] CStrike RUN - cstrike_amxx_i38 v1.9.0-d pl1 ANY ANY
[10] Engine RUN - engine_amxx_i386 v1.9.0-d pl1 ANY ANY
[11] Fun RUN - fun_amxx_i386.so v1.9.0-d pl1 ANY ANY
11 plugins, 11 running
Список плагинов
name version author file status
[ 1] Admin Base 1.9.0-dev+ AMXX Dev Team admin.amxx running
[ 2] Admin Commands 1.9.0-dev+ AMXX Dev Team admincmd.amxx running
[ 3] Slots Reservation 1.9.0-dev+ AMXX Dev Team adminslots.amxx running
[ 4] Menus Front-End 1.9.0-dev+ AMXX Dev Team menufront.amxx running
[ 5] Players Menu 1.9.0-dev+ AMXX Dev Team plmenu.amxx running
[ 6] Maps Menu 1.9.0-dev+ AMXX Dev Team mapsmenu.amxx running
[ 7] Admin Chat 1.9.0-dev+ AMXX Dev Team adminchat.amxx running
[ 8] Admin Votes 1.9.0-dev+ AMXX Dev Team adminvote.amxx running
[ 9] StatsX 1.9.0-dev+ AMXX Dev Team statsx.amxx running
[ 10] Stats Configuration 1.9.0-dev+ AMXX Dev Team statscfg.amxx running
[ 11] UFPS Map Manager 3.0.3(z) UFPS.Team umm.amxx running
[ 12] UFPS Map Config 1.2 UFPS.Team umm_mapconfig.a running
[ 13] Weapons MaxClip 0.3.0 ConnorMcLeod weapons_maxclip running
[ 14] Lite Translit 2.8 neygomon lite_translit.a debug
[ 15] Zombie Plague 4.3 MeRcyLeZZ zombie_plague40 running
[ 16] unknown unknown unknown adminmodels.amx running
[ 17] ZM VIP 1.6 aaarnas zm_vip.amxx running
[ 18] [ZP] Addon: Knife 0.1 CHyC zp_addon_knife. running
[ 19] [ZP] Addon: Extended G 2.0 [ru]In1ernal Err zp_ammo_ex.amxx running
[ 20] anti block 0.1 cheap_suit zp_antiblock.am running
[ 21] ZP: Zombie Health 1.0 Yakess zp_health_zombi debug
[ 22] [ZP] DHUD Informer 0.0.0.1 Andrei zp_score.amxx running
[ 23] unknown unknown unknown zp_zombie_respa running
[ 24] [ZP] Reward for killin 0.2 Opo4uMapy zp_reward_kill_ running
[ 25] No Survivor Recoil v1.0 Stone/Mog zp_no_survivor_ running
[ 26] [ZP] Addon: Zombie HP 0.1 KceHoH zp_hud_hp_cso.a running
[ 27] [ZP] Extra Addon: Coun 1.0 MercedeS zp_extra_addon_ running
[ 28] [ZP] Survivor or Nemes 1.0 Kiske zp_winorlose_ro running
[ 29] [ZP] AmmoChange 1.0 ZETA [M|E|N] zp_ammochange.a running
[ 30] [ZP] Sub-Plugin: Parac 1.1 Random1, 93()|29 zp_sub_parachut running
[ 31] Fire in the hole REMOV 1.75 ........ FITH_REMOVER.am running
[ 32] High Ping Kicker 1.6 UFPS.Team hpk.amxx running
[ 33] CS Revo: Camera New 1.0 Nani | Wilian M. csrevo_camera_n running
[ 34] [ZP 4.3] System: Model 1.3 ImmortalAmxx zp43_system_mod running
[ 35] Autoresponder/Advertis 0.5 MaximusBrood ad_manager.amxx running
[ 36] Weapon Model + Sound R 1.3 GHW_Chronic GHW_Weapon_Repl running
[ 37] [ZP] Extra: Anti-Infec 1.0 MeRcyLeZZ zp_extra_human_ running
[ 38] [ZP] LaserMine 2.4 SandStriker/Shid zp_lasermine_24 running
[ 39] [ZP] Extra: Dual Infin 1.0 LARS-DAY[BR]EAKE azp_weapon_infi debug
[ 40] [ZP] Extra: AK47 Red D 1.0 LARS-DAY[BR]EAKE azp_weapon_assa running
[ 41] CSO CROSSBOW, toectb a 1.0 Crock zp_extra_crossb running
[ 42] [ZP] Extra: Electric G 1.0 LARS-DAY[BR]EAKE azp_weapon_gatl running
[ 43] [ZP] Extra: Water Gun 1.0 LARS-DAY[BR]EAKE azp_weapon_wate running
[ 44] [ZP] Extra: M134 EX 1.0 LARS-DAY[BR]EAKE azp_weapon_m134 running
[ 45] [ZP] Extra: PKM Total 1.0 Crock / =) (Popr azp_weapon_pkm. running
[ 46] [ZP] Extra: Marauders 1.0 Crock azp_weapon_mk48 running
[ 47] [ZP] Extra: New Weapon 1.1 Crock zp_extra_sniper running
[ 48] [ZP] Extra: SKULL5 1.0 LARS-DAY[BR]EAKE azp_weapon_skul running
[ 49] Jump Grenade 1.0 xz zp_extra_bomb.a running
[ 50] [ZP] Buy Health 1.3 Dcrkan / CHyc / zp_extra_health running
[ 51] [ZP] Can Auto Save Amm 0.1.0 ZombArena.Ru zp_ammo_save.am running
[ 52] [ZP] Classic 1.0 dias reclassic.amxx running
[ 53] Fast 1.0 Fast refast.amxx running
[ 54] [ZP] Class: DaSu (2) 1.0 Jim rebig.amxx running
[ 55] [ZP] Class - predator 1.0 HoRRoR rehanter.amxx running
[ 56] [ZP] Zombie Class: KF 0.2 meTaLiCroSS reshaman.amxx running
[ 57] [ZP] Zombie Class: Par 0.1 =), LARS-BLOODLI azp_class_reven debug
[ 58] [ZP] Zombie Class: Dra 0.1 =), LARS-BLOODLI azp_class_reven running
[ 59] [ZP] Server addon: Zsp 5.1 Game over zp_zspawn_syste running
[ 60] [BOSS] Vote 1.2 Alexander.3 zl_voteboss.amx running
[ 61] [ZP]Auto-Respawn 1.1 LuqqasBugsy&Hatt zp_auto_respawn running
61 plugins, 61 running
Автор плагина
Не указан
Версия плагина
0.1
Исходный код
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>
#include <cstrike>
#include <xs>

new const ball_name[] = "paralize_ball"
new const ball_model[] = "models/w_hiddentail2.mdl"
new const ball_soundtouch[] = { "warcraft3/frostnova.wav" }

new const zclass_name[] = { "Revenant" } // name
new const zclass_info[] = { "Can throw ice balls" } // description
new const zclass_model[] = { "revenant_ice" } // model
new const zclass_clawmodel[] = { "v_revenant_ice.mdl" } // claw model
const zclass_health = 2000 // health
const zclass_speed = 245 // speed
const Float:zclass_gravity = 0.7 // gravity
const Float:zclass_knockback = 1.0 // knockback
new const v_zombie_bomb_model[64] = "revenant_ice"

new g_CurWeapon[33], g_bombmodelwpn[64]

#define OFFSET_MODELINDEX 491
#define OFFSET_LINUX 5

new index, defaultindex

new g_zclassparalize
new cvar_paralizedelay , cvar_paralizevelocity , cvar_paralizeballhealth , cvar_paralizeballparalizetime
new sTrail , g_touchs[512] , g_can[33] , g_paralizen[33]

new const WeaponNames[][] =
{
"", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10",
"weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550",
"weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249",
"weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552",
"weapon_ak47", "weapon_knife", "weapon_p90"
}

public plugin_init()
{
register_plugin("[ZP] Zombie Class: Paralize Zombie", "0.1", "=), LARS-BLOODLIKER")

cvar_paralizedelay = register_cvar("zp_classparalize_delay","10")
cvar_paralizevelocity = register_cvar("zp_classparalizeball_velocity","1300")
cvar_paralizeballhealth = register_cvar("zp_classparalizeball_health","5")
cvar_paralizeballparalizetime = register_cvar ( "zp_classparalizeball_paralizetime", "7.0" )

register_touch(ball_name, "worldspawn", "touchWorld")
register_touch(ball_name, "func_wall", "touchWorld")
register_touch(ball_name, "func_door", "touchWorld")
register_touch(ball_name, "func_door_rotating", "touchWorld")
register_touch(ball_name, "func_wall_toggle", "touchWorld")
register_touch(ball_name, "func_breakable", "touchWorld")
register_touch(ball_name, "player", "touchPlayer")

register_clcmd("drop","paralize_cmd")
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_forward(FM_PlayerPreThink, "fw_PreThink")

RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")

register_event("CurWeapon", "Event_CurrentWeapon", "be", "1=1")

for(new i = 1; i < sizeof WeaponNames; i++)
if(WeaponNames[i][0]) RegisterHam(Ham_Item_Deploy, WeaponNames[i], "fw_Weapon_Deploy_Post", 1)

RegisterHam(Ham_Player_Duck, "player", "Player_Duck", 1)
}

public plugin_precache()
{
precache_model(ball_model)
sTrail = precache_model("sprites/laserbeam.spr")

g_zclassparalize = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback)

formatex(g_bombmodelwpn, charsmax(g_bombmodelwpn), "models/zombie_plague/v_bomb_%s.mdl", v_zombie_bomb_model)
engfunc(EngFunc_PrecacheModel, g_bombmodelwpn)

index = precache_model("models/player/revenant_ice/revenant_ice.mdl")
defaultindex = precache_model("models/player.mdl")
}

public paralize_cmd( id )
{
if( !is_user_alive(id) || !zp_get_user_zombie(id) || zp_get_user_zombie_class(id) != g_zclassparalize || zp_get_user_nemesis(id) )
return PLUGIN_CONTINUE;

if(g_can[id])
{
client_print(id,print_center,"Восстановление через %d секунд",g_can[id])
return PLUGIN_HANDLED;
}

static Float:origin[3], Float:angles[3], Float:v_forward[3], Float:v_right[3], Float:v_up[3], Float:gun_position[3], Float:player_origin[3], Float:player_view_offset[3];
static Float:OriginX[3]
pev(id, pev_v_angle, angles);
pev(id, pev_origin, OriginX);
engfunc(EngFunc_MakeVectors, angles);

global_get(glb_v_forward, v_forward);
global_get(glb_v_right, v_right);
global_get(glb_v_up, v_up);

//m_pPlayer->GetGunPosition( ) = pev->origin + pev->view_ofs
pev(id, pev_origin, player_origin);
pev(id, pev_view_ofs, player_view_offset);
xs_vec_add(player_origin, player_view_offset, gun_position);

xs_vec_mul_scalar(v_forward, 13.0, v_forward);
xs_vec_mul_scalar(v_right, 0.0, v_right);
xs_vec_mul_scalar(v_up, 5.0, v_up);

xs_vec_add(gun_position, v_forward, origin);
xs_vec_add(origin, v_right, origin);
xs_vec_add(origin, v_up, origin);

new Float:StartOrigin[3]

StartOrigin[0] = origin[0];
StartOrigin[1] = origin[1];
StartOrigin[2] = origin[2];


new Float:fVelocity[3] , Float:flOrigin[3] , Float:flAngle[3]
pev(id,pev_origin,flOrigin)
pev(id,pev_angles,flAngle)

new ball = create_entity("info_target")

if (!ball) return PLUGIN_HANDLED

g_touchs[ball] = 0

entity_set_string(ball, EV_SZ_classname, ball_name)

entity_set_model(ball, ball_model)

entity_set_origin(ball, StartOrigin)

entity_set_vector(ball, EV_VEC_angles, flAngle)

new Float:MinBox[3] = {-1.0, -1.0, -1.0}
new Float:MaxBox[3] = {1.0, 1.0, 1.0}
entity_set_vector(ball, EV_VEC_mins, MinBox)
entity_set_vector(ball, EV_VEC_maxs, MaxBox)

entity_set_int(ball, EV_INT_solid, SOLID_SLIDEBOX)

entity_set_int(ball, EV_INT_movetype, MOVETYPE_BOUNCEMISSILE)

entity_set_edict(ball, EV_ENT_owner, id)

entity_set_int(ball, EV_INT_effects, EF_BRIGHTLIGHT)

VelocityByAim(id, get_pcvar_num(cvar_paralizevelocity ), fVelocity)
entity_set_vector(ball , EV_VEC_velocity, fVelocity)

fm_set_rendering(ball, kRenderFxGlowShell,255, 255, 255, kRenderNormal, 16)

message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMFOLLOW) // Temporary entity ID
write_short(ball) // Entity
write_short(sTrail) // Sprite index
write_byte(10) // Life
write_byte(3) // Line width
write_byte(100) // Red
write_byte(255) // Green
write_byte(255) // Blue
write_byte(255) // Alpha
message_end()

UTIL_PlayPlayerAnimation(id,10)
UTIL_PlayWeaponAnimation(id,8)

g_can[id] = get_pcvar_num(cvar_paralizedelay)
set_task(1.0,"ability_zero",id)

return PLUGIN_HANDLED;
}

public touchWorld(ball, world) {

emit_sound(ball, CHAN_WEAPON, ball_soundtouch, 1.0, ATTN_NORM, 0, PITCH_NORM)
g_touchs[ball] += 1
if(g_touchs[ball] == get_pcvar_num(cvar_paralizeballhealth)) remove_entity(ball)

return PLUGIN_HANDLED
}

public event_round_start()
{
new iEnt = FM_NULLENT;
while( (iEnt = engfunc(EngFunc_FindEntityByString, iEnt, "classname", ball_name)) > 0 )
{
engfunc(EngFunc_RemoveEntity,iEnt)
}

for(new i;i<=32;i++)
{
if(g_paralizen[i]) fm_set_rendering(i)
g_can[i] = 0
g_paralizen[i] = 0
remove_task(i)
}
}

public ball_think(ball)
{
if(!is_valid_ent(ball))
return;

new Float:oldangles[3],Float:angles[3]
pev(ball,pev_angles,oldangles)
angles[0] = oldangles[0] + random_float(20.0,100.0)
angles[1] = oldangles[1] + random_float(10.0,80.0)
angles[2] = oldangles[2] + random_float(10.0,80.0)
set_pev(ball,pev_angles,angles)

new Float:Velocity[3]
pev(ball,pev_velocity,Velocity)

if(Velocity[0] < 1.0 && Velocity[2] < 1.0 && Velocity[1] < 1.0) remove_entity(ball)

}

public paralize(id)
{
if(!is_user_alive(id) || zp_get_user_zombie(id))
return;

g_paralizen[id] = 1
fm_set_rendering(id, kRenderFxGlowShell,100, 255, 255, kRenderNormal, 16)
set_task(get_pcvar_float(cvar_paralizeballparalizetime),"unparalize_player",id)
}

public unparalize_player(id)
{
if(!is_user_alive(id) || zp_get_user_zombie(id))
return;

g_paralizen[id] = 0
fm_set_rendering(id)
}

public remove_values(id)
{
remove_task(id)
g_can[id] = 0
}

public ability_zero(id)
{
g_can[id] -= 1
if(!g_can[id]) client_print(id,print_center,"Способность активна!")
if(g_can[id]) set_task(1.0,"ability_zero",id)
}

public fw_PreThink(id)
{
if( !is_user_alive(id) || zp_get_user_zombie(id) || !g_paralizen[id])
return PLUGIN_CONTINUE;

set_pev( id, pev_button, pev(id,pev_button) & ~IN_ATTACK );

set_pev(id, pev_maxspeed, 0.0)

new Float:vel[3]
set_pev(id,pev_velocity,vel)

return PLUGIN_HANDLED
}

public zp_user_humanized_post(id)
{
fm_set_user_model_index(id, defaultindex)

remove_values(id)
}
public fw_PlayerKilled(id, attacker, shouldgib) remove_values(id)
public client_connect(id) remove_values(id)

public zp_user_infected_post(id)
{
set_wpnmodel(id)
if((zp_get_user_zombie_class(id) == g_zclassparalize) && (zp_get_user_zombie(id)))
{
fm_set_user_model_index(id, index)
}
remove_values(id)
}

public zp_user_infected_pre(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
if(zp_get_user_next_class(id) == g_zclassparalize)
{
zp_set_user_zombie_class(id, 0)
client_print(id, print_chat, "Your ability to G-click - throw ice ball.")
client_print(id, print_chat, "This class is only for *VIP* players. Take the other.")
}
}
}

stock fm_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16)
{
static Float:color[3]
color[0] = float(r)
color[1] = float(g)
color[2] = float(b)

set_pev(entity, pev_renderfx, fx)
set_pev(entity, pev_rendercolor, color)
set_pev(entity, pev_rendermode, render)
set_pev(entity, pev_renderamt, float(amount))
}

stock UTIL_PlayWeaponAnimation(const Player, const Sequence)
{
set_pev(Player, pev_weaponanim, Sequence)

message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player)
write_byte(Sequence)
write_byte(pev(Player, pev_body))
message_end()
}

stock UTIL_PlayPlayerAnimation(const id, const Sequence)
{
entity_set_int(id, EV_INT_sequence, Sequence)
entity_set_int(id, EV_INT_gaitsequence, 1)
}

stock get_speed_vector(const Float:origin1[3],const Float:origin2[3],Float:speed, Float:new_velocity[3])
{
new_velocity[0] = origin2[0] - origin1[0]
new_velocity[1] = origin2[1] - origin1[1]
new_velocity[2] = origin2[2] - origin1[2]
new Float:num = floatsqroot(speed*speed / (new_velocity[0]*new_velocity[0] + new_velocity[1]*new_velocity[1] + new_velocity[2]*new_velocity[2]))
new_velocity[0] *= num
new_velocity[1] *= num
new_velocity[2] *= num

return 1
}

stock fm_cs_set_user_deaths(id, value)
{
set_pdata_int(id, 444, value, 5)
}

stock fm_cs_get_user_team(id)
{
return get_pdata_int(id, 114, 5);
}

public Event_CurrentWeapon(id) g_CurWeapon[id] = read_data(2)

public fw_Weapon_Deploy_Post(weapon_ent)
{
static id; id = get_pdata_cbase(weapon_ent, 41, 4)

static weaponid; weaponid = cs_get_weapon_id(weapon_ent)

g_CurWeapon[id] = weaponid

replace_weapon_models(id, weaponid)
}

public Player_Duck(id)
{
if(zp_get_user_zombie_class(id) == g_zclassparalize && zp_get_user_zombie(id))
{
static button, ducking
button = pev(id, pev_button)
ducking = pev(id, pev_flags) & (FL_DUCKING | FL_ONGROUND) == (FL_DUCKING | FL_ONGROUND)

if(button & IN_DUCK || ducking)
{
set_pev(id, pev_view_ofs, {0.0, 0.0, 20.0})
}
}
}

set_wpnmodel(id)
{
if(!is_user_alive(id)) return

new wpn = get_user_weapon(id)

if(wpn == CSW_HEGRENADE || wpn == CSW_FLASHBANG || wpn == CSW_SMOKEGRENADE)
{
set_pev(id, pev_viewmodel2, g_bombmodelwpn)
}
}

replace_weapon_models(id, weaponid)
{
if(zp_get_user_zombie_class(id) == g_zclassparalize && zp_get_user_zombie(id))
{
switch(weaponid)
{
case CSW_HEGRENADE:
{
set_pev(id, pev_viewmodel2, g_bombmodelwpn)
}
case CSW_SMOKEGRENADE:
{
set_pev(id, pev_viewmodel2, g_bombmodelwpn)
}
case CSW_FLASHBANG:
{
set_pev(id, pev_viewmodel2, g_bombmodelwpn)
}
}
}
}

stock fm_set_user_model_index(id, value)
{
set_pdata_int(id, OFFSET_MODELINDEX, value, OFFSET_LINUX)
}
Здраствуйте. Подскажите, почему не морозит IceBall у ревенанта? Все работает без ошибок, Iceball запускает но он не парализирует.
 
В этой теме было размещено решение! Перейти к решению.

Вложения

Сообщения
344
Реакции
179
Помог
11 раз(а)
Jimasik, потому что нету взаимодействия entity "IceBall" с игроком.

Код:
register_touch(ball_name, "player",            "touchPlayer")
Регистрация есть, но callback-функции нет.

upd:
Автор плагина очень даже указан: =), LARS-BLOODLIKER
Код:
register_plugin("[ZP] Zombie Class: Paralize Zombie", "0.1", "=), LARS-BLOODLIKER")
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу