GhfDllT
offline
Опыт:
3,980Активность: |
*.fdf файлы в WarcraftIII
В архивах вара в папке FrameDef лежат файлы типа fdf. Это описания фреймов игры(Frame Define наверное имелось в виду), т.е. описание положения всех кнопок, полос прокрутки и тд(не путать с форматом Acrobat Reader). Я пытаюсь разобраться, но там довольно сложно - шаблоны непонятно определяются, наследуются потом. Короче я не смог ничего сделать, кроме как изменить в игре надписи на кнопках, и еще пути к текстурам переписать, ну еще добавил еще слот к выбору рас..
Та к вот, если кто знает формат этих файлов, как там иерархия организована и как ее менять(последнее вообще мечты) , то пожалуйста поделитесь этими сведениями со мной. P.S. Поиск на fdf. результатов не дал |
30.07.2009, 16:38 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ARCHIMONDE
Маг'хар
offline
Опыт:
16,313Активность: |
GhfDllT,а там можно только один слот к выбору рас добавить или больше?
|
30.07.2009, 16:46 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
GhfDllT
offline
Опыт:
3,980Активность: |
ARHIMOND5, вообще то я вопросы задаю=(......
Добавить то можно больше, но вот обрабатываться слот не будет(т.е. после выбора в списке раса даже в строке не появится . А wooteam в своем моде в основное меню мурлоков добавили? Просто не играл. Надо у участников спросить GhfDllT добавил: Просто что-то мне подсказывает, что возможноти большие у этой штуки. В Blizzard.j видел какие-то функции загрузки начальных юнитов расам, значит можно что-то замутить. А кажется мне что наши мэтры все знают, но молчат, гады... |
30.07.2009, 17:07 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ARCHIMONDE
Маг'хар
offline
Опыт:
16,313Активность: |
GhfDllT,не они не добавляли слот, просто к "Ночным Эльфам" дописали "Мурлоков" и все.
|
30.07.2009, 17:17 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
Эти файлы загружаются во время старта игры. Заменить их импортом в карту не получится. |
30.07.2009, 17:26 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
GhfDllT
offline
Опыт:
3,980Активность: |
MF, то есть данные о стандартном игровом интерфейсе для каждой расы грузится сразу при запуске игры, а не карты? Это близары специально сделали? Тогда у меня вопрос: когда закидываешь ошибочный фрейм(например главного меню одиночной игры), то игра вылетает не сразу, а только когда из главного меню жмешь "один игрок". Ну а там конечно вылетает, ибо обработчики к этой хрени не может вызвать. Так вот в чем вопрос - как игра грузит сразу, а ошибочность выясняет только при вызове? Может все-таки есть надежда?
Цитата:
Цитата:
Итак, главный вопрос остается - где взять более или менее подробное описание этого формата. Хоть это и абсолютно бесполезно(за исключением замены текста интерфейса в модах), но жутко интересно!!! Хотя бы для того, чтобы увидеть пару картинок, типа этих |
||
30.07.2009, 22:09 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
я так понял там примерно такой синтаксис:
Название типа "ИМЯ" "Подтип" INHERITS(наследуется) WITHCHILDREN(с потомком) от "Подтип предка" { входящие элементы, через, запятую, Могут быть "ВЛОЖЕННЫЕ" { и тоже содержать элементы, } } |
30.07.2009, 22:24 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
GhfDllT
offline
Опыт:
3,980Активность: |
ScorpioT1000, именно такой(только вместо "название типа" всюду Frame), но хотелось бы общетеоретически, и про эти самые элементы, и про то как элементы жруг в дгуга включаются, в общем все что знаешь, если не трудно
GhfDllT добавил: Цитата:
|
|
30.07.2009, 22:34 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
да нет, чтобы у тя появилось визуальное меню вара на экране и ты его перетаскивал/редактировал, а в конце нажал "сохранить в fdf" и импортил в вар)
ScorpioT1000 добавил:
я не знаю, первый раз открыл. могу приблизительно сказать, что это. хотя тут знания английского достаточно. рассмотрим MainMenu.fdf
означает, что текущий файл использует некоторые шаблоны из других включенных файлов, по путям..
кадры или "слои"
сначала тип "Frame", потом либо его надтип, либо его "сокращенное название", а затем уже полное название (MainMenuFrame), потом то, что он наследует набор данных и функций из шаблона "StandardFrameTemplate"
далее внутренние элементы
какой-то параметр(bool) SetAllPoints
далее подшаблон, тоже "Frame", но надтип уже SPRITE, а название "WarCraftIIILogo" и внутренние свойства где их брать, я не знаю, скорей всего в файлах "выше" (INCLUDE FILES) например, функция(если это функция) SetPoint принимает параметры TOPLEFT, "MainMenuFrame", TOPLEFT, 0.13, 0.04 - про них надо узнать подробнее |
30.07.2009, 22:49 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
TNT
О_о
offline
Опыт:
11,019Активность: |
получится заменить эти файлики через подключение mpq только наверное. |
30.07.2009, 23:02 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
можно в папку с варом запихать |
30.07.2009, 23:05 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
TNT
О_о
offline
Опыт:
11,019Активность: |
имею в виду для модов или карт. а то так это на весь вар повлияет, а с архивом на свой exe |
30.07.2009, 23:08 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
GhfDllT
offline
Опыт:
3,980Активность: |
TNT, резервные копии mgq делать надо(war2patch)
Цитата:
Цитата:
Цитата:
Код:
ну там соответственно на все случаи жизни(кнопки, надписи, CheckBox и т.д.) Описание атрибутов в др файлах не нашел, поэтому предполагаю что их понимает непосредственно движок, или может какие компоненты описаны/сериализованы в двоичных|зашифрованных файлах вара. Цитата:
Цитата:
|
|||||
31.07.2009, 09:49 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,707Активность: |
GhfDllT, это просто оформление. При желании можно перетащить все элементы, как душе угодно, но новые обрабатываться не будут, для них надо писать свои "обработчики". |
31.07.2009, 10:07 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
FDF = Frame Definition File насколько я помню, качественно изменить интерфейс невозможно так как соответствие между тем что написано в fdf и прошито в движке весьма однозначное, то есть текстуры может изменить и можно а вот положение их - наврядли |
31.07.2009, 11:32 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
GhfDllT
offline
Опыт:
3,980Активность: |
Цитата:
P.S. То есть получается fdf в модмейкинге годны только изменение надписей, положения и текстур. Плачевно... GhfDllT добавил: Я тут одну вещь обнаружил - нам в элементах управления что-то вроде цикла/списка замкнутого. Есть один элемент, у него стоит атрибут TabFocusDefault и такой элемент единственный в фрейме, слудующим атрибутом идет TabFocusNext "бла-бла на др компонент", в том бла-бла компоненте ссылка на следующий и так до последнего. А в последнем ссыка на первый. Если дописать свой подфрейм с одной кнопкой, то все работает и вар внимания не обращает. А вот если кнопок более одной - вылетает при нажатии любой кнопки кроме нестандартных. Если вписываешь свои кнопки в "цикл", то вылетает и при их нажатии. Вы с этим сталкивались? |
|
31.07.2009, 14:16 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
нету никакой документации, метод тыка при чем тут текстурная карта, есть модель интерфейса, текстурная карта натягивается на нее, она предельно проста - области, изменить положение частей интерфейса невозможно не исправляя game.dll то есть ничего хорошего afaik из fdf не получится |
31.07.2009, 17:42 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
GhfDllT
offline
Опыт:
3,980Активность: |
Цитата:
SetPoint TOPRIGHT,"SinglePlayerMenu",TOPRIGHT, -0.4, -0.15, /*насколько я понял, здесь точка TOPRIGHT дочернего компонента устанавливается в точку TOPRIGHT родительского "SinglePlayerMenu" со смещением -0.4, -0.15. Ну а так как заработало, то значит понял я правильно*/ |
|
31.07.2009, 23:53 | #18
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,707Активность: |
Hellfim:
И еще мне кажется (но я могу ошибаться), что положение устанавливается относительно экрана, а не родительского фрейма. Т.е. TOPRIGHT - верхний правый угол и от него, на -0.4 по оси X и на -0.15 по оси Y (я думаю понятно, что центром в данном случае выступает верхний правый угол).
Hellfim добавил:
Для написание обработчиков тебе нужно всего-то ничего, добавить в game.dll нужные функции (серьезно). Проблема в том, как ты будешь открывать то или иное меню, ведь названия функций и все, что хоть как-то может помочь, находится в байткоде. Думаю я понятно изложил. Hellfim добавил: Насчет новые обрабатываться не будут, то скорее всего к ним можно присобачить стандартные "обработчики". |
01.08.2009, 00:17 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
GhfDllT
offline
Опыт:
3,980Активность: |
Цитата:
Цитата:
Я в принципе привел строку с помощью которой получи то, что на скрине:изменил только -0.015 на -0.4 - все остальные кнопки и надпись(может и EditBox, не помню) наследуют от "втопленности" кнопки кампании, которую я собственно и менял. Еще - если во фрейме уберешь у корневого SetAllPoints, то кнопки вообще исчезнут. То есть эта функция(или флаг?) отвечает за создание этих самых точек(TOPRIGHT и тд), а это значит что вне фрейма(в окне) они не определены, хотя я завтра еще покопаюсь))) GhfDllT добавил: Однако же "полезна " для модмейкинга сия тема, ппц, сам поражаюсь... |
||
01.08.2009, 00:35 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|