Итак, создадим новый товар
Во-первых, откроем файл RESOURCE\INI\INTERFACES\pictures.ini
Ищем секцию:
[GOODS]
sTextureName = goods.tga - имя файла с изображениями товаров в директории RESOURCE\Textures\INTERFACES (без расширения .tx)
wTextureWidth = 1024 - ширина файла с изображениями товаров (в пикселях)
wTextureHeight = 512 - высота файла с изображениями товаров (в пикселях)
Далее идут значения местоположения отдельных картинок для каждого товара:
picture = Balls,128,256,256,384 и т.д.
Общий шаблон выглядит следующим образом:
picture = 'name','1','2','3','4'
'name' - ID товара, '1' - граница картинки товара слева, '2' - сверху, '3' - справа, '4' - снизу. (значения пишутся через запятую, без пробелов и ' ').
Ниже приведена таблица значений '1','2','3','4' для каждой картинки. Размер общего рисунка - 1024 x 1024 пикселя.
0 0 128 128
| 128 0 256 128
| 256 0 384 128
| 384 0 512 128
| 512 0 640 128
| 640 0 768 128
| 768 0 896 128
| 896 0 1024 128
|
0 128 128 256
| 128 128 256 256
| 256 128 384 256
| 384 128 512 256
| 512 128 640 256
| 640 128 768 256
| 768 128 869 256
| 869 128 1024 256
|
0 256 128 384
| 128 256 256 384
| 256 256 384 384
| 384 256 512 384
| 512 256 640 384
| 640 256 768 384
| 768 256 896 384
| 896 256 1024 384
|
0 384 128 512
| 128 384 256 512
| 256 384 384 512
| 384 384 512 512
| 512 384 640 512
| 640 384 768 512
| 768 384 869 512
| 869 384 1024 512
|
0 512 128 640
| 128 512 256 640
| 256 512 384 640
| 384 512 512 640
| 512 512 640 640
| 640 512 768 640
| 768 512 896 640
| 896 512 1024 640
|
0 640 128 768
| 128 640 256 768
| 256 640 384 768
| 384 640 512 768
| 512 640 640 768
| 640 640 768 768
| 768 640 869 768
| 869 640 1024 768
|
0 768 128 896
| 128 768 256 896
| 256 768 384 896
| 384 768 512 896
| 512 768 640 896
| 640 768 768 896
| 768 768 896 896
| 896 768 1024 896
|
0 896 128 1024
| 128 896 256 1024
| 256 896 384 1024
| 384 896 512 1024
| 512 896 640 1024
| 640 896 768 1024
| 768 896 869 1024
| 869 896 1024 1024
|
После того, как прописали картинку, открываем файлPROGRAM\STORE\initGoods.c
Существует дватипа товаров: сами товары и боеприпасы.
Значения полей для боеприпасов:
Goods[GOOD_BALLS].Name = "Balls"; - ID товара(тот, который вы написали в предыдущем фалйле) (ID обязательно должен быть заключён в " ".
Goods[GOOD_BALLS].Cost = 2; - стоимость единицы товара.
Goods[GOOD_BALLS].Weight = 3; - масса единицы товара в центнерах.
Goods[GOOD_BALLS].Units = 20; - ?
Goods[GOOD_BALLS].SpeedV0 = 1.0; - начальная скорость снаряда.
Goods[GOOD_BALLS].DamageHull = 10.0; - урон, наносимый снарядом корпусу корабля.
Goods[GOOD_BALLS].DamageRig = 5.0; - урон, наносимый снарядом парусам.
Goods[GOOD_BALLS].DamageCrew = 0.25; - урон, наносимый снарядом команде корабля.
Значения полей для товаров:
Goods[GOOD_SAILCLOTH].Name = "Sailcloth"; - ID товара(тот, который вы написали в предыдущем фалйле) (ID обязательно должен быть заключён в " ".
Goods[GOOD_SAILCLOTH].Weight = 3; - масса единицы товара в центнерах.
Goods[GOOD_SAILCLOTH].Cost = 3; - стоимость единицы товара.
Goods[GOOD_SAILCLOTH].Units = 1; - ?
Goods[GOOD_SAILCLOTH].Swim.Model = "roll_of_materials"; - модель плавающего товара, находится в папке RESOURCE\MODELS\SwimGoods
Goods[GOOD_SAILCLOTH].Swim.Time = 10; - время плавания товара до его потопления. Если персонаж его не подобрал в течении этого времени, товар тонет.
Шаблон для товара:
Goods[GOOD_'NAME']...
Вместо 'NAME' пишете ID товара большими буквами.
После того, как прописали характеристики товара, открываем файлPROGRAM\STORE\goods.h
Находим #define GOOD_OIL 26
Ниже описываем свой товар по такому шаблону:
#define GOOD_'ID' 'n+1' , где вместо 'ID' пишем ID своего товара большими буквами. 'n' - наибольшее числовое значение в секции идентифицирования товаров (начиная с #define GOOD_BALLS 0). К этому наибольшему значению добавляем 1 и записываем полученное число вместо 'n + 1'. Между 'ID' и 'n+1' долженбыть пробел!
После того, как товар в секции идентифицирования, открываем файлRESOURCE\INI\TEXTS\RUSSIAN\GoodsDescribe.txt
Спускаемся внизфайла и описываем свой товар по следующему шаблону:
'ID' {'RusID'}
'ID'_descr
{
'txt'
}
Где 'ID' - ID вашего товара, 'RusID' - русское название, 'txt' - описание.
В описании боеприпасов возможно использование переменных:
#dDamageHull# - показывает урон, наносимый корпусу
#dDamageRig# - парусам
#f.2DamageCrew# - команде
Как альтернатива - просто написать эти значения обыкновеным текстом.
И это ещё не всё :).
Открываем в этой же папке файл common.ini
Находим секцию
; goods name strings, идём вниз этой секции.
Описываем товар по шаблону:
string = ID,"RusId"
где ID - ID вашего товара, RusID - название на русском языке.
RusId пишется с кавычками и отделяется от IDа не пробелом, а запятой
Далее в этой же папке открываем файлShipEatGood.txt
Идём вниз и пишем по шаблону:
seg_'ID' {'RusIDR'}
Дамаю, что такое 'ID', объяснять уже не надо, а вот 'RusIDR' - название товара в родительном падеже.
В файле SeaSection.txt, находящемся в этой же папки делаем то же, что и в предыдущем файле, только товар описываем выше строчки sea_exp_add {+%1 опыта}.