ФЭНДОМ


Textdb xx

Текст, который мы видим в игре, хранится в файлах textdb_xx.def (где для разных языков xx= ru-русский, en-английский, de-немецкий, cz-чешский и тд)
Исключение: часть текста хранящегося в файле финальных титров credits.def
Для отображения разговоров персонажей текстом не забудьте включить в игре соответствующую опцию: Настройки\Управление\Прочие\субтитры. Особенно актуально для модов на иностранных языках.

Извлекается из aa.dta
в папку mafia\tables\
редактируется с помощью Mafia text editor, для версии от Фаргус - Translater

МодингПравить

Добавить видеоурок

СодержимоеПравить

В файле записаны:

  • текст меню игры (textID c 100 по 999)
  • всякое разное
  • названия миссий (4050-4087)
  • названия сохранений Sav (5000-5590)
  • описание машин: Вес, Мощность, Макс. скорость, Двигатель, КПП (6000-6074)
  • текст для финальных титров, не вошедших в credits.def (7000-7129)
  • меню Управления, выбор кнопок (7300-7410)
  • задания миссий, причин провала и разговоров в игре (10010-20990451)
  • задания миссии Обучение (21930000-21930045)
  • задания для Большой прогулки (22930000-22930028)

Добавить ссылку на скачивание в txt формате

Формат файлаПравить

------------------------------------------------------------
variable        type         description
------------------------------------------------------------
textStringCount long         число текстовых строк в файле
unknown         long         константа = 00 00 00 00
textIdBlock     -            номера текстовых строк и адресов с
                             которых они начинаются
textBlock       -            сами текстовые строки сплошным потоком
key             string(0xC)  константа = .EndOfFile!.
------------------------------------------------------------

textIdBlock - номера текстовых строк и адресов с которых они начинаются
Приведенные ниже пары повторяются textStringCount раз               
------------------------------------------------------------
variable  type  description
------------------------------------------------------------
textId    long  номер текстовой строки
startPos  long  адрес в файле с которого начинается текст с номером = textId
------------------------------------------------------------

textBlock - сами текстовые строки сплошным потоком
Длину каждой строки определял так: strLen(i) = startPos(i+1) - startPos(i)

В скриптахПравить

Каждой текстовой строке назначен textID. К нему обращаются разные команды скриптов, чтобы:

  • вывести нужную надпись
  • озвучить текст, если есть wav файл
  • проиграть лицевую анимацию персонажа, если есть dat файл
// Вывод текста в левом нижнем углу экрана
console_addtext 22930028
// Враг произносит фразу, если включены субтитры,
// то строка появляется внизу экрана по центру
enemy_talk 22930028
wait 1000
human_talk 0, 22930028
wait 1000
//Если Wav Файла с таким именем нет, то текст появится без звука.
// Показывает цель миссии при нажатии кнопки F1
mission_objectives 22930028
// Когда целей несколько, при выполнении одной из них ее можно удалить
mission_objectivesremove 21930000
// Миссия провалена выводим причину
endofmission 0, 22930028
// Вывод текста в центре экрана на черном фоне
zatmyse 1
------------самой интересной команды нет
wait 1000
zatmyse 0
// Если несколько объектов расположено в одних координатах
// и в их скриптах имеются строки типа
detector_waitforuse 21930000
// То при нажатии на объектах кнопки ACTION будет появляться меню
// как при посадке в машину "сесть на место водителя ..."
// subtitle_add ?