CBaseEntity
< Zh
所有实体基于的类。
Contents
键值
Base:
- Name
(targetname)
<string > - 其他实体用来指代该实体的名称。
- Parent
(parentname)
<targetname > - 实体的父级实体,该实体可以与父实体保持移动偏移。名称后面可以添加一个附属点,以逗号隔开。 (
parentname [targetname],[attachment]
)提示:转换至下一张地图的实体关系会依然存在。提示:一些不适合做父实体的实体可能难以运行,利用phys_constraint
可以解决。 - Origin (X Y Z)
(origin)
<coordinates > - 实体处于世界中的位置,旋转实体会以实体坐标原点旋转。注意:Hammer 不会仅在编辑器中相应地移动实体。
- Pitch Yaw Roll (Y Z X)
(angles)
<angle > - 实体在世界中的方位,Pitch围绕X轴旋转,可以称为俯仰角。Yaw围绕Z轴旋转,可以称为偏航角,roll围绕Y轴旋转。注意:尽管 Hammer 不显示新角度,但其仍然适用于固实体。
- Classname
(classname)
<string > 不存在于FGD! - 确定实体之前它生成的特征。提示:使用
AddOutput
输入更改 Classname 仍然会影响游戏的代码,例如使类名与 S_PreserveEnts 列表中的一个元素匹配将使实体在新一轮中持续存在! - Spawnflags
(spawnflags)
<flags > 不存在于FGD! - 实体所具有的标志/标签,依实体所具有而定。
- Effects
(effects)
<flags > 不存在于FGD! - 要使用的效果标志的组合。
- Entity Scripts
(vscripts)
<scriptlist > (存在于自 以来) (也存在于 之中) - 在所有实体生成后执行的 VScript 文件(无文件扩展名)的空格分隔列表。这些脚本都在同一个脚本范围内执行,以后的脚本会覆盖任何相同的变量和函数。在 worldspawn 实体上执行的脚本将放置在根作用域中。
- Think function
(thinkfunction)
<string > (存在于自 以来) (也存在于 之中) - 此实体脚本中的函数名称,该函数将在脚本持续时间内每 100 毫秒(每秒 10 次)自动调用一次。它可用于创建计时器或模拟自主行为。返回值(如果存在)将设置下一次调用之前的时间。尽量避免在此函数中进行昂贵的操作,因为它可能会导致性能问题。
- Lag Compensation
(LagCompensate)
<boolean > (存在于自 以来) 不存在于FGD! - 设置为是以延迟补偿此实体。应该非常谨慎地使用!
- Is Automatic-Aim Target
(is_autoaim_target)
<boolean > (存在于自 以来) 不存在于FGD! - 如果设置为 1,当实体位于十字准线下方时,该实体将减慢控制台和操纵杆控制器的瞄准移动速度。
输入
Base:
AddContext
<string >- 添加到实体的 Response Contexts/响应上下文列表。格式是
<key>:<value>
。
语法:
ClearContext
- 从此实体的列表中删除所有上下文。
ClearParent
- 从移动层次结构中删除该实体,使其可以自由移动。
FireUser1
到FireUser4
- 触发相应的
OnUser
输出;详见 User Inputs and Outputs。
Kill
- 从这个世界中删除此实体。
KillHierarchy
- 功能类似
Kill
,尽管此实体与其父实体都被删除了,但比Kill
快一点。
RemoveContext
- 从实体列表删除一个上下文。名字应与现有上下文进行匹配。
SetParent
<string >- 跟随此实体移动,详见 实体层级(依赖关系)。
SetParentAttachmentMaintainOffset
<string >- 同上,但没有传送。在接收到输入时,实体保持其相对于附件的位置。
DispatchResponse
<string > 不存在于FGD!- 向实体发送一个上下文。 详见 Response 和 Concept.
DispatchEffect
<string > (自从 被移除) 不存在于FGD!- 在实体的原点坐标设置一个特定效果;参见 List of Client Effects。自从 求生之路后由粒子系统取代。
RunScriptCode
<string > (存在于自 以来)- 在接收输入的实体范围内执行一串 VScript 源代码。通过控制台触发时可能需要字符串引用。
- 修复:使用文本编辑器手动删除带有字符串的参数。
SetLocalOrigin
<coordinates > (存在于自 以来) 不存在于FGD!- 将此实体设置到地图中的某个位置。如果此实体是某实体父级,那么它的子级也会随着移动。
输出
Base/基础:
OnUser1
到OnUser4
- 这些输出将分别响应于
FireUser1
到FireUser4
输入。 详见 User Inputs and Outputs。 OnKilled
(仅存在于 之中)- 当实体被Kill输入时响应此输出。
编程相关
要获得一个实体的 classname,使用
entity->edict()->GetClassName();
断言(Asserts)
客户端(Client)
问题:
// 找不到模型
Assert( !"Model could not be found, index is -1" );
解决方案:
- 检查你的模型名称三次。
- 在服务器和客户端上都预缓存你的模型。