HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Траиктория полета гильзы
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
NorthWanderer
Странник по коду

Дата регистрации: Jun 2007
Проживает: Развалины City 17
Сообщений: 30
Возраст: 36

Рейтинг



Траиктория полета гильзы

Как ее изминить чтобы она была не направо и вверх, а налево
если кто не понял вот скрин:

[ Вложение ]
test0005.jpg

Сообщить модератору | IP: Записан
Сообщение: 24758

Старое сообщение 06-01-2008 22:58
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6854
Возраст: 34

Рейтинг



В ev_hldm.cpp

C++ Source Code:
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 );

Сообщить модератору | IP: Записан
Сообщение: 24759

Старое сообщение 07-01-2008 03:54
- За что?
Тренсфер
Житель форума

Дата регистрации: Mar 2007
Проживает: (void)
Сообщений: 327

Рейтинг



Там ещё задаётся и корость вращения
Я например инвертировал вектор right
Вот так:
есть на клиенте строки

C++ Source Code:
EV_GetDefaultShellInfo( args, origin, velocity, ShellVelocity, ShellOrigin, forward, right, up, 20, -12, 4 ); //Позиция откуда будут вылетать и лететь гильзы.
 
EV_EjectBrass ( ShellOrigin, ShellVelocity, angles[ YAW ], shell, TE_BOUNCE_SHELL ); //бросаем медную гильзу

В первой функции есть параметр right который говорит что гильза летит направо. Это значение мы получаем из функции AngleVectors, которая по воле случая (кажись) не возвращает левый вектор относительно угла игрока.
Я делал так
C++ Source Code:
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 ); //Позиция откуда будут вылетать и лететь гильзы.

Это всего лишь ещё один способ сделать это

__________________
Хотелось бы, чтобы не только хотелось...

Сообщить модератору | IP: Записан
Сообщение: 24761

Старое сообщение 07-01-2008 08:34
- За что?
NorthWanderer
Странник по коду

Дата регистрации: Jun 2007
Проживает: Развалины City 17
Сообщений: 30
Возраст: 36

Рейтинг



а нелзя как нибуть место откуда вылетает гильза прицепить к кости модели как мазлфлэшы ?

Сообщить модератору | IP: Записан
Сообщение: 24763

Старое сообщение 07-01-2008 09:04
- За что?
Тренсфер
Житель форума

Дата регистрации: Mar 2007
Проживает: (void)
Сообщений: 327

Рейтинг



Кодингом- врядли. А моделлингом можно как у дробовика, т.е. сделать гильзу, анимацию вылета гильзы из пушки на модели пушки. Приделать эту анимацию в анимации выстрела. Потом кодингом кидать такую же гильзу под ноги, якобы это та самая.
Но зачем ? Хорошо регулировать вылет гильзы на стволе это отдельное искусство настройщика

__________________
Хотелось бы, чтобы не только хотелось...

Сообщить модератору | IP: Записан
Сообщение: 24764

Старое сообщение 07-01-2008 09:14
- За что?
NorthWanderer
Странник по коду

Дата регистрации: Jun 2007
Проживает: Развалины City 17
Сообщений: 30
Возраст: 36

Рейтинг



так это хорошо, но как сделать, чтобы гильзу не подбрасывало наверх, чтоб она летела прямо. Я пробовал удалять строчку up вот тут:

C++ Source Code:
EV_GetDefaultShellInfo( args, origin, velocity, ShellVelocity, ShellOrigin, forward, -right, up, 17, -12, -6 );

но компилятор начинал ругаться так:
sdk\Multiplayer Source\cl_dll\ev_hldm.cpp(834) : error C2660: 'EV_GetDefaultShellInfo' : function does not take 10 parameters

Сообщить модератору | IP: Записан
Сообщение: 24766

Старое сообщение 07-01-2008 09:30
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6854
Возраст: 34

Рейтинг



Точку вылета гильзы можно сделать аттачментом(как в кс) - а это моделлинг и кодинг А может в хл так и есть?

Сообщить модератору | IP: Записан
Сообщение: 24770

Старое сообщение 07-01-2008 10:11
- За что?
Scream
Житель форума

Дата регистрации: Sep 2007
Проживает: Москва
Сообщений: 192
Возраст: 39

Рейтинг



Награды
 
[1 награда]


NorthWanderer Если убираешь параметр, ставь вместо него 0.
Вроде прально сказал)))

Сообщить модератору | IP: Записан
Сообщение: 24775

Старое сообщение 07-01-2008 11:16
- За что?
Тренсфер
Житель форума

Дата регистрации: Mar 2007
Проживает: (void)
Сообщений: 327

Рейтинг



Да, правильно function does not take 10 parameters
Означеет что функции не достаточно 10 пораметров которые уже есть. Но я незнаю что из этого получится. Я всегда делал деление параметра на число.

__________________
Хотелось бы, чтобы не только хотелось...

Сообщить модератору | IP: Записан
Сообщение: 24779

Старое сообщение 07-01-2008 11:39
- За что?
rocksTaa
Житель форума
Девойс

Дата регистрации: Aug 2007
Проживает: космодром плесецк
Сообщений: 162
Возраст: 36

Рейтинг



моделингом также можно обойтись даж без анимации посмотрите как это сделано в файр армсе **********
$sequence "fire1" "fire1" fps 30 {
{ event 5001 0 "21" }
{ event 5001 0 "33" }
{ event 5005 1 "models/shell556.mdl 3 200" }
****************
но заработает ли в самом хл ХЗ...

__________________
rt

Сообщить модератору | IP: Записан
Сообщение: 24788

Старое сообщение 07-01-2008 15:29
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6854
Возраст: 34

Рейтинг



rocksTaa ну естественно в файрармсе есть эвент 5005 который выбрасывает специальную гильзу. Как сделать такое - изучай исходный код Xash 0.39 и модели к нему.

Сообщить модератору | IP: Записан
Сообщение: 24793

Старое сообщение 07-01-2008 17:07
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33045
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Это значение мы получаем из функции AngleVectors, которая по воле случая (кажись) не возвращает левый вектор относительно угла игрока.

Есть две основных системы координат left-handed и right-handed.
В хл используется правосторонняя.
левый вектор можно получить соответственно с помощью AngleVectorsFLU
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; } } } }

Сообщить модератору | IP: Записан
Сообщение: 24810

Старое сообщение 08-01-2008 13:52
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35043
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Дядя Миша на кой хрен, простите, писать еще одну функцию, если левый вектор - это правый со знаком минус?

__________________

Сообщить модератору | IP: Записан
Сообщение: 24822

Старое сообщение 08-01-2008 16:44
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33045
Нанёс повреждений: 392 ед.

Рейтинг



XaeroX найди еще 10 отличий
а они есть.

Сообщить модератору | IP: Записан
Сообщение: 24826

Старое сообщение 08-01-2008 16:58
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35043
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Дядя Миша я не собираюсь искать отличия. Я просто утверждаю:

Цитата:
XaeroX писал:
левый вектор - это правый со знаком минус

Будешь с этим спорить?

__________________

Сообщить модератору | IP: Записан
Сообщение: 24829

Старое сообщение 08-01-2008 17:33
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 21:22. Новая тема    Ответить
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Траиктория полета гильзы
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024