Перейти к содержанию

ForserX

Разработчики
  • Публикаций

    234
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

Весь контент ForserX

  1. Сорри, лишний раз поднимать это всё не было желания. Да и говорить о том, к чему я не причастен - только сплетни по кругу гонять. Надеюсь на нормальный ремейк без CoC систем.
  2. @imcrazyhoudini, а ну за AIW я могу пояснить, к несчастью это моя зона ответственности. Лор такой: Я вроде ему в 22/23 году написал, где-то год он морозился, потом пишет - го перенос. К тому времени у меня уже не было особо желания с этим возится, но ок, похер. Перетащил проект ногой вперёд. Дальше был спам багами/приколами, большая часть из которых была из серии неправильной секции в конфиге, а виноват движок. В какой-то момент меня это задрало и я просто начал игнорить Андрюху, ибо перепроверять все конфиги и скрипты на косяки, которые ко мне, как к проггеру не относятся, желания не было. Вот он и ходил, жаловался, что мы (я) плохие.
  3. Тут речь больше о том, что часть людей, что "правят движок" и так сами по себе работа(ли/ют) программистами в разных компаниях и в разных сферах. Да, есть и обычные игроки, которые просто хотят что-то подправить под себя. Дополнено 0 минут спустя А ты чейнжлог аномали глянь и пройдись поиском по IX-Ray в нём
  4. https://ixray-team.github.io/ixray-1.6-stcop/mods/addons/fixes.html https://ixray-team.github.io/ixray-1.6-stcop/mods/addons/immersive.html
  5. Барт, тебе не в моды на других движках
  6. Поищи в сливах исходников локаций сталкера
  7. покажи скрином хоть
  8. X-Ray движок из серой зоны. Он вроде бы проприетарный, а вроде и АП на него нет никакого Дополнено 1 минуту спустя Пытались. Хлопнули репо, 9 месяцев они весело под нарушением, но GSC не подали документов о судебных разбирательствах и GitHub вернул репо в свободный доступ
  9. тут чел в одного делает. Не душни
  10. Обновление от 25.04.2026 IX-Ray SDK + NET Online Edition
  11. Да я на чистом IXR запускал, пришлось распаковать в поисках новых луа функций...
  12. Думаю можно чутка поднять тему и расписать пару моментов, которые будут полезны в целом для любого проекта: 1. Lua -> C++ -> Lua Соль: Конвертации данных из Lua в C++/C++ в Lua - не особо дешёвое удовольствие. Давайте рассмотрим на примере ПЫС функции в оригинале и энхансед (спасибо ребятам из Матабу за один из лучших примеров): Оригинал: -- Достигнут ли я отрядом выбравшим меня как цель. function se_smart_terrain:am_i_reached(squad) local squad_pos, squad_lv_id, squad_gv_id = squad:get_location() local target_pos, target_lv_id, target_gv_id = self:get_location() if game_graph():vertex(squad_gv_id):level_id() ~= game_graph():vertex(target_gv_id):level_id() then return false end if IsMonster(alife():object(squad:commander_id())) and squad:get_script_target() == nil then return squad_pos:distance_to_sqr(target_pos) <= 25 end return squad.always_arrived or squad_pos:distance_to_sqr(target_pos) <= self.arrive_dist^2 end Матабу эдишен: -- Достигнут ли я отрядом выбравшим меня как цель. function se_smart_terrain:am_i_reached(squad) local squad_pos, squad_lv_id, squad_gv_id = squad:get_location() local target_pos, target_lv_id, target_gv_id = self:get_location() if gg_vertex_level_id(squad_gv_id) ~= gg_vertex_level_id(target_gv_id) then return false end if IsMonster(alife():object(squad:commander_id())) and squad:get_script_target() == nil then return squad_pos:distance_to_sqr(target_pos) <= 25 end return squad.always_arrived or squad_pos:distance_to_sqr(target_pos) <= self.arrive_dist^2 end > if game_graph():vertex(squad_gv_id):level_id() ~= game_graph():vertex(target_gv_id):level_id() then Что ж тут такого страшного, что это решили переделать? Стучим в C++ (game_graph()) -> возвращаем в луа -> стучим в C++ vertex(squad_gv_id) -> возвращаем в луа -> Стучим в C++ level_id() -> возвращаем в луа. Итого, на левую часть условия происходит порядка ~7 конвертаций данных туда и обратно. И грубо говоря единая C++ функция gg_vertex_level_id(squad_gv_id) будет иметь всего ~3 конвертации, что кратно дешевле. Да, это всё "спички", если не обращать внимание на кол-во таких вызовов в тике. 2. Файлы логики (да гори оно огнём) И речь тут пойдёт не столько о сложных схемах, сколько о кол-ве символов на операцию. Логика в X-Ray имеет свой кастомный лексер, который по факту перебирает посимвольно каждую операцию, что вы туда вбиваете. Помимо самих символов - роляет и содержание. Если у Вас есть сложные условия с несколькими инфопорциями или скриптовыми кондишенами - схлопните в одну Луа функцию. Такой код будет дешевле для понимания системе xr_logic. Ибо он всё равно будет "генерить" функции для переваривания ваших кондишенов. 3. Рестрикторы - Наследие ПЫС string4096 m_temp; for (u32 i=0, n=_GetItemCount(*restrictions); i<n; ++i) if (!xr_strcmp(restriction,_GetItem(*restrictions,i,m_temp))) return (true); return (false); Это кусок кода из апдейта рестрикторов. В чём соль: Сюда приходит название рестриктора и огромная строка со списком всех рестрикторов на локации через запятую. _GetItem итеративно перебирает огромную строку в поиске нужной. Посимвольно. С первого символа. Каждый. Раз. По хорошему, это лучше исправить в самом движке. Но для модмейкеров могу сказать лишь одно: компактные названия рестрикторов имеют смысл.
  13. Откуда такая информация? Если и правда так, то искренне сочувствую им. Ибо те версии, что я тут постил, постились для поиска багов и их там оказалось немало, а если брали из коммитов, то там гг, вероятность найти коммит, где правками движка не сломали SDK имеет ~5%
  14. Всем на неё пофиг. Успокойся
  15. Красиво, что тут скажешь.
  16. Ньюфаги в сети интернет. Это ещё задолго до С2 делали
  17. Я сейчас смеха ради дифнул девелоп с ванильным ЗП. 16 скриптов различается (и то 10 из них - это оптимизации с энхансед эдишен, которые можно откатить) По конфигам там тоже различия в паре файлов. Друг, учись сравнивать файлы

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек. Оставаясь на сайте, вы подтверждаете свое согласие на их использование. Политика конфиденциальности | Условия использования