![]() |
Страницы (2): [1] 2 » Показать все 16 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Траиктория полета гильзы (https://hlfx.ru/forum/showthread.php?threadid=1092)
Траиктория полета гильзы
Как ее изминить чтобы она была не направо и вверх, а налево
если кто не понял вот скрин:
В ev_hldm.cpp
EV_GetDefaultShellInfo( args, origin, velocity, ShellVelocity, ShellOrigin, forward, right, up, 20, -12, 4 ); |
// думаю, что 20 -12 и 4 это скорость в направлениях forward right и up |
EV_EjectBrass ( ShellOrigin, ShellVelocity, angles[ YAW ], shell, TE_BOUNCE_SHELL ); |
Там ещё задаётся и корость вращения
Я например инвертировал вектор right
Вот так:
есть на клиенте строки
EV_GetDefaultShellInfo( args, origin, velocity, ShellVelocity, ShellOrigin, forward, right, up, 20, -12, 4 ); //Позиция откуда будут вылетать и лететь гильзы. |
EV_EjectBrass ( ShellOrigin, ShellVelocity, angles[ YAW ], shell, TE_BOUNCE_SHELL ); //бросаем медную гильзу |
1 | vec3_t left; //обьявляем наш левый вектор |
2 | ....тут остальые обьявления |
3 | AngleVectors( angles, forward, right, up );//после того как получили векторы |
4 |
5 | left=-right;//сделаем наш вектр наоборот |
6 | ....остальной код |
7 | EV_GetDefaultShellInfo( args, origin, velocity, ShellVelocity, ShellOrigin, forward, left, up, 20, -12, 4 ); //Позиция откуда будут вылетать и лететь гильзы. |
__________________
Хотелось бы, чтобы не только хотелось...
а нелзя как нибуть место откуда вылетает гильза прицепить к кости модели как мазлфлэшы ?
Кодингом- врядли. А моделлингом можно как у дробовика, т.е. сделать гильзу, анимацию вылета гильзы из пушки на модели пушки. Приделать эту анимацию в анимации выстрела. Потом кодингом кидать такую же гильзу под ноги, якобы это та самая.
Но зачем ? Хорошо регулировать вылет гильзы на стволе это отдельное искусство настройщика
__________________
Хотелось бы, чтобы не только хотелось...
так это хорошо, но как сделать, чтобы гильзу не подбрасывало наверх, чтоб она летела прямо. Я пробовал удалять строчку up вот тут:
EV_GetDefaultShellInfo( args, origin, velocity, ShellVelocity, ShellOrigin, forward, -right, up, 17, -12, -6 ); |
Точку вылета гильзы можно сделать аттачментом(как в кс) - а это моделлинг и кодинг А может в хл так и есть?
NorthWanderer Если убираешь параметр, ставь вместо него 0.
Вроде прально сказал)))
Да, правильно function does not take 10 parameters
Означеет что функции не достаточно 10 пораметров которые уже есть. Но я незнаю что из этого получится. Я всегда делал деление параметра на число.
__________________
Хотелось бы, чтобы не только хотелось...
моделингом также можно обойтись даж без анимации посмотрите как это сделано в файр армсе **********
$sequence "fire1" "fire1" fps 30 {
{ event 5001 0 "21" }
{ event 5001 0 "33" }
{ event 5005 1 "models/shell556.mdl 3 200" }
****************
но заработает ли в самом хл ХЗ...
__________________
rt
rocksTaa ну естественно в файрармсе есть эвент 5005 который выбрасывает специальную гильзу. Как сделать такое - изучай исходный код Xash 0.39 и модели к нему.
code:
_inline void AngleVectorsFLU(const vec3_t angles, vec3_t forward, vec3_t left, vec3_t up) { float angle; static float sr, sp, sy, cr, cp, cy; // static to help MS compiler fp bugs angle = angles[YAW] * (M_PI*2 / 360); sy = sin(angle); cy = cos(angle); angle = angles[PITCH] * (M_PI*2 / 360); sp = sin(angle); cp = cos(angle); if (forward) { forward[0] = cp*cy; forward[1] = cp*sy; forward[2] = -sp; } if (left || up) { if (angles[ROLL]) { angle = angles[ROLL] * (M_PI*2 / 360); sr = sin(angle); cr = cos(angle); if (left) { left[0] = sr*sp*cy+cr*-sy; left[1] = sr*sp*sy+cr*cy; left[2] = sr*cp; } if (up) { up[0] = cr*sp*cy+-sr*-sy; up[1] = cr*sp*sy+-sr*cy; up[2] = cr*cp; } } else { if (left) { left[0] = -sy; left[1] = cy; left[2] = 0; } if (up) { up[0] = sp*cy; up[1] = sp*sy; up[2] = cp; } } } }
Дядя Миша на кой хрен, простите, писать еще одну функцию, если левый вектор - это правый со знаком минус?
__________________
XaeroX найди еще 10 отличий
а они есть.
Дядя Миша я не собираюсь искать отличия. Я просто утверждаю:
__________________
Временная зона GMT. Текущее время 22:14. | Страницы (2): [1] 2 » Показать все 16 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024