FAQ от Кулаева Алексея aka Lesha[Для просмотра данной ссылки нужно зарегистрироваться] Содержит уроки по коддингу, урок по работе с TX Converter, а так же небольшой урок по работе с 3D-редактором Maya 4.0. Насколько мне известно, интерфейс в Maya 4 не отличается от Maya 5. В Maya 5 лишь добавились новые функции и возможности.
Уроки по созданию модификаций от Flint’а, Mett’а, и других авторов[Для просмотра данной ссылки нужно зарегистрироваться]
Итак, задача которая перед нами стоит – создать новый предмет на основе имеющейся модели рисунка:
Спойлер:
Во-первых, откроем файл 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 и т.п.
Затем открываем RESOURCE\INI\INTERFACES\pictures.ini
Там ищем примерно это
[ITEMS_10] –ищем последнюю цифру и ниже добавляем(путём копирования)
sTextureName = items10.tga – вместо десяти следующая цифра, если последняя 11 то 12 и т.д…***
wTextureWidth = 512
wTextureHeight = 512
Теперь копируем в текстурах файл = items10.tga и вставляем с вашим номером = items*.tga – имя должно соответствовать 2 строчке выше(там значки «***»).
Это мы сделали картинку, квадрат описания, их там 16. Соответственно ставите номер квадрата, в котором ваша сабля, счёт с лева на право.
КВ( 1 )КВ( 2 )КВ( 3 )КВ( 4 ) - КВ - квадрат
КВ( 5 )КВ( 6 )КВ( 7 )КВ( 8 )
КВ( 9 )КВ(10)КВ(11)КВ(12) - схема items*.tga
КВ(13)КВ(14)КВ(15)КВ(16)
Всё! Идём дальше открываем: RESOURCE\INI\TEXTS\RUSSIAN\ItemsDescribe.txt
В нём описание сабли:
itmname_blade* {Имя сабли} // - itmdescr_blade* - помним да!
itmdescr_blade*
{
Непосредственно само описание.
}
Можно как шаблон это брать.
Теперь самая плюха, открываем PROGRAM\QUESTS\quests_reaction.с
Там прописывается добавка предмета на прилавки.
В нём ищем void GiveItemToTrader(aref ch)
Затем добавляем строки
if (makeint(pchar.rank) >=*) //ставим какой хотим уровень, т.е поставили 5 то //как только уровень будет больше 5 то сабля будет на прилавке.
{
irand = rand(*); //- по порядку смотрим в файле выше и ниже
if (irand == 1) { TakeNItems(ch,"blade*", Rand(1)+1);}
}
Если всё ОК то игра запустится, сначала лучше if (makeint(pchar.rank) >=*)
Поставить на «1» и проверить…
.
Последний раз редактировалось Yukon; 02.01.2016 в 18:46.
Как в обычную Пкм с паком Моргана воткнуть паруса для одного корабля. Как пример, установил на модель линкора black_shark модель лет голландца. Не могу установить его же паруса. На верфи можно сменить тип (есть возможность в 15 ячейке установить свой тип паруса) но не получается установить.
Доброго времени суток!
Не могли бы мне помочь с диалогами?
Что нужно мне изменить в кейсе, что бы не было раздвоение НПС
при добавлении его в команду ГГ в качестве компаньена?
(А то получается добавляется компаньен и его точная копия офицер)
Цитата:
case "JQ_03":
AddMoneyToCharacter(pchar, -300000);
dialog.text = "Я буду служить вам верой и честью!";
link.l1 = "Я верю вам Джеймс Баллантре.";
link.l1.go = "exit_hire";
NPChar.Dialog.FileName = "Enc_Officer_dialog.c";
NPChar.Money = 0;
SetCharacterShipLocation("heroJQ_02", "santacatalina_town");
SetCompanionIndex(pchar, -1, GetCharacterIndex("heroJQ_02"));
break;
Здравствуйте.Поставил модель ЧЖ из билда Новые горизонты,все встало нормально,но человечки на палубе "гуляют по воздуху".Подскажите,плиз,какие файлы отвечают за матросов на палубе и что подредактировать,что-бы стало нормально.Спасибо.
С созданием нового калибра понятно, а как вот добавить их на верфь? Помню раньше удалось сделать, а сейчас уже забыл и ничего не выходит.
А добавить хочу к продаже 42 калибр, он уже везде прописан, но почему то не продаётся.
Помогите пожалуйста.
Добавлено через 17 минут
Всё, сам разобрался
Добавлено через 2 минуты
Другой вопрос.
Как на отдельных кораблях увеличить прочность мачт, ну или на всех, если не возможно на отдельных, т.е. чтобы они не ломались?
Здравствуйте.Поставил модель ЧЖ из билда Новые горизонты,все встало нормально,но человечки на палубе "гуляют по воздуху".Подскажите,плиз,какие файлы отвечают за матросов на палубе и что подредактировать,что-бы стало нормально.Спасибо.
А моржно ли создать для 4фт орудия 4фт ядра, а для 12фт орудия - соответственно 12фт ядра и сделать так, чтобы 4фт пушка стреляла только своими ядрами - к примеру? Можно сделать так, чтобы команда тоже имела вес - и от её количества менялась загрузка корабля?
Для улучшения работы форума и его взаимодействия с пользователями мы используем файлы cookie. Продолжая работу с форумом, Вы разрешаете использование cookie-файлов. Вы всегда можете отключить файлы cookie в настройках Вашего браузера.