Fdf

来自咸鱼维基
跳转至: 导航 搜索

魔兽地图编辑器导航

Fdf详解教程

fdf,可能是指“frame define file”。

fdf是魔兽争霸3的界面布局文件,在魔兽争霸3的MPQ文件中有诸多fdf文件。除了fdf外,魔兽争霸3中的界面制作往往也需要结合toc文件,可在toc页面查看说明。

注意:如果你发现fdf文件在魔兽地图中无效,请先检查toc文件是否被加载,或者toc文件最后一行是否留了空行。详见toc页面。

1 结构/语法说明[编辑]

结构/语法:

IncludeFile "UI\FrameDef\..\filename.fdf",

Frame "基础控件类型" "控件名称" {
    参数1 参数值1,
    参数2 参数值2,
    参数3 参数值3,
    ...
    参数N 参数值N,
    Frame "基础控件类型" "控件名称" {
        参数1 参数值1,
        参数2 参数值2,
        参数3 参数值3,
        ...
        参数N 参数值N,
    }
    Frame "基础控件类型" "控件名称" {
        参数1 参数值1,
        参数2 参数值2,
        参数3 参数值3,
        ...
        参数N 参数值N,
    }
}

Frame "基础控件类型" "控件名称" INHERITS "继承的控件名称" {
    参数1 参数值1,
    参数2 参数值2,
    参数3 参数值3,
    ...
    参数N 参数值N,
}

Frame "基础控件类型" "控件名称" INHERITS WITHCHILDREN "继承的控件名称" {
    参数1 参数值1,
    参数2 参数值2,
    参数3 参数值3,
    ...
    参数N 参数值N,
}

其中“基础控件类型”可以在“fdf/基础控件类型”页面查询。“控件名称”则是用于在Jass脚本中被索引的标记。开发者可以通过“控件名称”来创建Frame,也可以通过“控件名称”来索引Frame,或者索引Frame中的子Frame。

关键词说明:

  • InlcudeFile 用于导入一个 fdf 的数据,以实现复用控件。
  • Frame 用于声明一个新的控件,以更方便地创建可被多次复用的控件数据。
  • INHERITS 可以用于继承某个先前定义过的控件,以实现对控件的复用。
  • INHERITS WITHCHILDREN 不仅继承定义的控件,还继承其定义的子控件。
  • …… 更多待完善。

示例:

(本示例由 @裂魂 提供)

IncludeFile "UI\FrameDef\Glue\BattleNetTemplates.fdf",

Frame "BACKDROP" "HPBar"{
    Width 0.5,
    Height 0.04,
    BackdropTileBackground,
    BackdropBackground  "blank.blp",
    BackdropBackgroundSize  0.128,
    BackdropBackgroundInsets 0.01 0.01 0.01 0.01,
    BackdropCornerFlags "UL|UR|BL|BR|T|L|B|R",
    BackdropCornerSize  0.030,
    BackdropEdgeFile  "UI\Widgets\BattleNet\bnet-dialoguebox-border.blp",
    BackdropBlendAll,
    Frame "BACKDROP" "HPBarBG"{
        Width 0.5,
        Height 0.04,
        SetPoint LEFT, "HPBar", LEFT, 0, 0,
        BackdropTileBackground,
        BackdropBackgroundSize  0.128,
        BackdropBackgroundInsets 0.008 0.008 0.008 0.008,
        BackdropBackground  "ReplaceableTextures\TeamColor\TeamColor07.blp",
        BackdropBlendAll,
    }
    Frame "TEXT" "HPText" {
        SetAllPoints,
        FontJustificationH JUSTIFYCENTER,
        FontJustificationV JUSTIFYMIDDLE,
        FontFlags "FIXEDSIZE",
        Text "0/0",
    }
}

2 模板文件[编辑]

fdf模板文件定义了绝大多数游戏中使用到的各类fdf控件。

  • war3.mpq\UI\FrameDef\Glue\StandardTemplates.fdf - These are standard templates to be inherited by most components in the glue screens. The one exception being Battle.Net screens which should utilize the templates in BattleNetTemplates.fdf.
  • war3.mpq\UI\FrameDef\Glue\BattleNetTemplates.fdf - These are BattleNet templates to be inherited by components in the Battle.Net glue screens.
  • war3.mpq\UI\FrameDef\UI\EscMenuTemplates.fdf - These are EscMenu templates to be inherited by most components in the in-game menus.
  • war3.mpq\UI\FrameDef\UI\InfoPanelTemplates.fdf - These are templates to be inherited by most components in the in-game info panels.