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

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

 

1491319448148138184.png

Тема посвящена моддингу на платформе Зов Чернобыля.

 

Правила темы:

  • Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть.
  • Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
  • Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
  • Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться.
  • Так же, если вы модифицируете готовый мод, обязательно указывайте какой. Некоторые модификации очень сильно отличаются от Call of Chernobyl. 
  • Лайк 4
  • Хабар 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

WolfHeart Покопаюсь, благодарю 


Дополнено 26 минуты спустя

итого с самого начал:

Спойлер

-- ANOMALY ZONES ---------------------------------------------------------------------------------------------------------------------
cs_register	(object_factory, "CTorridZone",					"se_zones.se_zone_torrid",				"ZS_TORRD",			"zone_torrid_s")

 

Спойлер

#common
'fireball_zone' => 'ZS_TORRD',		# Z_TORRID before 128

#128
'fireball_acidic_zone' => 'ZS_TORRD',
'fireball_electric_zone' => 'ZS_TORRD',

# call of pripyat
ZS_TORRD	=> 'se_zone_torrid',

 

Спойлер

;coc
ZS_TORRD = cse_torrid_zone

 

Спойлер

FATAL ERROR!
Function: stkutils::file::entity::read_m_spawn
Line: 107
Description: unknown clsid cse_torrid_zone for section fireball_electric_zone

 

Изменено пользователем НечтоХрустящее

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


Ссылка на сообщение
Поделиться на другие сайты
 

Здравствуйте, уважаемые коллеги. Подскажите пожалуйста, в чем может быть проблема, если при подключении новой локации и переходе на неё через jump_to_level игра виснет (а на статике до конца вылетает), а последнее, что вижу в логе это вот это:

* phase time: 1189 ms
* phase cmem: 431879 K
* phase time: 43 ms
* phase cmem: 431876 K
* [win32]: free[8587702900 K], reserved[505652 K], committed[1725976 K]
* [ D3D ]: textures[788736 K]
* [x-ray]: process heap[431876 K], game lua[0 K], render[703 K]
* [x-ray]: economy: strings[24146 K], smem[13348 K]
alife():object(id) ! invalid id specified
compiling shader model_env_lq_1
stack trace:

При этом в СДК лока открывается спокойно без предупреждений. С ИИ сеткой творится какое-то непотребство, но это декомпил, а в игре висит оригинальный билд от автора:

Спойлер

Screenshot_127.thumb.png.c5f2422d4227d59c55e496b28a0bd84a.png

Так что вряд ли в этом причина (но я вообще не экперт).

Локация, которую я хочу открыть: https://www.youtube.com/watch?v=-sF66sZCeS0

Судя по видео - должна вполне грузиться. Но у меня вылетает. Спавн локи пересобирал, так как на нём актор изначально висел. Графпоинты тоже на свои пробовал менять, но не помогло.

Платформа - Call of Misery с кастомным спавном (да-да, СДК был мною подготовлен, уже подключил локацию Черта и Путепровод из Lost Alpha, работают без проблем).


Дополнено 46 минуты спустя

Update: Обнаружил, что данная проблема касается, кажется, только кастомного 64-битного движка, который я использую. На оригинальном двигле Call of Misery не вылетает при переходе на эту локу. При том на 64-битном движке после вылета можно загрузить автосейв послевылета и он работает, так что проблема гораздо менее критичная, чем я думал. Надо попробовать создать нормальный переход и проверить работоспособность, возможно это только jump_to_level баганутая команда.

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


Ссылка на сообщение
Поделиться на другие сайты
 

Подскажите, как убрать вот такое безобразие с текстурами травы на Статике при туманной погоде? Туман вообще никак не скрывает траву, но скрывает все остальное, выглядит отвратно:

Спойлер

ss_666_03-20-23_19-47-10_(way_in_zone).thumb.jpg.7bcda23590089f8412e8fb46a3941f33.jpg

Платформа - Call of Misery

Edit: а если это невозможно починить, подскажите, можно ли через скрипты сделать проверку активного рендера? Тогда я просто вручную вырежу неугодную погоду из статики

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

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


Ссылка на сообщение
Поделиться на другие сайты
 
13 часов назад, Mawrak сказал:

можно ли через скрипты сделать проверку активного рендера?

local render = get_console():get_string("renderer"), и дальше в условии проверяешь

Изменено пользователем N42
  • Спасибо 1

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


Ссылка на сообщение
Поделиться на другие сайты
 
В 17.03.2023 в 15:44, НечтоХрустящее сказал:

WolfHeart Покопаюсь, благодарю 


Дополнено 26 минуты спустя

итого с самого начал:

  class_registrator.script (Показать контент)


-- ANOMALY ZONES ---------------------------------------------------------------------------------------------------------------------
cs_register	(object_factory, "CTorridZone",					"se_zones.se_zone_torrid",				"ZS_TORRD",			"zone_torrid_s")

 

  scan.pm (Показать контент)


#common
'fireball_zone' => 'ZS_TORRD',		# Z_TORRID before 128

#128
'fireball_acidic_zone' => 'ZS_TORRD',
'fireball_electric_zone' => 'ZS_TORRD',

# call of pripyat
ZS_TORRD	=> 'se_zone_torrid',

 

  clsids.ini (Показать контент)


;coc
ZS_TORRD = cse_torrid_zone

 

  Сама ошибка (Показать контент)

FATAL ERROR!
Function: stkutils::file::entity::read_m_spawn
Line: 107
Description: unknown clsid cse_torrid_zone for section fireball_electric_zone

 

У меня такая же проблема. Распаковывал спавн сборки от Comrade. Покопавшись в clsids.ini решил приписать в середину названия "alife" как в билдах. Спавн распаковался, но не пробовал как в игре. Может поломается. Возможно стоит другую версию перла поставить.

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

Хочу уточнить один вопрос. Я правильно понимаю, плавную смену погоду реализовать на движке ЗП или КоКа просто невозможно, так?

Работаю с Call of Misery, там смена погоды каждый час. И я вот бегал-бегал, что-то не замечаю изменений в погоде без сейв-лоада. Так и надо? Или я что-то сломал пока погоду правил? 

Знаю что если вместо self:select_weather(false) в level_weathers.script в WeatherManager:update() прописать self:select_weather(true), то погода меняется прямо на глазах. Но только делает она это очень резко, что выглядит не очень (как я понял, такой вариант используется для смены визуала погоды после загрузку сейва или после сна). Это единственный вариант, чтобы погода менялась на глазах, без сейв-лоада? Просто хочу понять, есть вообще смысл с этим париться или нет.

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


Ссылка на сообщение
Поделиться на другие сайты
 

Mawrak конфиги погоды и текстуры придётся редактировать, чтобы был вид плавного переключения погоды

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


Ссылка на сообщение
Поделиться на другие сайты
 

Подскажите пожалуйста, а какой скрипт/конфиг отвечает вот за это окошко? 

Спойлер

ss_666_04-03-23_02-43-48_(predbannik).thumb.jpg.6e5d7980998de19dcf6905ff7d5bbc30.jpg

Заметил, что в этот список не попадают персонажи, у которых имеется story id. Я бы хотел сделать так, чтобы они туда всё же попадали. Да и вообще хочу иметь контроль над тем, что туда может и не может попасть.

Платформа в данном случае Call of Misery

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


Ссылка на сообщение
Поделиться на другие сайты
 

Mawrak  pda.script в функции calculate_rankings() по сиду отсекаются. В чистом коке, в коме наверно также

Изменено пользователем N42
  • Спасибо 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

Подскажите пожалуйста, на CoC удобно ли будет делать сюжетный мод?

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


Ссылка на сообщение
Поделиться на другие сайты
 
2 часа назад, InZard сказал:

Подскажите пожалуйста, на CoC удобно ли будет делать сюжетный мод?

А почему нет ведь есть сюжетный режим в сос, или в той же аномалии.

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

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

Изменено пользователем Mawrak
  • Жму руку 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

У меня щепетильная проблема, господа

Ковыряю COM

Мой блокнот почему то сохраняет отредактированные файлы в кодировке, отличной от кодировки исходных файлов. Стандартная кодировка - windows 1225, у меня же теперь сотни три файлов в кодировке UTF8. Из за этого торговля в моём моде работала по принципу 1:1, не учитывая вообще скидки и наценки. Как только я пересохранил файлы торговли в кодировке ANSI, торговля заработала как надо. А файлы группы "squad_descr_имя локации " с кодировкой UTF8 и вовсе вызывают вылет при загрузке игры. Но если опять же их пересохранить в кодировке ANSI, то игра спокойно запускается. 

В целом же, моя сборка работает, но чем дольше играю, тем чаще она вылетает по нехватке памяти и при этих вылетах порой бьются сохранения. Суммарно часов по 10 без вылетов работает

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

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


Ссылка на сообщение
Поделиться на другие сайты
 
11 часов назад, baraholschik сказал:

Из за этого торговля в моём моде работала по принципу 1:1, не учитывая вообще скидки и наценки. Как только я пересохранил файлы торговли в кодировке ANSI, торговля заработала как надо.

О, а у меня была такая проблема, и я не мог понять почему мои файлы не работаю. Теперь буду знать

11 часов назад, baraholschik сказал:

Почему блокнот меняет сам кодировку файлов? У него стандартная кодировка вообще то ANSI,  а не UTF8.

А какой у вас блокнот-редактор? Надо использовать Notepad++, он по идее не должен так делать, и в нем можно посмотреть и поменять кодировку легко. Обычный системный блокнот для кода не предназначен и вообще такая себе программа на самом деле.

11 часов назад, baraholschik сказал:

В целом же, моя сборка работает, но чем дольше играю, тем чаще она вылетает по нехватке памяти и при этих вылетах порой бьются сохранения. Суммарно часов по 10 без вылетов работает

А на чем основана теория, что вылеты по памяти идут из-за кодировки? То есть да, как вы заметили, из-за кодировки могут быть ошибки, но вылеты по памяти могут быть просто потому что игра загружается данными, и чем дольше вы играете, тем больше нагрузка?

Можно попробовать поставить 64-битный движок (я брал движок Anomaly из Dollchan 8, он вроде с КоМом нормально дружит, по крайней мере вылеты по памяти лечит, могу скинуть если лень качать весь мод) и посмотреть, сохранятся ли вылеты. Если нет - то стандартные вылеты по ресурсам, если да - то из-за чего-то еще.

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

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

  • Жму руку 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

Mawrak Большинство файлов правил обычным блокнотом, некоторые правил с помощью winmerge.  При помощи последнего я и знал, что кодировки отличаются. За совет спасибо, скачаю notepad++

Движок я уже правил какой то программой, тоже сделал его х64. Ну вернее, насколько я понял,  теперь windows  считает, что движок  х64. Без этого у меня сборка вылетела каждые полчаса, значит, толк от этого был.  Если движок anomaly   из dollchan 8 по настоящему х64, то скиньте конечно, если вам удобно. Побегаю, протестирую

Третий рендер это какой? Ну в смысле directx с каким номером? 

На статике запускал, но так долго не бегал конечно, пару часов максимум. 

Куда эту команду нужно прописывать? К ярлыку от движка? Разве в СОС она сразу не прописана? 

У меня есть ощущение, что вылеты связаны конкретно с тем временем, которое длится симуляция. Чем больше дней в зоне, тем чаще происходят вылеты. Как будто массивы данных, используемых игрой, всё это время копятся и никуда не выгружаются.  

У сталкера вообще есть такой инструмент, как контроль популяции НПС? Быть может, зверья со временем становится всё больше и больше, пока движок не начинает давиться, обрабатывая всё это? Я как раз увеличил численность отрядов мутантов и сократил численность в отрядах сталкеров

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


Ссылка на сообщение
Поделиться на другие сайты
 
12 часов назад, baraholschik сказал:

Если движок anomaly   из dollchan 8 по настоящему х64, то скиньте конечно, если вам удобно. Побегаю, протестирую

Вот движок (там в моде их несколько на выбор, именно этот у меня работал с CoM стабильно, но полную совместимость не гарантирую) https://drive.google.com/file/d/1wtLpsxWwewPtTfE_qEVHq6IAX_dWf44M/view?usp=sharing

По памяти этот движок ни разу не вылетал еще, а мой мод тяжелый (на 32-бит вылетает по памяти сразу при начале игры если настройки не понижать в полный ноль).

12 часов назад, baraholschik сказал:

Третий рендер это какой? Ну в смысле directx с каким номером? 

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

12 часов назад, baraholschik сказал:

Куда эту команду нужно прописывать? К ярлыку от движка? Разве в СОС она сразу не прописана? 

К ярлыку для запуска экзешника (или через bat-файл). И вроде автоматом не прописана, по крайней мере я проверял нагрузку на систему через Диспетчер, и она была сильно меньше. Плюс только с добавлением этой команды я мог запустить свою сборку на DX10 и DX11 рендерах когда играл на стандартном 32-битном движке CoM-а.

12 часов назад, baraholschik сказал:

Быть может, зверья со временем становится всё больше и больше, пока движок не начинает давиться, обрабатывая всё это? Я как раз увеличил численность отрядов мутантов и сократил численность в отрядах сталкеров

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

  • Мастер! 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

Mawrak Благодарю за помощь! Сейчас буду колдовать...


Дополнено 40 минуты спустя

Mawrak , вести с полей, так сказать

Движок anomaly не подошёл - из папки bin и из корневой папки Xray.exe не запускается, ссылаясь на отсутствующий fsgame. ltx, хотя он есть

Ярлыки от Xray.exe тоже не запускаются, по тем же причинам

Но запустился stalker-coc.exe,  через который я всегда сборку запускаю. При запуске висела картинка из dollchan. Игра проработала на третьем рендере минут 15 и произошёл тот самый вылет по памяти. Запускал с ярлыка с командой no_staging,  результат тот же. Диспетчер задач показал, что использовалось максимум 4 Гб оперативы из 8

Вернул свой "пропатченный" движок обратно, запустил снова  stalker-coc.exe напрямую без ярлыка и команды no_staging. Побегал где то час без проблем на третьем рендере, времени больше не было проверять

Завтра попытаюсь облегчить симуляцию, и протестирую с командой no_staging

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


Ссылка на сообщение
Поделиться на другие сайты
 

baraholschik прошу прощения за поздний ответ. Ну да, игру я тоже запускаю из корневой папки с обычного ярлыка, тогда fsgame.ltx распознается. Но раз вылеты все равно есть, то видимо тут не в движке дело. Если есть какие-то обновления по результатам тестов, готов попробовать еще что-то предложить.

  • Жму руку 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

Mawrak , да я сам надолго пропал. В общем, вылеты эти ни одним и ваших способов не лечились. Это я сам набедокурил - прописал каждому смарту 20 разных отрядов мутантов на выбор, разнообразия захотел)
Теперь у каждого смарта по 10 сквадов на выбор, на 9 директе вроде неплохо работает. Уменьшил количество стартовых отрядов в simulation.ltx, это тоже пошло на пользу. Кстати, заметил, что некоторые приметные мутанты появляются на локациях, на которых появляться не должны - однажды контроллер на кордон попал, хотя заспавниться он там никак не мог, я проверял. Сам пришел что ли? 
Сейчас осталось поймать баланс между количеством сталкеров и мутантов - у меня слишком мало людей оказалось. Стоило повысить коэффициент числа сталкеров в настройках - со следующей локации пошли вылеты
 


Дополнено 25 минуты спустя

 Такой вопрос еще есть: как мне убрать заскриптованных мутантов из подземелий? Хочу заменить их на рандомные сквады, как на поверхности. Удаление секций с заскриптованными монстрами из смартов по адресу configs/script/имя локации/smarts/имя смарта вызывает вылет, а больше идей у меня нет 

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


Ссылка на сообщение
Поделиться на другие сайты
 

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

Mawrak , вести с полей, так сказать
Не знаю, как в COC обстоят дела, но в COM сделано было так, что  изменить население подземных локаций можно, ковыряя три группы файлов:
1. "смарты" по адресу configs/script/имя локации/smarts
2. файлы формата squad_description_имя локации.ltx
3. файлы формата spawn_sections_имя локации.ltx

1.1 В первом пункте изменить все спавнящиеся сквады нельзя, например по катакомбам агропрома там указаны всего 4 смарта, их население заскриптовано. По идее, это дело можно отключить с помощью файлов типа "agru_bloodsucker_spawn" по адресу  "configs\scripts\agroprom_underground". Но я смог лишь отключить спавн одного контроллера в финальном туннеле, как в ТЧ, и вместо него никто не отспавнился.

2.1 Однако заскриптованных мутантов можно заменить через файлы из второго пункта. Опять же на примере подземки агропрома видно, что в squad_description_agroprom_underground указана примерно половина всех скриптованых сквадов на локации. И есть пометка, что все сквады с полтергейстами заменены на бюреров, и это уже надо смотреть в файлах из третьего пункта

3.1 В spawn_sections_agroprom_underground перечислены помимо сквадов из второго пункта, все остальные сквады, например, куча отрядов снорков из коридора с жарками. Файл разбит на секции и к названию каждой секции после квадратных скобок приписан конкретный вид мутантов, который будет спавниться. Например, секция называется так: 
[agru_poltergeist_2]:burer_weak - это как раз полтергейсты, замененные на бюреров.

До конца не уверен, но очень похоже, что после гибели вот всех этих заскриптованных мутантов, в дело вступает симуляция, используя сквады, которые указаны в смартах по адресу configs/script/имя локации/smarts. Я туда дописал секции [spawn_mutants] с бюрерами в том числе, и после убийства скриптованых кровососов на их месте появились бюреры
Кстати, заметил новую проблему - в подземельях глючит физика, а конкретно деревянные ящики порой застревают в поверхностях или друг друге и при первом же взаимодействии их начинает "троить", в итоге игра со страшными звуками вылетает. В какой момент эта проблема появилась, не знаю, я подземелья только сейчас начал проверять, а на поверхности такого не случается 
UPD: есть еще simulation.ltx, в нем тоже прописаны  например скриптованные сквады кровососов из подвалов агропрома, но я не думаю, что тут стоит их удалять, так как без них скрипты не сработают и мы пойдём на рабочий стол скорее всего

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

Очередная проблема, ребят. COM. После отключения выжигателя мозгов, в бункере под Радаром спавнятся 30 монолитовцев. Я их заменил на экологов и получил при запуске игры такой вылет:
[error]Line          : 189
[error]Description   : fatal error
[error]Arguments     : LUA error: ...misery second\gamedata\scripts\sim_squad_scripted.script:639: wrong number of arguments to 'insert'
Заменял болванчиков в файле spawn_section_bunker.ltx, другие файлы не трогал. Что я мог сделать не так?
Ранее точно также по аналогии я успешно изменил скриптованное население почти всех подземных локаций, но исключительно мутантов. Замена зомби-сталкеров на мутантов и наоборот, вызывала другой вылет и я на это забил. Видимо, это принципиально разные виды НПС, их так просто не заменить
Но сейчас то я людей на людей поменял, всё должно было работать. 
Единственная "отсебятина", это строчка "relationship = enemy", ее я добавил каждому экологу. Но это строчку я взял из файла squad_description_agroprom - там смарт в туннеле есть, где всем отрядам эта строчка прописана с разными значениями. Я сначала думал, что это баг, когда одиночки в туннеле на меня нападали, а гопники были нейтралами, но на самом деле, такое отношение к гг было в файле прописано
UPD: проблема решена

Изменено пользователем baraholschik
Проблема решена

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


Ссылка на сообщение
Поделиться на другие сайты
 

Знатоки, мне снова нужна ваша помощь. В общем, мне нужно, чтобы по скрипту игрок услышал определенный звук. Без получения квестов или сообщений в пда, только звук. Самого звука у меня пока нет, но можно же использовать "затычку". Триггером будет отключение выжигателя. Есть какое то типовое решение для этой ситуации? Или придётся писать скрипт с нуля и всюду его "регистрировать"?
Платформа COM

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


Ссылка на сообщение
Поделиться на другие сайты
 

baraholschik можно так сделать, функцию только объявить не забудь

Спойлер

function play_zvuk()
    if has_alife_info("инфопоршень_отключения_выжигателя") then
        local snd_obj = xr_sound.get_safe_sound_object([[твои_звуки\твоя_заглушка]])
        snd_obj:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d)
    end
end

 

  • Хабар 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

StrawFlux ого, спасибо! Но для меня это всё не сильно понятно. Можете указать, в какой файл эту функцию вписывать? Название функции произвольное? Что значит объявить функцию?

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


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу