Перейти к содержимому
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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: teen
      Guilty Gear Xrd -Sign-

      Метки: Файтинг, Аниме, 2D-файтинг, Отличный саундтрек, Экшен Платформы: PC PS4 PS3 Разработчик: Arc System Works Team Red Издатель: Arc System Works Дата выхода: 10 декабря 2015 года Отзывы Steam: 2220 отзывов, 91% положительных
    • Автор: SerGEAnt
      The Legend of Heroes: Trails of Cold Steel 4

      Метки: Ролевая игра, Японская ролевая игра, Аниме, Пошаговая, Глубокий сюжет Платформы: PC PS5 PS4 SW Разработчик: Nihon Falcom, Engine Software, PH3 Издатель: NIS America Серия: The Legend of Heroes Дата выхода: 9 апреля 2021 года Отзывы Steam: 2069 отзывов, 92% положительных

  • Сейчас популярно

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

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

    • Логично. А так да, раньше было надёжней:  
    • Да, это конечно хреново всё.  Я проклял всё на свете и пожалел 1000 раз когда сам полез  обслужить.  Там же на заклёпках корпус, ушло полчаса только чтобы сторон разъединить, а когда я всё-таки добрался до второго вент(а там их 2), то увидел, что он неразборный )) Пришлось вскрывать другой такой же моник, вынимать оттуда вент. и тогда уже заменять.  Дважды руки до крови порезал и на всё ушло в районе 5 часов.  А когда всё собрал, только после этого увидел, что в стороне лежит какая-то плата, хз. за что отвечающая, но оказалось, что всё и без неё работает,  ну и я решил, что хрен с ней, с меня хватит, пофиг. Я тоже всегда под стол ставил и ставлю, вообще не понимаю, на хрен эти шкафы на столах держат.
    • В преддверии осенней распродажи напоминаю о моём скрипте для работы с разделом скидок на SteamDB. SteamDB - Sales; Ultimate Enhancer v1.4.1 Интерфейс скрипта с активными фильтрами
      (Игры, доступные в русском регионе, цена на которые ниже РРЦ,
      с русской озвучкой, вне раннего доступа, с рейтингом выше 90%) Сайт скрипта Версия 1.4.1 | Поддержка: Chrome, Firefox, Edge, Opera, Яндекс браузер
    • Обновление под 0.3.3.12446.
    • Обновление под 1.01.
    • А сейчас это стандартная практика. Много чего стали делать не разборными, чтобы сами не лазали, а несли в сервис на обслуживание или сразу заменяли. У меня спустя пару месяцев у новой водянки начала одна вертушка, на больших оборотах жутко свистеть так, что даже через наушники слышно было. Мне было лень снимать всю систему и тащить по гарантии, решил снять вертушку и самому смазать. В итоге вертушка оказалась не разборной, и всё ровно пришлось всё снимать и нести систему охлаждения сдавать по гарантии. На счёт шума. Из-за этого я не использую системные блоки на столе, а ставлю под стол. От этого меньше слышишь и замечаешь шум, если он тебя раздражает. А лучше вообще купить наушники с шумодавом и тогда вообще будет плевать на шум. Главное, чтобы этот шум был естественным, а не от того, что у тебя система пылью засралась и термопаста высохла. Тут конечно нужно за температурами постоянно следить и оборотами системы охлаждения. Если они в пределах нормы, то можно не парится, а вот если начинается выходить за рамки стандартных температур и обороты стали значительно выше, то стоит задуматься и проверить систему охлаждения. Особенно если есть животные дома и на системном блоке спереди нет сетки, стоит чаще системник заглядывать внутрь и продувать. 
    • Ну обычно крупнее. Они конечно создают поток воздуха больше чем мелкие, но, обычно 3 по 90мм лучше охлаждают чем 2 по 120.
    • Тут без бутылки не разобраться,) кто срет на купившего это кресло инопланетянина?, зачем инопланетянин купил это кресло?
    • Но я ведь упомянул нагрузку  Нет! это какой то пиксель-мазохизм я отказываюсь участвовать и продолжу дальше не видеть. мне так спокойнее живется.)
    • Ну вообще-то это видно по загрузке гпу )   На тени обрати внимание, и на то, как свет проходит через туман. 
  • Изменения статусов

    • ElikaStudio

      https://www.youtube.com/watch?v=Nqcr83D8xhw
      https://www.youtube.com/watch?v=yRh3i7FKwOQ
      https://vk.com/video-48153754_456239346
      https://vk.com/video-48153754_456239345?list=ln-xnLZUtIyCEc6eshGvW
      https://ibb.co/p6BtMqWQ
      Перед тем, как ступить на борт корабля капитана Синей Бороды, нужно скачать озвучку!

      Life is Strange: Before the Storm:
      Эпизод 1: "Прoбуждeниe"
      Эпизод 2: "О дивный новый мир"
      Бонусный эпизод: "Прощание"
      Русская озвучка уже доступна для скачивания!

      ElikaStudio выражает огромную благодарность всем, кто принял участие в создании проекта! 
      Группе [club76249462|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


      Баг репорт в обсуждении:
      https://vk.com/topic-48153754_52801766
      ___________________________________________
      Финансовый аппарат:
      www.donationalerts.com/r/elikastudio
      Пожертвовать средства на наши проекты:
      Кошелек ЮMoney 4100 1188 6818 3009
      карта Сбер банк 2202 2018 6334 1042
      карта Альфа банк 5559 4937 0209 8584
      Спасибо за вашу поддержку!
      #elikastudio #waylandteam #русскаяозвучка
      · 0 ответов
    • Максименко Вадим  »  jk232431

      Как перевести субтитры в winx club the game,а то у меня не получается выходит ошибка?
      · 0 ответов
    • Jimmi Hopkins  »  SerGEAnt

      Вышел русификатор для Knights and Bikes (текст и текстуры) steam/gog совместимый
      · 0 ответов
    • Nitablade  »  k0rre0n

      Куда же ты пропал...
      · 0 ответов
    • Дмитрий Соснов  »  Tirniel

      Привет! ты разбираешься в компьютерном железе, сможешь помочь с советом по апгрейду старого компа?
      · 1 ответ
  • Лучшие авторы


Zone of Games © 2003–2025 | Реклама на сайте.

×