Реклама


  • Страница 1 из 1
  • 1
Модератор форума: FiLLiN, iEnjoy  
создание мода
tempban Дата: Понедельник, 07.03.2011, 12:15 | Сообщение # 1
Сообщений: 189
Награды: 36
Репутация:
Кто может помочь с созданием мода,скачал программу для создания модов и карт ,А там все на англ и фиг разберешь

Помогите плз wink скайп nfi-orlan_prof
Dead_low Дата: Воскресенье, 13.03.2011, 19:21 | Сообщение # 2
Сообщений: 6
Награды: 0
Репутация:
34
Решился я все таки создать новую тему, а то давно никто-ничего не писал в этой ветке.

Название темы "Создание мода", выбрал обширное потому что, надеюсь здесь мы затронем и Mod Tools (с его инструмантами), и моделированние в Maya, и конвертер для Call of duty 4 и скрипты на видоизменном C++ (будь он не ладен).
Идея моя такова - предлагаю создать мод с открытыми исходниками - что бы каждый желающий мог на свое усмотрение менять вид менюшек и внедрять в игру свое оружие. За основу предлагаю взять ModWarfare - благо его исходники лежат в Mod Tools ...\Mods\ModWarfare\, там же лежит и батник makeMod.bat, который корректно компилит файлы с расширением .menu (в отличии от ModBuilder)

Мои предложения по моду:
1. Создать три отдельных окна аттачмента, для выбора онного во всех возможных вариациях. Пример:

сейчас я сделал только вывод окон - нужно еще разобраться с их вызовом. Да, еще можно добавлять слоты с оружием. Но все впирается в С++.

2. Использовать для начала стандартные xmodel из сингла ( например М4 с коллиматором+глушак+подствол). Пример:

а вообще товарищ Tomtels (у него очень качественные стволы) обещал поделиться своими моделями оружки. Ну и можно експортировать оружие из других игр например СТАЛКЕР или Crysys где оружие не плохое.

Перехожу к деталям. Как я понял, все скриптовые файлы менюх мультиплеера .menu и .inc находятся в Мод Тоолсе по пути
...\raw\ui_mp\**
. По-моему даже папка так и называется user interface_мультиплеер. Все не обходимые скрипты берем отдуда. Но пока меня интерисует папка в Мод тулсе ...Mods\ModWarfare\ui_mp\ там и лежат исходники скриптов меню ModWarfare. В частности меня интерисуют два файла cac_ingame.inc и cac_loadout_ingame.inc. Судя по их названиям они были взяты из игры и отправлены в Мод Тоолс разрабами .
В файле cac_loadout_ingame.inc. вызывается функция, которая выводит окно выбранного аттачмента под оружием:

PREPROC_SHADER_DRAW_ALIGNED ( 77 60 32 32 LOADOUT_ALIGN, ORIGIN_LOADOUT, tablelookup( "mp/attachmenttable.csv", 9, STAT_CAC_PRIMARY_ATTACHMENT, 6 ), 1 1 1 1, 0, 1, 1 1 1 1)

объявление этой функции можно найти в файле common_macro.inc. Первый аргумент функции (77 60 32 32) указывает на физическое расположение окна выбранного аттачмента на экране (77 и 60 это коортинаты в X Y, а 32 и 32 это размер картинки аттачмента по X и Y соответственно) Значит если присваивать первому аргументу определенные координаты то получаем вывод картинки в нужном месте. Далее, tablelookup( "mp/attachmenttable.csv... я так понял - это оператор который обращается в некую таблицу mp/attachmenttable.csv. Такого файла в Мод тоолсе не существует (на что указывает даже обратный слеш), по видимому этот файл генерируется из какой-то библиотеки и представляет собой (по моему) некую константу. А вот аргумент STAT_CAC_PRIMARY_ATTACHMENT -явный, его объявление можно найти в файле cac_ingame.inc. В нем то и находится аттачмент который функция должна загружать в меню. Если рассмотреть объявление STAT_CAC_PRIMARY_ATTACHMENT то мы видим:

#define STAT_CAC_PRIMARY_ATTACHMENT tableLookup("mp/attachmentTable.csv", 4, dvarString (loadout_primary_attachment ), 9)

Здесь объявлеется что будет загружено в окне аттачмента но не в игре. Опять тот же мифический аргумент - mp/attachmentTable.csv и более интересный - loadout_primary_attachment Переменная типа String - loadout_primary_attachment - является как бы контейнером-перевозчиком аттачмента а получает она содержимое из еще одной переменной attachmentName в чем можна убедиться из вот этого:

#define LOCAL_ATTACHMENT_ACTION( attachmentDvar, attachmentName, paction, groupArg ) \
setdvar loadout_primary_attachment attachmentName; \
scriptMenuResponse "loadout_primary_attachment:"groupArg":"attachmentName;\
UPDATE_PERK1 \
close self;
/*
setdvar loadout_camo camo_none; \
open "ocd_popup_cac_camo";
*/

в свою очередь attachmentName - содержит уже сам аттачмент - или gl или acog или silencer....

!!! Впрос ко всей аудитории - каким образом исходя из содержимого attachmentName присваивать первому аргументу функции PREPROC_SHADER_DRAW_ALIGNED нужные нам координаты (таким образом получая окно с Gl слева, окно с Silencer по средине и Reflex или Acog справа).

Далее, это только функция вывода окон с аттачментом а еще нужно разобраться с выбором аттачмента - что бы при выборе к примеру оптики - не пропадал глушак и на оборот и т.д.. По моему это все зарыто в дефайне :

#define LOCAL_ATTACHMENT_ITEM( itemNum, p_setstat, groupArg ,p_numref, pname, paction, ptype, statDvar, bitMask )\
CHOICE_BUTTON_FOCUS_VIS_ADV( itemNum, "@"+tablelookup("mp/attachmentTable.csv",4,pname,3), LOCAL_ATTACHMENT_ACTION( statDvar, pname, paction, groupArg );, AI_FOCUS_ACTION(groupArg,pname), ;, when( ptype == "primary" && dvarBool( "attach_allow_"groupArg"_"pname ) ), ptype == "primary" && dvarBool( "attach_allow_"groupArg"_"pname ) ) \
CHOICE_BUTTON_FOCUS_VIS_ADV( itemNum, "@"+tablelookup("mp/attachmentTable.csv",4,pname,3), LOCAL_ATTACHMENT_ACTION2( statDvar, pname, paction, groupArg );, AI_FOCUS_ACTION(groupArg,pname), ;, when( ptype == "secondary" && dvarBool( "attach_allow_"groupArg"_"pname ) ), ptype == "primary" && dvarBool( "attach_allow_"groupArg"_"pname ) ) \
CHOICE_BUTTON_FOCUS_VIS_NOHI( itemNum, "", ;, AI_FOCUS_ACTION(groupArg,pname), ;, when( !dvarBool( "attach_allow_"groupArg"_"pname ) ); ) \
CHOICE_DBUTTON_VIS( itemNum, "@"+tablelookup("mp/attachmentTable.csv",4,pname,3), when( !dvarBool( "attach_allow_"groupArg"_"pname ) ); )

И существует еще третья проблема - это загрузка в саму игру выбранного оружия. Я так понял это осуществляется с помощью вот этого:

scriptMenuResponse "loadout_primary_attachment:"groupArg":"attachmentName;\

это выражение есть в дефайне описаном выше.


  • Страница 1 из 1
  • 1
Поиск:


Копирование новостей и файлов разрешено | Копирование других материалов с сайта разрешено только со ссылкой на источник.

Для правообладателей