Zh/Non-FGD features: Difference between revisions

From Valve Developer Community
< Zh
Jump to navigation Jump to search
(Created page with "{{LanguageBar|Non-FGD_features|title=非FGD功能实现}} {{TabsBar|main=Hammer}} right frame|right|禁用SmartEdit后的键值标签页 {{L|FGD}}文件告知{{L|hammer}}引擎中存在的{{L|entity}}及其{{L|keyvalues}}、{{L|inputs}}、{{L|outputs}}和{{L|flags}}。若实体信息未包含在FGD中,仍可通过Hammer手动添加。 == 实体 == 添加非FGD实体: 1. 在classname框输入完整实体名...")
 
No edit summary
Line 1: Line 1:
{{LanguageBar|Non-FGD_features|title=非FGD功能实现}}
{{LanguageBar|Non-FGD_features|title=没有在FGD定义}}
{{TabsBar|main=Hammer}}
{{TabsBar|main=Hammer}}
[[File:Obsolete.png|right]]
[[File:Obsolete.png|right]]
Line 37: Line 37:
3. 示例:{{L|trigger_multiple}}的Pushables(4)+Physics Objects(8)=12
3. 示例:{{L|trigger_multiple}}的Pushables(4)+Physics Objects(8)=12


== FGD条目创建 ==
== 新建FGD条目 ==
基本结构:
基本结构:
<pre>
@PointClass base(BaseClass) = entity_name : "实体描述"
@PointClass base(BaseClass) = entity_name : "实体描述"
[
[
Line 49: Line 50:
   ]
   ]
]
]
</pre>
=== 键值定义 ===
<pre>
键名(类型) : "显示名" : 默认值 : "描述"
下拉菜单示例:
选项(choices) : "选项菜单" : 0 : "选择说明" = [
  0 : "默认"
  1 : "选项A"
]
</pre>
=== 输入输出定义 ===
<pre>
input 输入名(参数类型) : "描述"
output 输出名(参数类型) : "描述"
void类型示例:
output OnTrigger(void) : "当触发时激活"
</pre>


=== 基类示例 ===
=== 基类示例 ===
<pre>
@BaseClass = BaseTemplate
@BaseClass = BaseTemplate
[
[
Line 56: Line 77:
   output OnUser1(void) : "用户输出1"
   output OnUser1(void) : "用户输出1"
]
]
</pre>
{{warning|若FGD包含未定义基类引用会导致加载失败
{{workaround|在游戏主FGD文件末尾{{L|@include}}新文件}}
== 相关链接 ==
{{L|Special:WhatLinksHere/Non-FGD_features}}


{{ACategory|Hammer}}
{{ACategory|Hammer}}

Revision as of 23:27, 26 June 2025

English (en)中文 (zh)Translate (Translate)
Create new tabs bar with this page as mainedit
Obsolete.png
禁用SmartEdit后的键值标签页

FGD(en)文件告知hammer(en)引擎中存在的entity(en)及其keyvalues(en)inputs(en)outputs(en)flags(en)。若实体信息未包含在FGD中,仍可通过Hammer手动添加。

实体

添加非FGD实体: 1. 在classname框输入完整实体名称 2. 点实体将显示"obsolete"图标 3. 不会显示未注册的keyvalues(en)inputs(en)outputs(en)flags(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)