Перейти к контенту

Редактирование движка X-Ray


Rolan

Рекомендуемые сообщения

@abramcumner, ага, это была моя первая мысль. Только там чёрт ногу сломит. CAnomalyDetector имеет дело с CCustomZone. Расчет границы происходит где-то в CSpaceRestriction, по памяти пишу. Что бы этот самый Restriction появился, нужно в restriction_manager добавить эту аномалию, потом вытащить откуда-то соотв. Restriction, а потом удалить эту аномалию из менеджера, если у этого Restriction border().empty(). Бррр...

Поделиться этим сообщением


Ссылка на сообщение

@AndreySol, в моем случае это были аномалии костров. Я их создавал со сферой такого радиуса и не указал им eRestrictorTypeNone, что бы CAnomalyDetector их игнорировал.

Поделиться этим сообщением


Ссылка на сообщение

@AndreySol, нет, но такое поведение движка не правильно в любом случае и если есть возможность исправить, то почему бы не исправить. Если движок не рассчитан на корректную работу с таким шейпами, то хорошо бы, если он это как-то обрабатывал, ведь подсунуть ему могут что угодно и не обязательно специально. Пусть в лог ругнется или упадет с внятной диагностикой, в крайнем случае.

 

Поделиться этим сообщением


Ссылка на сообщение

@abramcumner, сначала подумал эту проверку в CAnomalyDetector добавить, добавил, посмотрел и решил, что более общее решение наверное будет лучше. В итоге остановился на таком:

https://github.com/dsh2dsh/OGSR-Engine/commit/378a34414c26a58c4422536dfbdbb84f0f8c8adc

 

Все равно костыль, на моя взгляд, но вроде работает.

 

  • Спасибо 1
  • Нравится 1
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

@Graff46, есть, но возможно не все и возможно имеют другой вид. Например, трассировка луча вызывается по другому. Прямого доступа к памяти нет вообще. 

Поделиться этим сообщением


Ссылка на сообщение

@Graff46, лучше всего переделать это поделие без использования нетпакетов. Можешь покопаться у меня в репозитории, что-то я там переделывал. 

Поделиться этим сообщением


Ссылка на сообщение

О, пришёл дартаньян в белом.

 

2 hours ago, Карлан said:

смотри Prosectors 1.3 (там еда подпорченная спавнится движком)

Куда смотреть то? По указанной ссылке нет ни одного cpp. Что, опять захотелось показать, какой ты весь из себя умный? Сдержанней нужно батенька быть, в себе _ерьмо нужно держать. 

  • Согласен 2
  • Смешно 1
  • Сочувствую 1

Поделиться этим сообщением


Ссылка на сообщение

@naxac, ты имеешь ввиду те, что бы запущены через start_stop_menu()? Странное поведение. Если судить по

https://github.com/OGSR/OGSR-Engine/blob/271c01063ffed1416f88ea433fc185cf95d8cf9c/ogsr_engine/xrGame/UIDialogHolder.cpp#L227

то Update() вызывается у всех диалогов из списка, которые не сказали, что они не Enabled().

 

А если судить вот по этому

https://github.com/OGSR/OGSR-Engine/blob/271c01063ffed1416f88ea433fc185cf95d8cf9c/ogsr_engine/xrGame/UIDialogHolder.cpp#L168

то обработчик клавиатуры должны вызываться у того диалога, который был открыт последним.

 

  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

@naxac, что-то я не понял. Ну хорошо, сделали


self.var = CUIScriptWnd_my()

а кто будет у них Update() вызывать? Для оконной системы движка они пока-что не существуют.

 

  • Спасибо 1
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение
7 hours ago, Zander_driver said:

OGSR поменяли чуть-чуть, но не очень много

Видимо потому, что тем, кто это может сделать, это не нужно. В частности, в OGSR было изменено ровно то, в чем была необходимость у разработчиков OGSR. 

  • Спасибо 1
  • Нравится 1
  • Согласен 1

Поделиться этим сообщением


Ссылка на сообщение
(изменено)
1 hour ago, Graff46 said:

Условие на ограничение количества частиц

Так какое оно было-то, что именно вырезали? Я ничего подобного ни в каких, известных мне, движка не помню.

 

Кстати, об этой колбе. Я бы посоветовал вообще удалить оттуда стеклянную оболочку. Ни к чему она там. Это два динамических объекта.

 

У меня, к слову, при их разбивании не зависает. ФПС падает, сильно, но всего на пару секунд. Правда у меня не оригинальный OGSR, а модифицированный.

Изменено пользователем dsh

Поделиться этим сообщением


Ссылка на сообщение
1 hour ago, Graff46 said:

Я не в курсе что там именно вырезали

Так с чего ты решил, что что-то вырезали? Что бы что-то вырезать, это что-то должно быть. Найди хоть где-нибудь описание какого-либо ограничения партиклов, что бы можно было понять, о чем вообще идет речь.

 

1 hour ago, Graff46 said:

можно глянуть твой ОГСР, по партиклам?

Кто же не дает? Вон в подписи ссылка, поднимись на уровень выше.

Поделиться этим сообщением


Ссылка на сообщение

Мест-то может и много, вот только, что бы был положительный эффект, нужно весь движок переписать с нуля, с учетом многопоточности, а не тупо навтыкать мютексов, что бы не падало на каждый чих. А потом еще отладить такой движок на куче разных модов, т.к. в процессе переписывания появится куча новых проблем.

  • Согласен 1

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

@Zander_driver, а в чем изобретение? В движке постоянно такие лучики пускаются для разных проверок.

 

Можно вспомнить моё замечание о костылях и велосипедах. Я писал через год, но ты похоже идёшь опережающим темпом.

Изменено пользователем dsh

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

@Zander_driver, вот то, что ты написал, кажется мне велосипедом. Т.к. материалы ты не обрабатываешь, то и коллбеки не нужны и можно обойтись уже готовыми средствами. Например чем-то вроде


Level().ObjectSpace.RayPick(Position(), dir, m_fJumpHeight, collide::rqtBoth, RQ, this)

Это я просто скопировал из первого попавшегося кода. Что означают параметры разобраться не сложно.

 

Изменено пользователем dsh

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

×
×
  • Создать...