HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Помогите в написании функции TraceHull принимающей аргументы mins & maxs
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Immortal*BLG
Новичок

Дата регистрации: Jun 2008
Проживает: (void)
Сообщений: 13
Возраст: 32

Рейтинг



Exclamation Помогите в написании функции TraceHull принимающей аргументы mins & maxs

Собственно сабж.
Мне нужна функция как из ХЛ2, но только принимающая не 3D mins и maxs а 2D. Я тут написал уже и это работает, но очень медленно, да и как мне кажеться не правильно....

C++ Source Code:
1
inline void TraceHull (const Math::Vector3D &source, const Math::Vector3D &destination, const Math::Vector2D &mins, const Math::Vector2D &maxs, const HalfLifeEngine::SDK::Constants::TraceIgnore_t traceIgnore, HalfLifeEngine::SDK::Classes::Edict *const entityToSkip, HalfLifeEngine::SDK::Structures::TraceResult_t &traceResult)
2
{
3
  HalfLifeEngine::SDK::Structures::TraceResult_t tempTraceResult;
4
  float fraction = 1.0f;
5
  Math::Vector2D offset;
6
  bool isStartSolid = false, isAllSolid = false;
7
 
8
  for (offset.x = mins.x; offset.x < maxs.x; ++offset.x)
9
    for (offset.y = mins.y; offset.y < maxs.y; ++offset.y)
10
    {
11
      HalfLifeEngine::Globals::g_halfLifeEngine->TraceLine (source + offset, destination + offset, traceIgnore, entityToSkip, tempTraceResult);
12
 
13
    if (tempTraceResult.isStartSolid)
14
      isStartSolid = true;
15
 
16
    if (tempTraceResult.isAllSolid)
17
      isAllSolid = true;
18
 
19
    if (tempTraceResult.fraction < fraction)
20
    {
21
      traceResult = tempTraceResult;
22
      fraction = tempTraceResult.fraction;
23
    }
24
  }
25
 
26
  traceResult.isStartSolid = isStartSolid;
27
  traceResult.isAllSolid = isAllSolid;
28
}

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

Старое сообщение 26-08-2009 04:21
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Immortal*BLG еще раз русским языком объясни что тебе нужно?
Трасить 2D объекты в hl2 или в своем движке или ты какой-то AMX-Mod пишешь?

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 26-08-2009 07:36
-
Immortal*BLG
Новичок

Дата регистрации: Jun 2008
Проживает: (void)
Сообщений: 13
Возраст: 32

Рейтинг



Мне нужно сделать быструю фнкцию TraceHull как в HL2, тока на базе движка HL1, которая заместо аргумента int hullNumber будет принимать 2 аргумента Vector mins, Vector maxs и работать с ними.
Пишу я не на amxx, разве выше упомянутый код похож на pawn?
(ПРОШУ НЕ ПИСАТЬ: "А ПОЧЕМУ ТЕБЕ ИМЕННО ТАК НАДО, ЮЗАЙ СТАНДАРТНЫЙ ТРЕЙС ХУЛЛ")
И еще одно - ты написал

Цитата:
Трасить 2D объекты
- мне надо трейсить 3D объекты, просто я опускаю z компонент векторов mins & maxs.
C++ Source Code:
TraceHull (source, destination, Vector (-16, -16), Vector (16, 16), /*other arguments....*/)
- это тоже самое, что и
C++ Source Code:
TraceHull (source, destination, Vector (-16, -16, 0), Vector (16, 16, 0), /*other arguments....*/)

но мне нужно первое.

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

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

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

Рейтинг



Immortal*BLG ну так ты вместо Z подставь ноль и будет тебе трасинг в 2D.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 26-08-2009 09:54
-
Immortal*BLG
Новичок

Дата регистрации: Jun 2008
Проживает: (void)
Сообщений: 13
Возраст: 32

Рейтинг



ДА УЖ ЭТО НАВЕРНО САМЫЙ УМНЫЙ ОТВЕТ НЕДЕЛИ!!!!!! - извини за нескромность.
1) МНЕ НУЖЕН 3D ТРЕЙСИНГ - я об этом уже писал выше.
2) Где ты видел функцию TraceHull в hl1 которая принимает mins & maxs? Я просто показал тебе, что мне не нужен компонент Z в этих аргументах, а source & destination - это 3D векторы, просто я сделал опечатку, написав во втором своем посте, что мне нужны 3д mins и maxs - там они должны быть 2D.

Отредактировано Immortal*BLG 26-08-2009 в 12:21

За это сообщение Immortal*BLG получил предупреждение за кэпслокинг

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

Старое сообщение 26-08-2009 12:15
- За что?
 XaeroX
Crystice Softworks

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

Рейтинг



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


Immortal*BLG
Да вроде бы нельзя в халфе трейсить кастомные халлы. Это ж тебе не ку3.
Но зато можно подменить стандартные халлы своими. Кури мануалы по ZHLT, pfnGetHullBounds и HUD_GetHullBounds.

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

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

Старое сообщение 26-08-2009 13:46
-
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
Где ты видел функцию TraceHull в hl1 которая принимает mins & maxs?

А с чего ты вообще взял, что в hl1 можно подставлять различные mins и maxs ? Там 4 хулла и они фиксированы.
Ты сам не знаешь чего хочешь, ты не понимаешь как оно работает и еще и огрызаешься.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 26-08-2009 14:57
-
Immortal*BLG
Новичок

Дата регистрации: Jun 2008
Проживает: (void)
Сообщений: 13
Возраст: 32

Рейтинг



Люди, вы разве слепые? Я же в первом посте выложил функцию, которая на основе TraceLine работает как TraceHull - так вот вопрос для профи, (хотя читая посты Дяди Мишы я уже сомневаюсь в этом) вобщем как эту функцию можно ускорить, переписать, может кто-то знает как точно вообще работает hl1 TraceHull - мало-ли.

XaeroX спасибо, проверю....

Добавлено 27-08-2009 в 13:43:

Не XaeroX, pfnGetHullBounds это мне не нужно....

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

Старое сообщение 27-08-2009 03:43
- За что?
 XaeroX
Crystice Softworks

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

Рейтинг



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


Мда... Клинический случай.

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

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

Старое сообщение 27-08-2009 05:35
-
 Дядя Миша
racing for fish

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

Рейтинг



Immortal*BLG это тебе кажется, что она так работает.
Ты даже не дал себе труда правильно скомбинировать результаты.
Флуд ни о чем, закрываю тему.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 27-08-2009 07:27
-
Тема закрыта Дядя Миша 27-08-2009 в 07:27
Временная зона GMT. Текущее время 12:46. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Помогите в написании функции TraceHull принимающей аргументы mins & maxs
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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