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

[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
Ссылка на комментарий
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 для вывода лога" упоминается. Но ты говорил что без нее вылет безлоговый...

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

Ссылка на комментарий
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 пользователей

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