Zh/Non-FGD features: Difference between revisions
< 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= | {{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条目 == | ||
基本结构: | 基本结构: | ||
<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
FGD 文件告知hammer 引擎中存在的entity 及其keyvalues 、inputs 、outputs 和flags 。若实体信息未包含在FGD中,仍可通过Hammer手动添加。
实体
添加非FGD实体: 1. 在classname框输入完整实体名称 2. 点实体将显示"obsolete"图标 3. 不会显示未注册的keyvalues 、inputs 、outputs 或flags
键值
添加步骤: 1. 禁用SmartEdit 2. 点击Add按钮 3. 在key字段输入引擎原始名称(如"ResponseContext") 4. 在value字段输入对应值 5. 点击Delete可移除键值
3dmax 用户通过wallwormmtools 添加: 1. 选择WallWormMDL节点 2. 在Modify标签页点击KeyValues按钮
输入与输出
添加方法:
output OnSomething(void) : "事件触发时激活" input DoAction(string) : "执行指定动作"
标志(Flags)
通过spawnflags
键值添加:
1. 值为各标志对应数字之和
2. 数字对应关系见实体页面
3. 示例:trigger_multiple 的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包含未定义基类引用会导致加载失败
