Manifest文件
< Zh | Dota 2 Workshop Tools | Panorama
任何自定义游戏的根基,都是Custom UI Manifest XML文件。它描述了这个游戏将使用那些额外的XML文件,从而加载所需的内容。
content/dota_addons/ADDON_NAME/panorama/layout/custom_game/custom_ui_manifest.xml
例子
这是一个关于Manifest XML文件的例子,展示了如何用Valve开发的多队伍记分板替换掉默认记分板。你的Manifest文件可以包含任何CustomUIElement入口,以及可以参考任何Valve创作的XML文件或者你自己的XML文件。
注意:使用一个<script>部分还是通过<script>参考外部的JS文件,这只是一个风格问题。一般来说,将XML和JS区分开来,各自拥有独立文件会更好一些(这样做可以让工程更有条理,更容易进行修改,而且更容易编辑语法)。但是仅仅对于Manifest来说,它就是用来让你把所有的信息都整合在一个文件里的。
注意:Custom Loading Screens 载入界面与一般的UI有不同的处理方式。.
<root>
<script>
//禁用内置顶部记分板,并设置为多队伍记分板。 GameUI.SetDefaultUIEnabled( DotaDefaultUIElement_t.DOTA_DEFAULT_UI_TOP_TIMEOFDAY, false );
GameUI.SetDefaultUIEnabled( DotaDefaultUIElement_t.DOTA_DEFAULT_UI_TOP_HEROES, false );
GameUI.SetDefaultUIEnabled( DotaDefaultUIElement_t.DOTA_DEFAULT_UI_FLYOUT_SCOREBOARD, false );
</script>
<Panel>
<!-- 使用valve开发的多队伍记分板, 以替换默认dota2记分板。 -->
<CustomUIElement type="HudTopBar" layoutfile="file://{resources}/layout/custom_game/multiteam_top_scoreboard.xml" />
</Panel>
</root>
自定UI元素
有一种特殊的板类型,仅仅是为了给manifest文件使用。它具有如下两种属性:'type' (类型)和'layoutfile' (布局文件)用于注册额外的XML文件,以便让系统加载它们并在正确的显示这些元素。 你可以在一个type下注册多个元素,它们会根据manifest文件中的顺序叠在一起。
属性 | 描述 |
---|---|
type
|
布局文件所描述的UI类型。 (见下表 "Custom UI Element Type" ) |
layoutfile
|
一个XML文件名,会和其他同类型的UI一起被加载和显示。 |
自定义UI元素类型 | 描述 | 默认UI |
---|---|---|
Hud
|
游戏内HUD-在完成英雄选择后可见。 | (None) |
HeroSelection
|
英雄选择界面-在完成游戏初始化后,游戏开始前可见(或者在玩家还未完成英雄选择时可见)。 | (None) |
GameInfo
|
一个特别的板,用来展示你的自定义游戏的基本信息。在整个游戏过程中都可以通过“i”信息按钮调出。 | (None) |
GameSetup
|
一个用来完成自定义游戏设置的UI(选择队伍/投票难度等)。另见:Dota_2_Workshop_Tools/Custom_Game_Setup | layout/custom_game/team_select.xml
|
FlyoutScoreboard
|
当玩家输入“+showscores”命令或点击“scoreboard”按钮时弹出记分板。 | (None) |
HudTopBar
|
顶端的那一条。和HUD基本一样,但是在“结束后”状态下仍然可见。 | (None) |
EndScreen
|
结束画面(带GPM/EPM的那个)在游戏结束后弹出。 | (None) |
禁用dota默认UI
Example:
// 使用 GameUI.SetDefaultUIEnabled to禁用 default UI (在动态地切换UI的时候可能会造成一些意外的后果)
GameUI.SetDefaultUIEnabled( DotaDefaultUIElement_t.DOTA_DEFAULT_UI_TOP_TIMEOFDAY, false );
默认UI元素 | 描述 |
---|---|
DotaDefaultUIElement_t.DOTA_DEFAULT_UI_TOP_TIMEOFDAY | 一天内的时间 (中间那个钟). |
DotaDefaultUIElement_t.DOTA_DEFAULT_UI_TOP_HEROES | 在HUD顶部的队伍和英雄信息。 |
DotaDefaultUIElement_t.DOTA_DEFAULT_UI_FLYOUT_SCOREBOARD | 界面左边的弹出式记分板。 |
DotaDefaultUIElement_t.DOTA_DEFAULT_UI_ACTION_PANEL | 英雄动作的UI。 |
DotaDefaultUIElement_t.DOTA_DEFAULT_UI_ACTION_MINIMAP | 小地图 |
DotaDefaultUIElement_t.DOTA_DEFAULT_UI_INVENTORY_PANEL | 整个物品栏UI。 |
DotaDefaultUIElement_t.DOTA_DEFAULT_UI_INVENTORY_SHOP | 物品栏UI的商店部分。 |
DotaDefaultUIElement_t.DOTA_DEFAULT_UI_INVENTORY_ITEMS | 物品栏UI 的玩家物品部分。 |
DotaDefaultUIElement_t.DOTA_DEFAULT_UI_INVENTORY_QUICKBUY | 物品栏UI的快速购买部分。 |
DotaDefaultUIElement_t.DOTA_DEFAULT_UI_INVENTORY_COURIER | 物品栏UI的信使部分。 |
DotaDefaultUIElement_t.DOTA_DEFAULT_UI_INVENTORY_PROTECT | 物品栏UI的防御符文部分。 |
DotaDefaultUIElement_t.DOTA_DEFAULT_UI_INVENTORY_GOLD | 物品栏UI的金钱显示部分。 |
DotaDefaultUIElement_t.DOTA_DEFAULT_UI_SHOP_SUGGESTEDITEMS | 商店界面的推荐物品。 |
DotaDefaultUIElement_t.DOTA_DEFAULT_UI_HERO_SELECTION_TEAMS | 英雄选择UI-近卫和天灾的玩家列表。 |
DotaDefaultUIElement_t.DOTA_DEFAULT_UI_HERO_SELECTION_GAME_NAME | 英雄选择UI-游戏模式名称显示。 |
DotaDefaultUIElement_t.DOTA_DEFAULT_UI_HERO_SELECTION_CLOCK | 英雄选择-计时器。 |
DotaDefaultUIElement_t.DOTA_DEFAULT_UI_TOP_MENU_BUTTONS | HUD顶端左部的菜单按钮。 |
DotaDefaultUIElement_t.DOTA_DEFAULT_UI_ENDGAME | 游戏结束画面。 |