Помогите домучать,что-бы модель исчезалась плавно при убийстве противника. Там она исчезает резко по Таску. И есть уже готовый пример плавного исчезновения по окончании 10 секунд. Вот его я немогу подстроить
Код: #define ENTANGLE_TIME 10.0 // Время исчезновения модели Ультимейта
#define TASK_ENTREMOVE 0x917
#define TASK_ENTFIND 648911118719 #define FIND_TIME 0.1 // Время исчезновения Ульты ( секунды )
#define STEP 10.0 #define VERTICAL_SPEED 20.0 #define HORISONTAL_SPEED 60.0
enum (+= 1) { STATUS_NONE = 0, STATUS_EFFECT, STATUS_KILL }
public NE_ULT_EntangleEffect( id ) { new Float:flOrigin[3] pev(id, pev_origin, flOrigin) new ent=engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"info_target"))
engfunc(EngFunc_SetOrigin, ent, flOrigin);
switch(random_num(0,2)) { case 0: engfunc(EngFunc_SetModel, ent, sz_MODEL) case 1: engfunc(EngFunc_SetModel, ent, sz_MODEL2) case 2: engfunc(EngFunc_SetModel, ent, sz_MODEL3) }
set_pev(ent, pev_classname, "elf_ultimate"); set_pev(ent, pev_sequence, 0) set_pev(ent, pev_framerate, 1.0) set_pev(ent, pev_iuser4, id)
set_task(FIND_TIME, "Task_EntFind", ent + TASK_ENTFIND, _, _, "b");
set_pev(ent, pev_nextthink, get_gametime() + ENTANGLE_TIME) set_pev(ent, pev_rendermode, kRenderFxNone);
// Play the entangle sound emit_sound( id, CHAN_STATIC, g_szSounds[SOUND_ENTANGLING], 1.0, ATTN_NORM, 0, PITCH_NORM );
return PLUGIN_HANDLED }
public UltimateThink(ent) { if (!pev_valid(ent)) { return HAM_IGNORED; } switch(pev(ent, pev_impulse)) { case STATUS_NONE:{ set_pev(ent, pev_movetype, MOVETYPE_FLY); set_pev(ent, pev_solid, SOLID_NOT); set_pev(ent, pev_rendermode, kRenderTransAlpha); set_pev(ent, pev_renderamt, 100.0); set_pev(ent, pev_velocity, Float:{0.0, 0.0, VERTICAL_SPEED}); set_pev(ent, pev_avelocity, Float:{0.0, HORISONTAL_SPEED, 0.0}) set_pev(ent, pev_impulse, STATUS_EFFECT); } case STATUS_EFFECT: { if (pev(ent, pev_renderamt) > 0.0) { set_pev(ent, pev_renderamt, floatmax(0.0, pev(ent, pev_renderamt) - STEP)); } else { set_pev(ent, pev_flags, FL_KILLME); set_pev(ent, pev_impulse, STATUS_KILL); } } } set_pev(ent,pev_nextthink,get_gametime() + 0.1) return HAM_SUPERCEDE; }
public Task_EntFind(taskid) { new ent = taskid - TASK_ENTFIND; if(!pev_valid(ent)) { remove_task(taskid); return; } new iEnemy = pev(ent, pev_iuser4); if (!is_user_alive(iEnemy)) { remove_task(taskid); remove_task(ent + TASK_ENTREMOVE); set_pev(ent, pev_flags, pev(ent, pev_flags) | FL_KILLME); return; } }
|