Manifest文件

From Valve Developer Community
Jump to: navigation, search
English

任何自定义游戏的根基,都是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文件。

Note:使用一个<script>部分还是通过<script>参考外部的JS文件,这只是一个风格问题。一般来说,将XML和JS区分开来,各自拥有独立文件会更好一些(这样做可以让工程更有条理,更容易进行修改,而且更容易编辑语法)。但是仅仅对于Manifest来说,它就是用来让你把所有的信息都整合在一个文件里的。
Note: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 游戏结束画面。