Форум сайта 'Гавань Корсаров'
 

Вернуться   Форум сайта 'Гавань Корсаров' > Верфь модостроения «Бермуды» > Мастерская модостроения > Модификации для ПКМ

Важная информация


  Информационный центр
Последние важные новости
 
 
 
 
 
Ответ
 
Опции темы Опции просмотра
Старый 08.11.2010, 17:29  
Лобстер1000
Матрос
 
Регистрация: 28.10.2010
Сообщений: 37
Нация: Пираты
Пол: Мужской
Офицеры Корабли
Репутация: 1
Смущение Уроки по кодингу ПКМ

  • 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

picture = itm1,0,0,128,128
picture = itm2,128,0,256,128
picture = itm3,256,0,384,128
picture = itm4,384,0,512,128
picture = itm5,0,128,128,256
picture = itm6,128,128,256,256
picture = itm7,256,128,384,256
picture = itm8,384,128,512,256
picture = itm9,0,256,128,384
picture = itm10,128,256,256,384
picture = itm11,256,256,384,384
picture = itm12,384,256,512,384
picture = itm13,0,384,128,512
picture = itm14,128,384,256,512
picture = itm15,256,384,384,512
picture = itm16,384,384,512,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.
Лобстер1000 вне форума Ответить с цитированием
5 пользователя(ей) сказали cпасибо:
dem0n1c (18.09.2013), Fredster (18.03.2014), mcleod-s (13.05.2019), Profit (05.05.2013), shum0k (08.11.2010)
Старый 31.07.2013, 19:47   #40
Velverston
Салага
 
Аватар для Velverston
 
Регистрация: 08.07.2012
Адрес: Самара
Сообщений: 7
Нация: Пираты
Пол: Мужской
Офицеры Корабли
Репутация: 1
По умолчанию Re: Уроки по кодингу ПКМ

Как в обычную Пкм с паком Моргана воткнуть паруса для одного корабля. Как пример, установил на модель линкора black_shark модель лет голландца. Не могу установить его же паруса. На верфи можно сменить тип (есть возможность в 15 ячейке установить свой тип паруса) но не получается установить.
Velverston вне форума Ответить с цитированием
Старый 18.09.2013, 18:07   #41
JQeen
Старшина
 
Аватар для JQeen
 
Регистрация: 17.09.2013
Сообщений: 166
Нация: Пираты
Пол: Мужской
Офицеры Корабли
Репутация: 3
Восклицание Re: Уроки по кодингу ПКМ

Доброго времени суток!
Не могли бы мне помочь с диалогами?
Что нужно мне изменить в кейсе, что бы не было раздвоение НПС
при добавлении его в команду ГГ в качестве компаньена?
(А то получается добавляется компаньен и его точная копия офицер)
Цитата:
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;

case "exit_hire":
Pchar.questTemp.HiringOfficerIDX = GetCharacterIndex(Npchar.id);
AddDialogExitQuestFunction("LandEnc_OfficerHired") ;
NextDiag.CurrentNode = NextDiag.TempNode;
NPChar.quest.meeting = true;
DialogExit();
break;
JQeen вне форума Ответить с цитированием
Реклама
Старый 05.02.2014, 18:29   #42
де Лаперуз
Матрос
 
Регистрация: 24.12.2013
Сообщений: 24
Нация: Пираты
Пол: Мужской
Офицеры Корабли
Репутация: 0
По умолчанию Re: Уроки по кодингу ПКМ

Здравствуйте.Поставил модель ЧЖ из билда Новые горизонты,все встало нормально,но человечки на палубе "гуляют по воздуху".Подскажите,плиз,какие файлы отвечают за матросов на палубе и что подредактировать,что-бы стало нормально.Спасибо.
де Лаперуз вне форума Ответить с цитированием
Реклама

Зарегистрированным пользователям показывается меньше рекламы!

Старый 18.03.2014, 22:52   #43
slavik31415
Юнга
 
Регистрация: 09.01.2014
Сообщений: 16
Нация: Пираты
Пол: Мужской
Офицеры Корабли
Репутация: 0
По умолчанию Re: Уроки по кодингу ПКМ

С созданием нового калибра понятно, а как вот добавить их на верфь? Помню раньше удалось сделать, а сейчас уже забыл и ничего не выходит.
А добавить хочу к продаже 42 калибр, он уже везде прописан, но почему то не продаётся.

Помогите пожалуйста.

Добавлено через 17 минут
Всё, сам разобрался

Добавлено через 2 минуты
Другой вопрос.
Как на отдельных кораблях увеличить прочность мачт, ну или на всех, если не возможно на отдельных, т.е. чтобы они не ломались?
slavik31415 вне форума Ответить с цитированием
Старый 26.08.2016, 17:40   #44
hms369
Старший матрос
 
Регистрация: 24.07.2016
Сообщений: 70
Нация: Англия
Пол: Мужской
Офицеры Корабли
Репутация: 12
По умолчанию Re: Уроки по кодингу ПКМ

Цитата:
Здравствуйте.Поставил модель ЧЖ из билда Новые горизонты,все встало нормально,но человечки на палубе "гуляют по воздуху".Подскажите,плиз,какие файлы отвечают за матросов на палубе и что подредактировать,что-бы стало нормально.Спасибо.
b14_beta4_final\PROGRAM\SEA_AI\walk\CastelF_walk.c

Цитата:
Другой вопрос.
Как на отдельных кораблях увеличить прочность мачт, ну или на всех, если не возможно на отдельных, т.е. чтобы они не ломались?
b14_beta4_final\PROGRAM\SEA_AI\AIShip.c

float Ship_MastDamage() все там
hms369 вне форума Ответить с цитированием
Старый 20.03.2018, 18:47   #45
evgen12
Салага
 
Регистрация: 20.03.2018
Сообщений: 1
Нация: Англия
Пол: Мужской
Офицеры Корабли
Репутация: 0
По умолчанию Есть инфа как редактировать модели?

Прочитав все темы этого форума по нескольку раз, так и не нашел ответа можно ли отредактировать модель острова самому, Maya 5.0 не сохраняет
evgen12 вне форума Ответить с цитированием
Старый 10.04.2021, 19:36   #46
mensaleh
Салага
 
Регистрация: 27.05.2016
Сообщений: 8
Нация: Англия
Пол: Мужской
Офицеры Корабли
Репутация: 0
По умолчанию Re: Уроки по кодингу ПКМ

А моржно ли создать для 4фт орудия 4фт ядра, а для 12фт орудия - соответственно 12фт ядра и сделать так, чтобы 4фт пушка стреляла только своими ядрами - к примеру? Можно сделать так, чтобы команда тоже имела вес - и от её количества менялась загрузка корабля?
mensaleh вне форума Ответить с цитированием
Реклама
Ответ


Метки
пираты карибского моря, пкм, уроки по кодингу


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 17:56. Часовой пояс GMT +3.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
© MONBAR, 2007-2024
Corsairs-Harbour.Ru
Скин форума создан эксклюзивно для сайта Corsairs-Harbour.Ru
Все выше представленные материалы являются собственностью сайта.
Копирование материалов без разрешения администрации запрещено!
Рейтинг@Mail.ru Яндекс.Метрика Яндекс цитирования