Составление FAQ по модификациям, прнимается помощь всех желающих |
Здравствуйте, гость ( Вход | Регистрация )
Составление FAQ по модификациям, прнимается помощь всех желающих |
Dogeva |
Apr 25 2006, 00:56
Сообщение
#1
|
Расплетающая Сновидения Группа: форумчанин Сообщений: 852 Регистрация: 10-February 06 Пользователь №: 2,632 |
предлагаю всем добрым и умным человекам собраться и составить ФАК по внесениям модификаций в аддон. причина проста - обычно спрашивают одни и те же вопросы вроде "а как изменить текстуру гг", "а как вставить ее в игру" и т.д. поэтому все желающие помочь вэлком!
для примера приведу пост, найденный в "Готовых интерфейсах": ФАК по созданию собственного интерфейса в ВМЛ. Введение. Для того чтобы создать интерфейс в ВМЛ, разработчикам пришлось придерживаться нескольких правил: 1-е правило из которых было создать мультиплатформенную систему интерфейса (для ПК и консоли Xbox), что означает приминение не только указателя мыши, но и кнопок джойстика. Для удобства управления джойстиком ессесно нужно чтобы иконки, кнопки и другие элементы управления находились в четырех (максимум для крестика геймпада) сторонах. В то же время, мышью по ним тоже можно тыкать, но это уже не интересно для ПК-шников. Поэтому команда аддонтима переделывала интерфейс под привычную компьютерную мышь. Для этого им пришлось полностью перевернуть кверх дном каталог "игра\RESOURCE\INI\INTERFACES", где на языке С-подобном приписаны координаты элементов управления интерфейсом (кнопки, иконки, фоны и др.), цветовая гамма, анимация фона и др. полезные вещи. Естесственно в этих *.ini файлах прописаны названия текстур этих самых элементов. Вот о них-то нам и нужно знать... Начнем. Каждый для себя может делать свой интерфейс и в *.ini файлах, но эти файлы еще в стадии разработки и, поэтому, их редактировать смысла мало - все-равно с каждым обновлением они меняются (ну, почти с каждым). Мы будем переделывать файлы текстур для ПКМ и ВМЛ. Чтобы их переделать, нужно иметь под рукой Фотошоп, tx_convertor, запущенную игру ВМЛ в оконном! режиме, мозги, руки и... кофе. - Почти каждая текстура имеет альфа-канал, нужно уметь с ним работать - ПРАВКА!!! - Для того, чтобы правильно отредактировать альфа-канал в текстуре см. самый конец ФАК'а - раздел HELP. - Почти каждая текстура разделена на несколько более мелких, не накладывайте одну на другую, старайтесь не менять положения иконок - Все текстуры сохранены в формате *.tga.tx - т.е. они открываются в tx_converter, конвертируются в формат *.tga, ред-ся в Фотошопе, а потом конв-ся в *.tga.tx. - Если возникают вопросы, спрашивайте на форуме, не надо почты!!! на форуме много народа, которые знают тоже, что и я... - ПРАВКА!!!: вверху при конвертировании из tx и обратно, вверху и внизу ставим на A8R8G8B8... справа "none", внизу всего: (*)minimum mip size, и слайдер влево до упора (1 pix) Каталоги, которые нам необходимы (я бы на вашем месте перед работой сделал бы их копию): 1. Resource\Textures\Interfaces - бОльшая часть всех элементов интерфейса 2. Resource\Textures\DIALOG - меню диалогов 3. Resource\Textures\BATTLE_INTERFACE - иконки действий в море, на суше 4. Resource\Textures\Fonts - в ней шрифты 5. Resource\Textures\Loading - *опционально, фоны при загрузках. 6. Resource\Textures\TextureSequence - фоны кнопок управления+анимация фона в главном меню * - этого я не редактировал, мне нравятся оригинальные. =====================================================Итак, начнем с 1-го: _"Resource\Textures\Interfaces" файлы, нам интересные, там есть много чего, но это по вашему желанию, я привел тока самое необходимое blank_ship.tga.tx - кораблика нет (иконка) buy_sell.tga.tx buySellFlags.tga.tx cannons.tga.tx - пушки (иконки) CorruptSave.tga.tx - редкость, но нада - иконка плохого сохранения Cursor32.tga.tx - курсор, меня устроил базовый DisketaEmpty.tga.tx | DisketaSave.tga.tx | текстуры из меню сохр\загр EmptyFace.tga.tx | EmptyBorder.tga.tx - пустая рамка (жел-но схожая из icons.tga.tx) ExchangeButtons.tga.tx - кнопки меню обмен FortPris.tga.tx - заставка при захвате форта glowbutton.tga.tx - подсветка кнопок (мона закрасить черной альфа, она исчезнет) goods.tga.tx - иконки товаров Hold.tga.tx - изображение трюма в меню покупок icons.tga.tx - самое большое сборище всех основных элементов (не забудьте про альфа-канал!!!) icons_spec.tga.tx - дополнительные элементы управления (в том числе крестик закрытия окна) items1-11.tga.tx - иконки вещей, самый настоящий гемор переделки:) old_map.tga.tx - на фоне главного меню игры есть старая карта, перемещающаяся по экрану в разные стороны, это она и есть (я переделал в дым: Photoshop->фильтр dClouds) perkuse.tga.tx - галка применяемого перка scroll.tga.tx - фон для меню журнала, статистики, цен на товары... ship_status.tga.tx - иконки состояния: Корпус\Паруса\Пушки\Команда из меню корабля Slider_line\line_base\pointes.tga.tx - слайдеры из меню настроек яркости, звука... small_islands.tga.tx - острова из меню торговли (импорт\экспорт\контрабанда, там они вверху прокручиваются) Store.tga.tx - (из темы Hold.tga.tx) - изображение склада магазина в меню торговли swapItem.tga.tx - (из темы ExchangeButtons.tga.tx) кнопка обмена вещами usedflag.tga.tx - тоже самое в perkuse.tga.tx только для чего-то другого z_salay.tga.tx - заставка выдачи зарплаты ...Продолжаем... _"Resource\Textures\Interfaces\Circle" circle1.tga.tx | круги из главного меню ПКМ, да и в ВМЛ circle2.tga.tx | они тоже есть circle3.tga.tx - в игре не нашел... _"Resource\Textures\Interfaces\MainBack" - фоны в меню mb1.tga.tx mb2.tga.tx mb3.tga.tx - фон в главном меню ship copy.tga.tx _"Resource\Textures\Interfaces\Perks" - *опционально, по желанию _"Resource\Textures\Interfaces\Portraits" - *опционально, по желанию \128 - 128x128, 16bpp цвет \64 - 64x64, 16bpp цвет \64Disable - 64x64, 16bpp черн\бел =====================================================Следующий - 2й _"Resource\Textures\DIALOG" dialog.tga.tx - Здесь интерфес общения со всеми npc, да, и только здесь (был где-то еще, но он для ПКМ) =====================================================Следующий - 3й _"Resource\Textures\BATTLE_INTERFACE" Здесь расписывать не буду, там все по идее надо менять (что я и сделал), но скажу лишь про некоторые непонятные файлы: Panel.tga.tx - фон, где отображается все, что видно в подзорную трубу compass.tga.tx - Компасс - гемор, альфа канал и текстура, постоянно глючат. Кому надо пример переделки ко мне на почту (sonik-a@narod.ru) ir_buttons - не нужна ваще (для Xbox) =====================================================Следующий - 4й _"Resource\Textures\Fonts" Здесь шрифты, сами разберетесь. Лично я менял тока цветовую гамму (под желтовато-коричневый, симпатишно:) =====================================================Следующий - 5й _"Resource\Textures\Loading" Описанию тож не поддается, все фоны загрузок, добро пожаловать:) progress.tga.tx - всеми любимый крутящийся череп, разложенный на кадры (чтобы заменить разложите любую анимацию на кадры в редакторе каком-нить специальном и вставьте) =====================================================Следующий - 6й _"Resource\Textures\TextureSequence" Фоны кнопок, волны морские. Я скопировал из К3 и добавил (уменьшив по вертикали в два раза) в текстуру ПКМ, чуть затемнил - получилось неплохо. ===???===HELP===???=== ===АЛЬФА-КАНАЛ В ТЕКСТУРАХ=== 1. ПРО Альфа-канал. Альфа-канал - используется в текстурах для разных вещей, например для прозрачности, формы... В ПКМ альфа-канал используется на всех текстурах. На некоторых есть какой-то черный вырез на белом фоне, на других полностью белый фон. Давайте представим флаг развивающийся на рее корабля в игре. Текстура, кроме как прямоугольной быть не может, а флаг надо заострить двумя треугольниками. Так как же это сделать? Очень просто - добавим новый канал к трем основным (красный, зеленый, голубой), который из этих трех основных будет показывать только ту часть, которую мы зарисуем, т.е. прямоугольник, в котором вырезан мааааленький треугольник. В альфа-канале (так его назвали) на черном фоне (ноль, цветная картинка не берется в изображение) рисуем флаг белого цвета (этот белый цвет есть единица, которая отображает цветную картинку там, где ее нарисовали), потом возвращаемся в rgb режим (выбирается там же) и добавляем уже что-то свое (иначе флаг будет цвета начального фона), например герб Франции. Так вот из этой запутаной басни уясним, что белый цвет в альфа-канале показывает, что под ним прячется (т.е. цветную картинку), а черный, наоборот - не показывает (т.е. обрезает ее в этом месте), серый (процент от 99% черного до 1%) задает степень прозрачности текстуры (цветной картинки). 2. КАК это делается. - Открываем в фотошопе, скажем icons.tga (уже конвертированную tx_converter'ом). - Лезем в меню окно (где "файл\редактирование\изображение..."), там выбираем строку "каналы", щелкаем по ней. - На экране появилось окно с черно-белом изображением, в котором показались контуры элементов текстуры icons.tga. - Далее заливаем все 50% серым в альфа канале (щелкаем по нему один раз в том окне, которое только открывали), сохраняем, конвертируем в ВМЛ, запукаем игру - смотрите-ка, все кнопки и другие элементы прозрачные. Уже немного яснее что енто. - Далее, не выходя из игры, сворачиваем ее (для этого нужно в настройках снять галку "полноэкранный режим"), откатываем одно действие назад в Фотошопе, опять контуры. - Теперь, изменим кнопку с черепами по бокам. В альфа канале в середине этой кнопки черный прямоугольник, что значит в этом месте она прозрачна. Если нужно сделать свой фон в этой кнопке, то переходим через окно "каналы" в полноцветный режим (вверху окна), заливаем серединку кнопки чем-нито своим и, зайдя в альфа-канал обратно, заливаем сей черный прямоугольник белым цветом (терь он будет нашего фона цветом) - Так можно каждую текстуру редактировать. Можно нарисовать, например свой perkuse.tga.tx, для этого открываем, конвертируем, открываем в Фотошопе, стираем старую галку, рисуем, создав новый слой, например перо, выделяем прозрачность слоя (для этого надо также как окно "каналы" открыть и окно "слои", зажать CTRL и выбрать наш новый слой с пером), далее лезем в "Выделение" (вверху Фотошоповского окна)->Сохранить выделение. Там откроется окно, просто жмем ОК. Появится новый альфа-канал. Старый удаляем (Правой кнопкой по старому каналу в окне "каналы"->УДАЛИТЬ). Теперь остается свести все слои (CTRL+E на англ. раскладке) и сохранить, заменив старую текстуру. - Теперь конвертируем в ВМЛ и разворачиваем игру. Играем с новой галкой в меню перков. Если не работает, то выйдите из игры и войдите снова. (Не забывайте про настройку tx_converter'а: A8R8G8B8 вверху и внизу) Позже дополню описание *.INI-файлов. Если чего забыл, поправьте меня!!! |
Jaoquin De Masse |
Apr 27 2006, 20:42
Сообщение
#2
|
боцман Группа: форумчанин Сообщений: 131 Регистрация: 11-April 06 Из: Краснодарский к-р. Пользователь №: 3,072 |
Значит такс, создадим перса в городе для примера я взял Оксбэй . Вначале заходим в папку locations\locations_loader.c и ищём там комментарий:
/* VisibleLocatorsGroup("reload", 1.0, 15.0, 255, 0, 255, 0); VisibleLocatorsGroup("Merchant", 1.0, 15.0, 105, 0, 255, 125); ... VisibleLocatorsGroup("sit", 1.0, 15.0, 255, 255, 0, 0); VisibleLocatorsGroup("item", 1.0, 15.0, 255, 255, 0, 255); //*/ И удалите символы /* и */? После чего допишите следующие строки: VisibleLocatorsGroup("rld", 1.0, 15.0, 255, 0, 255, 0); VisibleLocatorsGroup("box", 1.0, 15.0, 255, 255, 0, 0); VisibleLocatorsGroup("randitem", 1.0, 15.0, 255, 255, 0, 255); Сохраняем, загружаем игру – теперь мы видим все локаторы используемые в пкм На скрине видно что получится. Все персонажи создаются в файлах, хранящихся в паках program\character\init\ Вот самый общий код для создания перса: //секция описание перса makeref(ch,Characters[n]); //эта функция создаёт перса ch.name = “”; //Определяем фамилию... ch.lastname = ""; //...и имя ch.id = “Redmond prison commendant”; //необходимо для каждого преса придумать УНИКАЛЬНЫЙ id. Обычно составляется из имя + фамилия. ch.model = «offic_eng»; //Модель игрока (посмотреть модели можно в папке RESOURCES\MODELS\CHARACTERS\). Обратите внимание, что модель пишется БЕЗ расширения .gm ch.sound_type = “soldier”; //тип звука который мы слышим при разговоре с персом. ch.sex = “man”; //Анимация скелета - принимает значения man - мужская модель, woman - женская модель, monkey - обезьяна, skeleton - скелет. LAi_CharacterReincarnation(ch, true, true); //Необязательный параметр, указывает может ли перс перерождаться. //секция инвентаря GiveItem2Character(ch, «Blade1»); //Даёт персу оружие blade1, список оружия можно посмотреть здесь: program\ITEMS\initItems.c ch.equip.blade = «Blade1»; //Заставляем перса использовать оружие которое дали ему. //секция локаций ch.location = «Redmond_prison»; //Это название локации, список названий можно посмотретьв файле: PROGRAM\LOCATIONS\INIT\Имя города.c ch.location.group = “sit”; //Группа локаторов ch.location.locator = «sit1"; //Стартовая точка //секция диалога ch.Dialog.Filename = «Redmond commendant_dialog.c»; //Файл диалога перса. Должен лежать в папке PROGRAM\DIALOGS\ //секция умений и т.п. ch.rank = 1;//ранг ch.reputation = “None”;//репутация ch.experience = “0”;//опыт ch.skill.Leadership = “1”;//лидер ch.skill.Fencing = “4”;//фехтование ch.skill.Sailing = “1”;//навигация ch.skill.Accuracy = “1”;//точность ch.skill.Cannons = “1”;//орудия ch.skill.Grappling = “1”;//абордаж ch.skill.Repair = “1”;//починка ch.skill.Defence = “1”;//защита ch.skill.Commerce = “1”;//коммерция ch.skill.Sneak = “1”;//удача ch.money = “10”; //деньги //секция корабля, необязательная ch.Ship.Name = “Fast death”;//имя корабля ch.Ship.Type = SHIP_CORVETTE_PORTUGAL;//Тип корабля. Подробнее смотри program\Ships\Ships_init.c ch.Ship.Cannons.Type = CANNON_TYPE_CANNON_LBS16;//Тип установленных орудий. 12,16, 24, и 32 //Анимация. Необходимо выбрать один из вариантов LAi_SetPoorType(ch); //Сидит(бродяга) LAi_SetCitizenType(ch); //Ходит LAi_SetMerchantType(ch); //Ходит за главным персом LAi_SetPatrolType(ch); //Патруль LAi_SetGuardianType(ch); //Патруль у дверей LAi_SetPriestType(ch); //Священник LAi_SetSitType(ch); //Сидит на стуле и т.п. LAi_SetWaitressType(ch); //Оффициантка LAi_SetBarmanType(ch); //Бармен //Другие параметры, связаные с анимацией. LAi_SetLoginTime(ch, 0.0, 24.0); LAi_SetHP(ch, 80.0, 80.0);//Устанавливаем жизни LAi_SetStayHuberPointWindow(ch, “goto”, «goto10"); //Описываем путь перса. LAi_SetStayHuberPointMap(ch, “goto”, «goto9"); //И на последок… LAi_group_MoveCharacter(ch, «ENGLAND_SOLDIERS»); //Переместить перса в группу. LAi_NoRebirthEnable(ch);//Запретить перерождение. ch.greeting = «Gr_Redmond Commendant»; //Тип приветствия. Подробнее здесь: RESOURCE\INI\ALIASES\Greetings_alias.ini n = n + 1; Вот готовый пример: makeref(ch,Characters[n]); //Пират Хреновый Глаз ch.name = " Хреновый"; ch.lastname = "Глаз"; ch.id = "HG"; ch.model = "corsair3"; ch.sound_type = "soldier"; LAi_CharacterReincarnation(ch, true, true); ch.sex = "man"; GiveItem2Character(ch, BLADE_SABER); ch.equip.blade = BLADE_SABER; ch.location = "Oxbay_port"; ch.location.group = "goto"; ch.location.locator = "goto23"; ch.Dialog.Filename = "Oxbay Soldier_dialog.c"; ch.rank = 1; ch.nation = ENGLAND; ch.reputation = "None"; ch.experience = "0"; ch.skill.Leadership = "1"; ch.skill.Fencing = "5"; ch.skill.Sailing = "1"; ch.skill.Accuracy = "1"; ch.skill.Cannons = "1"; ch.skill.Grappling = "1"; ch.skill.Repair = "1"; ch.skill.Defence = "1"; ch.skill.Commerce = "1"; ch.skill.Sneak = "1"; ch.money = "10"; ch.money = "10"; LAi_SetCitizenType(ch); LAi_group_MoveCharacter(ch, "ENGLAND_CITIZENS"); n = n + 1; Поздравляю вы создали новый персонаж в городе |
Текстовая версия | Сейчас: 26th September 2024 - 09:02 |