没有在FGD定义

From Valve Developer Community
< Zh
Jump to navigation Jump to search
English (en)中文 (zh)Translate (Translate)
Obsolete.png
禁用SmartEdit后的键值标签页

FGD(en)文件告知hammer(en)中存在的实体(en)及其键值(en)输入(en)输出(en)属性(Flags)(en)。若实体信息未包含在FGD中,仍可通过Hammer手动添加。

实体

添加非FGD实体: 1. 在classname框输入完整实体名称 2. 点实体将显示"obsolete"图标 3. 不会显示未定义的键值(en)输入(en)输出(en)属性(en)

键值

添加步骤: 1. 禁用SmartEdit(en) 2. 点击Add按钮 3. 在key字段输入引擎原始名称(如"ResponseContext") 4. 在value字段输入对应值 5. 点击Delete可移除键值

3dmax(en)用户通过wallwormmtools(en)添加: 1. 选择WallWormMDL节点 2. 在Modify标签页点击KeyValues按钮

输入与输出

添加方法:

output OnSomething(void) : "事件触发时激活"
input DoAction(string) : "执行指定动作"

标志(Flags)

通过spawnflags键值添加: 1. 值为各标志对应数字之和 2. 数字对应关系见实体页面 3. 示例:trigger_multiple(en)的Pushables(4)+Physics Objects(8)=12

新建FGD条目

基本结构:

@PointClass base(BaseClass) = entity_name : "实体描述"
[
  keyvalue(type) : "显示名" : 默认值 : "描述"
  input InputName(type) : "输入描述"
  output OutputName(type) : "输出描述"
  spawnflags(flags) = [
    1 : "标志1" : 0
    2 : "标志2" : 1 
  ]
]

键值定义

键名(类型) : "显示名" : 默认值 : "描述"
下拉菜单示例:
选项(choices) : "选项菜单" : 0 : "选择说明" = [
  0 : "默认"
  1 : "选项A" 
]

输入输出定义

input 输入名(参数类型) : "描述"
output 输出名(参数类型) : "描述"
void类型示例:
output OnTrigger(void) : "当触发时激活"

基类示例

@BaseClass = BaseTemplate
[
  targetname(target_source) : "名称" : : "实体标识名"
  output OnUser1(void) : "用户输出1"
]

{{warning|若FGD包含未定义基类引用会导致加载失败

PlacementTip.png解决方案:在游戏主FGD文件末尾@include(en)新文件

相关链接

Special:WhatLinksHere/Non-FGD_features(en)