Составление 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, 23:06
Сообщение
#2
|
боцман Группа: форумчанин Сообщений: 131 Регистрация: 11-April 06 Из: Краснодарский к-р. Пользователь №: 3,072 |
Меняем стартовую точку
Вот это не очень легко. Для этого мы должны открыть два файла. Сначала откроем seadogs.c (лежит в корне каталога PROGRAM). Теперь откроем второй файл. Он лежит в директории PROGRAM\Locations\Init\. Там несколько файлов. Если вы хотите отправить его в место на Редмонде, то открывайте файл Redmond.c, если на Фале Де Флер, то открывайте FalaiseDeFleur.c. И так, до нужного вам острова. ;-) Пусть у нас главный герой попадет на Редмонд, в таверну. Значит, мы откроем еще и файл Redmond.c. В seadogs.c ищем вроде этого: void NewGame() { DelEventHandler("frame","NewGame"); InitGame(); LoadMainCharacterInFirstLocation("Falaise_de_fleur_location_02", "", "Falaise_de_fleur_location_01"); InterfaceStates.Buttons.Resume.enable = true; CreateClass("dummy"); }Нашли? Так вот, видите строчку LoadMainCharacterInFirstLocation("Falaise_de_fleur_location_02", "", "Falaise_de_fleur_location_01"); ? Видите? Хорошо. Этой функцией мы загружаем нашего героя в наш виртуальный мир. Так давайте ее рассмотрим. Falaise_de_fleur_location_02 - это место, где будет стоять главный герой, а Falaise_de_fleur_location_01 - это место, где появится корабль. Видите, между ними стоят кавычки, а в них ничего нет? Это - Emerge Location. Falaise_de_fleur_location_02 - это место около ворот (вход в город). Вот там мы появимся, если у нас в Emerge Location ничего нет и локация главного персонажа равна Falaise_de_fleur_location_02. Если же в Emerge Location написать sea и поместить нашего героя на локацию Falaise_de_fleur_location_01, то мы будем стоять на пирсе. Почему так? Falaise_de_fleur_location_01 - это место около ворот при выходе из города, где находится пирс. Без Emerge Location мы бы не стояли на пирсе, а стояли около ворот. Если мы, например, стоим на улице города, где находятся таверна, верфь, магазин и т.п., то станут возможными Emerge Location = tavern, store, shipyard и т.д. Если же мы стоим на улице, где нет верфи, магазина, таверны, а есть резиденция губернатора, то Emerge Location = residence. Но жаль, что не работают Emerge Location = residence, store, shipyard, tavern. Так бы было легче записывать. Ну хоть работают другие, более длинные Emerge Location. Их можно посмотреть в локации какого-нибудь острова. Например, мы стоим на улице, где есть резиденция губернатора (я буду говорить о Фале Де Флер). Эта улица - Falaise_de_fleur_location_03. Там есть линк на локацию Falaise_de_fleur_townhall. Это находится вот здесь: Locations[n].reload.l3.name = "Falaise_de_fleur_townhall"; Locations[n].reload.l3.go = "residence"; Locations[n].reload.l3.emerge = "locator1"; Не надо писать Emerge Location = locator1. Работать не будет. Если же написать Emerge Location = Falaise_de_Fleur_townhall, то все будет нормально. Надеюсь, вы поняли. Идем дальше. Мы же хотим изменить локацию героя. Так вот, смотрим в Redmond.c. Как я говорил выше я помещу его в таверну. Смотрим и находим вот это: Locations[n].id = "City_Redmond_largetavern"; Ага, нашли. Теперь нам осталось написать в seadogs.c локацию - City_Redmond_largetavern. Только смотрите, не напутайте, нужно вписать это в локацию для персонажа, а не для корабля. Ну вот что у нас получилось: void NewGame() { DelEventHandler("frame","NewGame"); InitGame(); //LoadMainCharacterInFirstLocation("Falaise_de_fleur_location_02", "", "Falaise_de_fleur_location_01"); LoadMainCharacterInFirstLocation("City_Redmond_largetavern", "", "Falaise_de_fleur_location_01"); InterfaceStates.Buttons.Resume.enable = true; CreateClass("dummy"); } Смотрим в игре, корабля нет. Он с нами не поплыл. В Фале Де Флер остался. Давайте исправим вот эту строчку: LoadMainCharacterInFirstLocation("City_Redmond_largetavern", "", "REDMOND_PORT"); Ура, все получилось! ---------------------------------------------------------------------------------------------------------------------------------------------------------- Итак, задача не из лёгких – добавить новую локацию. А поэтому без лишних слов приступим к делу . Для начала изучим что же такое локация и из чего она состоит. Для примера откроем любой файл из папки PROGRAM\Locations\init\ Locations[n].filespath.models = "locations\town_Douwesen\port";<--Это указатель на модель, используемую для внутренней части. Locations[n].image = "loading\Douwesen_Port.tga";<--Это картинка загрузки в локацию, распологаютсья в папке \RESOURCE\Textures\Loading\ locations[n].worldmap = "Douwesen"; Locations[n].id = "Douwesen_port";<--Это ID особых локаций locations[n].id.label = "Douwesen port";<--Метка Locations[n].townsack = "Douwesen"; locations[n].type = "port";<-- locations[n].fastreload = "Douwesen"; Locations[n].models.always.locators = "DouPort_l";<--Перегружаем локаторы Locations[n].models.always.seabed = "DouPort_sb";<--Загружаем карту морского дня Locations[n].models.always.seabed.foam = "1";<-- разрешаем пену Locations[n].models.always.l1 = "DouPort"; Locations[n].models.always.l1.foam = "1"; Locations[n].models.always.grasspatch = "DouPort_g"; Locations[n].models.day.rinok = "DouPort_e01"; Locations[n].models.day.charactersPatch = "DouPort_pd"; Locations[n].models.day.fonar = "DouPort_fd"; Locations[n].models.night.fonar = "DouPort_fn"; Locations[n].models.night.charactersPatch = "DouPort_pn"; Locations[n].environment.weather = "true";<--Разрешаем или запрещаем действие погоды в локации Locations[n].environment.sea = "true";<--Разрешаем или запрещаем море в данной локации Locations[n].reload.l1.name = "reload3";<--Локатор перехода в следующую локацию Locations[n].reload.l1.go = "Douwesen_town";<--ID следующей локации Locations[n].reload.l1.emerge = "reload9";<--Имя локатора где появимся Locations[n].reload.l1.autoreload = "0"; Locations[n].reload.l1.label = "Douwesen.";<--Этот текст показывается когда вы смотрите на дверь. Locations[n].reload.l2.name = "reload2"; Locations[n].reload.l2.go = "Douwesen"; Locations[n].reload.l2.emerge = "reload_1"; Locations[n].reload.l2.autoreload = "0"; Locations[n].locators_radius.reload.reload2 = 3; Locations[n].reload.l2.label = "Sea."; Locations[n].reload.l3.name = "reload1_back"; Locations[n].reload.l3.go = "Douwesen"; Locations[n].reload.l3.emerge = "reload_1"; Locations[n].reload.l3.autoreload = "0"; Locations[n].reload.l3.label = "Sea."; Locations[n].locators_radius.reload.reload1_back = 3; Locations[n].reload.l4.name = "reload2_back"; Locations[n].reload.l4.go = "Douwesen"; Locations[n].reload.l4.emerge = "reload_1"; Locations[n].reload.l4.autoreload = "0"; Locations[n].locators_radius.reload.reload2_back = 3; Locations[n].reload.l4.label = "Sea."; Locations[n].reload.l5.name = "reload1"; Locations[n].reload.l5.go = "Douwesen"; Locations[n].reload.l5.emerge = "reload_1"; Locations[n].reload.l5.autoreload = "0"; Locations[n].reload.l5.label = "Sea."; Locations[n].locators_radius.reload.reload1 = 3; n = n + 1; А теперь найдите дом который хотели изменить, смените ID, после чего замените в городе, где хотите свой дом ID перехода. Прикрепленные изображения |
Alexad_D |
Aug 23 2009, 12:30
Сообщение
#3
|
матрос Группа: форумчанин Сообщений: 89 Регистрация: 11-July 09 Из: Беларусь. г. Поставы Пользователь №: 20,710 |
Меняем стартовую точку Вот это не очень легко. Для этого мы должны открыть два файла. Сначала откроем seadogs.c (лежит в корне каталога PROGRAM). Теперь откроем второй файл. Он лежит в директории PROGRAM\Locations\Init\. Там несколько файлов. Если вы хотите отправить его в место на Редмонде, то открывайте файл Redmond.c, Не совсем так......... Все гораздо проще....... Поясняю - Стартовая точка игры - это запуск тутора и уж затем только выгрузка ГГ в мир. ИД стартовой локации - tutorial_deck_ - описан в - PROGRAM\Locations\init\QuestLocations.c ..... Следовательно и менять начинать надо здесь. ИД можно оставить без изменений (дабы ничего не тянуть больше) А вот свойства к примеру взять из гостиничной комнаты в таверне на Оксбее. //Tutorial //alexad_d Смена старта игры --> Locations[n].id = "Tutorial_Deck"; Locations[n].id.label = ""; Locations[n].image = ""; //Sound locations[n].type = "house"; //Models //Always Locations[n].filespath.models = "locations\inside\Doubleflour_house"; Locations[n].models.always.locators = "LH_F2_l"; Locations[n].models.always.tavern = "LH_F2"; Locations[n].models.always.window = "LH_F2_w"; Locations[n].models.always.window.tech = "LocationWindows"; Locations[n].models.always.window.level = 50; //Day Locations[n].models.day.charactersPatch = "LH_F2_p"; //Night Locations[n].models.night.charactersPatch = "LH_F2_p"; //Environment Locations[n].environment.weather = "true"; // <-- fix от Scatimon - Важно!!!!! Locations[n].environment.sea = "false"; //Reload map Locations[n].reload.l1.name = "reload1"; Locations[n].reload.l1.go = ""; Locations[n].reload.l1.emerge = ""; n = n + 1; Дальше надо менять место выкрузки ГГ и боцману, после прохождения (пропуска) тутора, на более подходящий по смыслу - к примеру дверь второго этажа таверны - это в both_reaction.c. найти места: Locations[FindLocation("Oxbay_port")].locators_radius.goto.goto18 = 0.5; // меняем на "Oxbay_tavern" и.... if(Pchar.location == "Tutorial_Deck") { Lai_QuestDelay("Tut_SkipTutorialOnShip", 2.0); } if(Pchar.location == "Oxbay_Port") // меняем на "Oxbay_tavern" Да сабельку добавить строчкой - locations[FindLocation(Pchar.location)].box1.items.blade1 = 1; А в seadogs.c мне кажеться вообще нефиг лезть т.к. LoadMainCharacterInFirstLocation(sTeleportLocName, "reload1", "Oxbay_port"); где - sTeleportLocName = "Tutorial_deck"; - ИД мы не меняли, "reload1" - есть и в комнате в таверне тоже нет смысла трогать ну и наконец -"Oxbay_port" - место так сказать парковки корабля.... Может я и ошибаюсь ..... поправте меня ...... ***************************************************** Да вот еще что..... Я не совсем понял(вернее совсем не понял) если старт в Оксбее причем здесь Фале де Флер |
Текстовая версия | Сейчас: 26th September 2024 - 12:31 |