• Страница 1 из 1
  • 1
Форум » Counter-Strike 1.6 » Сервер Counter-Strike 1.6 » Помощь по скриптингу » Исчезновение Ентити (Домучать)
Исчезновение Ентити
Дата: Вторник, 09.10.2018, 23:43 | Сообщение # 1
Файловик
Любитель
Offline
  • MayroN
  • Репутация: 34
  • Сообщений:22
  • Файловик
  • Статус пользователя Я бы изменил этот мир,но Бог не дает исходников
Помогите домучать,что-бы модель исчезалась плавно при убийстве противника.
Там она исчезает резко по Таску.
И есть уже готовый пример плавного исчезновения по окончании 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;
   }
}
Сообщение отредактировал MayroN - Вторник, 09.10.2018, 23:43
Дата: Среда, 10.10.2018, 08:20 | Сообщение # 2
Дух ( Новичок )
Offline
  • NightFury
  • Репутация: 5
  • Сообщений:6
  • Скриптер
Рендер альфа задавай с вычитанием в синке до полного исчезновения и збавься от этого таска
Певневсинк можно задавать без геймтимы тк синк сработает если Певневсинк < геймтимы
Сообщение отредактировал NightFury - Среда, 10.10.2018, 08:26
Дата: Суббота, 13.10.2018, 15:45 | Сообщение # 3
Файловик
Любитель
Offline
  • MayroN
  • Репутация: 34
  • Сообщений:22
  • Файловик
  • Статус пользователя Я бы изменил этот мир,но Бог не дает исходников
NightFury,
Нерозберусь.Напиши будь добр как правильно
Форум » Counter-Strike 1.6 » Сервер Counter-Strike 1.6 » Помощь по скриптингу » Исчезновение Ентити (Домучать)
  • Страница 1 из 1
  • 1
Поиск:
(threadpage)