Addon Maker. Урок № 1. Добавить новый предмет в игру.
Отшельник Дата: Суббота, 27.02.2010, 21:11 | Сообщение # 21
Пороховая обезьяна
Группа: Корсар
Сообщений: 14
Награды:
3
Репутация:
0
Статус: В открытом море
Приветстую! Попробовал, по описанию, добавить Картографический Атлас, но нигде не видно.
Мои действия.
1) Проклятые Судьбой\Resourse\Textures\INTERFACES\items17.tga.tx
добавил картинку в существующий items17.tga.tx под номером 13:
2) Проклятые Судьбой\PROGRAM\ITEMS\initItems.c
после // КАРТЫ ////////////////////////////////////////////////// добавил:
//Картографический Атлас makeref(itm,Items[n]); itm.id = "MapsAtlas"; itm.groupID = MAPS_ITEM_TYPE; itm.name = "itmname_MapsAtlas"; itm.describe = "itmdescr_MapsAtlas"; itm.model = ""; itm.picIndex = 13; itm.picTexture = "ITEMS_17"; // itm.shown = 0; itm.price = 1000; // boal 19.01.2004 --> itm.Weight = 0.2; // boal 19.01.2004 <-- itm.ItemType = "MAP"; itm.mapSpecial = ""; n++;
------------------------------------------------------------------- 3) Проклятые Судьбой\PROGRAM\characters\RPGUtilite.c добавил: ... // boal Вес предметов 19.01.2004 --> float GetItemsWeight(ref _chref) { float Amount = 0; int j; string itemID; ref itm;
if (bCabinStarted || bAbordageStarted || !bSeaActive || !CheckAttribute(_chref, "ItemsWeight")) { for (j=0; j<TOTAL_ITEMS; j++) { makeref(itm,Items[j]); if(CheckAttribute(itm, "ID")) { itemID = itm.id; if (CheckAttribute(_chref, "items."+itemID)&& itemID != "MapsAtlas" ) // ugeen - атлас карт не учитываем !! { Amount += sti(_chref.items.(itemID))*stf(itm.Weight); } } } _chref.ItemsWeight = Amount; // оптимицация тормозов в бою на море } else ... ------------------------------------------------------------------- 4) Проклятые Судьбой\PROGRAM\ITEMS\items.h добавил:
... // items group id #define MAPS_ITEM_TYPE "maps"//Добавлена новая группа
// indexes for items` array #define ITEMS_QUANTITY 359 // не забываем менять номер (358+1) ... #define MAPS_IN_ATLAS 25 // ugeen 21.06.09 -не забываем увеличивать при появлении новых карт
------------------------------------------------------------------- 5) Проклятые Судьбой\Resourse\INI\texts\russian\ItemsDescribe.txt добавил:
itmname_MapsAtlas {Картографический Атлас} itmdescr_MapsAtlas { Собрание карт отдельных территорий Карибского бассейна. Без этих клочков пергамента путешествие по архипелагу может оказаться весьма затруднительным. } -------------------------------------------------------------------
korsary4 Дата: Воскресенье, 28.02.2010, 01:23 | Сообщение # 22
Адмирал
Группа: Администратор
Сообщений: 5204
Награды:
496
Репутация:
1935
Статус: В открытом море
Quote (Morgan0406 )
А можешь скинуть папку PROGRAM
нет
Quote (Отшельник )
Проклятые Судьбой\PROGRAM
в Проклятые Судьбой код закрыт, как там может быть папка PROGRAM?
Quote (Отшельник )
но нигде не видно
предмет не появился в игре? в продаже нет?
Единственное, что можно сказать об удаче с уверенностью — она изменит. --------
Отшельник Дата: Воскресенье, 28.02.2010, 10:36 | Сообщение # 23
Пороховая обезьяна
Группа: Корсар
Сообщений: 14
Награды:
3
Репутация:
0
Статус: В открытом море
После установки NODVD появилась папка PROGRAM, но игра не идет, зависает. Я вернул стандартые protect.dll и ENGINE.exe назад, папка осталась, а игра идет с диском.Добавлено (28.02.2010, 10:36) --------------------------------------------- Предмет не появился в игре и в продаже тоже нет, проверил на Невисе, Тортуге, Мартинике, Антигуа и Барбадосе.
Jack-sparrow Дата: Воскресенье, 28.02.2010, 10:50 | Сообщение # 24
Мичман
Группа: Корсар
Сообщений: 168
Награды:
4
Репутация:
10
Статус: В открытом море
Отшельник Скинь папочку Program Плиз!!!!!!!!!!!!!!!!!!!!!!
korsary4 Дата: Воскресенье, 28.02.2010, 11:33 | Сообщение # 25
Адмирал
Группа: Администратор
Сообщений: 5204
Награды:
496
Репутация:
1935
Статус: В открытом море
Quote (Отшельник )
Я вернул стандартые protect.dll и ENGINE.exe назад, папка осталась,
от папки теперь толка нет, вернув стандартые protect.dll и ENGINE.exe теперь игра читает закрытые скрипты. В КПС никак нельзя скрипты править. Поставь кряк лучше на ГПК 1.2.
Единственное, что можно сказать об удаче с уверенностью — она изменит. --------
Отшельник Дата: Воскресенье, 28.02.2010, 14:19 | Сообщение # 26
Пороховая обезьяна
Группа: Корсар
Сообщений: 14
Награды:
3
Репутация:
0
Статус: В открытом море
Morgan0406 , Папку "PROGRAM" сбросить с ГПК 1.2.4 или с ПСДобавлено (28.02.2010, 14:19) --------------------------------------------- Сбросил на E-mail, помогло?
Rinat@korsar Дата: Понедельник, 01.03.2010, 20:26 | Сообщение # 27
Капитан II ранга
Группа: Пират
Сообщений: 461
Награды:
11
Статус: В открытом море
спасибо очень интересно.
Сумрак Дата: Среда, 10.03.2010, 19:23 | Сообщение # 28
Мичман
Группа: Корсар
Сообщений: 169
Награды:
6
Репутация:
3
Статус: В открытом море
Меня тоже интересует как добавлять предметы в продажу. задал вопрос в теме "Вопросы по созданию модификаций"
korsary4 Дата: Среда, 10.03.2010, 20:32 | Сообщение # 29
Адмирал
Группа: Администратор
Сообщений: 5204
Награды:
496
Репутация:
1935
Статус: В открытом море
Да... я забыл в статье про это написать, позже нормально дополню. Сумрак , в файле PROGRAM\scripts\utils.c
Найди функцию
Code
void GiveItemToTrader
там прописано добавление предметов торговцам, на примере каком-нибудь разберись.
Единственное, что можно сказать об удаче с уверенностью — она изменит. --------
ded Дата: Среда, 10.03.2010, 20:41 | Сообщение # 30
Лейтенант
Группа: Пират
Сообщений: 291
Награды:
5
Репутация:
2
Статус: В открытом море
я слишком туп для модинга! и т.п
Jack-sparrow Дата: Воскресенье, 14.03.2010, 18:27 | Сообщение # 31
Мичман
Группа: Корсар
Сообщений: 168
Награды:
4
Репутация:
10
Статус: В открытом море
ded зчем ты тогда сюда зашёл
Dufrein Дата: Воскресенье, 14.03.2010, 21:17 | Сообщение # 32
Капитан II ранга
Группа: Корсар
Сообщений: 436
Награды:
14
Репутация:
93
Статус: В открытом море
Quote (ded )
я слишком туп для модинга! и т.п
Хочешь я тебя научу музыку в игре менять?) Поставишь свой рэп и будешь кайфовать=)
ded Дата: Понедельник, 15.03.2010, 08:54 | Сообщение # 33
Лейтенант
Группа: Пират
Сообщений: 291
Награды:
5
Репутация:
2
Статус: В открытом море
Corss , давай только на вл (меня гпк бесит) Jack-sparrow , ну может чёнить научусь сделать
Skat Дата: Суббота, 20.03.2010, 22:41 | Сообщение # 34
Мичман
Группа: Пират
Сообщений: 197
Награды:
8
Репутация:
10
Статус: В открытом море
Нееее это не для меня я лентяй но может че нибудь сделать попробую
Отшельник Дата: Вторник, 23.03.2010, 17:47 | Сообщение # 35
Пороховая обезьяна
Группа: Корсар
Сообщений: 14
Награды:
3
Репутация:
0
Статус: В открытом море
Jack-sparrow писал(а): зачем тогда смотришь Я скажу по себе. Прошел "Корсары", но что-то не хватает, стал заниматься изменением цвета одежды, пробовать добавлять новые предметы и т.д. и т.п. и появился интерес к жизни(пиратской) снова. Если что-то не получается то сижу ломаю мозги или как пишет ded пытаю мозги. Как говорится Если я думаю, я существую .
Добавлено (23.03.2010, 17:47) --------------------------------------------- Спасибо korsary4 за учебное пособие, жду продолжение уроков!
korvet Дата: Среда, 24.03.2010, 08:15 | Сообщение # 36
Лейтенант
Группа: Корсар
Сообщений: 340
Награды:
18
Репутация:
50
Статус: В открытом море
korsary4 , Кэп,а ты можешь сделать подборку програм для изготовления Аддонов,убирания багов ,вообще по работе с играми,для обучения,книгу эту туда по майя вложить,короче сделать свой курс обучения по начальному програмированию?Можешь не в смысле умеешь,а в смысле время позволяет?И зарядить ее через торент раздачу,а то с моей скоростью я тут ни одно пособие в жизни не скачаю(три раза пытался,при малейшем разрыве скорости все надо снова начинать).А хочется попробовать полазить в каталогах поучиться.Добавлено (24.03.2010, 08:15) --------------------------------------------- Да кстати,а нельзя отдельный раздел создать на сайте именно для торрет раздачи?В тем оставлю пожелание.
Piligrim
Bpu Дата: Понедельник, 29.03.2010, 09:25 | Сообщение # 37
Боцман
Группа: Пират
Сообщений: 249
Награды:
24
Репутация:
26
Статус: В открытом море
А как добавить рюкзак.
Сообщение отредактировал Bpu - Понедельник, 29.03.2010, 09:26
korsary4 Дата: Понедельник, 29.03.2010, 21:04 | Сообщение # 38
Адмирал
Группа: Администратор
Сообщений: 5204
Награды:
496
Репутация:
1935
Статус: В открытом море
Quote (Bpu )
А как добавить рюкзак.
Первое. В файле characterUtilite.c добавить:
Code
// Рюкзаки --> if (groupID == BACKPACK_ITEM_TYPE) { if(!CheckAttribute(refItm, "BackPackWeight")) { continue; } if(sti(refItm.BackPackWeight) >= 30) { return refItm.id; } else { if(sti(refItm.BackPackWeight) >= 25) { return refItm.id; } else { if(sti(refItm.BackPackWeight) >= 20) { return refItm.id; } else { if(sti(refItm.BackPackWeight) >= 15) { return refItm.id; } else { if(sti(refItm.BackPackWeight) >= 10) { return refItm.id; } else { continue; } } } } } continue; } // Рюкзаки <--
Примерно после
Code
// boal 08.10.04 броню офицерам --> if (groupID == CIRASS_ITEM_TYPE) { if( IsCharacterPerkOn(chref, "Ciras") ) {return refItm.id;} continue; } // boal 08.10.04 броню офицерам <--
Второе. В файле utilite.c найти
Quote
string GetItemDescribe(int iGoodIndex)
вставить это, куда? скин ниже
Code
if(arItm.groupID == BACKPACK_ITEM_TYPE) { float fBackPackWeight = stf(arItm.BackPackWeight); string sBackPackWeight = FloatToString(fBackPackWeight, 1); describeStr += GetAssembledString(LanguageConvertString(lngFileID,"BackPackWeight"), arItm) + newStr(); }
Третье. в файле items.h после
Code
#define MAPS_ITEM_TYPE "maps"
добавить строчку Code
#define BACKPACK_ITEM_TYPE "BackPack" //рюкзаки
Теперь в файле initItems.c можно добавлять рюкзаки:
Code
// Рюкзаки makeref(itm,Items[n]); itm.id = "BackPack1"; itm.groupID = BACKPACK_ITEM_TYPE; itm.name = "itmname_BackPack1"; itm.describe = "itmdescr_BackPack1"; itm.folder = "items"; itm.model = "1"; itm.picIndex = 1; itm.picTexture = "ITEMS_17"; itm.price = 5000; itm.Weight = 1.0; itm.BackPackWeight = 10; itm.minlevel = 1; itm.rare = 0.01; itm.ItemType = "WEAPON"; n++;
Code
makeref(itm,Items[n]); itm.id = "BackPack2"; itm.groupID = BACKPACK_ITEM_TYPE; itm.name = "itmname_BackPack2"; itm.describe = "itmdescr_BackPack2"; itm.folder = "items"; itm.model = "1"; itm.picIndex = 2; itm.picTexture = "ITEMS_17"; itm.price = 7500; itm.Weight = 1.5; itm.BackPackWeight = 15; itm.minlevel = 1; itm.rare = 0.01; itm.ItemType = "WEAPON"; n++;
Code
makeref(itm,Items[n]); itm.id = "BackPack3"; itm.groupID = BACKPACK_ITEM_TYPE; itm.name = "itmname_BackPack3"; itm.describe = "itmdescr_BackPack3"; itm.folder = "items"; itm.model = "1"; itm.picIndex = 3; itm.picTexture = "ITEMS_17"; itm.price = 10000; itm.Weight = 2.0; itm.BackPackWeight = 20; itm.minlevel = 1; itm.rare = 0.01; itm.ItemType = "WEAPON"; n++;
Code
makeref(itm,Items[n]); itm.id = "BackPack4"; itm.groupID = BACKPACK_ITEM_TYPE; itm.name = "itmname_BackPack4"; itm.describe = "itmdescr_BackPack4"; itm.folder = "items"; itm.model = "1"; itm.picIndex = 4; itm.picTexture = "ITEMS_17"; itm.price = 12500; itm.Weight = 2.5; itm.BackPackWeight = 25; itm.minlevel = 1; itm.rare = 0.01; itm.ItemType = "WEAPON"; n++;
Code
makeref(itm,Items[n]); itm.id = "BackPack5"; itm.groupID = BACKPACK_ITEM_TYPE; itm.name = "itmname_BackPack5"; itm.describe = "itmdescr_BackPack5"; itm.folder = "items"; itm.model = "1"; itm.picIndex = 5; itm.picTexture = "ITEMS_17"; itm.price = 20000; itm.Weight = 3; itm.BackPackWeight = 30; itm.minlevel = 1; itm.rare = 0.01; itm.ItemType = "WEAPON"; n++;
Единственное, что можно сказать об удаче с уверенностью — она изменит. --------
Jack-sparrow Дата: Воскресенье, 25.04.2010, 12:21 | Сообщение # 39
Мичман
Группа: Корсар
Сообщений: 168
Награды:
4
Репутация:
10
Статус: В открытом море
для тех у кого виста:файл ENGINE не замените ,а скапируйте как ENGINE (2).Тогда всё запустится!!!Добавлено (25.04.2010, 12:21) ---------------------------------------------korsary4 korvet прав!
diversant Дата: Воскресенье, 16.05.2010, 13:53 | Сообщение # 40
Капитан II ранга
Группа: Корсар
Сообщений: 372
Награды:
6
Репутация:
5
Статус: В открытом море
кстати если создать копас как у Джека его можно какнибуть на пояс вешать ?
Лучше иметь повернутую психику, безумные идеи, быть непонятным и немного странным, чем не отличаться от тумбочки, что стоит возле постели....