понедельник, 7 октября 2019 г.

Создание корабельных орудий


В игре "Корсары: Проклятье дальних морей" три вида коробленых орудий:
  • Полукулеврина;
  • Кулеврина; 
  • Полупушка
Конечно их характеристики можно изменить отредактировав Cannons.idf, но добавить новые строки с новыми пушками не получиться, из-за устройства самого движка

Cannons.idf
В свое время Orzel-у получилось сделать модификацию позволяющие к трем имеющимся орудиям добавить еще, к сожалению она не сохранилась до наших дней, тем не менее текст аннотации к ней, сохранился:

"Two distinct, but related features:

(1) User Guns. Updated ship.dll, status.dll and town.dll files that allow you to add additional cannon classes to the cannon.idf and ship.idf files, for MORE than three types of guns at one time. Includes modifications to the status screens so that they all show up in town and on your ship.

(2) NPC Guns. Can’t go upgrading your own cannons without doing the same for the NPCs! Updated fantoms.dll and target.dll files allow you to add additional cannon classes to NPC ships, by editing the ships.idf file. Also includes instructions on updating the interface.ini file so spyglasses are able to report this new gun information."

Как я отмечал ранее, тип орудий задается в файле характеристик кораблей (Ships.idf), а именно столбцами cannonback (орудия на корме) и deckcannons (орудия по бортам)

Ships.idf
Здесь все очень просто. Если задано значение 0,7,0 это значит, что задействована вторая строчка из Cannons.idf (семь кулеврин), если же стоит значение, к примеру, 0,0,8 - это значить, задействована третья строчка  и на корабле восемь полупушек.

Все это в игре происходить за счет программного кода, в файлах о которых говорил Orzel.

FANTOMS.dll
TARGET.dll

Сразу хочу сказать, что для их редактирования нужен HEX редактор, но для наглядности я отрыл их через Notepad, к которому можно подключить модуль позволяющий перевести текст в шестнадцатеричную систему и пользоваться, как отдельным hex редактором.

Значения: "%d, %d, %d" - это и есть те значения, которые мы видим видим в Ships.idf. Вот к ним нужно еще довить "процентных дешек", получив тем самым возможность создавать новые строки, в которых будут записаны характеристики новых пушек.

Остается разобраться с первой частью аннотации (ship.dll, status.dll and town.dll). В ship.dll я пока ни чего не нашел, но в town.dll находиться операторы отвечающие за интерфейс "Верфи", хотя об файле town.ini в аннотации нет ни слова, но в модификации он явно присутствует.

town.ini