Итак, задача которая перед нами стоит – создать новый предмет на основе имеющейся модели рисунка.
Во-первых, откроем файл PROGRAM\Items\initItems.c
А теперь рассмотрим особенности создания каждого типа предметов в отдельности:
1. Мешочки с золотом.
makeref(itm,Items[n]);
itm.id = "100gp"; - ID предмета в игре, его идентификатор.
itm.name = "itmname_100gp"; - Имя предмета в файле RESOURCE\INI\TEXTS\RUSSIAN\ItemsDescribe.txt
itm.model = "purse"; - 3D модель предмета.
itm.minlevel = 0; - Минимальный уровень для нахождения персонажем предмета.
itm.rare = 0.3; - Редкость появления предмета, чем больше значение, тем чаще встречается.
itm.gold = 100; - Сколько денег добавляется персонажу при нахождении данного предмета, т.е. персонажу добавляется не сам предмет, а деньги.
n++;
2. Пистолеты.
makeref(itm,Items[n]);
itm.id = "pistol1"; - ID предмета в игре, его идентификатор.
itm.groupID = GUN_ITEM_TYPE; - ID группы предметов в игре.
itm.name = "itmname_pistol1"; - Имя предмета в файле RESOURCE\INI\TEXTS\RUSSIAN\ItemsDescribe.txt
itm.describe = "itmdescr_pistol1"; - Имя предмета в файле RESOURCE\INI\TEXTS\RUSSIAN\ItemsDescribe.txt
itm.folder = "items";
itm.model = "pistol1"; - 3D модель предмета.
itm.picIndex = 1; - № картинки в файле с изображениями предметов.
itm.picTexture = "ITEMS_6"; - Имя файла с изображением предмета RESOURCE\TEXTURES\INTERFACES
itm.price = 1500; - Среднестатистическая цена предмета.
itm.chargeQ = 1; - Кол-во зарядов в пистолете
itm.chargespeed = 8; - Скорость перезарядки
itm.dmg_min = 30.0; - Минимальный урон.
itm.dmg_max = 45.0; - Максимальный урон.
itm.accuracy = 30; - Точность
itm.minlevel = 2; - Минимальный уровень для нахождения\покупки персонажем предмета.
itm.rare = 0.1; - Редкость появления предмета, чем больше значение, тем чаще встречается.
n++;
3. Сабли.
makeref(itm,Items[n]);
itm.id = "blade1"; - ID предмета в игре, его идентификатор.
itm.groupID = BLADE_ITEM_TYPE; - ID группы предметов в игре.
itm.name = "itmname_blade1"; - Имя предмета в файле RESOURCE\INI\TEXTS\RUSSIAN\ItemsDescribe.txt
itm.describe = "itmdescr_blade1"; - Имя предмета в файле RESOURCE\INI\TEXTS\RUSSIAN\ItemsDescribe.txt
itm.model = "blade1"; - 3D модель предмета.
itm.folder = "items";
itm.picIndex = 11; - № картинки в файле с изображениями предметов.
itm.picTexture = "ITEMS_6"; - Имя файла с изображением предмета в папке RESOURCE\TEXTURES\INTERFACES
itm.price = 500; - Среднестатистическая цена предмета.
itm.dmg_min = 10.0; - Минимальный урон.
itm.dmg_max = 15.0; - Максимальный урон.
itm.piercing = 10; - Пробой брони
itm.minlevel = 0; - Минимальный уровень для нахождения\покупки персонажем предмета.
itm.rare = 0.1; - Редкость появления предмета, чем больше значение, тем чаще встречается.
itm.block = 10; - Блок сабли.
itm.param.time = 0.05;
itm.param.colorstart = argb(64, 64, 64, 64); - Яркость цвета в начале сабли (собственно клинок) a - ?, r - красный, g - зелёный, b - синий.
itm.param.colorend = argb(0, 32, 32, 32); - Яркость цвета в конце сабли (ручка) a - ?, r - красный, g - зелёный, b - синий.
n++;
4. Подзорные трубы.
makeref(itm,Items[n]);
itm.id = "spyglass1"; - ID предмета в игре, его идентификатор.
itm.groupID = SPYGLASS_ITEM_TYPE; - ID группы предметов в игре.
itm.name = "itmname_spyglass1"; - Имя предмета в файле RESOURCE\INI\TEXTS\RUSSIAN\ItemsDescribe.txt
itm.describe = "itmdescr_spyglass1"; - Имя предмета в файле RESOURCE\INI\TEXTS\RUSSIAN\ItemsDescribe.txt
itm.picIndex = 14;- № картинки в файле с изображениями предметов.
itm.picTexture = "ITEMS_6"; - Имя файла с изображением предметаRESOURCE\TEXTURES\INTERFACES
itm.price = 300; - Среднестатистическая цена предмета.
itm.folder = "items";
itm.scope.texture = "eye_BadTub.tga"; - Текстура с изображением вида из подзорной трубы в папке RESOURCE\TEXTURES
itm.scope.zoom = 2.5; - Увеличение масштаба подзорной трубой
itm.scope.time_activate = 500; - Время действия подзорной трубы
itm.scope.time_update = 150; - Время до следующего обновления вида из подзорной трубы
itm.scope.show.nation = 1; - Показ нации корабля/форта (0-выкл. 1-вкл.)
itm.scope.show.cannons = 0; - Показ количества пушек на корабле/в форте (0-выкл. 1-вкл.)
itm.scope.show.ship_name = 1; - Показ имени корабля/форта (0-выкл. 1-вкл.)
itm.scope.show.ship_type = 1; - Показ типа корабля/форта (0-выкл. 1-вкл.)
itm.scope.show.hull = 0; - Показ состояния корпуса у корабля/форта (0-выкл. 1-вкл.)
itm.scope.show.sail = 0; - Показ состояния парусов у корабля (0-выкл. 1-вкл.)
itm.scope.show.crew = 0; - Показ количества команды на корабле/в форте (0-выкл. 1-вкл.)
itm.scope.show.speed = 1; - Показ скорости корабля/форта (0-выкл. 1-вкл.)
itm.scope.show.charge = 0;
itm.minlevel = 1; - Минимальный уровень для нахождения\покупки персонажем предмета.
itm.rare = 0.1; - Редкость появления предмета, чем больше значение, тем чаще встречается.
n++;
Далее идём в самый низ файла и пишем следущее:
makeref(rnditem,RandItems[51]); - Порядковый номер предмета, если в предыдущем написано 51, в "своём" пишем 52 и т.п.
rnditem.id = "spyglass4"; - ID предмета, тот который Вы указали выше.
rnditem.maxQuantity = 1; - Максимальное количество данных предметов в локаторах randitems.
Сохраняем изменения. Далее открываем файл RESOURCE/INI/TEXTS/RUSSIAN/ItemsDescribe.txt
itmname_coins - То, что Вы написали в itm.name (см.выше)
{Проклятые монеты} - Название предмета.
itmdescr_coins - То, что Вы написали в itm.describe (см. выше)
{
Широкие золотые монеты с изображенным на них черепом. Улыбочка у него та еще.
} - Описание предмета.
Сохраняем изменения. Далее открываем файл PROGRAM\ITEMS\Items.c
Ищем строку #define ITEMS_QUANTITY 128 - Меняем 128 на то число предметов, к-рые Вы добавили, т.е. если добавили 1 - пишете 129 и т.п.
Ищем строку #define RANDITEMS_QUANTITY 52 - Меняем 52, если написали makeref(rnditem,RandItems[51]);(см. выше), причём пишем значение на 1 больше, чем в файлеPROGRAM\Items\initItems.c, т.е. если у вас в вышеназванном файле последний предмет имеет ID 52, здесь пишем 53 и т.п.
Поздравляю. Предмет готов, можете проверить его наличие в игре. Если у вас его нет - повысте встречаемость премета, если не появится - значит вы что-то сделали не так, а если вы переделали, но у вас всё равно ничего не получилось - обращайтесь:
http://pirat-seawolf.com/forum
