Участник
Пользователь
- Сообщения
- 264
- Реакции
- 132
- Помог
- 13 раз(а)
Игрался с реализацией trinity гранаты , худо бедно получилось - но остались вопросы c muzzleflash спрайтами возможно с которыми коммьюнити поможет :
1. Создаю env_sprite приатачиваю его гранатке и потом в синке по достижении последнего фрейма удаляю спрайт. Вопрос: удалять приатаченный спрайт обязательно самому или есть какой-то способ что бы спрайт проиграл анимацию до конца и самоудалился ?
2. Точка аттача у меня в центре модели гранатки, и idle, transform спрайты (свойства спрайта vp_parallel, additive) при спавне находятся как бы за моделью гранаты. Но в оригинале они должны находиться аккурат перед моделью - каким способом этого добиваются ? Сначала я думал просто вытащить точку аттача что бы она вылезла из модели ближе к игроку - но фигня какая то получается и скорее всего там как то по другому сделано. Что это может быть - какой флаг или еффект у ентити или же тип спрайта другой - кто знает подскажите плз.
1. Создаю env_sprite приатачиваю его гранатке и потом в синке по достижении последнего фрейма удаляю спрайт. Вопрос: удалять приатаченный спрайт обязательно самому или есть какой-то способ что бы спрайт проиграл анимацию до конца и самоудалился ?
2. Точка аттача у меня в центре модели гранатки, и idle, transform спрайты (свойства спрайта vp_parallel, additive) при спавне находятся как бы за моделью гранаты. Но в оригинале они должны находиться аккурат перед моделью - каким способом этого добиваются ? Сначала я думал просто вытащить точку аттача что бы она вылезла из модели ближе к игроку - но фигня какая то получается и скорее всего там как то по другому сделано. Что это может быть - какой флаг или еффект у ентити или же тип спрайта другой - кто знает подскажите плз.
Код:
public MakeMuzzleFlash(id, iBody, Float:scale, model_index)
{
static iMuz
iMuz = rg_create_entity("env_sprite")
if(is_nullent(iMuz))
return
set_entvar(iMuz, var_movetype, MOVETYPE_FOLLOW)
set_entvar(iMuz, var_owner, id)
engfunc(EngFunc_SetModel, iMuz, MODELS[model_index])
set_entvar(iMuz, var_classname, "ef_sticky")
set_entvar(iMuz, var_solid, SOLID_BBOX)
set_entvar(iMuz, var_body, iBody)
set_entvar(iMuz, var_owner, id)
set_entvar(iMuz, var_rendermode, kRenderTransAdd)
set_entvar(iMuz, var_renderamt, 255.0)
set_entvar(iMuz, var_aiment, id)
set_entvar(iMuz, var_scale, scale)
set_entvar(iMuz, var_frame, 0.0)
set_entvar(iMuz, var_nextthink, get_gametime() + 0.01)
SetThink(iMuz,"MF_Think")
dllfunc(DLLFunc_Spawn, iMuz)
}