Перейти к содержимому
Zone of Games Forum

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

В 06.07.2024 в 13:13, Tericonio сказал:

Редактирование скомпилированных скриптов ACS

 

В 07.07.2024 в 19:10, Tericonio сказал:

Редактирование карты через HEX

написал скрипты для упрощения процесса (QuickBMS включён в архив):

перетащить wad файл карты или dat/acs файл скрипта на unpack.bat для распаковки

перетащить wad файл карты или dat/acs файл скрипта на pack.bat для запаковки

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

get Name basename
string Name + ".txt"
idstring "ACS\x00"
get FSize long
findloc StrOffset string "STRL"
goto StrOffset

get ID long //STRL
get StrSize long

get Zero long
get StrCount long
get Zero long

//offsets
for i = 0 < StrCount
get StringOffset long
next i
log MEMORY_FILE 0 0
append
//strings
for i = 0 < StrCount
get Text string
put Text string MEMORY_FILE
put 0x0d byte MEMORY_FILE
next i
append

get MFSize asize MEMORY_FILE
log Name 0 MFSize MEMORY_FILE

 

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

get Name basename
get Ext EXTENSION
string Name + ".txt"
idstring "ACS\x00"
get FSize long
findloc StrlOffset string "STRL"
log MEMORY_FILE2 0 StrlOffset //before STRL
goto StrlOffset

get ID long //STRL
get StrlSize long

get Zero long
get StrlCount long
get Zero long

open "" Name 1
open 1
get TxtSize asize 
//parse txt
for 	
	getCT Text string 0x0d
	strlen TextSize Text
	math TextSize + 1
	putarray 0 -1 Text //save to array 0
	putarray 1 -1 TextSize //save length to array 1
	savepos Pos
	if Pos = TxtSize
		break
	endif 
next

getarray StringCount 0 -0x80000000


log MEMORY_FILE 0 0 // MF for STRL entry
//make new STRL entry
open MEMORY_FILE
append

//offsets
xmath BaseOffset "StringCount * 4 + 12"
set StringOffset long BaseOffset
for i = 0 < StringCount
getarray TextSize 1 i
put StringOffset long
math StringOffset + TextSize
next i 

for i = 0 < StringCount
getarray Text 0 i
put Text string
next i 

get MFSize asize
set NewStrlSize long MFSize
math NewStrlSize + 12
math NewStrlSize x 4 //alignment 4 bytes

open MEMORY_FILE2
put ID long //STRL
put NewStrlSize long

put Zero long
put StringCount long
put Zero long
log MEMORY_FILE2 0 MFSize MEMORY_FILE //append new STRL entry

xmath Delta "NewStrlSize - MFSize - 12"
putDstring "" Delta //append padding

xmath Offset "StrlOffset + StrlSize + 8"
xmath Size "FSize - Offset + 8"

open 0
log MEMORY_FILE2 Offset Size //append part after STRL entry
get MF2Size asize MEMORY_FILE2
xmath NewFSize "MF2Size - 8"
putVarChr MEMORY_FILE2 4 NewFSize long //new size
append
string Name > 4
string Name P "%Name%.%Ext%"
log Name 0 MF2Size MEMORY_FILE2 //write new acs to file

 

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

idstring "PWAD"
get FName basename
get Segments long
get SegOffset long
goto SegOffset

for i = 0 < Segments
get Offset long
get Size long
getDstring SegName 8
if i < 1
elif SegName = "SCRIPTS" || SegName = "TEXTMAP" || SegName = "DIALOGUE"
	string Name P "%FName%\%SegName%.txt"
	log Name Offset Size
elif SegName = "BEHAVIOR"
	string Name P "%FName%\%SegName%.acs"
	log Name Offset Size
elif SegName = "ZNODES"
	string Name P "%FName%\%SegName%.XGL3"
	log Name Offset Size
endif
next i

 

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

get FName basename
get Ext EXTENSION
get FSize asize
idstring "PWAD"
goto 0
get PWAD long
get Segments long
get SegOffset long
goto SegOffset
log MEMORY_FILE 0 0 //new wad
log MEMORY_FILE2 0 0 //SegTable
log MEMORY_FILE3 0 0 //
put PWAD long MEMORY_FILE
put Segments long MEMORY_FILE
set NewOffset long 0x0c
put NewOffset long MEMORY_FILE

//read seg data
for i = 0 < Segments
get Offset long
get Size long
getDstring SegName 8
if SegName = "SCRIPTS" || SegName = "TEXTMAP" || SegName = "DIALOGUE"
	string SegName + ".txt"
	open FName SegName 1
	string SegName > 4
	get SegSize asize 1
	append
	log MEMORY_FILE 0 SegSize 1
	append	
	put NewOffset long MEMORY_FILE2
	put SegSize long MEMORY_FILE2
	putDstring SegName 8 MEMORY_FILE2
	math NewOffset + SegSize
elif SegName = "BEHAVIOR"
	string SegName + ".acs"
	open FName SegName 1
	string SegName > 4
	get SegSize asize 1
	append
	log MEMORY_FILE 0 SegSize 1
	append	
	put NewOffset long MEMORY_FILE2
	put SegSize long MEMORY_FILE2
	putDstring SegName 8 MEMORY_FILE2
	math NewOffset + SegSize
elif SegName = "ZNODES"
	string SegName + ".XGL3"
	open FName SegName 1
	string SegName > 5
	get SegSize asize 1
	append
	log MEMORY_FILE 0 SegSize 1
	append	
	put NewOffset long MEMORY_FILE2
	put SegSize long MEMORY_FILE2
	putDstring SegName 8 MEMORY_FILE2
	math NewOffset + SegSize	
else 
	append
	log MEMORY_FILE Offset Size 0
	append
	put NewOffset long MEMORY_FILE2
	put Size long MEMORY_FILE2
	putDstring SegName 8 MEMORY_FILE2
	math NewOffset + Size
endif

next i

get MFSize asize MEMORY_FILE
putVarChr MEMORY_FILE 8 MFSize long //write new SegTable offset

get MF2Size asize MEMORY_FILE2
append
log MEMORY_FILE 0 MF2Size MEMORY_FILE2 //append new SegTable 
append
get MFSize asize MEMORY_FILE
string Name P "%FName%.%Ext%"
log Name 0 MFSize MEMORY_FILE //write to file

 

 

Изменено пользователем xoixa
  • Лайк (+1) 2

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


Ссылка на сообщение

@xoixa 

Для BEHAVIOR из *.wad ещё необходимо добавить смещения на 01 00 00 00 01 00 00 00 53 50 54 52 хоть они и не так критичны, можно и через HEX кусок вставить, всё равно сами смещения не меняются и размер файла тоже из-за внесения смещений тоже не поменяются.

Но даже без них уже намного меньше работы :beach:

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

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

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


Ссылка на сообщение

Те кто будут проходить игру с моим русификатором, если появляются переменные, к примеру (DIALOG-01-76), то мне необходим номер этого диалога, поскольку для некоторого кода в скриптах при отображении этого текста возможно должен убираться знак $, в некоторых местах эта переменна нужна, а где-то нет.

Самому всё это протестировать — это будет очень долго и сложно.

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

Это касается всех будущих обновлений.

В новом обновлении: Добавлены будут все карты, где есть текст для планшетов и объектов или входа в локации, добавлены 3 шрифта (один из них точно работает, поскольку относится к тексту при открывании запертых дверей), так порядка 50 строк пришлось изменить, новых строк порядка 100.

Изменено пользователем Tericonio
  • Лайк (+1) 3

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


Ссылка на сообщение

Обновление 0.61

Убрал переменные диалогов с карты, которые могли привести к появлению самой переменной — необходим тест.

Поправлено около ~50 мест разного характера, как диалоги, объекты, действия.

Добавлено нового текста — около 30 строк включая, Станцию улучшения оружия, Перемещение между локациями, и некоторые объекты.

Поправлен код бутылки пива, делая текст прозрачным — но необходим тест, переменную текста поднял выше альфа-канала, но пока не понятно, для чего альфа канал существует, может для прозрачности стекла??

Добавлены 4 шрифта для разных переменных отображающих текст, — Закрытые двери, Автомат Гвин, и повышение здоровья.

Внесены в некоторые скрипты уменьшенный масштаб текста, чтобы вмещался в рамки контуров.

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

Благодаря @xoixa , изменение карт стало намного легче редактировать и вносить изменения, что уменьшило время.

 

По поводу тестов:

Если какой-то текст не то отображает или видна переменная, или где-то не переведено,  мне необходимо сохранение до выявления этого места желательно подойдя почти до срабатывания этого места, а так же сам текст который необходимо изменить.

Изменено пользователем Tericonio
  • Лайк (+1) 3
  • Спасибо (+1) 1

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


Ссылка на сообщение

Обновление старых сохранений, для их последующей загрузки под новые русификаторы (Может не сработать)

Переходим в папку Save в корневой папке игры, находим последний файл сохранения или создаём новый файл сохранения через игру.

Распаковываем autosave*.zds или save_manual*.zds через 7-zip в той же директории.

Открываем файл карты se_*.map.json и находим

 "MAIN","modsize": 123456

 ”QCKDIS","modsize": 123456

 ”ENEMYVO","modsize": 123456

За место 123456 размер этого файла за минусом 8 — 16 байт при сохранении

Если игра оригинальная то смотрим какой размер в моём Моде, в Language.pk3/ACS/ — в этой папке будут расположены все *.dat файлы, из-за которых игра выкидывает в Главное меню, если файлы менялись

 "MAIN" в оригинале 43312 (уже отнято 8 байт), в Моде 43772 (уже отнято 8 байт)

 ”QCKDIS" в оригинале 3568 (уже отнято 8 байт), в Моде 3872 (уже отнято 8 байт)

 ”ENEMYVO" в оригинале 73628 (уже отнято 8 байт), в Моде 73504 (уже отнято 8 байт) (В версии 0.61 его пока ещё нет)

Замещаем эти байты se_*.map.json и перекидываем в архив сохранения наши json файлы.

И пробуем загрузить наше сохранение, если получилось загрузить значит можно дальше играть не с 0.

Изменено пользователем Tericonio
  • Лайк (+1) 2

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


Ссылка на сообщение
В 12.07.2024 в 21:01, Tericonio сказал:

Обновление старых сохранений, для их последующей загрузки под новые русификаторы (Может не сработать)

Переходим в папку Save в корневой папке игры, находим последний файл сохранения или создаём новый файл сохранения через игру.

Распаковываем autosave*.zds или save_manual*.zds через 7-zip в той же директории.

Открываем файл карты se_*.map.json и находим

 "MAIN","modsize": 123456

 ”QCKDIS","modsize": 123456

 ”ENEMYVO","modsize": 123456

За место 123456 размер этого файла за минусом 8 — 16 байт при сохранении

Если игра оригинальная то смотрим какой размер в моём Моде, в Language.pk3/ACS/ — в этой папке будут расположены все *.dat файлы, из-за которых игра выкидывает в Главное меню, если файлы менялись

 "MAIN" в оригинале 43312 (уже отнято 8 байт), в Моде 43772 (уже отнято 8 байт)

 ”QCKDIS" в оригинале 3568 (уже отнято 8 байт), в Моде 3872 (уже отнято 8 байт)

 ”ENEMYVO" в оригинале 73628 (уже отнято 8 байт), в Моде 73504 (уже отнято 8 байт) (В версии 0.61 его пока ещё нет)

Замещаем эти байты se_*.map.json и перекидываем в архив сохранения наши json файлы.

И пробуем загрузить наше сохранение, если получилось загрузить значит можно дальше играть не с 0.

Добрый день! Я так понимаю, вы не продолжаете работу над русификатором?

  • Лайк (+1) 1

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


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

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

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

Зарегистрируйтесь для получения аккаунта. Это просто!

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

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: Victor Veles

      Жанр: Экшен, приключенческая игра, квест Платформы: PC PS4 XONE NSW Разработчик: White Owls Inc. Издатель: White Owls Inc. Дата выхода на PC: 15 октября 2021 ОБ ЭТОЙ ИГРЕ:
      Состояние русификации
      Перевод — 100%
      Редактура — 55%
      Наша группа в ВКонтакте
      Наш канал в Telegram
      Наш бот в Telegram
      Наш чат в Telegram
      Наш канал на Youtube
    • Автор: Victor Veles

      Жанр: Action/Fighting Платформы:  PC XBOX Разработчик: Arc System Works Издатель: Arc System Works Дата выхода: 29 ноября 2007 Состояние русификации
      Шрифт — 100%
      Перевод — 100%
      Редактура — 70%
      Текстуры — 100%
      Наша группа в ВКонтакте
      Наш канал в Telegram
      Наш бот в Telegram
      Наш чат в Telegram
      Наш канал на Youtube

  • Продвигаемые темы

  • Последние сообщения

    • Из перечисленных тут игр знаю только Смуту. И эти смутьяны там еще и экспэртами выступали. Если серьезно, хотелось бы чтобы подобные мероприятия приносили реальную пользу, а не заканчивались заключением пустых соглашений о всяческом сотрудничестве.
    • Горький 18 это, по сути, новая игра в плане сюжета. Там изменили не только имена, но и лор и диалоги и события. И да, игра классная получилась. Не раз проходил.
    • @spider91 Адаптация игры Odium под названием Горький 18 была топовая.
    • O’key. Жду новых (по качеству, смелости и идеям) Космических рейнджеров, King’s Bounty, Периметра, Блицкрига, Демиургов, Операции Silent Storm, Проклятых Земель, Златогорья, Корсаров, Вангеров, Шторма, Паркана. Подать, да побыстрей.
    • Экосистема «Игропром» совместно с Агентством креативных индустрий города Москвы подвела итоги Конференции разработчиков игр (КРИ), которая состоялась 26 июня 2026 года. Экосистема «Игропром» совместно с Агентством креативных индустрий города Москвы подвела итоги Конференции разработчиков игр (КРИ), которая состоялась 26 июня 2026 года. Возрожденное профессиональное событие, проходившее с 2003 по 2013 год в качестве главного ориентира для геймдев-сообщества, развернулось на площадках Московского кластера видеоигр и анимации и в деловом пространстве Департамента информационных технологий города Москвы «МосХаб.Сколково». Мероприятие было реализовано в ходе масштабной программы «Игропром без границ: год индустрии видеоигр 2026» при поддержке Президентского Фонда Культурных Инициатив. Сообщается, что эта конференция стала центральной точкой консолидации рынка: мероприятие посетило более 1350 человек. В демо-зоне и программе шоу-кейсов на конференции участвовало 50 проектов отечественных разработчиков. Главным деловым событием КРИ стало официальное подписание соглашения о сотрудничестве между «Игропромом» и Агентством креативных индустрий Москвы. Деловая программа КРИ объединила более 90 экспертов, включая независимых разработчиков, издателей и технологических партнеров. Они представили доклады, посвященные преодолению актуальных рыночных вызовов и интеграции передовых технологий в производство видеоигр. В числе экспертов были представители «Игропром», Президентского Фонда Культурных Инициатив, Института развития интернета, Московского кластера видеоигр и анимации, Агентства креативных индустрий, АНО «Цифровая экономика», Ассоциации электронных коммуникаций (РАЭК), Российского военно-исторического общества, Организации развития видеоигровой индустрии РВИ, «Sk Игры» (Фонд «Сколково»), Ассоциации профессионалов индустрии оперирования и разработки игр АПРИОРИ, платформ RuStore, VK Play, OnlyGames, студий ВАТТ, МГЛА, «Сайберия Нова» (проекты «Смута», «Земский собор»), Game Art Pioneers, Antelus Games, «Фоксхаунд» (проект «Командиры Бездорожья»), «Клокворк драккар» (проект «Гардарики»), «Студии СПН» («Отряд 22: ZOV»), «Играющие кошки» («Гостомельские богатыри»), «Смола», компаний Astrum Entertainment, «Фогейм», «Мира Танков», Geltek Cyber Team, Ассоциации Компьютерного Спорта, компании «ГостТим», проектного бюро «Смысл Медиа», Sound Event Forum, студии VoiceBand, RULER Productions, Центра игровых и киберспортивных коммуникаций, Take Top Entertainment, Blackhub Games, Lipsar Studio, «Игромании», «Чемпионата», Навигатора игрового мира, VK Play Медиа и других. Спонсором конференции стала платформа «Донатов.нет». Следующим ключевым этапом годовой программы «Игропром без границ: год индустрии видеоигр 2026» станет Всероссийская выставка-фестиваль «Игропром», который также состоится в Московского кластера видеоигр и анимации 18-20 сентября.
    • Генеральный директор Supermassive Games ушёл в отставку Роберт Хенриссон (Robert Henrysson) больше не будет руководить студией Supermassive Games. Он решил покинуть команду после двух с половиной лет работы в ней. О своей отставке топ-менеджер сообщил в LinkedIn. Он не стал вдаваться в подробности такого решения, но подчеркнул, что из игровой индустрии не уходит — в будущем Хенриссон готов консультировать различные студии, если им понадобится помощь опытного специалиста. Сейчас же он хочет проводить больше времени с семьёй и сосредоточиться на инвестициях. Примечательно, что Хенриссон отправляется в отставку вскоре после релиза Directive 8020 — новой части хоррор-антологии The Dark Pictures. Тот состоялся 12 мая 2026-го. Неизвестно, связаны эти события или нет, но отметим, что как минимум Steam-версия игры не слишком впечатлила аудиторию и получила «смешанные» оценки. Одновременно с Supermassive Games Хенриссон покинул и Nordisk Games — материнскую компанию студии.  
    • Откопал “долгострой” в виде этой игры на PSP от небезызвестной конторы Vanillaware Ltd. Начинал переводить несколько лет назад вручную, частично помогал переводить человек из ВК (за что ему отдельное спасибо =) ),  потом перевод был заброшен и я решил вернуться к нему опять. Идея такова: сделать сносный нейроперевод, расставить переносы и выложить на тестирование.  Разбрался:
      - как разобрать/собрать игру - как экпортировать/импортировать текст - как расставлять переносы, чтобы игра их понимала -со шрифтом тоже нет проблем, спасибо за помощь технарю из Discord Дело осталось за малым, прогнать перевод через нейросеть или перевести его вручную. Остальное я сделаю сам.  Прошу помощи: у кого есть возможность помочь с переводом текста через нейросеть, чтобы по итогу получился более менее связный текст. Или может у кого-нибудь есть желание взяться за перевод самостоятельно? Есть переведенные файлы людьми из ВК, их можно при желании подтянуть до осмысленного текста. Отписывайтесь в теме, я сброшу архив с текстом.  
    • Играл в первую часть. Степень гриндовости адская. Во второй всё то же самое, но в квадрате. Это буквально таймкиллер.
  • Изменения статусов

    • Jimmi Hopkins  »  SerGEAnt

      Это не просто перевод, а полноценная авторская сценарная адаптация. Диалоги переписаны так, чтобы персонажи звучали живо, остро и в характере. Добавлен чёрный юмор там, где авторы постеснялись. Убраны лорные противоречия, докручены мотивации. В результате игра стала умнее, злее и смешнее оригинала.
      · 0 ответов
    • ElikaStudio

      Долгожданный релиз полного сезона состоялся!
      https://youtu.be/mwBk2stm2OQ?si=qpJojB_XDABaC0We
      https://vk.com/video-48153754_456239394?sh=4&list=c62797c2b7d0725d6e
      Life is Strange: Before the Storm:
      Эпизод 1: "Прoбуждeниe"
      Эпизод 2: "О дивный новый мир"
      Эпизод 3: "Ад пуст"
      Бонусный эпизод: "Прощание"
      Русская озвучка уже доступна для скачивания!
      ElikaStudio выражает огромную благодарность всем, кто принял участие в создании проекта! 
      Группе Mechanics VoiceOver R.G. MVO , в частности их руководителю Дмитрию за неоценимую помощь в выпуске эпизода.
      Скачать для PC Classic (2018):
      GDrive: - https://drive.google.com/file/d/19CL_L80Mz0sIxcb54Ss64byAkeZmV22r/view?usp=sharing
      Скачать для PC Remastered (2022):
      GDrive: - https://drive.google.com/file/d/13q58Lpvw5_aYPYeZ7OGYZlAKOoS1gEbL/view?usp=sharing
      Скачать для Свитч(2022):
      GDrive: - https://drive.google.com/file/d/15e—T1LQiGQCYIHeNnj_C2qJA16Gvh1i/view?usp=sharing
      Ручная установка PC(оба издания):
      https://drive.google.com/drive/folders/1MJPd8965m4XxxAuOBt8enSHtv8_yy5xh?usp=sharing
      Баг репорт в обсуждении:
      https://vk.com/topic-48153754_55571577
      ___________________________________________
      Финансовый аппарат:
      www.donationalerts.com/r/elikastudio
      Пожертвовать средства на наши проекты:
      Кошелек ЮMoney 4100 1188 6818 3009
      карта Сбер банк 2202 2018 6334 1042
      карта Альфа банк 5559 4937 0209 8584
      Спасибо за вашу поддержку!
      #elikastudio #русскаяозвучка
      · 0 ответов
    • fox222  »  Siberian GRemlin

      Здравствуйте, хочу купить персональный доступ к переводам, сколько стоит?
      · 1 ответ
    • vitkach  »  eaZy

      Извините за беспокойство. Хотел спросить, а русификатор ещё когда-нибудь будет обновляться? Дело в том, что после его выхода выходили ещё обновления, в частности обновление 1.1, вышедшее летом 2023 года, где была добавлена целая сюжетная глава в конце если проходишь на лучшую концовку золотого пути, это где-то ещё полчаса диалогов. Также в игре присутсвуют иногда кракозябры вместо русского языка, это в основном связано с тем, что кое-где текст был изменён, в основном в обучающих сообщениях.
      · 0 ответов
    • TerryBogard  »  Siberian GRemlin

      C&C: RA: Retaliation (ПК) не работает.
      · 0 ответов
  • Лучшие авторы


×