HLFX.Ru Forum
Показать все 6 сообщений этой темы на одной странице

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=2288)


Отправлено с@ш@ халфер 22-08-2010 в 20:02:

Unhappy ПРОСТРЕЛЫ.

Я уже голову сломал пытаясь выдрать из гаусса код прострела для пушки mp5...
Пожалуйста(искал в гугле на двух форумах а толку 0)сделайте(есле не трудно)или помогите с прострелов через стены...
И чтобы это работало в пушке mp5//

__________________
Глупый юзер

Кто написал^^^

Тот сам такой...


Отправлено Дядя Миша 22-08-2010 в 20:24:

с@ш@ халфер может для начала английский подучить?
ну чтобы каменты в коде понимать.

C++ Source Code:
1
// try punching through wall if secondary attack (primary is incapable of breaking through)
2
if ( !m_fPrimaryFire )
3
{
4
  UTIL_TraceLine( tr.vecEndPos + vecDir * 8, vecDest, dont_ignore_monsters, pentIgnore, &beam_tr);
5
  if (!beam_tr.fAllSolid)
6
  {
7
    // trace backwards to find exit point
8
    UTIL_TraceLine( beam_tr.vecEndPos, tr.vecEndPos, dont_ignore_monsters, pentIgnore, &beam_tr);

Траселайн до вышеприведенного кода упирается в стенку и возвращает tr.vecEndPos - это точка, где луч уперся в стенку.
Далее мы делаем трассу сквозь стенку вперед на 8 юнитов:
C++ Source Code:
UTIL_TraceLine( tr.vecEndPos + vecDir * 8, vecDest, dont_ignore_monsters, pentIgnore, &beam_tr);

Если через 8 юнитов трасса не выйдет наружу (стенка окажется толще либо это будет крайняя стена уровня, то трасса наружу не выйдет и вернет параметр allsolid == true.
Поэтому чуть дальше делается проверка на beam_tr.allsolid.
Но стенка, вовсе необязательно должна быть ровно 8 юнитов. Она может быть и 1 юнит и 3 юнита. Поэтому нам необходимо найти точку с обратной стороны стены, которую мы прострелили. Для этого делается еще одна трасса, назад - уже в сторону игрока.
C++ Source Code:
UTIL_TraceLine( beam_tr.vecEndPos, tr.vecEndPos, dont_ignore_monsters, pentIgnore, &beam_tr);

Этот последний вызов и вернет точку с той стороны стены - beam_tr.vecEndPos.
А уж что дальше делать с этой точкой - трасить вперед до следующей стенки или нанести урон тому кто стоит за ней - это дело кодера.
В кода гаусса, к примеру, луч ослабляет свою дамагу, соответственно с толщиной стены, и прёт дальше.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено с@ш@ халфер 22-08-2010 в 20:54:

А есть ли исходник какой-нить пушки(ну наподобие глока 18)
с кодом простреливания?
Если есть то плиз скиньте в аттач.

__________________
Глупый юзер

Кто написал^^^

Тот сам такой...


Отправлено sania_3 22-08-2010 в 22:08:

http://half-life.ru/forum/showthrea...t*&pagenumber=2
Искал целых минут семь. Перед тем, как иметь мозг другим, юзай поиск.

__________________
Владелец восьмиструнного монстра Schecter Omen-8 Vintage White (VWHT)
Бывал на концертах этих групп: Rashamba, 7000$, Louna, Molecul, Project Revolution, Headsource, Digimortal и многих других. Куча автографов.
Я член возлагаю на сраный геймдев.


Отправлено Дядя Миша 23-08-2010 в 10:14:

sania_3 ну вод - как раз код гаусса и еть. Даже трасса называется beam_tr

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено с@ш@ халфер 24-08-2010 в 13:38:

А есть ли подробный туториальчик на эту тему?

__________________
Глупый юзер

Кто написал^^^

Тот сам такой...


Временная зона GMT. Текущее время 07:31.
Показать все 6 сообщений этой темы на одной странице

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