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

[SoC] Ковыряемся в файлах


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

@Norman Eisenherz , не совсем понятно пока. "Развернуть" бы вопрос...

У GSC в оригинале, в принципе, используются только 2 варианта: либо непосредственно в all.spawn, либо через инклуд со ссылкой на внешний файл логики в том же all.spawn, наподобие:

[logic]
cfg = scripts\esc_trader.ltx

Исключая, конечно, "стандартные" схемы поведения. Если логика персональная.

Либо в настройках логики для работ в гулаге, если NPC входит в его состав.

gamedata\config\misc\gulag_abc.ltx для оригинала.

 

М.б., "хитрая" скриптовая вычитка, наподобие тех же "АМК-респаунеров" etc. ?

Ссылка на комментарий

В спавн-секциях обычных NPC указаны ссылка на секцию [stalker], включая базовую логику. Несмотря на пустой файл, болванчики сразу после "рождения" уверенно идут в сторону свободных лагерей, воюют, чешут в затылке и т. д. Где это все прописано?

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий

@Norman Eisenherz , боюсь ошибиться, но, по-моему, оно изначально в движке "разруливается", а потом уже скриптовые схемы подключатся. Не знаю, будет ли полезно, в своё время @Dennis_Chikin пытался здесь разобрать, как оно вообще работает (и не работает в том числе:biggrin:) помимо прочего.

  • Нравится 1
  • Полезно 1
Ссылка на комментарий
09.05.2024 в 15:06, Norman Eisenherz сказал:

болванчики сразу после "рождения" уверенно идут в сторону свободных лагерей, воюют, чешут в затылке и т. д. Где это все прописано?

всё основное прописано в smart_terrain.script и se_stalker

 

а так сама игра, движок игры, заставляет сталкеров привязываться к смартам, или если прописан smart_terrain none, true в логике, то они типа симуляционные и должны бродить по локациям по факту бездельничать) а дальше сталкеры управляются "воюют, чешут в затылке" своим ИИ, который тоже в файлах движка задан.

Ссылка на комментарий

Всем привет! 
В игре ФОТОГРАФ - SELFMADE [ОБТ]  при убийстве водяного зомби происходит вылет!
Без разницы, кто его убивает: ГГ или НПС. Решение этой проблемы до сих пор нет.
Лично я в сети фикса к этой проблеме нигде не нашёл...
 

Скрытый текст

[error]Expression    : ExitFromWinMain
[error]Function      : xrDebug::_initialize::<lambda_e756b11812234af616d2810501a1a6a8>::operator ()
[error]File          : Y:\OGSR-Engine\ogsr_engine\xrCore\xrDebugNew.cpp
[error]Line          : 534
[error]Description   : Unexpected application exit!

[error]Expression    : SG
[error]Function      : CRender::model_CreateParticles
[error]File          : Y:\OGSR-Engine\ogsr_engine\Layers\xrRenderPC_R3\r3.cpp
[error]Line          : 558
[error]Description   : Particle effect or group doesn't exist
[error]Arguments     : hit_fx\hit_water_zombi_2
 

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

P.S. Пришлось править, чтобы монстры не нападали на ГГ и НПС.
А то невозможно было играть из-за этого водяного...

Ссылка на комментарий

@Recluse , они подряд идут? Второй вылет: неправильно скомпилирован файл particles.xr.

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

 

  • Нравится 1
  • Полезно 2
Ссылка на комментарий
09.05.2024 в 17:09, Balavnik сказал:

А может быть такое, что они прямо в сдк прописаны?

Нет, не может.

Логика нпс пишется в кастом-дате объекта, и может быть ссылкой на ltx-конфиг в папке config/scripts.

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

  • Полезно 2

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий
18 часов назад, Купер сказал:

они подряд идут?

Нет. Просто в самом логе всегда по две ошибки прописывается.
Я заметил, что номер в [error]Line постоянно меняется...

Изменено пользователем Recluse
Ссылка на комментарий

@Recluse , первая часть - стандартная "заглушка": приложение неожиданно :biggrin: прекратило работу. Вторая более предметная.

Если вылеты "плавающие" и логи разные, то - сам понимаешь - нужна какая-то статистическая коллекция :biggrin:. Гадать по случайному огрызку практически бесполезно. Для OGSR, кстати, именно полные логи предпочтительнее, так как там добавлен очень подробный отладчик и отслеживаются практически все игровые события и ошибки.

  • Нравится 1
  • Полезно 1
Ссылка на комментарий

старый пост

 

Добавил еще один тег <class> в существующий профиль именного NPC, запустил спавн известного отряда новичков с таким классом:

• если новый класс на втором месте, отряд спавнится в старом составе, то есть тег не учитывается;

• если новый класс на первом месте, игра вылетает с ошибкой "no default specific character set for class" со ссылкой на класс именного NPC, у которого не осталось ни одного профиля, то есть второй тег снова не учитывается.

 

Как должен работать спавн NPC с одним и тем же профилем через разные классы, и работает ли он вообще?

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий
1 час назад, Norman Eisenherz сказал:

одним и тем же профилем через разные классы, и работает ли он вообще?

что мешает проверить, заспавнить НПС, у которого есть уникальный character id но нет привязанного к нему класса в профилях, если будет вылет, всё значит для character id обязательно привязывать зарегистрированный класс, если будет и так работать значит класс привязывать к имени профиля необязательно, а все это делают по привычке потому что так делали ПЫсы в оригинальных конфигах, также можно опытным путём выяснить что для игры первично имя character id или название класса, которое игра берёт в character_profile, когда спавнит нпс через алл-спавн.

Ссылка на комментарий

Это вообще другой эксперимент. Ради интереса отключил класс в базовом и полном профиле Сидора, оставил только ссылку <specific_character> – спавнится успешно.

 

Исходный вопрос: очень давно очень опытный сталкер написал, что две ссылки <class> в профиле учитываются, но тест показывает, что, как и во всех конфигах, читается только первое из двух значений с одним именем. И то ли условия теста неправильные, то ли тот сталкер ошибся.

  • Полезно 1

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий

@Norman Eisenherz куда именно добавлял второй класс: в <character> (npc_profile.xml) или <specific_character> (например, character_desc_garbage.xml)?

В упомянутом посте речь идёт о втором.

  • Нравится 1
Ссылка на комментарий
2 часа назад, Norman Eisenherz сказал:

Ради интереса отключил класс в базовом и полном профиле Сидора, оставил только ссылку <specific_character> – спавнится успешно

Как понять - отключил? Не совсем понял, как сие выглядит в файлах (давно не модил, поэтому мог многое забыть).

Сталкер - наше всё!

Ссылка на комментарий

Проблема возникла странная, заспавнил нпс для квеста, сделал ему профиль, проверил квест, всё работает и решил я прописать ему логику:

[smart_terrains]

none = true

[logic]

active = walker@britva

[walker@britva]

path_walk = britva_walk 

path_look = britva_look   

 

поставил два вей поинта вставил им значения britva_walk и britva_look. Захожу в игру в момент загрузки игры на этапе "Клиент Синхронизации" происходит вылет, сначала он был без лога совсем. Потом с помощью какой то функции в _g_script мне дали огромный лог весь я его не скину, скину конец:

* Log file has been saved successfully!

! Unknown command:  HIT_SECTION_[nil]

* Log file has been saved successfully!

! Unknown command:  DEBUG:_object_'esc_physic_destroyable_object_0000':_activate_by_section:_looking_for_section_'nil'

* Log file has been saved successfully!

! Unknown command:  _bp:_reset_generic_schemes_on_scheme_switch:_npc:name()='esc_physic_destroyable_object_0000'

* Log file has been saved successfully!

! Unknown command:  _bp:_enable_scripts:_object_'esc_physic_destroyable_object'_has_NO_external_configuration_file,_using_'<customdata>'

* Log file has been saved successfully!

! Unknown command:  HIT_SECTION_[nil]

* Log file has been saved successfully!

! Unknown command:  DEBUG:_object_'esc_physic_destroyable_object':_activate_by_section:_looking_for_section_'nil'

* Log file has been saved successfully!

! Unknown command:  _bp:_reset_generic_schemes_on_scheme_switch:_npc:name()='esc_physic_destroyable_object'

* Log file has been saved successfully!

! Unknown command:  _bp:_path_parse_waypoints:_pathname='britva_walk'

 

Функция эта по идее записывает в лог всё что происходит в игре, и вот всё прерывается на вей поинте britva_walk. Всё прописано верно, сверял кучу раз, и имя менял как в логике как и в вей поинтах но всё равно.  Помогите, ничего не понимаю.

И да. как только я удаляю ему эту функцию всё начинает работать.

Изменено пользователем Kaban312
Ссылка на комментарий
11 минут назад, Kaban312 сказал:

_bp:_path_parse_waypoints:_pathname='britva_walk'

А с параметрами пути все хорошо? (Подозреваю что нет. Для проверки скопируй все данные с заведомо рабочего пути)

13 минут назад, Kaban312 сказал:

как только я удаляю ему эту функцию всё начинает работать.

Не понял. Какую функцию? В твоем посте только "какая-то функция в _g.script для вывода лога" упоминается. Но ты говорил что без нее вылет безлоговый...

Короче пока ничего не понятно.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий
10 часов назад, Norman Eisenherz сказал:

Это вообще другой эксперимент

эксперимент провести такой, заспавнит нпс у которого есть character id, по нему заспавнить, при этом этому character id вообще не задан класс, что будет? я не проверял но скорее всего будет вылет ,как в твоём начальном примере второй случай,  значит класс должен быть обязательно задан, и тут второй эксперимент, чтоб игра не вылетала класс должен быть любой заданный для любого character id, который прописан в игре, либо класс должен быть строго который задан в профиле нпс, тут я думаю скорее всего подойдёт любой зарегистрированный класс.

4 часа назад, Kaban312 сказал:

_npc:name()='esc_physic_destroyable_object

вопрос почему у тебя имя нпс = physic_destroyable_object, ты нпс пытаешься задать логику физического объекта?:)

Ссылка на комментарий

@Kirgudu Добавил класс одного из новичков одному из именных в [character_desc_…xml]: на второй позиции не учитывается, на первой занимает единственный профиль класса именного NPC и приводит к вылету.

@AndrewMor Просто закомментировал строку <class>trader</class> в [npc_profile.xml] и [character_desc_escape.xml], оставив только прямую привязку к единственному профилю specific_character.

@CiberZold Вот это и сделал с Сидором. В тех же старых постах сказано, что профиль можно создавать прямой привязкой <specific_character> или указанием класса для выбора из нескольких индивидуальных профилей. Вопрос с возможностью двойной ссылки на один профиль при разных классах остается.

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий

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

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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