Моделлер
Участник
Пользователь
- Сообщения
- 1,559
- Реакции
- 1,566
- Помог
- 2 раз(а)
Целый день провозился с этой анимацией денег.
По сути сделал анимацию падения денег с небольшой высоты у модели
Велосити дропа работает нормально и также при убийстве с игрока летят деньги...
Но вот такой вот нюанс хотелось бы закрыть
Получается ,когда бросается модель денег изначально оно не наследует анимацию,как как модель по сути ещё не коснулась земли
И вот они летят без анимации сначала,а потом какая-то происходит задержка в доли секунды,а затем уже анимация...
Вопрос : Можно ли сделать без этой задержки,а если нет - то хотя-бы так,что-бы когда бросаешь модель, то уже сразу в момент вылета уже наследовало анимацию с модели
Вот Видео отрывок и кусок кода
Дроп
Создание
По сути сделал анимацию падения денег с небольшой высоты у модели
Велосити дропа работает нормально и также при убийстве с игрока летят деньги...
Но вот такой вот нюанс хотелось бы закрыть
Получается ,когда бросается модель денег изначально оно не наследует анимацию,как как модель по сути ещё не коснулась земли
И вот они летят без анимации сначала,а потом какая-то происходит задержка в доли секунды,а затем уже анимация...
Вопрос : Можно ли сделать без этой задержки,а если нет - то хотя-бы так,что-бы когда бросаешь модель, то уже сразу в момент вылета уже наследовало анимацию с модели
Вот Видео отрывок и кусок кода
Дроп
Код:
if(weapon == CSW_KNIFE)
{
if(fm_get_user_money(id) < get_pcvar_num(money_drop_a))
money = fm_get_user_money(id)
else
money = get_pcvar_num(money_drop_a)
fm_set_user_money(id,fm_get_user_money(id) - money)
can_pickup[id] = false
set_task(0.3,"reset_pick",id)
new start_velo = get_pcvar_num(force) * 15
new end_velo = get_pcvar_num(force) * 50
velocity_by_aim(id,random_num(start_velo,end_velo),velo)
make_money(id,money,velo)
return PLUGIN_HANDLED
}
Код:
public make_money(id,money,Float:velo[])
{
new moneybags = money/100000
new moneyleft = money
new Float:origin[3]
new Float:angles[3]
new Float:mins[3] = {-2.79, -0.0, -6.14}
new Float:maxs[3] = {2.42, 1.99, 6.35}
if((moneybags * 100000) < money) moneybags++
for(new i = 0; i < moneybags; ++i)
{
new newent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString,"info_target"))
pev(newent,pev_angles,angles)
angles[1] += random_num(1,360)
pev(id,pev_origin,origin)
set_pev(newent, pev_animtime, get_gametime())
set_pev(newent, pev_sequence, 2)
set_pev(newent, pev_frame, 0.0)
set_pev(newent, pev_framerate, 1.0)
set_pev(newent, pev_nextthink, get_gametime() + LIFE_TIME)
set_pev(newent, pev_origin, origin)
set_pev(newent, pev_classname, "pdm_money")
set_pev(newent, pev_body, 2);
engfunc(EngFunc_SetModel, newent, model)
engfunc(EngFunc_SetSize,newent,mins,maxs)
set_pev(newent,pev_angles,angles)
set_pev(newent, pev_solid, SOLID_TRIGGER)
set_pev(newent,pev_movetype,MOVETYPE_TOSS)
set_pev(newent, pev_rendermode, kRenderFxNone);
set_pev(newent, pev_velocity,velo)
if(moneyleft == 0)
return FMRES_IGNORED
if(moneyleft < 100000)
{
moneybox[newent]=moneyleft
moneyleft = 0
return FMRES_IGNORED
}
moneyleft -= 100000
moneybox[newent]=100000
}
return FMRES_IGNORED
}