Моддинг Тропико 4 возможен. И если разобраться в исходниках, написанных на языке Lua, то мод можно написать за 10 минут.
Для это понадобится знание языка Lua, лучше всего его учить уже когда знаешь какой-нибудь другой язык. Pascal, PHP, C++ - не важно, ведь переменные, условные операторы, циклы и др. уже должны быть вам известны. Документация по Lua находится Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. и Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. . Уделите изучению этого языка час и вы сможете понимать декомпилированные файлы .lua.
1. Для начала Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. последнюю версию HPK Archiver (для запуска требуется .NET Framework). Лично я запускал HPK Archiver с правами администратора, ибо без них программа вылетала. Для удобства перемещаем его в папку Тропико 4 (C:\Program Files (x86)\Tropico 4)
2. Скачиваем iGOLua (Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. ) или другой декомпилятор Lua. В качестве компилятора будем использовать Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. . Сохраняем его, например в документы. Для компиляции уже готового скрипта: открываем командную строку и пишем <адрес директории, где расположен luac.exe> luac -o <полный адрес файла .lua, в который скрипт будет скомпилирован>.lua <адрес скрипта>.luad
3. С помощью HPK Archiver распаковываем файл Game.hpk (\Tropico 4\Packs\boot\persist\Game.hpk) в новую папку.
5. С помощью iGOLua декомпилируем lua файлы. Получаем файл .luad - его открываем блокнотом и изучаем.
6. Пишем мод
Разберем простой указ
Распаковываем EdictEconomy.lua
Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.
Это указ "разрешение на строительство".
Все это - массив (он заключен в скобки {}). __parents, id, display_name и др. - это "ключи" массива. {"Edict"}, "SpecialBuildingPermit", "[[11599][building Permit][]]" - значения ключей массива. Нетрудно догадаться, что description это описание указа. В ключах init и done объявляется функция self, в которой вызываются функции SetModifier, RemoveEdictFromQueue и др.
Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.
Эти строчки кода уменьшают уважение интеллектуалов
Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.
Эта строчка отвечает за увеличение стоимости всех построек на 20%
Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.
Это строчка кода переводит 10% от стоимости строения на счет в швейцарский банк
Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.
Эти строчки кода отвечают за отмену указа.
Получается, в игре существует собственные функции, зарезервированные переменные, значения ("intellectuals", "Constructions") и др. А это значит, что для создания мода нужно это все изучить. Хотя, таким же методом научного "тыка" можно изменять числа - например, начислять на счет в банк все 20% от стоимости постройки:
Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.
Уже отсюда можно выделить немало интересных вещей, например ключ __parents отвечает за то, что в итоге получится из переменной - например {"Edict"} (указ). display_name содержит название этого указа. Цифра, указанная до него - это id строки, который будет искать игра в файлах локализации, если установлен не английский язык. rollover - описание указа.
description - это тоже описание. Вероятно, оно отображается в отдельном окне. icon - иконка указа. Она запакована в тот же файл Game.hpk. switch отвечает за активность указа(?). Наверное, если указать false, то нужны будут специальные инструкции, когда он обратится в true. minister - необходимый для указа министр. Init - то, что происходит после издания указа, Done - после отмены.
Самое сложное начинается сейчас. Для создания мода потребуется написать собственные скрипты lua и заархивировать их в .hpk в папку %Tropico4DIR%/Packs. Этот аспект будет рассмотрен в следующем уроке.
Опубликовано
Geremande,
Закреплено
Strаtegium
Присоединиться к обсуждению
Вы можете оставить комментарий уже сейчас, а зарегистрироваться позже!
Если у вас уже есть аккаунт, войдите, чтобы оставить сообщение через него.
Рекомендованные сообщения
Моддинг Тропико 4 возможен. И если разобраться в исходниках, написанных на языке Lua, то мод можно написать за 10 минут.
Для это понадобится знание языка Lua, лучше всего его учить уже когда знаешь какой-нибудь другой язык. Pascal, PHP, C++ - не важно, ведь переменные, условные операторы, циклы и др. уже должны быть вам известны. Документация по Lua находится Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. и Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. . Уделите изучению этого языка час и вы сможете понимать декомпилированные файлы .lua.
1. Для начала Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. последнюю версию HPK Archiver (для запуска требуется .NET Framework). Лично я запускал HPK Archiver с правами администратора, ибо без них программа вылетала. Для удобства перемещаем его в папку Тропико 4 (C:\Program Files (x86)\Tropico 4)
2. Скачиваем iGOLua (Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. ) или другой декомпилятор Lua. В качестве компилятора будем использовать Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. . Сохраняем его, например в документы. Для компиляции уже готового скрипта: открываем командную строку и пишем <адрес директории, где расположен luac.exe> luac -o <полный адрес файла .lua, в который скрипт будет скомпилирован>.lua <адрес скрипта>.luad
3. С помощью HPK Archiver распаковываем файл Game.hpk (\Tropico 4\Packs\boot\persist\Game.hpk) в новую папку.
5. С помощью iGOLua декомпилируем lua файлы. Получаем файл .luad - его открываем блокнотом и изучаем.
6. Пишем мод
Разберем простой указ
Распаковываем EdictEconomy.lua
Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.Это указ "разрешение на строительство".
Все это - массив (он заключен в скобки {}). __parents, id, display_name и др. - это "ключи" массива. {"Edict"}, "SpecialBuildingPermit", "[[11599][building Permit][]]" - значения ключей массива. Нетрудно догадаться, что description это описание указа. В ключах init и done объявляется функция self, в которой вызываются функции SetModifier, RemoveEdictFromQueue и др.
Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.Эти строчки кода уменьшают уважение интеллектуалов
Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.Эта строчка отвечает за увеличение стоимости всех построек на 20%
Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.Это строчка кода переводит 10% от стоимости строения на счет в швейцарский банк
Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.Эти строчки кода отвечают за отмену указа.
Получается, в игре существует собственные функции, зарезервированные переменные, значения ("intellectuals", "Constructions") и др. А это значит, что для создания мода нужно это все изучить. Хотя, таким же методом научного "тыка" можно изменять числа - например, начислять на счет в банк все 20% от стоимости постройки:
Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.Уже отсюда можно выделить немало интересных вещей, например ключ __parents отвечает за то, что в итоге получится из переменной - например {"Edict"} (указ). display_name содержит название этого указа. Цифра, указанная до него - это id строки, который будет искать игра в файлах локализации, если установлен не английский язык. rollover - описание указа.
description - это тоже описание. Вероятно, оно отображается в отдельном окне. icon - иконка указа. Она запакована в тот же файл Game.hpk. switch отвечает за активность указа(?). Наверное, если указать false, то нужны будут специальные инструкции, когда он обратится в true. minister - необходимый для указа министр. Init - то, что происходит после издания указа, Done - после отмены.
Самое сложное начинается сейчас. Для создания мода потребуется написать собственные скрипты lua и заархивировать их в .hpk в папку %Tropico4DIR%/Packs. Этот аспект будет рассмотрен в следующем уроке.
Опубликовано Geremande,
Закреплено StrаtegiumПрисоединиться к обсуждению
Вы можете оставить комментарий уже сейчас, а зарегистрироваться позже! Если у вас уже есть аккаунт, войдите, чтобы оставить сообщение через него.