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.
В циклах часто используются выражения следующего рода:
Выражения Эквивалент
a = 2 или a -= 3
a = 10 или a /=5
a или a--
a или --a
Отличие последних двух выражений заключается в том, что при использовании выражения типа a PHP сначала берет оригинальное значение, а затем увеличивает его на единицу. А при использовании выражения вида a значение переменной сначала увеличивается, а затем уже берется это увеличенное значение. Например:
Помогите пожалуйста. Решил добавить Арабеллу в пкм из Тайны дальних морей. Взял модельку жемчужины_1 для замены. заменил модель и текстуры. Все нормально модель вписалась, но вот без текстур. что делать? в К3 3 текстуры корабля. ставил все - но ни одна не пошла
Спасибо большое за уроки, очень толково! Господа, подскажите плиз, можно ли отключить проверку на читерство в 1.3.2? Хочу сделать легкий и быстрый корабль, как только ставлю скорость больше 30 - называют читером
Помогите кто знает
Как сделать чтобы в локации появлялось больше 32 персов за раз
Я по всякому пробовал и в globals и в characters и в characters_login и в CharacterUtilite
и много еще где но все равно больше 32 не выходит
привет всем ребят)
такая проблема нарисовалась, в паке моргана сменил модель Джека Воробья на Натаниеля, но когда одеваю кирасу, возвращается модель Джека, подскажите плз, что и где поменять, чтобы сохранялась модель Натаниэля при одетой кирасе, ну и кираса чтобы отображалась естественно)
Заранее спасибо за ответы)
Надеюсь, помощь будет)
что и где поменять, чтобы сохранялась модель Натаниэля при одетой кирасе, ну и кираса чтобы отображалась естественно)
А ты в Hero Describe все правильно прописал?
Все модели, которые ты заменил, должны быть прописаны в определенной последовательности (без брони, легкая, средняя, крутая, одежда_1, одежда_2, .. одежда_10).
hero_1
{
Джек Воробей - прославленный пират. Не раз преступал закон. За что сыскал себе нехорошую славу. Удача никогда надолго не покидает его. Из всех переделок выбирается живым и с хорошим барышом.
}
Если ты вставил вместо модели Воробья другую модель и она имеет кирасы и одежду - переименуй их так жэ как были названы соответствующие модели у Джека.
Имей ввиду, что модель чела в костюмах аристократа, торговца и нищего не имеет ничего общего с моделью Воробья. Просто появляется моделька другого перса. Тебе придется прописать свою (если она есть). Если же такой модели нет, то лучше, я думаю, оставить дефолтный вариант, или перетекстурить свою
такая проблема нарисовалась, в паке моргана сменил модель Джека Воробья на Натаниеля, но когда одеваю кирасу, возвращается модель Джека
тебе в папку program, потом в items/initItems
найдешь где прописаны кирасы и находишь такие строки: itm.model = "что-то там";
и заменяешь на название модели твоего героя в кирасе.
P.S. на руках пака Моргана нету.. так что на 100% не уверен. будут вопросы - пиши в ЛС.
Цитата:
Сообщение от Lejito
А ты в Hero Describe все правильно прописал?
В ПКМ Hero Describe отсутствует. все через скрипты.
__________________
Что толку, если не можешь сделать мир лучше.
Лучшая игра пиратской тематики: Корсары 3: Сундук Мертвеца
Взял модель и текстуры от жемчужины 3 корсаров. все вписалось, все работает. а можно как-нибудь сделать активными фонари ночью?
Можно. Локаторы освещения надо добавить через TOOL.
Если в TOOLе не работаете, то можно взять готовую модификацию с огнями отсюда: [Для просмотра данной ссылки нужно зарегистрироваться]
Можно. Локаторы освещения надо добавить через TOOL.
Если в TOOLе не работаете, то можно взять готовую модификацию с огнями отсюда: [Для просмотра данной ссылки нужно зарегистрироваться]
Там есть папка SAILORSPOINTS. Ее куда? у меня в папке Models такой папки нет. Пробовал кинуть ее в Models - ничего.
Там есть папка SAILORSPOINTS. Ее куда? у меня в папке Models такой папки нет. Пробовал кинуть ее в Models - ничего.
А что Вы от неё ждали?
"Раз нет, значит не было..." (с)
Эта модификация для КГПК, а Вы её, я так понял, хотите в ПКМ втулить? Если так, то и папка SAILORSPOINTS Вам ни к чему.
Velverston, первое: сэйлорпоинтов в ПКМ нет, хождение матросиков программируется в скриптах.
второе: фанари гореть не будут.. горящии фонарики это привилегия движка Storm 2.5 и выше.
__________________
Что толку, если не можешь сделать мир лучше.
Лучшая игра пиратской тематики: Корсары 3: Сундук Мертвеца
Для улучшения работы форума и его взаимодействия с пользователями мы используем файлы cookie. Продолжая работу с форумом, Вы разрешаете использование cookie-файлов. Вы всегда можете отключить файлы cookie в настройках Вашего браузера.