Игровые Форумы - Показать сообщение отдельно - Уроки по коддингу.
Показать сообщение отдельно
Старый 04.02.2007, 12:24   #3
Экс Администратор
 
 Аватар для Flint
 
Отсутствует :(

Регистрация: 12.11.2006
Адрес: Киев
Сообщения: 2,101

Репутация: 2060   Добавить отзыв для Flint

Отправить сообщение для  Flint с помощью ICQ
По умолчанию

Урок № 2
Рассмотрим, как добавлять предметы и подзорные трубы


Или Лабока, как говорит барышня в телерекламе.. Но мы ..

Хотим свой телескоп построить? Запросто..

Идем в \program\items\initItems и в файлике ищем //SPYGLASSES

makeref(itm,Items[n]);
itm.id = "spyglass5"; //ID трубы, тут надо делать следующей после последней...
itm.groupID = SPYGLASS_ITEM_TYPE; //ID группы так и оставляем!
itm.name = "itmname_spyglass5"; - название внутренее
itm.describe = "itmdescr_spyglass5"; - описание которое мы правим как и мечи, но я расмотрю и этот аспект ниже.
itm.picIndex = 14; //№ картинки тут тоже как в мечах, можно прикрутить к трубе новую иконку.
itm.picTexture = "ITEMS_1"; //текстура нетрогаем.
itm.folder = "items"; //папка с текстурами нетрогаем
itm.model = "spyglass4"; //модель по которой она проходит в пиктурес.ини.
itm.price = 8000; //цена продукта
itm.scope.texture = "eye_BestTub.tga";//текстура во время просмотра из трубы. itm.scope.zoom = 12.0; //зум
itm.scope.time_activate = 500; //лутче не трогать
itm.scope.time_update = 150; //аналогично
itm.scope.show.nation = 1; //показатель нации //1-да,0-нет
itm.scope.show.cannons = 1; //показатель орудий
itm.scope.show.ship_name = 1; //показатель имя корабля
itm.scope.show.ship_type = 1; //показатель типа корабля
itm.scope.show.hull = 1; //показатель жизни корпуса
itm.scope.show.sail = 1; //показатель жизни парусов
itm.scope.show.crew = 1; //показатель команды
itm.scope.show.speed = 1; //показатель скорости
itm.scope.show.charge = 1; //показатель типа заряда
itm.minlevel = 0; - минимальный уровень.
itm.rare = 4; - шанс находки.
itm.uniq = 1; - весчь уникальная 1 да, 0 нет.
n++;

далее в RESOURSE/INI/TEXTS/RUSSIAN/ItemsDescribe.txt
ищем описания труб и делаем описание своей.

itmname_spyglass5 {Труба Галилео Галилея} - итем наме. трубы которую описываем
itmdescr_spyglass5 - ИД описание по которому труба обращаеться в файл itm.describe = "itmdescr_spyglass5";
{
Телескоп великого Галилея. До сих пор неизвестно, каким ветром его занесло в Новый Свет. Превосходная работа, но сила увеличения, увы, такова, что ничего кроме Луны и нескольких планет расмотреть в него не представляется возможным.
}

Дальше идем в \RESOURCE\Textures\INTERFACES\LIST_WEAPON_HIGHLIGH T.tga.tx

ПО уже знакомому принцыпу добавляем нашу трубу и конвертируем обратно...

Идем в RESOURCE\INI\interfaces\pictures

Там ищем WEAPONS

Такой блок.

[WEAPONS]
sTextureName = LIST_WEAPON_HIGHLIGHT.tga текстура наша. Без ТХ формата указывать.

Для примера вот ряд.

Picture = gun8, 0, 512, 128, 640
picture = blade24, 128, 512, 256, 640
picture = blade21, 256, 512, 384, 640
picture = blade29, 384, 512, 512, 640
picture = spyglass5, 512, 512, 640, 640 //тут наша труба
picture = blade28, 640, 512, 768, 640
picture = blade27, 768, 512, 896, 640
picture = gun10, 896, 512, 1024, 640

Все она в игре!

Теперь предмет..


makeref(itm,Items[n]);
itm.id = "Patent_Pirate"; - Ид предмета
itm.name = "itmname_Patent_Pirate"; - внутренее имя
itm.describe = "itmdescr_Patent_Pirate"; - описание.
itm.model = ""; - модель ее нет.
itm.type = "quest"; - тип предмета пока учим как делать quest. В следуюших уроках раскажем как сделать другой полезный тип предмета.
itm.picIndex = 39; - индекс на картинке все знакомо только картинка другая=)
itm.picTexture = "ITEMS_1"; - нетрогаем
itm.price = 0; - стоимость..
n++;

\RESOURCE\INI\texts\russian\ItemsDescribe

itmname_Patent_Pirate {Пиратский знак} - название предмета и внутренее имя.
itmdescr_Patent_Pirate - ИД описания
{
Золотая монета, доказывающая, что вы являетесь членом берегового братства.
}

Добавляем, меняем.
теперь идем RESOURCE\Textures\INTERFACES\items1.tga.tx

Конвертируем, добавляем иконку как написано в первом уроке. НО ПОМНИМ ТУТ РАЗМЕРЫ 64х64. Все сделали сконвертили....

Теперь идем в знакомый файл RESOURCE\INI\interfaces\pictures и ищум блок [ITEMS_1]

sTextureName = items1.tga - название текстуры
wTextureWidth = 512 - высота
wTextureHeight = 512 - ширина
picture = itm1,0,0,64,64 - тут tm1 указываем в itm.picIndex = 39;
picture = itm2,64,0,128,64
picture = itm3,128,0,192,64
picture = itm4,192,0,256,64
picture = itm5,256,0,320,64
picture = itm6,320,0,384,64
picture = itm7,384,0,448,64
picture = itm8,448,0,512,64
picture = itm9,0,64,64,128
picture = itm10,64,64,128,128
picture = itm11,128,64,192,128
picture = itm12,192,64,256,128
picture = itm13,256,64,320,128
picture = itm14,320,64,384,128
picture = itm15,384,64,448,128
picture = itm16,448,64,512,128
picture = itm17,0,128,64,192
picture = itm18,64,128,128,192
picture = itm19,128,128,192,192
picture = itm20,192,128,256,192
picture = itm21,256,128,320,192
picture = itm22,320,128,384,192
picture = itm23,384,128,448,192
picture = itm24,448,128,512,192
picture = itm25,0,192,64,256
picture = itm26,64,192,128,256
picture = itm27,128,192,192,256
picture = itm28,192,192,256,256
picture = itm29,256,192,320,256
picture = itm30,320,192,384,256
picture = itm31,384,192,448,256
picture = itm32,448,192,512,256
picture = itm33,0,256,64,320
picture = itm34,64,256,128,320
picture = itm35,128,256,192,320
picture = itm36,192,256,256,320
picture = itm37,256,256,320,320
picture = itm38,320,256,384,320
picture = itm39,384,256,448,320
picture = itm40,448,256,512,320

Дальше бдописываем.. Из учета одна клетка 64х64 и все поле 512х512.. Алгоритм указан в уроке первом...

picture = itm41,0,320,64,384
picture = itm42,64,320,128,384
picture = itm43,128,320,192,384
picture = itm44,192,320,256,384

Все предмет в игре.. Только специфика К3 такова что его вы не увидете . В уроке 4 скажу как можно добавить предмет игроку.

Последний раз редактировалось dima12, 17.05.2008 в 18:06.
   
__________________
Чрезмерное злоупотребление компьютерными играми сносит башню.
Доказано минздравом.