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

Prostomod

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

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

  • Посещение

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

    13

Сообщения, опубликованные Prostomod


  1. 7 минут назад, хармс сказал:

    максимальные значения  редактируются этих файлах xrRender_R1.dll, xrRender_R2.dll,xrRender_R3.dll,xrRender_R4.dll., через косоль уже задаёшь нужные значения или в файле user

    Через HEX или дизассемблер только не пытайся редактировать эти файлы - проще самому внести правки в исходниках и собрать нормально.

    Конкретно где задаётся это значение я не знаю, но можешь найти в движке саму ту консольную команду (поиск по движку строки с именем команды), и после проследить логику работы, и где лимиты назначены. Только учти: если сделать лимит слишком высоким, то у тебя движок тупо не вытянет траву.


  2. Mawrak Глядел по IX-Ray, про ваниль не знаю:

    1. Получить клиентский объект - тот объект, который мы проверяем на нахождение в нашем контейнере.
    2. Используя метод "parent" (my_cobj:parent()), получаем объект, внутри которого он содержится. Если такого нет (просто валяется где-то) - метод вернёт nil.
    3. Проверяем, что родитель - это наш контейнер. Или через story_id, или просто ID (если знаем его), или ещё как-то.

    Никаких iterate_inventory не требуется. И по идее, даже если повесить на тик, не особо сожрёт ресурсов, но лучше на событие какое-нибудь придумать.

    • Спасибо 1

  3. Это что тут вообще происходит? Можно пж хронологию событий:)?

     (Неужели это какой-то движ, о котором узнаю не постфактум:)?)


  4. 6 часов назад, Policai сказал:

    ооочень много лишнего и ненужного мне, и перенос только ради проверки, это весь мод переделывать, вообще не вариант...  так что буду искать тут проблему

    Фичи в этом движке в основном делаются с уклоном на том, чтоб по умолчанию работать как в ванильном ЗП. "Ненужное" нужно явно включать, если этого хочешь. Да, потребуется адаптация, но если сам не можешь - в команде часто предлагают помощь по переезду.
    Плюс, движок имеет достаточно много инструментов отладки. Там найти проблему поломки сейвов будет намного проще, чем в околооригинальном движке. Особенно потому что будут те, кто в случае крайней необходимости смогут запустить твой мод под отладчиком, изучить, и ткнуть пальцем в ошибку.


  5. 4 минуты назад, Policai сказал:

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

    Немного не понял: у тебя сейчас стоит игровой _g.script, в котором отключён abort, или правленный _g.script, где аборт включён? Если первое, то переключись на правленный _g.script, поиграй пока не вылетет, а после скинь логи (вообще все файлы какие есть, я так понял их в результате несколько?). Мб что получится заметить.


  6. 11 минут назад, Policai сказал:

      в скриптах даже  не ноль,  у меня отрицательное значение в этом плане...

    Ок, тогда вот что хочу, чтоб ты сейчас сделал:

    1. Нашёл скрипт _g.script
    2. Открыл его и нашёл функцию abort, в ванили там такое находится
      -- Крешнуть игру (после вывода сообщения об ошибке в лог)
      function abort(fmt, ...)
      	local reason = string.format(fmt, ...)
      	--error_log(reason)
      end
    3. Если у тебе скрипт точно такой же, как в этом посте (если не уверен - просто покажи эту функцию), значит у тебя abort отключён.

    Если получилось так, что отключён (и с учётом того, что я без понятия, будет ли простое раскомментирование работать на движке Мортана), то можно его включить. Я так делал на конкурсе квестов для полностью ванильного ЗП (вроде как тоже от denis2000):

    Спойлер
    1. Скачай файл (custom_log.script) и закинь себе в геймдату.
    2. Исправить функцию abort на это:
      
      -- Крешнуть игру (после вывода сообщения об ошибке в лог)
      function abort(fmt, ...)
      	local reason = string.format(fmt, ...)
      	printf(fmt, ...)
      	error_log(reason)
      end
    3. В этом же файле найди функцию printf. Она должна выглядеть так:
      
      function printf(fmt,...)
      
      	local is_g = 0
      	local result = fmt
      	if debug == nil then
      		log(string.format(fmt,...))
      		return
      	end
      	local info_table = debug.getinfo(2)
      	local script_name = string.gsub(info_table.short_src, "%.script", "")
      	script_name = string.gsub(script_name, "gamedata\\scripts\\", "")
      
      	if scripts_to_print[script_name] == false then return end
      
      	script_name,is_g = string.gsub(script_name, "_g", "")
      	if is_g == 0 then
      		result = script_name..":("..info_table.currentline.."):"..fmt
      	else
      		result = fmt
      	end
      	log(string.format(result,...))
      
      end

      Тебе надо будет заменить последнюю строчку "log(string.format(result,...))" на "custom_log.print_log(string.format(result,...))". Получится что-то вроде:

      
      function printf(fmt,...)
      
      	local is_g = 0
      	local result = fmt
      	if debug == nil then
      		custom_log.print_log(string.format(fmt,...))
      		-- log(string.format(fmt,...))
      		return
      	end
      	local info_table = debug.getinfo(2)
      	local script_name = string.gsub(info_table.short_src, "%.script", "")
      	script_name = string.gsub(script_name, "gamedata\\scripts\\", "")
      
      	-- if scripts_to_print[script_name] == false then return end
      
      	script_name,is_g = string.gsub(script_name, "_g", "")
      	if is_g == 0 then
      		result = script_name..":("..info_table.currentline.."):"..fmt
      	else
      		result = fmt
      	end
      	custom_log.print_log(string.format(result,...))
      	--log(string.format(result,...))
      	
      end
    4. Ну собственно, мы сделали так, что сообщения об ошибке будут выводиться в совсем другой текстовый файл "gamedata/log_file.log" т.к. в ванильном ЗП есть некоторые проблемы. Мб для движка Мортана это не требуется, но зато будет точно работать.
      После запуска, если где-то в скриптах триггернулся abort, то инфа об ошибке будет занесена в этот файл. И можно будет после этого чинить не "симптомы", а причины вылетов.

  7. 12 минут назад, Policai сказал:

    вылеты по любому прописываются  в сохранках после вылета...

    Я тебя могу заверить на 100%, что это не так. Сейв сохраняет только часть информации, которая существует в мире игры на момент вызова функции сохранения. Чаще всего, это данные Alife объектов, в том числе данные ГГ, куда в модах в скриптах зачастую засовывают нужную им информацию, даже то что не относится к игроку.

    У тебя функция abort() в скриптах работает? В ванильном ЗП она отключена, у тебя без понятия. Если её включить, ты сможешь отловить некоторые ошибки (причём с относительно понятными сообщениями), которые обычно игнорируются, а потом приводят к серьёзным поломкам (например, поломкам сейва).


  8. В 04.03.2026 в 19:52, Policai сказал:

    По итогу в конце концов всё это приводит  к вылету на рабочий стол без лога.

    В 04.03.2026 в 19:52, Policai сказал:

    через 3-4 таких вылета, ломаются сохранки...

    Я не профи в графике, но звучит это как нонсенс.
    Сообщение "RENDER [Warning]: Too many occlusion queries were issued(>1536)!!" означает то, что сцена слишком сложная по освещению (слишком много проверок для света на видимость). И оно вообще никак не касается системы сохранения! Так что вылеты на стол и поломки сейвов - это что-то другое... 

    В 04.03.2026 в 21:04, Policai сказал:

    Вообще концовка лога выглядит так:
    (Движок Мортана)
     

      Лог (Скрыть контент)

     RENDER [Warning]: Too many occlusion queries were issued(>1536)!!!
     RENDER [Warning]: Too many occlusion queries were issued(>1536)!!!
     RENDER [Warning]: Too many occlusion queries were issued(>1536)!!!
     RENDER [Warning]: Too many occlusion queries were issued(>1536)!!!
     RENDER [Warning]: Too many occlusion queries were issued(>1536)!!!
     RENDER [Warning]: Too many occlusion queries were issued(>1536)!!!
     RENDER [Warning]: Too many occlusion queries were issued(>1536)!!!
     RENDER [Warning]: Too many occlusion queries were issued(>1536)!!!
     
    xrEngine.exe caused an EXCEPTION_ACCESS_VIOLATION in module lua51.dll at 00000000025C6709
    stack trace:
    0x00000000025C6709 lua51.dll
    0x00000000025C4B3F lua51.dll
    0x00000000025C58C0 lua51.dll
    0x00000000025C597A lua51.dll
    0x00000000025EFEBD lua51.dll, lua_error + 23645 byte(s)
    0x000000000260E951 lua51.dll, lua_close + 417 byte(s)
    0x000000000260E509 lua51.dll, luaJIT_profile_stop + 32057 byte(s)
    0x00000000004E112E luabind.dll, luabind::module_::module_ + 94 byte(s)
    0x00000000BD81E819 xrGame.dll, CDialogHolder::operator= + 8642841 byte(s)
    0x00000000BDA406CD xrGame.dll, CDialogHolder::operator= + 10878925 byte(s)
    0x00000000BDA405C4 xrGame.dll, CDialogHolder::operator= + 10878660 byte(s)
    0x00000000BD7C69EC xrGame.dll, CDialogHolder::operator= + 8282860 byte(s)
    0x00000000BD65B0C4 xrGame.dll, CDialogHolder::operator= + 6793668 byte(s)
    0x00000000400C86F5 xrEngine.exe, CObjectList::Update + 1413 byte(s)
    0x00000000400647F4 xrEngine.exe, IGame_Level::OnFrame + 20 byte(s)
    0x00000000BD9BDD5E xrGame.dll, CDialogHolder::operator= + 10344030 byte(s)
    0x0000000040028498 xrEngine.exe, CSecondVPParams::IsSVPFrame + 808 byte(s)
    0x0000000040027C2C xrEngine.exe, CRenderDevice::FrameMove + 332 byte(s)
    0x0000000040027053 xrEngine.exe, CRenderDevice::on_idle + 275 byte(s)
    0x00000000400278BF xrEngine.exe, CRenderDevice::message_loop + 111 byte(s)
    0x00000000400279FF xrEngine.exe, CRenderDevice::Run + 303 byte(s)
    0x00000000400CBE22 xrEngine.exe, InitSound2 + 850 byte(s)
    0x00000000400CD41C xrEngine.exe, InitSound2 + 6476 byte(s)
    0x00000000400CD5B9 xrEngine.exe, InitSound2 + 6889 byte(s)
    0x00000000400E343E xrEngine.exe, CApplication::load_draw_internal + 81470 byte(s)
    0x00000000225F7374 KERNEL32.DLL, BaseThreadInitThunk + 20 byte(s)
    0x0000000022E3CC91 ntdll.dll, RtlUserThreadStart + 33 byte(s)
     
    [error][     487]    : Попытка обращения к неверному адресу.

    Я не могу указать точное местоположение причины вылета, коллстек довольно затёртый (и мб отсутствием .pdb файлов - символов отладки), но по логу выглядит как будто какая-то луа ошибка. Мб логика какая... Не знаю, что у Мортана по инструментам отладки, поэтому хз что предложить для поиска причины вылета.


  9. Во первых, на всякий: не я автор этой фичи. Я лишь заинтересован в ней.

    10 минут назад, Stalk873 сказал:

    если боезапас закончится, они же оружие не перезарядят?

    В отличии от С2, тут учитывается магазин. Если он закончился - всё, пушка не стреляет. Пулемётов из обрезов не будет. Про клины я без понятия, честно, не видел реализацию фичи.

    26 минут назад, alinsky сказал:

    РПГ, Гаусс и прочие ваншотные стволы, надеюсь, можно будет добавить в исключения. Иначе это будет лютая имба.

    С другой стороны, Гауссы и РПГ просто так не валяются: если уж так вышло, что мододел допустил наличие такой пухи рядом с полтером - ну... удачи:).
    Хотя я думаю, возможность ограничить будет, фича ещё в разработке. Да и в принципе, фичи делаются отключаемыми (или явно, или просто "не мешает если не используешь").

    • Лайк 1
    • Мастер! 1

  10. 1 час назад, itsRepka сказал:

    Мне-бы простой движок на котором удобно работать да и всё...

    ИМХО на ТЧ особо моддить смысла мало - ЗП более отточен в целом. Да, есть некоторые фичи в ТЧ, которых нет в ЗП, но фанатские форки это исправляют.
    Из ЗП движков можно отметить OXR, AXR и IXR.

    • AXR (Advanced X-Ray) это считай просто основа для создания сюжетного мода: берёшь аддоны от разрабов, и занимаешься чисто сюжетом. Есть поддержка всей трилогии (в т.ч. ТЧ). Минусы: говорят про проблемы с производительностью.
    • IXR (IX-Ray) - современный быстроразвивающийся форк X-Ray. Преимущество для обычного модедела над остальными тут, помимо классических "расширение функционала и новые фичи", это полный набор инструментов (в составе не только движок, но и компиляторы и SDK) и система аддонов (можно как легко делать аддоны к модам, которые будут очень легко совмещаться с другими, так и даже полноценный мод в них делать). Помимо ЗП, поддержка ЧН скоро появится, и в разработке ТЧ. Из минусов могу отметить возможные проблемы с совместимостью с обычным инструментарием, возможные баги, а также то, что движок очень чувствителен к косякам разработчика (те ошибки, что в оригинале проигнорируется, в IXR сразу всплывут на поверхность), хотя последнее не сказал бы, что минус...
    • OXR (Open X-Ray) - тоже крупный форк ЗП движка. Тут мало что могу сказать т.к. не работал с ним. Вроде тоже есть поддержка всей трилогии, но насколько оно работает - не в курсе. Да и в принципе как-то мало новостей про него слышно.

    Ещё можно упомянуть CoC и особенно Anomaly, но чаще всего там делают относительно мелкие аддоны, чем полноценные проекты. Хотя для своих целей могут быть хорошим выбором.

    • Лайк 1
    • Мастер! 1

  11. 6 часов назад, itsRepka сказал:

    Почему практически все новые моды(за исключением всяких короткометражек), делаются на OGSR?

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

    • Аплодисменты 1

  12. 2 часа назад, Cyrax сказал:

    я не шутил по поводу оригинальной игры и нового сюжета, который не будет сделан, а вы должны будете играть и представлять его сами себе!

    Я понял, какую шутку можно на 1 апреля выдать:)

    • Смех 1

  13. 21 минуту назад, AleksandrR сказал:

    Артём планировал сделать постепенную прогрузку по мере передвижения,поделив всю карту на участки.

    Обратите внимание ещё на коллизию - в движке это единый огромный меш, который стирает вообще любую информацию для повторяющихся объектов (даже MU). И загружается это разом.
    В IX-Ray есть некоторые планы с исправлением этого, но это же не ваниль, и я не знаю какой у вас там движок.

    • Жму руку 1

  14. Cyrax Вот тебе пояснительная бригада от меня: в сталкере есть постпроцессы (всякие там эффекты на экран типа "напился водки", "пнв" и подобных). В составе SDK уже есть редактор постпроцессов (ну у ванильного ЗП СДК точно видел как отдельная прога, в IX-Ray SDK он вроде тоже есть, но уже как редактор внутри редактора), но тут, как я понял, сделан:
    а) Независимый от всего СДК редактор.
    б) С некоторыми улучшениями (мб не помню просто, но в других редакторах постпроцессов я не припомню предпросмотр эффекта).

    В целом, почему нет? Может быть полезно, особенно если там есть ещё какие-нибудь киллер-фичи по сравнению с уже существующими редакторами постпроцессов (я не особо много с ними работал, а также мельком только глянул на описание инструмента тут).

    • Спасибо 1

  15. Теймуроглы Если найдутся - будет великолепно. Тем более про некоторые технические проблемы хрея, о которых я говорил: есть у меня и желание (эти проблемы отчасти и мой мод зацепили, хоть у меня локи далеко не такие большие, как эта Припять), и идеи, как их исправить. По крайней мере, в рамках ix-ray.

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

    • Мастер! 1

  16. 1 час назад, Теймуроглы сказал:

    Такую локу если и использовать то только делить на две а то и на три отдельные локи .

    Как раз следствие того, что просто так хрей сейчас её не переварит в полноценном моде.
    Ну или же ещё причиной может быть банальная избыточность (и дальнейшая оптимизация локи путём выкидывания лишнего): игру-то полноценную можно сделать, но вот когда дело движется к тому, чтобы реализовать, то надо хорошо подумать, как сделать всё так, чтоб беготни было минимум, и лока по максимуму была задействована. В апдейте 2.0 не думаю, что насколько перепилен сюжет ТЧ, что понадобилась бы Припять целиком.


  17. 3 минуты назад, kapernaum сказал:

    без прикручивания к игре это просто путеводитель в гугле

    Вроде сама цель - именно воссоздать локу, а ля виртуальный музей. С чем справляются на ура.

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

    • Лайк 2

  18. nestandart_5443 Привет, ведётся ли какая-нибудь работа над адаптацией этого пака моделей куда-либо (тобой или кем-то ещё)? В особенности интересует IX-Ray.

    Заинтересовался им, захотел у себя в моде использовать его, но текущее состояние мне не понравилось - к самим мешам претензий нет (разве что выявились проблемы с настройками костей некоторых...), а вот текстуры "какие-то не такие". Как я понял, бампов нет, и причиной тому является проблема их экспорта из С2? В целом, у меня имеется возможность у меня вытащить все нужные текстуры для моделей из С2 вместе с набором текстур, из которых можно будет собрать бампы под PBR в IX-Ray (хз насчёт бампов под ваниль, честно), но вот хочу узнать: кто-то уже подобным занимается или нет?

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

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