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

Внимание. На форуме проводятся технические работы с боковым меню.

_Val_ _Val_

Universal ACDC и другие perl-скрипты


KD87

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

1 минуту назад, abramcumner сказал:

можешь выложить куда-нибудь конфиги/гейм.граф/алл.спавн? Попробую у себя разобрать.

Конечно могу, 5-ть сек.

Вот: https://disk.yandex.ru/d/B0NqOsGT8EWeLg

@abramcumner Я решил попробовать несколько иным способом, не использовать гейм.граф, а использовать level.spawn:
 

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

`-split <file>` - разбиваемый спавн. Для восстановления граф-поинтов необходимы level.spawn для всех локаций,
находящихся в графе. Их следует поместить в папку levels согласно их положению в геймдате сталкера - по папкам,
соответствующим локациям. Папка levels должна быть в папке с universal_acdc (или путь до нее можно задать ключом - читайте далее).

Вылезло несколько ошибок, я их поборол путем редактирования clsids.ini
Но вот одну не как не могу побороть:
 

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

D:\Program\universal_acdc-1.42>universal_acdc.pl -split all.spawn -out levels -way
log inited: console
Universal ACDC v.1.42
checking version of all.spawn...
        This is a spawn of S.T.A.L.K.E.R. Shadow Of Chernobyl (1.0001 or higher)
opening all.spawn...
reading header...
reading alife objects...
reading artefact spawn places...
reading way objects...
reading game graph...
        reading header...
        reading levels...
        reading vertices...
splitting spawns...
reading alife objects...
filling level.spawn with objects (l06_rostok)...
reading alife objects...
filling level.spawn with objects (hospital)...
reading alife objects...
filling level.spawn with objects (l01_escape)...
reading alife objects...
filling level.spawn with objects (l08u_brainlab)...
reading alife objects...
filling level.spawn with objects (l10_radar)...
reading alife objects...
filling level.spawn with objects (generators)...
reading alife objects...
filling level.spawn with objects (yantar_old)...
reading alife objects...
filling level.spawn with objects (l12u_control_monolith)...
reading alife objects...
filling level.spawn with objects (l08_yantar)...
reading alife objects...
filling level.spawn with objects (l12u_sarcofag)...
reading alife objects...
filling level.spawn with objects (pripyat)...
reading alife objects...
filling level.spawn with objects (l04_darkvalley)...
reading alife objects...
handling error with stalker, template C

FATAL ERROR!
Function: stkutils::data_packet::error_handler
Line: 1554
Description: unhandled exception


D:\Program\universal_acdc-1.42>pause
Для продолжения нажмите любую клавишу . . .

В clsids.ini класс добавил:  AI_STL_S = se_actor, но ошибка все равно вылазит.

  • Спасибо 1

WolfHeart.gif

AMD FX-8370 (8 X 4.35GHz); RAM 16Gb; MSI GTX 1070 (8Gb).
Windows -10 PRO (х64)

@WolfHeart попробуй релиз 1.43. У меня он разбил спавн с -use_graph

Но с левелченжером level_changer_predbannik_to_garbage_old на предбаннике придется что-то сделать. Он ведет на отсутствующий k01_darkscape.

2 минуты назад, abramcumner сказал:

попробуй релиз 1.43.

А где его взять? Ссылочку можно?

WolfHeart.gif

AMD FX-8370 (8 X 4.35GHz); RAM 16Gb; MSI GTX 1070 (8Gb).
Windows -10 PRO (х64)

40 минут назад, abramcumner сказал:

Думал, ты 1.42 оттуда взял :)

Нет, тут выкладывали, наверное ты, уже не помню.

45 минут назад, abramcumner сказал:

попробуй релиз 1.43

@abramcumnerДа, все получилось с батником:

Скрытый текст
universal_acdc.pl -split all.spawn -use_graph -out levels -way -use
pause

 

 

Скрытый текст
D:\Program\universal_acdc-1.43>universal_acdc.pl -split all.spawn -use_graph -out levels -way -use
log inited: console
Universal ACDC v.1.43
checking version of all.spawn...
        This is a spawn of S.T.A.L.K.E.R. Shadow Of Chernobyl (1.0001 or higher)
opening all.spawn...
reading header...
reading alife objects...
reading artefact spawn places...
reading way objects...
reading game graph...
        reading header...
        reading levels...
        reading vertices...
        reading edges...
preparing graph points...
graph points: 4400
object level_changer_predbannik_to_garbage_old has wrong dest_game_vertex_id
filling level.spawn with objects (av_peshera)...
filling level.spawn with objects (jupiter_underground)...
filling level.spawn with objects (l02_garbage)...
filling level.spawn with objects (red_forest)...
filling level.spawn with objects (yantar_old)...
filling level.spawn with objects (limansk)...
filling level.spawn with objects (lost_village)...
filling level.spawn with objects (l04_darkvalley)...
filling level.spawn with objects (garbage_old)...
filling level.spawn with objects (l07_military)...
filling level.spawn with objects (l12u_control_monolith)...
filling level.spawn with objects (l06_rostok)...
filling level.spawn with objects (l10_radar)...
filling level.spawn with objects (l08u_brainlab)...
filling level.spawn with objects (dead_city)...
filling level.spawn with objects (generators)...
filling level.spawn with objects (l11_pripyat)...
filling level.spawn with objects (marsh)...
filling level.spawn with objects (atp_for_test22)...
filling level.spawn with objects (l10u_bunker)...
filling level.spawn with objects (peshera)...
filling level.spawn with objects (swamp_old)...
filling level.spawn with objects (jupiter)...
filling level.spawn with objects (l12u_sarcofag)...
filling level.spawn with objects (l12_stancia)...
filling level.spawn with objects (pripyat)...
filling level.spawn with objects (l12_stancia_2)...
filling level.spawn with objects (predbannik)...
filling level.spawn with objects (l05_bar)...
filling level.spawn with objects (aver)...
filling level.spawn with objects (l08_yantar)...
filling level.spawn with objects (l03u_agr_underground)...
filling level.spawn with objects (puzir)...
filling level.spawn with objects (l04u_labx18)...
filling level.spawn with objects (zaton)...
filling level.spawn with objects (labx8)...
filling level.spawn with objects (l03_agroprom)...
filling level.spawn with objects (l01_escape)...
filling level.spawn with objects (_level_unknown)...
65535, light_gas_4m
filling level.spawn with objects (cs_agroprom_underground)...
filling level.spawn with objects (hospital)...
filling level.spawn with objects (warlab)...
preparing level folders...
writing level spawns...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
writing alife objects...
splitting ways...
done!

D:\Program\universal_acdc-1.43>pause
Для продолжения нажмите любую клавишу . . .

 

Единственное, что делать с папкой _level_unknown и файлом unrecognized_ways.game.
Их то же закидывать в папку gamedata\levels?

А, нуда, еще это:

level_changer_predbannik_to_garbage_old has wrong dest_game_vertex_id

Как я понял, переход с Предбанника на garbage_old имеет не правильный dest_game_vertex_id
Ну я думаю в SDK это можно будет исправить.

Изменено пользователем WolfHeart
От Гость,

В шапке – спойлер "Правки и дополнения". Репозиторий ГитХаб. Всё-таки уже позже появилось.

Изменено

WolfHeart.gif

AMD FX-8370 (8 X 4.35GHz); RAM 16Gb; MSI GTX 1070 (8Gb).
Windows -10 PRO (х64)

1 час назад, WolfHeart сказал:

Как я понял, переход с Предбанника на garbage_old имеет не правильный dest_game_vertex_id
Ну я думаю в SDK это можно будет исправить.

Не только не правильный dest_game_vertex_id. Там все неправильное: имя отсутствующей локации, нет имени граф_поинта, куда переход ведет, и тому подобное. Как будто бы этот пак вырезали из еще более крупного пака.

Да, конечно, через СДК все настроится.

 

1 час назад, WolfHeart сказал:

Единственное, что делать с папкой _level_unknown и файлом unrecognized_ways.game.
Их то же закидывать в папку gamedata\levels?

Только разбирать, как делал Pavel_Blend выше в теме, к какой локации какой вейпоинт относится, добавлять их в universal_acdc.pl в way_name_exceptions, чтобы асдс положил их в правильный левел.спавн.

Ну и лампочка light_gas_4m там неприкаянная болтается. Тоже попробовать выяснить по конфигам/скриптам, на какой локе она стоит.

  • Спасибо 1
15 минут назад, abramcumner сказал:

Только разбирать, как делал Pavel_Blend выше в теме,

Да, я уже прочитал. Алгоритм понял. :thank_you:

WolfHeart.gif

AMD FX-8370 (8 X 4.35GHz); RAM 16Gb; MSI GTX 1070 (8Gb).
Windows -10 PRO (х64)

12.09.2025 в 09:21, Vadyanchikus сказал:

@Руслан Гараев «далее» там есть: оно значительно ниже, когда расписываются общие функции.

Проблема программы в том, что она требует в папке levels наличие уровней, которых в одиночной игре нет, но эти уровни указаны в game.graph. Собсна, мне неоткуда взять эти уровни, а программа их просит.

 

Но я решил эту проблему, как раз хотел написать об этом. Я сделал такую многоходовочку:
- использовал ключ -use_graph – да, указанные при этом способе минусы присутствуют;

- удалил из папки levels только уровни из одиночной игры, но оставил тестовые уровни из game.graph;

- заново закинул в levels снова чистые уровни одиночной игры (программа ведь заменяет level.spawn и level.game);

- удалил ключ -use_graph и запустил разбивку – это сработало.

По сути, я обманул программу, подсунув ей её же распаковку. Номера графпоинтов остались прежними, как я и хотел. Далее я уже конвертером от bardak перегнал уровни в формат SDK.

 

Но вылезла другая проблема: у spawn-объектов (тех же разбиваемых ящиков, например) испортилась custom_data: теперь весь текст в ней пишется в 1 строчку. Возьмём, например, ящик на чердаке на Кордоне, где комбез лежит. Когда я сконвертировал изначальный level.spawn (который, как известно, относится к версии игры 1.000) в формат SDK, то custom_data ящика была написана в 3 строчки:


А вот когда я сконвертировал level.spawn после разбивки all.spawn, то вся custom_data стала однострочной (хотя, вот, при вставке в это сообщение однострочный текст сам разбился на абзацы – пришлось их стереть для наглядности):

 

(да, я не разобрался, как прикреплять сюда изображения)

Я не знаю, как это сказывается на дальнейшей компиляции (лень проверять), но вот такой вот факт. На чьей стороне эта проблема, конвертера или AC/DC, я не берусь судить однозначно, но готов предположить, что на стороне AC/DC.

Если это важно, я использую X-Ray SDK SMG от Yara.

Смотрю, с моего последнего захода тут было небольшое обсуждение, которое частично затронуло вопрос о тестовых уровнях в game.graph. Собственно, а есть что-то новое по моему вопросу: почему «склеивается» custom_data и как быть с отсутствием тестовых уровней, не применяя мой способ?

@Vadyanchikus обнови acdc: https://github.com/abramcumner/universal_acdc/releases

Переносы строк в custom data были исправлены ещё в 1.40. Сейчас последняя 1.43.

 

9 часов назад, Vadyanchikus сказал:

как быть с отсутствием тестовых уровней, не применяя мой способ

я делал так же, как и ты. Граф поинты этих уровней удалил. Потом сделал компиляцию в СДК и получил all.spawn. Проходил всю игру со своим спавном. Вроде бы проблем не было. Прошёл игру полностью несколько раз на разных спавнах (один компилировал без изменений, другой немного подправил, менял количество денег, стартовый инвентарь и т. д.). Хотя один раз проходил и на янтаре Круглов не мог выйти из бункера учёных. Уткнулся в дверь и не мог её открыть. Перезагрузка не помогала. Но это было один раз.

28.12.2025 в 14:12, Pavel_Blend сказал:

@Vadyanchikus обнови acdc: https://github.com/abramcumner/universal_acdc/releases

Переносы строк в custom data были исправлены ещё в 1.40. Сейчас последняя 1.43.

 

я делал так же, как и ты. Граф поинты этих уровней удалил. Потом сделал компиляцию в СДК и получил all.spawn. Проходил всю игру со своим спавном. Вроде бы проблем не было. Прошёл игру полностью несколько раз на разных спавнах (один компилировал без изменений, другой немного подправил, менял количество денег, стартовый инвентарь и т. д.). Хотя один раз проходил и на янтаре Круглов не мог выйти из бункера учёных. Уткнулся в дверь и не мог её открыть. Перезагрузка не помогала. Но это было один раз.

Странно, я 1.42 качал. Ладно, может, я перепутал с результатами распаковки утилиты от PSI, хотя не должен был. Буду пробовать.

А так и бывает, что Круглов в дверь упирается и всё. Вот сам недавно запускал чистую игру – он упёрся и ничего не делает. Складывается ощущение, будто Круглов и дверь обоюдно друг в друге застряли из-за того, что Круглов зашёл в проём, а дверь в это время закрылась после того, как я через неё прошёл и далеко отбежал.

  • Согласен 1

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

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

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

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

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

Войти

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

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

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

×
×
  • Создать...