Участник
Пользователь
- Сообщения
- 78
- Реакции
- 7
Всем привет, решил переписать один оружейный плагин terke под снайперскую винтовку. По итогу все готово, но есть всего лишь пара нюансов, мозолящих глаза.
Так как снайперская винтовка большая, при зуме на fov 40 (первый режим зума) в круге оптики торчит ствол. проблему частично решил добавив это:
И при нажатиях на ПКМ все работает чудесно, в перезарядке тоже выставил проверку, чтобы не было проблем с пустой моделью.
Однако, я не знаю как быть с primary attack. Прописал:
После выстрела в зуме, зум отключается, фов становится стандартным и после передергивания затвора зум включается снова, я без понятия как точно отловить момент возвращения зума, чтобы вовремя убрать модель. Поэтому попробовал использовать костыль в виде set_task с о сменой модели на нулевую. И он срабатывает криво, время возвращения зума может отличаться на доли секунд, из-за чего может либо пропасть модель и не включится зум(если модель сменилась на пустую до возвращения зума), либо ствол в зуме будет убираться с запозданием. Я без понятия как быть, есть уже мысль вместо смены модели на нулевую, либо как-то запустить анимацию draw и заморозить на нулевом кадре (если такое вообще возможно), либо вообще добавить пустую анимацию к v модели снайперки, и переключаться на нее. Может есть возможность отлова возращения зума или хотя бы костыль понадежнее?
И второй вопрос : Существует ли возможность прописать докупку кастомных патронов прописанных через ItemInfo_pszAmmo1? Ham_GiveAmmo точно не сработает, при докупе патронов, покупается 338 magnum на AWP без отображаемого худа, что мимо кассы.
Так как снайперская винтовка большая, при зуме на fov 40 (первый режим зума) в круге оптики торчит ствол. проблему частично решил добавив это:
Код:
public Ham_CBasePlayerWeapon__SecondaryAttack_Post(const pItem)
{
if(!IsCustomWeapon(pItem, WeaponUnicalIndex))
return HAM_IGNORED;
static pPlayer; pPlayer = get_member(pItem, m_pPlayer);
if(get_member(pPlayer, m_iFOV) == 40)//90 40 10
{
set_entvar(pPlayer, var_viewmodel, "");
}
else if(get_member(pPlayer, m_iFOV) == 90)
{
set_entvar(pPlayer, var_viewmodel, WeaponModelView);
}
return HAM_SUPERCEDE;
}
Однако, я не знаю как быть с primary attack. Прописал:
Код:
if(get_member(pPlayer, m_iFOV) != 90)
{
set_member(pPlayer, m_bResumeZoom, 1);
set_entvar(pPlayer, var_viewmodel, WeaponModelView);
set_member(pPlayer, m_iLastZoom, get_member(pPlayer, m_iFOV));
set_member(pPlayer, m_iFOV, 90);
set_entvar(pPlayer, var_fov, 90);
if(iClip != 1)
{
set_task(flNextAttack + 0.23, "LateralModelHide", pPlayer + 7);
}
}
else
{
flSpread += 0.0816;//0.08
}
И второй вопрос : Существует ли возможность прописать докупку кастомных патронов прописанных через ItemInfo_pszAmmo1? Ham_GiveAmmo точно не сработает, при докупе патронов, покупается 338 magnum на AWP без отображаемого худа, что мимо кассы.