Zh/Portal 2/Scripting/Script Functions: Difference between revisions
Jump to navigation
Jump to search
(Created page with "{{LanguageBar|List of Portal 2 Script Functions|title='' Portal 2 ''脚本函数列表}} {{p2 topicon}}{{SQ topicon}} {{toc-right}} 此列表包含可用于的所有与{{Portal2|4}}游戏引擎相关的松鼠函数用于{{L|VScript}}。 当在{{L|Engine tools|工具模式}}运行游戏时可以使用<code>script_help</code>指令在控制台打印出来这些。 == 变量 == {| class="standard-table" !实例 !类型 !描述 |- |<code>Entities</code> |<code>#CEn...") |
(→另见) |
||
(20 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
{{toc-right}} | {{toc-right}} | ||
此列表包含可用于的所有与{{Portal2|4}} | 此列表包含可用于的所有与{{Portal2|4}}{{L|VScript}}游戏引擎的{{L|Squirrel|松鼠}}函数。 当游戏在{{L|Engine tools|工具模式}}运行时可以使用<code>script_help</code>指令在控制台打印出来这些。 | ||
== 变量 == | == 变量 == | ||
Line 55: | Line 55: | ||
=== CBaseEntity === | === CBaseEntity === | ||
这是实体的脚本句柄类。所有生成的实体都有一个使用此或其子类之一的脚本句柄。 | 这是实体的脚本句柄类。所有生成的实体都有一个使用此或其子类之一的脚本句柄。 | ||
游戏中的所有脚本句柄都可以从[[#CEntities|Entities]]访问实体脚本, 可以使用<code>self</code>关键字访问自己的脚本句柄。<code>activator</code>和<code>caller</code>关键字可以在函数调用时访问。 | |||
==== 使用方法 ==== | |||
{|class="standard-table" style="width: 100%;" | |||
!函数 | |||
==== | !特征用法 | ||
{| class="standard-table" style="width: 100%;" | !描述 | ||
! | |||
! | |||
! | |||
|- | |- | ||
| <code>__KeyValueFromInt</code> | | <code>__KeyValueFromInt</code> | ||
| <code>void __KeyValueFromInt(string ''key'', int ''value'')</code> | | <code>void __KeyValueFromInt(string ''key'', int ''value'')</code> | ||
| | | 设置实体的某个{{L|Keyvalue}}为整数。它只更改值, 但不会执行实体处理KeyValue所需的任何代码, 因此可能会产生意想不到的副作用。 | ||
|- | |- | ||
| <code>__KeyValueFromFloat</code> | | <code>__KeyValueFromFloat</code> | ||
| <code>void __KeyValueFromFloat(string ''key'', float ''value'')</code> | | <code>void __KeyValueFromFloat(string ''key'', float ''value'')</code> | ||
| | | 设置实体的某个{{L|Keyvalue}}为浮点数。它只更改值, 但不会执行实体处理KeyValue所需的任何代码, 因此可能会产生意想不到的副作用。 | ||
|- | |- | ||
| <code>__KeyValueFromString</code> | | <code>__KeyValueFromString</code> | ||
| <code>void __KeyValueFromString(string ''key'', string ''value'')</code> | | <code>void __KeyValueFromString(string ''key'', string ''value'')</code> | ||
| | | 设置实体的某个{{L|Keyvalue}}为字符串。它只更改值, 但不会执行实体处理KeyValue所需的任何代码, 因此可能会产生意想不到的副作用。 | ||
|- | |- | ||
| <code>__KeyValueFromVector</code> | | <code>__KeyValueFromVector</code> | ||
| <code>void __KeyValueFromVector(string ''key'', Vector ''value'')</code> | | <code>void __KeyValueFromVector(string ''key'', Vector ''value'')</code> | ||
| | | 设置实体的某个{{L|Keyvalue}}为{{L|Vector|向量}}。它只更改值, 但不会执行实体处理KeyValue所需的任何代码, 因此可能会产生意想不到的副作用。 | ||
|- | |- | ||
| <code>ConnectOutput</code> | | <code>ConnectOutput</code> | ||
| <code>void CBaseEntity::ConnectOutput(string output, string func_name)</code> | | <code>void CBaseEntity::ConnectOutput(string output, string func_name)</code> | ||
| | | 添加一个I/O连接, 当指定的输出触发时, 该连接将调用指定的函数。 | ||
|- | |- | ||
| <code>Destroy</code> | | <code>Destroy</code> | ||
| <code>void CBaseEntity::Destroy()</code> | | <code>void CBaseEntity::Destroy()</code> | ||
| | | 消灭这个实体。 | ||
|- | |- | ||
| <code>DisconnectOutput</code> | | <code>DisconnectOutput</code> | ||
| <code>void CBaseEntity::DisconnectOutput(string output, string func_name)</code> | | <code>void CBaseEntity::DisconnectOutput(string output, string func_name)</code> | ||
| | | 从I/O事件中删除连接的脚本函数。 | ||
|- | |- | ||
| <code>EmitSound</code> | | <code>EmitSound</code> | ||
| <code>void CBaseEntity::EmitSound(string sound)</code> | | <code>void CBaseEntity::EmitSound(string sound)</code> | ||
| | | 从该实体处播放一段声音。 | ||
|- | |- | ||
| <code>EyePosition</code> | | <code>EyePosition</code> | ||
| <code>Vector CBaseEntity::EyePosition()</code> | | <code>Vector CBaseEntity::EyePosition()</code> | ||
| | | 获得眼睛位置绝对坐标的向量。 | ||
|- | |- | ||
| <code>FirstMoveChild</code> | | <code>FirstMoveChild</code> | ||
| <code>handle CBaseEntity::FirstMoveChild()</code> | | <code>handle CBaseEntity::FirstMoveChild()</code> | ||
| | | 如果处于层次结构中,则获取则检索第一个(移动)实体的子级。 | ||
|- | |- | ||
| <code>GetAngles</code> | | <code>GetAngles</code> | ||
| <code>Vector CBaseEntity::GetAngles()</code> | | <code>Vector CBaseEntity::GetAngles()</code> | ||
| | | 获得实体转换为向量的俯仰、水平、横滚的角度数值。 | ||
|- | |- | ||
| <code>GetAngularVelocity</code> | | <code>GetAngularVelocity</code> | ||
| <code>Vector CBaseEntity::GetAngularVelocity()</code> | | <code>Vector CBaseEntity::GetAngularVelocity()</code> | ||
| | | 获取局部角速度-返回俯仰、水平、横滚的向量。 | ||
|- | |- | ||
| <code>GetBoundingMaxs</code> | | <code>GetBoundingMaxs</code> | ||
| <code>Vector CBaseEntity::GetBoundingMaxs()</code> | | <code>Vector CBaseEntity::GetBoundingMaxs()</code> | ||
| | | 获取一个以对象为中心的最大边框的向量。 | ||
|- | |- | ||
| <code>GetBoundingMins</code> | | <code>GetBoundingMins</code> | ||
| <code>Vector CBaseEntity::GetBoundingMins()</code> | | <code>Vector CBaseEntity::GetBoundingMins()</code> | ||
| | | 获取一个以对象为中心的最小边框的向量。 | ||
|- | |- | ||
| <code>GetCenter</code> | | <code>GetCenter</code> | ||
| <code>Vector CBaseEntity::GetCenter()</code> | | <code>Vector CBaseEntity::GetCenter()</code> | ||
| | | 获取对象中心的向量-绝对坐标。 | ||
|- | |- | ||
| <code>GetClassname</code> | | <code>GetClassname</code> | ||
| <code>string CBaseEntity::GetClassname()</code> | | <code>string CBaseEntity::GetClassname()</code> | ||
| | | 获取此实体的类名。 | ||
|- | |- | ||
| <code>GetForwardVector</code> | | <code>GetForwardVector</code> | ||
| <code>Vector CBaseEntity::GetForwardVector()</code> | | <code>Vector CBaseEntity::GetForwardVector()</code> | ||
| | | 获取实体的正向向量(+X)。 | ||
|- | |- | ||
| <code>GetHealth</code> | | <code>GetHealth</code> | ||
| <code>int CBaseEntity::GetHealth()</code> | | <code>int CBaseEntity::GetHealth()</code> | ||
| | | 返回实体当前{{L|health|血量}}。 | ||
|- | |- | ||
| <code>GetLeftVector</code> | | <code>GetLeftVector</code> | ||
| <code>Vector CBaseEntity::GetLeftVector()</code> | | <code>Vector CBaseEntity::GetLeftVector()</code> | ||
| | | 获取实体的左向量。 | ||
|- | |- | ||
| <code>GetMaxHealth</code> | | <code>GetMaxHealth</code> | ||
| <code>int CBaseEntity::GetMaxHealth()</code> | | <code>int CBaseEntity::GetMaxHealth()</code> | ||
| | | 返回实体最大血量。 | ||
|- | |- | ||
| <code>GetModelKeyValues</code> | | <code>GetModelKeyValues</code> | ||
| <code>handle CBaseEntity::GetModelKeyValues()</code> | | <code>handle CBaseEntity::GetModelKeyValues()</code> | ||
| | | 获取此实体模型上的键值类实例。 | ||
|- | |- | ||
| <code>GetModelName</code> | | <code>GetModelName</code> | ||
| <code>string CBaseEntity::GetModelName()</code> | | <code>string CBaseEntity::GetModelName()</code> | ||
| | | 获取该实体模型名称。 | ||
|- | |- | ||
| <code>GetMoveParent</code> | | <code>GetMoveParent</code> | ||
| <code>handle CBaseEntity::GetMoveParent()</code> | | <code>handle CBaseEntity::GetMoveParent()</code> | ||
| | | 如果处于层次结构中, 则检索实体的父级。 | ||
|- | |- | ||
| <code>GetName</code> | | <code>GetName</code> | ||
| <code>string CBaseEntity::GetName()</code> | | <code>string CBaseEntity::GetName()</code> | ||
| | | 获取此实体的Targetname。 | ||
|- | |- | ||
| <code>GetOrigin</code> | | <code>GetOrigin</code> | ||
| <code>Vector CBaseEntity::GetOrigin()</code> | | <code>Vector CBaseEntity::GetOrigin()</code> | ||
| | | 返回此实体的局部原点位置坐标。 | ||
|- | |- | ||
| <code>GetOwner</code> | | <code>GetOwner</code> | ||
| <code>handle CBaseEntity::GetOwner()</code> | | <code>handle CBaseEntity::GetOwner()</code> | ||
| | | 获取此实体的所有者。 | ||
|- | |- | ||
| <code>GetPreTemplateName</code> | | <code>GetPreTemplateName</code> | ||
| <code>string CBaseEntity::GetPreTemplateName()</code> | | <code>string CBaseEntity::GetPreTemplateName()</code> | ||
| | | 将实体名称从模板唯一装饰(&001后缀)中删除。 | ||
|- | |- | ||
| <code>GetRootMoveParent</code> | | <code>GetRootMoveParent</code> | ||
| <code>handle CBaseEntity::GetRootMoveParent()</code> | | <code>handle CBaseEntity::GetRootMoveParent()</code> | ||
| | | 如果处于层次结构中, 则向上遍历层次结构以查找根父级 | ||
|- | |- | ||
| <code>GetScriptId</code> | | <code>GetScriptId</code> | ||
| <code>string CBaseEntity::GetScriptId()</code> | | <code>string CBaseEntity::GetScriptId()</code> | ||
| | | 检索用于引用脚本系统中实体的唯一标识符。 | ||
|- | |- | ||
| <code>GetScriptScope</code> | | <code>GetScriptScope</code> | ||
| <code>handle CBaseEntity::GetScriptScope()</code> | | <code>handle CBaseEntity::GetScriptScope()</code> | ||
| | | 检索与实体关联的脚本端数据。 | ||
|- | |- | ||
| <code>GetSoundDuration</code> | | <code>GetSoundDuration</code> | ||
| <code>float CBaseEntity::GetSoundDuration(string, string)</code> | | <code>float CBaseEntity::GetSoundDuration(string, string)</code> | ||
| | | 以浮点数返回声音的持续时间。接受声音名称和可选的actormodelname。 | ||
|- | |- | ||
| <code>GetTeam</code> | | <code>GetTeam</code> | ||
| <code>int CBaseEntity::GetTeam()</code> | | <code>int CBaseEntity::GetTeam()</code> | ||
| | | 找到这个实体所在的队伍。 | ||
|- | |- | ||
| <code>GetUpVector</code> | | <code>GetUpVector</code> | ||
| <code>Vector CBaseEntity::GetUpVector()</code> | | <code>Vector CBaseEntity::GetUpVector()</code> | ||
| | | 获取实体的向上向量(+Z)。 | ||
|- | |- | ||
| <code>GetVelocity</code> | | <code>GetVelocity</code> | ||
| <code>Vector CBaseEntity::GetVelocity()</code> | | <code>Vector CBaseEntity::GetVelocity()</code> | ||
| | | 获取实体的速度。请注意,这会读取{{L|QPhysics}}速度值, 因此它仅适用于玩家、NPC和移动画笔实体。VPhysics对象的速度始终为零, 一种解决方法是记录多个帧上的位置, 并手动推导速度。 | ||
|- | |- | ||
| <code>IsValid</code> | | <code>IsValid</code> | ||
| <code>bool CBaseEntity::IsValid()</code> | | <code>bool CBaseEntity::IsValid()</code> | ||
| | | 如果此实体有效, 则返回true。 | ||
|- | |- | ||
| <code>NextMovePeer</code> | | <code>NextMovePeer</code> | ||
| <code>handle CBaseEntity::NextMovePeer()</code> | | <code>handle CBaseEntity::NextMovePeer()</code> | ||
| | | 返回同一继承层次结构中的下一个实体。 | ||
|- | |- | ||
| <code>PrecacheSoundScript</code> | | <code>PrecacheSoundScript</code> | ||
| <code>void CBaseEntity::PrecacheSoundScript(string)</code> | | <code>void CBaseEntity::PrecacheSoundScript(string)</code> | ||
| | | 预先加载一个声音以供以后播放, 应该在''Preche()''钩子函数中调用。 | ||
|- | |- | ||
| <code>SetAbsOrigin</code> | | <code>SetAbsOrigin</code> | ||
| <code>void CBaseEntity::SetAbsOrigin(Vector)</code> | | <code>void CBaseEntity::SetAbsOrigin(Vector)</code> | ||
| | | 将实体传送到此世界位置。 | ||
|- | |- | ||
| <code>SetAngles</code> | | <code>SetAngles</code> | ||
| <code>void CBaseEntity::SetAngles(float, float, float)</code> | | <code>void CBaseEntity::SetAngles(float, float, float)</code> | ||
| | | 设置实体俯仰、水平、横滚。 | ||
|- | |- | ||
| <code>SetAngularVelocity</code> | | <code>SetAngularVelocity</code> | ||
| <code>void CBaseEntity::SetAngularVelocity(float, float, float)</code> | | <code>void CBaseEntity::SetAngularVelocity(float, float, float)</code> | ||
| | | 设置局部角速度-浮点数的俯仰、水平、横滚速度。 | ||
|- | |- | ||
| <code>SetForwardVector</code> | | <code>SetForwardVector</code> | ||
| <code>void CBaseEntity::SetForwardVector(Vector)</code> | | <code>void CBaseEntity::SetForwardVector(Vector)</code> | ||
| | | 将实体的正向(+X)向量。 | ||
|- | |- | ||
| <code>SetHealth</code> | | <code>SetHealth</code> | ||
| <code>void CBaseEntity::SetHealth(int)</code> | | <code>void CBaseEntity::SetHealth(int)</code> | ||
| | | 设置实体当前的{{L|health|血量}}。 | ||
|- | |- | ||
| <code>SetMaxHealth</code> | | <code>SetMaxHealth</code> | ||
| <code>void CBaseEntity::SetMaxHealth(int)</code> | | <code>void CBaseEntity::SetMaxHealth(int)</code> | ||
| | | 设置实体最大血量。 | ||
|- | |- | ||
| <code>SetModel</code> | | <code>SetModel</code> | ||
| <code>void CBaseEntity::SetModel(string)</code> | | <code>void CBaseEntity::SetModel(string)</code> | ||
| | | 更改实体的模型, 这可用于更改prop_weighted_cube或其他类似实体的模型。模型必须预加载, 可以通过预先放置在地图的其他位置来完成。 | ||
|- | |- | ||
| <code>SetOrigin</code> | | <code>SetOrigin</code> | ||
| <code>void CBaseEntity::SetOrigin(Vector)</code> | | <code>void CBaseEntity::SetOrigin(Vector)</code> | ||
| | | 将此实体传送到给定位置。 | ||
|- | |- | ||
| <code>SetOwner</code> | | <code>SetOwner</code> | ||
| <code>void CBaseEntity::SetOwner(handle)</code> | | <code>void CBaseEntity::SetOwner(handle)</code> | ||
| | | 设置实体的所有者。 | ||
|- | |- | ||
| <code>SetSize</code> | | <code>SetSize</code> | ||
| <code>void CBaseEntity::SetSize(Vector, Vector)</code> | | <code>void CBaseEntity::SetSize(Vector, Vector)</code> | ||
| | | 设置边界框大小。(比如func_brush或trigger_multiple) | ||
|- | |- | ||
| <code>SetTeam</code> | | <code>SetTeam</code> | ||
| <code>void CBaseEntity::SetTeam(int)</code> | | <code>void CBaseEntity::SetTeam(int)</code> | ||
| | | 设置此实体所在的队伍。 | ||
|- | |- | ||
| <code>SetVelocity</code> | | <code>SetVelocity</code> | ||
| <code>void CBaseEntity::SetVelocity(Vector)</code> | | <code>void CBaseEntity::SetVelocity(Vector)</code> | ||
| | | 设置局部速度。请注意,这会设置{{L|QPhysics}}速度值,因此它仅适用于玩家、NPC和移动画笔实体。对于VPhysics对象,这没有影响。 | ||
|- | |- | ||
| <code>ValidateScriptScope</code> | | <code>ValidateScriptScope</code> | ||
| <code>bool CBaseEntity::ValidateScriptScope()</code> | | <code>bool CBaseEntity::ValidateScriptScope()</code> | ||
| | | 确保已创建实体的脚本作用域。 在分配给实体的作用域之前, 应该调用此函数。 | ||
|- | |- | ||
| <code>entindex</code> | | <code>entindex</code> | ||
| <code>int CBaseEntity::entindex()</code> | | <code>int CBaseEntity::entindex()</code> | ||
| | | 返回实体的索引值。 | ||
|} | |} | ||
=== CBaseAnimating === | === CBaseAnimating === | ||
继承 [[#CBaseEntity|CBaseEntity]] | |||
用于为道具等实体设置动画的脚本句柄类。 | |||
{{LanguageBar|Methods|title=使用方法}} | |||
==== | ==== 使用方法 ==== | ||
{| class="standard-table" style="width: 100%;" | {| class="standard-table" style="width: 100%;" | ||
! | ! 函数 | ||
! | ! 签名 | ||
! | ! 描述 | ||
|- | |- | ||
| <code>GetAttachmentAngles</code> | | <code>GetAttachmentAngles</code> | ||
| <code>Vector CBaseAnimating::GetAttachmentAngles(int id)</code> | | <code>Vector CBaseAnimating::GetAttachmentAngles(int id)</code> | ||
| | | 获取附件ID的角度(p,y,r向量)。 | ||
|- | |- | ||
| <code>GetAttachmentOrigin</code> | | <code>GetAttachmentOrigin</code> | ||
| <code>Vector CBaseAnimating::GetAttachmentOrigin(int id)</code> | | <code>Vector CBaseAnimating::GetAttachmentOrigin(int id)</code> | ||
| | | 获取附件ID的原始向量。 | ||
|- | |- | ||
| <code>GetObjectScaleLevel</code> | | <code>GetObjectScaleLevel</code> | ||
| <code>int CBaseAnimating::GetObjectScaleLevel()</code> | | <code>int CBaseAnimating::GetObjectScaleLevel()</code> | ||
| | | 获取实体的缩放级别。 | ||
|- | |- | ||
| <code>IsSequenceFinished</code> | | <code>IsSequenceFinished</code> | ||
| <code>bool CBaseAnimating::IsSequenceFinished()</code> | | <code>bool CBaseAnimating::IsSequenceFinished()</code> | ||
| | | 检查主序列是否播放完毕。 | ||
|- | |- | ||
| <code>LookupAttachment</code> | | <code>LookupAttachment</code> | ||
| <code>int CBaseAnimating::LookupAttachment(string)</code> | | <code>int CBaseAnimating::LookupAttachment(string)</code> | ||
| | | 获取命名附件的ID。 | ||
|- | |- | ||
| <code>SetBodygroup</code> | | <code>SetBodygroup</code> | ||
| <code>void CBaseAnimating::SetBodygroup(int group, int index)</code> | | <code>void CBaseAnimating::SetBodygroup(int group, int index)</code> | ||
| | | 设置身体组。group是目标组的索引,index是要使用的部位索引。 | ||
|} | |} | ||
=== CBaseFlex === | === CBaseFlex === | ||
继承 [[#CBaseAnimating|CBaseAnimating]] | |||
==== | ==== 使用方法 ==== | ||
{| class="standard-table" style="width: 100%;" | {| class="standard-table" style="width: 100%;" | ||
! | ! 函数 | ||
! | ! 签名 | ||
! | ! 描述 | ||
|- | |- | ||
| <code>GetCurrentScene</code> | | <code>GetCurrentScene</code> | ||
| <code>handle CBaseFlex::GetCurrentScene()</code> | | <code>handle CBaseFlex::GetCurrentScene()</code> | ||
| | | 返回最早激活的场景实体实例(如果有)。 | ||
|- | |- | ||
| <code>GetSceneByIndex</code> | | <code>GetSceneByIndex</code> | ||
| <code>handle CBaseFlex::GetSceneByIndex(int)</code> | | <code>handle CBaseFlex::GetSceneByIndex(int)</code> | ||
| | | 返回指定索引的场景实体实例。 | ||
|} | |} | ||
=== CBasePlayer === | === CBasePlayer === | ||
继承 [[#CBaseAnimating|CBaseAnimating]] | |||
==== | ==== 使用方法 ==== | ||
{| class="standard-table" style="width: 100%;" | {| class="standard-table" style="width: 100%;" | ||
! | ! 函数 | ||
! | ! 签名 | ||
! | ! 描述 | ||
|- | |- | ||
| <code>IsNoclipping</code> | | <code>IsNoclipping</code> | ||
| <code>bool CBasePlayer::IsNoclipping()</code> | | <code>bool CBasePlayer::IsNoclipping()</code> | ||
| | | 如果玩家处于穿墙模式则返回true。 | ||
|} | |} | ||
=== CEntities === | === CEntities === | ||
脚本实例: <code>Entities</code> | |||
用于查找和迭代游戏中实体的脚本接口。 | |||
要迭代一组实体,请在适当的方法中将<code>null</code>传递给"previous"参数以开始迭代,或引用先前找到的实体以继续搜索。示例: | |||
<source lang=cpp> | <source lang=cpp> | ||
// | //第一种方式 | ||
local ent = null; // | local ent = null; //变量名"ent"可自定义 | ||
while(ent = Entities.FindByName(ent, "entityname")) // | while(ent = Entities.FindByName(ent, "entityname")) //注意使用"="而非"==" | ||
{ | { | ||
//... // | //... //每次迭代时"ent"有效则执行此处代码 | ||
} | } | ||
// | //第二种方式 | ||
for(local ent;ent = Entities.FindByName(ent, "entityname");) // | for(local ent;ent = Entities.FindByName(ent, "entityname");) //注意分号位置 | ||
{ | { | ||
//... // | //... //每次迭代时"ent"有效则执行此处代码 | ||
} | } | ||
</source> | </source> | ||
==== 使用方法 ==== | |||
==== | |||
{| class="standard-table" style="width: 100%;" | {| class="standard-table" style="width: 100%;" | ||
! | ! 函数 | ||
! | ! 签名 | ||
! | ! 描述 | ||
|- | |- | ||
| <code>CreateByClassname</code> | | <code>CreateByClassname</code> | ||
| <code>handle CEntities::CreateByClassname(string)</code> | | <code>handle CEntities::CreateByClassname(string)</code> | ||
| | | 通过类名创建实体 | ||
|- | |- | ||
| <code>FindByClassname</code> | | <code>FindByClassname</code> | ||
| <code>handle CEntities::FindByClassname(handle start_ent, string classname)</code> | | <code>handle CEntities::FindByClassname(handle start_ent, string classname)</code> | ||
| | | 按类名查找实体。传递'null'开始迭代,或引用先前找到的实体继续搜索 | ||
|- | |- | ||
| <code>FindByClassnameNearest</code> | | <code>FindByClassnameNearest</code> | ||
| <code>handle CEntities::FindByClassnameNearest(string classname, Vector loc, float radius)</code> | | <code>handle CEntities::FindByClassnameNearest(string classname, Vector loc, float radius)</code> | ||
| | | 查找距离某点最近的指定类名实体 | ||
|- | |- | ||
| <code>FindByClassnameWithin</code> | | <code>FindByClassnameWithin</code> | ||
| <code>handle CEntities::FindByClassnameWithin(handle start_ent, string classname, Vector loc, float radius)</code> | | <code>handle CEntities::FindByClassnameWithin(handle start_ent, string classname, Vector loc, float radius)</code> | ||
| | | 查找半径内的指定类名实体。传递'null'开始迭代 | ||
|- | |- | ||
| <code>FindByModel</code> | | <code>FindByModel</code> | ||
| <code>handle CEntities::FindByModel(handle start_ent, string model)</code> | | <code>handle CEntities::FindByModel(handle start_ent, string model)</code> | ||
| | | 按模型名查找实体。传递'null'开始迭代 | ||
|- | |- | ||
| <code>FindByName</code> | | <code>FindByName</code> | ||
| <code>handle CEntities::FindByName(handle start_ent, string targetname)</code> | | <code>handle CEntities::FindByName(handle start_ent, string targetname)</code> | ||
| | | 按名称(支持通配符)查找实体。传递'null'开始迭代 | ||
|- | |- | ||
| <code>FindByNameNearest</code> | | <code>FindByNameNearest</code> | ||
| <code>handle CEntities::FindByNameNearest(string targetname, Vector loc, float radius)</code> | | <code>handle CEntities::FindByNameNearest(string targetname, Vector loc, float radius)</code> | ||
| | | 查找距离某点最近的指定名称实体 | ||
|- | |- | ||
| <code>FindByNameWithin</code> | | <code>FindByNameWithin</code> | ||
| <code>handle CEntities::FindByNameWithin(handle, string, Vector loc, float radius)</code> | | <code>handle CEntities::FindByNameWithin(handle, string, Vector loc, float radius)</code> | ||
| | | 查找半径内的指定名称实体。传递'null'开始迭代 | ||
|- | |- | ||
| <code>FindByTarget</code> | | <code>FindByTarget</code> | ||
| <code>handle CEntities::FindByTarget(handle start_ent, string targetname)</code> | | <code>handle CEntities::FindByTarget(handle start_ent, string targetname)</code> | ||
| | | 查找具有特定<code>target</code>键值的实体。传递'null'开始迭代 | ||
|- | |- | ||
| <code>FindInSphere</code> | | <code>FindInSphere</code> | ||
| <code>handle CEntities::FindInSphere(handle start_ent, Vector loc, float radius)</code> | | <code>handle CEntities::FindInSphere(handle start_ent, Vector loc, float radius)</code> | ||
| | | 查找半径内的实体。传递'null'开始迭代 | ||
|- | |- | ||
| <code>First</code> | | <code>First</code> | ||
| <code>handle CEntities::First()</code> | | <code>handle CEntities::First()</code> | ||
| | | 开始实体列表迭代。等同于Next(null) | ||
|- | |- | ||
| <code>Next</code> | | <code>Next</code> | ||
| <code>handle CEntities::Next(handle)</code> | | <code>handle CEntities::Next(handle)</code> | ||
| | | 继续迭代,需提供先前找到的实体引用 | ||
|} | |} | ||
=== CEnvEntityMaker === | === CEnvEntityMaker === | ||
继承 [[#CBaseEntity|CBaseEntity]] | |||
脚本句柄类是{{L|env_entity_maker}}。 | |||
==== | ==== 使用方法 ==== | ||
{| class="standard-table" style="width: 100%;" | {| class="standard-table" style="width: 100%;" | ||
! | ! 函数 | ||
! | ! 签名 | ||
! | ! 描述 | ||
|- | |- | ||
| <code>SpawnEntity</code> | | <code>SpawnEntity</code> | ||
| <code>void CEnvEntityMaker::SpawnEntity()</code> | | <code>void CEnvEntityMaker::SpawnEntity()</code> | ||
| | | 在maker位置创建实体 | ||
|- | |- | ||
| <code>SpawnEntityAtEntityOrigin</code> | | <code>SpawnEntityAtEntityOrigin</code> | ||
| <code>void CEnvEntityMaker::SpawnEntityAtEntityOrigin(handle)</code> | | <code>void CEnvEntityMaker::SpawnEntityAtEntityOrigin(handle)</code> | ||
| | | 在指定实体位置创建实体 | ||
|- | |- | ||
| <code>SpawnEntityAtLocation</code> | | <code>SpawnEntityAtLocation</code> | ||
| <code>void CEnvEntityMaker::SpawnEntityAtLocation(Vector, Vector)</code> | | <code>void CEnvEntityMaker::SpawnEntityAtLocation(Vector, Vector)</code> | ||
| | | 在指定位置和角度创建实体 | ||
|- | |- | ||
| <code>SpawnEntityAtNamedEntityOrigin</code> | | <code>SpawnEntityAtNamedEntityOrigin</code> | ||
| <code>void CEnvEntityMaker::SpawnEntityAtNamedEntityOrigin(string)</code> | | <code>void CEnvEntityMaker::SpawnEntityAtNamedEntityOrigin(string)</code> | ||
| | | 在命名实体位置创建实体 | ||
|} | |} | ||
=== CLinkedPortalDoor === | === CLinkedPortalDoor === | ||
{{todo}} | {{todo}} | ||
==== 使用方法 ==== | |||
==== | |||
{| class="standard-table" style="width: 100%;" | {| class="standard-table" style="width: 100%;" | ||
! | ! 函数 | ||
! | ! 签名 | ||
! | ! 描述 | ||
|- | |- | ||
| <code>GetPartnerInstance</code> | | <code>GetPartnerInstance</code> | ||
| <code>handle CLinkedPortalDoor::GetPartnerInstance()</code> | | <code>handle CLinkedPortalDoor::GetPartnerInstance()</code> | ||
| | | 获取门链接伙伴的实例句柄 | ||
|- | |- | ||
| <code>GetPartnername</code> | | <code>GetPartnername</code> | ||
| <code>string CLinkedPortalDoor::GetPartnername()</code> | | <code>string CLinkedPortalDoor::GetPartnername()</code> | ||
| | | 返回门的伙伴名称 | ||
|} | |} | ||
=== CPlayerVoiceListener === | === CPlayerVoiceListener === | ||
{{todo}} | {{todo}} | ||
==== 使用方法 ==== | |||
==== | |||
{| class="standard-table" style="width: 100%;" | {| class="standard-table" style="width: 100%;" | ||
! | ! 函数 | ||
! | ! 签名 | ||
! | ! 描述 | ||
|- | |- | ||
| <code>GetPlayerSpeechDuration</code> | | <code>GetPlayerSpeechDuration</code> | ||
| <code>float CPlayerVoiceListener::GetPlayerSpeechDuration(int)</code> | | <code>float {{L|CPlayerVoiceListener}}::GetPlayerSpeechDuration(int)</code> | ||
| | | 返回玩家持续说话的秒数 | ||
|- | |- | ||
| <code>IsPlayerSpeaking</code> | | <code>IsPlayerSpeaking</code> | ||
| <code>bool CPlayerVoiceListener::IsPlayerSpeaking(int)</code> | | <code>bool {{L|CPlayerVoiceListener}}::IsPlayerSpeaking(int)</code> | ||
| | | 返回指定玩家是否正在说话 | ||
|} | |} | ||
=== CPortal_Player === | === CPortal_Player === | ||
{{todo}} | {{todo}} | ||
==== 使用方法 ==== | |||
==== | |||
{| class="standard-table" style="width: 100%;" | {| class="standard-table" style="width: 100%;" | ||
! | ! 函数 | ||
! | ! 签名 | ||
! | ! 描述 | ||
|- | |- | ||
| <code>GetWheatleyMonitorDestructionCount</code> | | <code>GetWheatleyMonitorDestructionCount</code> | ||
| <code>int CPortal_Player::GetWheatleyMonitorDestructionCount()</code> | | <code>int {{L|CPortal_Player}}::GetWheatleyMonitorDestructionCount()</code> | ||
| | | 获取玩家摧毁Wheatley显示器的数量 | ||
|- | |- | ||
| <code>IncWheatleyMonitorDestructionCount</code> | | <code>IncWheatleyMonitorDestructionCount</code> | ||
| <code>void CPortal_Player::IncWheatleyMonitorDestructionCount()</code> | | <code>void {{L|CPortal_Player}}::IncWheatleyMonitorDestructionCount()</code> | ||
| | | 增加玩家摧毁Wheatley显示器的计数 | ||
|- | |- | ||
| <code>TurnOffPotatos</code> | | <code>TurnOffPotatos</code> | ||
| <code>void CPortal_Player::TurnOffPotatos()</code> | | <code>void {{L|CPortal_Player}}::TurnOffPotatos()</code> | ||
| | | 关闭Potatos材质光源 | ||
|- | |- | ||
| <code>TurnOnPotatos</code> | | <code>TurnOnPotatos</code> | ||
| <code>void CPortal_Player::TurnOnPotatos()</code> | | <code>void {{L|CPortal_Player}}::TurnOnPotatos()</code> | ||
| | | 开启Potatos材质光源 | ||
|} | |} | ||
=== CPropLinkedPortalDoor === | === CPropLinkedPortalDoor === | ||
{{todo}} | {{todo}} | ||
==== 使用方法 ==== | |||
==== | |||
{| class="standard-table" style="width: 100%;" | {| class="standard-table" style="width: 100%;" | ||
! | ! 函数 | ||
! | ! 签名 | ||
! | ! 描述 | ||
|- | |- | ||
| <code>GetPartnerInstance</code> | | <code>GetPartnerInstance</code> | ||
| <code>handle CPropLinkedPortalDoor::GetPartnerInstance()</code> | | <code>handle {{L|CPropLinkedPortalDoor}}::GetPartnerInstance()</code> | ||
| | | 获取门链接伙伴的实例句柄 | ||
|- | |- | ||
| <code>GetPartnername</code> | | <code>GetPartnername</code> | ||
| <code>string CPropLinkedPortalDoor::GetPartnername()</code> | | <code>string {{L|CPropLinkedPortalDoor}}::GetPartnername()</code> | ||
| | | 返回门的伙伴名称 | ||
|} | |} | ||
=== CSceneEntity === | === CSceneEntity === | ||
继承 [[#CBaseEntity|CBaseEntity]] | |||
==== 使用方法 ==== | |||
==== | |||
{| class="standard-table" style="width: 100%;" | {| class="standard-table" style="width: 100%;" | ||
! | ! 函数 | ||
! | ! 签名 | ||
! | ! 描述 | ||
|- | |- | ||
| <code>AddBroadcastTeamTarget</code> | | <code>AddBroadcastTeamTarget</code> | ||
| <code>void CSceneEntity::AddBroadcastTeamTarget(int)</code> | | <code>void CSceneEntity::AddBroadcastTeamTarget(int)</code> | ||
| | | 通过索引将团队添加到广播列表 | ||
|- | |- | ||
| <code>EstimateLength</code> | | <code>EstimateLength</code> | ||
| <code>float CSceneEntity::EstimateLength()</code> | | <code>float CSceneEntity::EstimateLength()</code> | ||
| | | 返回场景长度(秒) | ||
|- | |- | ||
| <code>FindNamedEntity</code> | | <code>FindNamedEntity</code> | ||
| <code>handle CSceneEntity::FindNamedEntity(string)</code> | | <code>handle CSceneEntity::FindNamedEntity(string)</code> | ||
| | | 根据实体引用(如!target)从场景对象获取实际实体 | ||
|- | |- | ||
| <code>IsPaused</code> | | <code>IsPaused</code> | ||
| <code>bool CSceneEntity::IsPaused()</code> | | <code>bool CSceneEntity::IsPaused()</code> | ||
| | | 检查当前场景是否暂停 | ||
|- | |- | ||
| <code>IsPlayingBack</code> | | <code>IsPlayingBack</code> | ||
| <code>bool CSceneEntity::IsPlayingBack()</code> | | <code>bool CSceneEntity::IsPlayingBack()</code> | ||
| | | 检查当前场景是否正在播放 | ||
|- | |- | ||
| <code>LoadSceneFromString</code> | | <code>LoadSceneFromString</code> | ||
| <code>bool CSceneEntity::LoadSceneFromString(string, string)</code> | | <code>bool CSceneEntity::LoadSceneFromString(string, string)</code> | ||
| | | 根据虚拟场景名和vcd字符串加载场景 | ||
|- | |- | ||
| <code>RemoveBroadcastTeamTarget</code> | | <code>RemoveBroadcastTeamTarget</code> | ||
| <code>void CSceneEntity::RemoveBroadcastTeamTarget(int)</code> | | <code>void CSceneEntity::RemoveBroadcastTeamTarget(int)</code> | ||
| | | 通过索引从广播列表移除团队 | ||
|} | |} | ||
=== CScriptKeyValues === | === CScriptKeyValues === | ||
模型{{L|$keyvalues}}块的脚本句柄表示。 | |||
子键是相同类的实例。 | |||
==== | ==== 使用方法 ==== | ||
{| class="standard-table" style="width: 100%;" | {| class="standard-table" style="width: 100%;" | ||
! | ! 函数 | ||
! | ! 签名 | ||
! | ! 描述 | ||
|- | |- | ||
| <code>FindKey</code> | | <code>FindKey</code> | ||
| <code>handle CScriptKeyValues::FindKey(string)</code> | | <code>handle CScriptKeyValues::FindKey(string)</code> | ||
| | | 根据键名查找关联的KeyValues对象 | ||
|- | |- | ||
| <code>GetFirstSubKey</code> | | <code>GetFirstSubKey</code> | ||
| <code>handle CScriptKeyValues::GetFirstSubKey()</code> | | <code>handle CScriptKeyValues::GetFirstSubKey()</code> | ||
| | | 获取第一个子键对象 | ||
|- | |- | ||
| <code>GetKeyBool</code> | | <code>GetKeyBool</code> | ||
| <code>bool CScriptKeyValues::GetKeyBool(string)</code> | | <code>bool CScriptKeyValues::GetKeyBool(string)</code> | ||
| | | 获取键关联的布尔值 | ||
|- | |- | ||
| <code>GetKeyFloat</code> | | <code>GetKeyFloat</code> | ||
| <code>float CScriptKeyValues::GetKeyFloat(string)</code> | | <code>float CScriptKeyValues::GetKeyFloat(string)</code> | ||
| | | 获取键关联的浮点值 | ||
|- | |- | ||
| <code>GetKeyInt</code> | | <code>GetKeyInt</code> | ||
| <code>int CScriptKeyValues::GetKeyInt(string)</code> | | <code>int CScriptKeyValues::GetKeyInt(string)</code> | ||
| | | 获取键关联的整数值 | ||
|- | |- | ||
| <code>GetKeyString</code> | | <code>GetKeyString</code> | ||
| <code>string CScriptKeyValues::GetKeyString(string)</code> | | <code>string CScriptKeyValues::GetKeyString(string)</code> | ||
| | | 获取键关联的字符串值 | ||
|- | |- | ||
| <code>GetNextKey</code> | | <code>GetNextKey</code> | ||
| <code>handle CScriptKeyValues::GetNextKey()</code> | | <code>handle CScriptKeyValues::GetNextKey()</code> | ||
| | | 获取子键组中的下一个键对象 | ||
|- | |- | ||
| <code>IsKeyEmpty</code> | | <code>IsKeyEmpty</code> | ||
| <code>bool CScriptKeyValues::IsKeyEmpty(string)</code> | | <code>bool CScriptKeyValues::IsKeyEmpty(string)</code> | ||
| | | 检查键名是否没有值 | ||
|- | |- | ||
| <code>ReleaseKeyValues</code> | | <code>ReleaseKeyValues</code> | ||
| <code>void CScriptKeyValues::ReleaseKeyValues()</code> | | <code>void CScriptKeyValues::ReleaseKeyValues()</code> | ||
| | | 释放根KeyValues对象内容 | ||
|} | |} | ||
=== CTriggerCamera === | === CTriggerCamera === | ||
继承 [[#CBaseEntity|CBaseEntity]] | |||
==== | ==== 使用方法 ==== | ||
{| class="standard-table" style="width: 100%;" | {| class="standard-table" style="width: 100%;" | ||
! | ! 函数 | ||
! | ! 签名 | ||
! | ! 描述 | ||
|- | |- | ||
| <code>GetFov</code> | | <code>GetFov</code> | ||
| <code>int CTriggerCamera::GetFov()</code> | | <code>int CTriggerCamera::GetFov()</code> | ||
| | | 获取相机当前FOV设置(整数) | ||
|- | |- | ||
| <code>SetFov</code> | | <code>SetFov</code> | ||
| <code>void CTriggerCamera::SetFov(int, float)</code> | | <code>void CTriggerCamera::SetFov(int, float)</code> | ||
| | | 设置相机FOV(整数角度)和FOV变化率(浮点) | ||
|} | |} | ||
=== Math === | === Math === | ||
内置的[http://www.squirrel-lang.org/mainsite/doc/sqstdlib2.html#d0e1519 Squirrel数学库]。 | |||
{| class="standard-table" style="width: 100%;" | {| class="standard-table" style="width: 100%;" | ||
! | ! 函数 | ||
! | ! 签名 | ||
! | ! 描述 | ||
|- | |- | ||
| <code>abs</code> | | <code>abs</code> | ||
| <code> int abs(float ''x'')</code> | | <code> int abs(float ''x'')</code> | ||
| | | 返回<code>x</code>的整数绝对值 | ||
|- | |- | ||
| <code>acos</code> | | <code>acos</code> | ||
| <code> float acos(float ''x'')</code> | | <code> float acos(float ''x'')</code> | ||
| | | 返回<code>x</code>的反余弦值 | ||
|- | |- | ||
| <code>asin</code> | | <code>asin</code> | ||
| <code> float asin(float ''x'')</code> | | <code> float asin(float ''x'')</code> | ||
| | | 返回<code>x</code>的反正弦值 | ||
|- | |- | ||
| <code>atan</code> | | <code>atan</code> | ||
| <code> float atan(float ''x'')</code> | | <code> float atan(float ''x'')</code> | ||
| | | 返回<code>x</code>的反正切值 | ||
|- | |- | ||
| <code>atan2</code> | | <code>atan2</code> | ||
| <code> float atan2(float ''x'', float ''y'')</code> | | <code> float atan2(float ''x'', float ''y'')</code> | ||
| | | 返回<code>x/y</code>的反正切值 | ||
|- | |- | ||
| <code>ceil</code> | | <code>ceil</code> | ||
| <code> float ceil(float ''x'')</code> | | <code> float ceil(float ''x'')</code> | ||
| | | 返回大于等于<code>x</code>的最小整数值 | ||
|- | |- | ||
| <code>cos</code> | | <code>cos</code> | ||
| <code> float cos(float ''x'')</code> | | <code> float cos(float ''x'')</code> | ||
| | | 返回<code>x</code>的余弦值 | ||
|- | |- | ||
| <code>exp</code> | | <code>exp</code> | ||
| <code> float exp(float ''x'')</code> | | <code> float exp(float ''x'')</code> | ||
| | | 返回<code>x</code>的指数值(<code>e^x</code>) | ||
|- | |- | ||
| <code>fabs</code> | | <code>fabs</code> | ||
| <code> float fabs(float ''x'')</code> | | <code> float fabs(float ''x'')</code> | ||
| | | 返回<code>x</code>的浮点绝对值 | ||
|- | |- | ||
| <code>floor</code> | | <code>floor</code> | ||
| <code> float floor(float ''x'')</code> | | <code> float floor(float ''x'')</code> | ||
| | | 返回小于等于<code>x</code>的最大整数值 | ||
|- | |- | ||
| <code>log</code> | | <code>log</code> | ||
| <code> float log(float ''x'')</code> | | <code> float log(float ''x'')</code> | ||
| | | 返回<code>x</code>的自然对数 | ||
|- | |- | ||
| <code>log10</code> | | <code>log10</code> | ||
| <code> float log10(float ''x'')</code> | | <code> float log10(float ''x'')</code> | ||
| | | 返回<code>x</code>的以10为底对数 | ||
|- | |- | ||
| <code>pow</code> | | <code>pow</code> | ||
| <code> float pow(float ''x'', float ''y'')</code> | | <code> float pow(float ''x'', float ''y'')</code> | ||
| | | 返回<code>x</code>的<code>y</code>次幂 | ||
|- | |- | ||
| <code>rand</code> | | <code>rand</code> | ||
| <code> int rand()</code> | | <code> int rand()</code> | ||
| | | 返回0到<code>RAND_MAX</code>间的伪随机整数 | ||
|- | |- | ||
| <code>sin</code> | | <code>sin</code> | ||
| <code> float sin(float ''x'')</code> | | <code> float sin(float ''x'')</code> | ||
| | | 返回<code>x</code>的正弦值 | ||
|- | |- | ||
| <code>sqrt</code> | | <code>sqrt</code> | ||
| <code> float sqrt(float ''x'')</code> | | <code> float sqrt(float ''x'')</code> | ||
| | | 返回<code>x</code>的平方根 | ||
|- | |- | ||
| <code>srand</code> | | <code>srand</code> | ||
| <code> void srand(float ''seed'')</code> | | <code> void srand(float ''seed'')</code> | ||
| | | 设置伪随机数生成器的种子 | ||
|- | |- | ||
| <code>tan</code> | | <code>tan</code> | ||
| <code> float tan(float ''x'')</code> | | <code> float tan(float ''x'')</code> | ||
| | | 返回<code>x</code>的正切值 | ||
|} | |} | ||
=== 向量 === | |||
=== | 表示一个x/y/z位置,被许多函数返回/传递。它以3个x/y/z位置作为参数。<br> | ||
可以对向量应用一些数学运算 - 任意两个向量之间的''+/-'',以及<code>向量 * 数字</code>(仅限此顺序)。所有三种运算都返回另一个向量。其他数学运算通过方法调用完成: | |||
==== | ==== 使用方法 ==== | ||
{| class="standard-table" style="width: 100%;" | {| class="standard-table" style="width: 100%;" | ||
! | ! 函数 | ||
! | ! 签名 | ||
! | ! 描述 | ||
|- | |- | ||
| <code>Cross</code> | | <code>Cross</code> | ||
| <code>Vector Vector::Cross(Vector other)</code> | | <code>Vector Vector::Cross(Vector other)</code> | ||
| | | 返回向量叉积 - <code>this × other</code> | ||
|- | |- | ||
| <code>Dot</code> | | <code>Dot</code> | ||
| <code>float Vector::Dot(Vector other)</code> | | <code>float Vector::Dot(Vector other)</code> | ||
| | | 返回向量点积 - <code>this · other</code> | ||
|- | |- | ||
| <code>Length</code> | | <code>Length</code> | ||
| <code>float Vector::Length()</code> | | <code>float Vector::Length()</code> | ||
| | | 返回与原点距离 | ||
|- | |- | ||
| <code>Length2D</code> | | <code>Length2D</code> | ||
| <code>float Vector::Length2D()</code> | | <code>float Vector::Length2D()</code> | ||
| | | 返回与原点距离(忽略Z轴) | ||
|- | |- | ||
| <code>LengthSqr</code> | | <code>LengthSqr</code> | ||
| <code>float Vector::LengthSqr()</code> | | <code>float Vector::LengthSqr()</code> | ||
| | | 返回与原点距离的平方(计算更快,无需平方根) | ||
|- | |- | ||
| <code>Length2DSqr</code> | | <code>Length2DSqr</code> | ||
| <code>float Vector::Length2DSqr()</code> | | <code>float Vector::Length2DSqr()</code> | ||
| | | 返回与原点距离的平方(忽略Z轴,计算更快) | ||
|- | |- | ||
| <code>Norm</code> | | <code>Norm</code> | ||
| <code>float Vector::Norm()</code> | | <code>float Vector::Norm()</code> | ||
| | | 将向量长度归一化为1,并返回原长度 | ||
|- | |- | ||
| <code>ToKVString</code> | | <code>ToKVString</code> | ||
| <code>string Vector::ToKVString()</code> | | <code>string Vector::ToKVString()</code> | ||
| | | 返回"X Y Z"格式字符串 | ||
|} | |} | ||
== | == 其他函数 == | ||
{| class="standard-table" style="width: 100%;" | {| class="standard-table" style="width: 100%;" | ||
! | ! 函数 | ||
! | ! 签名 | ||
! | ! 描述 | ||
|- | |- | ||
| <code>Assert</code> | | <code>Assert</code> | ||
| <code>void Assert(''exp'', string ''message'' = null)</code> | | <code>void Assert(''exp'', string ''message'' = null)</code> | ||
| | | 如果''exp''为false则抛出异常(可选消息) | ||
|- | |- | ||
| <code>CreateProp</code> | | <code>CreateProp</code> | ||
| <code>handle CreateProp(string classname, Vector origin, string modelname, int activity)</code> | | <code>handle CreateProp(string classname, Vector origin, string modelname, int activity)</code> | ||
| | | 创建道具(类应为prop_physics风格实体) | ||
|- | |- | ||
| <code>CreateSceneEntity</code> | | <code>CreateSceneEntity</code> | ||
| <code>handle CreateSceneEntity(string)</code> | | <code>handle CreateSceneEntity(string)</code> | ||
| | | 创建用于播放指定场景的场景实体 | ||
|- | |- | ||
| <code>DebugDrawBox</code> | | <code>DebugDrawBox</code> | ||
| <code>void DebugDrawBox(Vector origin, Vector mins, Vector maxs, int r, int g, int b, int alpha, float duration)</code> | | <code>void DebugDrawBox(Vector origin, Vector mins, Vector maxs, int r, int g, int b, int alpha, float duration)</code> | ||
| | | 绘制调试方框(需开发者模式),位于<code>origin</code>,尺寸为<code>mins</code>/<code>maxs</code>,持续<code>duration</code>秒(-1.0为1帧),颜色范围0-255 | ||
|- | |- | ||
| <code>DebugDrawLine</code> | | <code>DebugDrawLine</code> | ||
| <code>void DebugDrawLine(Vector start, Vector end, int r, int g, int b, bool hitTest, float duration)</code> | | <code>void DebugDrawLine(Vector start, Vector end, int r, int g, int b, bool hitTest, float duration)</code> | ||
| | | 绘制调试线(需开发者模式),持续<code>duration</code>秒,颜色范围0-255 | ||
|- | |- | ||
| <code>DoIncludeScript</code> | | <code>DoIncludeScript</code> | ||
| <code>bool DoIncludeScript(string ''filename'', table ''scope'')</code> | | <code>bool DoIncludeScript(string ''filename'', table ''scope'')</code> | ||
| | | 在<code>scope</code>作用域执行脚本文件<code>"scripts/vscripts/" + filename</code>(可省略<code>.nut</code>扩展名) | ||
|- | |- | ||
| <code>IncludeScript</code> | | <code>IncludeScript</code> | ||
| <code>bool IncludeScript(string ''filename'', table ''scope'' = null)</code> | | <code>bool IncludeScript(string ''filename'', table ''scope'' = null)</code> | ||
| | | 在<code>scope</code>作用域(默认为<code>this</code>)执行脚本文件 | ||
|- | |- | ||
| <code>DoEntFire</code> | | <code>DoEntFire</code> | ||
| <code>void DoEntFire(string ''target'', string ''action'', string ''value'', float ''delay'', handle ''activator'', handle ''caller'')</code> | | <code>void DoEntFire(string ''target'', string ''action'', string ''value'', float ''delay'', handle ''activator'', handle ''caller'')</code> | ||
| | | 生成实体{{L|I/O}}事件 | ||
|- | |- | ||
| <code>EntFire</code> | | <code>EntFire</code> | ||
| <code>function EntFire(target, action, value, delay, activator)</code> | | <code>function EntFire(target, action, value, delay, activator)</code> | ||
| | | 生成实体{{L|I/O}}事件(value/delay/activator可选) | ||
|- | |- | ||
| <code>EntFireByHandle</code> | | <code>EntFireByHandle</code> | ||
| <code>void EntFireByHandle(handle target, string action, string value, float delay, handle activator, handle caller)</code> | | <code>void EntFireByHandle(handle target, string action, string value, float delay, handle activator, handle caller)</code> | ||
| | | 生成实体I/O事件(第一个参数为实体实例) | ||
|- | |- | ||
| <code>FrameTime</code> | | <code>FrameTime</code> | ||
| <code>float FrameTime()</code> | | <code>float FrameTime()</code> | ||
| | | 获取服务器上一帧耗时 | ||
|- | |- | ||
| <code>GetDeveloperLevel</code> | | <code>GetDeveloperLevel</code> | ||
| <code>int GetDeveloperLevel()</code> | | <code>int GetDeveloperLevel()</code> | ||
| | | 获取'developer'级别 | ||
|- | |- | ||
| <code>GetMapIndexInPlayOrder</code> | | <code>GetMapIndexInPlayOrder</code> | ||
| <code>int GetMapIndexInPlayOrder()</code> | | <code>int GetMapIndexInPlayOrder()</code> | ||
| | | 获取创意工坊地图的游玩顺序索引(非工坊地图返回-2) | ||
|- | |- | ||
| <code>GetMapName</code> | | <code>GetMapName</code> | ||
| <code>string GetMapName()</code> | | <code>string GetMapName()</code> | ||
| | | 获取当前地图名称 | ||
|- | |- | ||
| <code>GetNumMapsPlayed</code> | | <code>GetNumMapsPlayed</code> | ||
| <code>int GetNumMapsPlayed()</code> | | <code>int GetNumMapsPlayed()</code> | ||
| | | 获取玩家已游玩的创意工坊地图数量 | ||
|- | |- | ||
| <code>GetPlayerSilenceDuration</code> | | <code>GetPlayerSilenceDuration</code> | ||
| <code>float GetPlayerSilenceDuration(int player_index)</code> | | <code>float GetPlayerSilenceDuration(int player_index)</code> | ||
| | | 获取指定玩家麦克风静默时长 | ||
|- | |- | ||
| <code>IsMultiplayer</code> | | <code>IsMultiplayer</code> | ||
| <code>bool IsMultiplayer()</code> | | <code>bool IsMultiplayer()</code> | ||
| | | 检查是否为多人游戏 | ||
|- | |- | ||
| <code>LoopSinglePlayerMaps</code> | | <code>LoopSinglePlayerMaps</code> | ||
| <code>bool LoopSinglePlayerMaps()</code> | | <code>bool LoopSinglePlayerMaps()</code> | ||
| | | 检查<code>loopsingleplayermaps</code>变量是否启用(多人游戏仍有效) | ||
|- | |- | ||
| <code>RandomFloat</code> | | <code>RandomFloat</code> | ||
| <code>float RandomFloat(float min, float max)</code> | | <code>float RandomFloat(float min, float max)</code> | ||
| | | 生成范围内随机浮点数(包含边界) | ||
|- | |- | ||
| <code>RandomInt</code> | | <code>RandomInt</code> | ||
| <code>int RandomInt(int min, int max)</code> | | <code>int RandomInt(int min, int max)</code> | ||
| | | 生成范围内随机整数(包含边界) | ||
|- | |- | ||
| <code>RecordAchievementEvent</code> | | <code>RecordAchievementEvent</code> | ||
| <code>void RecordAchievementEvent(string name, int player_index)</code> | | <code>void RecordAchievementEvent(string name, int player_index)</code> | ||
| | | 解锁成就或增加进度 | ||
|- | |- | ||
| <code>RequestMapRating</code> | | <code>RequestMapRating</code> | ||
| <code>void RequestMapRating()</code> | | <code>void RequestMapRating()</code> | ||
| | | 在创意工坊地图弹出评分对话框 | ||
|- | |- | ||
| <code>RetrieveNativeSignature</code> | | <code>RetrieveNativeSignature</code> | ||
Line 877: | Line 856: | ||
| <code>SendToConsole</code> | | <code>SendToConsole</code> | ||
| <code>void SendToConsole(string command)</code> | | <code>void SendToConsole(string command)</code> | ||
| | | 向控制台发送命令(多人游戏中视为主机命令) | ||
|- | |- | ||
| <code>SetDucking</code> | | <code>SetDucking</code> | ||
| <code>void SetDucking(string, string, float)</code> | | <code>void SetDucking(string, string, float)</code> | ||
| | | 设置音频闪避通道级别 | ||
|- | |- | ||
| <code>SetMapAsPlayed</code> | | <code>SetMapAsPlayed</code> | ||
| <code>int SetMapAsPlayed()</code> | | <code>int SetMapAsPlayed()</code> | ||
| | | 将当前地图添加到游玩顺序(非工坊地图返回-2) | ||
|- | |- | ||
| <code>ShowMessage</code> | | <code>ShowMessage</code> | ||
| <code>void ShowMessage(string)</code> | | <code>void ShowMessage(string)</code> | ||
| | | 向所有客户端显示HUD消息 | ||
|- | |- | ||
| <code>Time</code> | | <code>Time</code> | ||
| <code>float Time()</code> | | <code>float Time()</code> | ||
| | | 获取当前服务器时间 | ||
|- | |- | ||
| <code>TraceLine</code> | | <code>TraceLine</code> | ||
| <code>float TraceLine(Vector start, Vector end, handle ignored_ent)</code> | | <code>float TraceLine(Vector start, Vector end, handle ignored_ent)</code> | ||
| | | 给定起点/终点和忽略实体,返回击中世界的线段比例(不检测实体) | ||
|- | |- | ||
| <code>UniqueString</code> | | <code>UniqueString</code> | ||
| <code>string UniqueString(string ''suffix'' = "")</code> | | <code>string UniqueString(string ''suffix'' = "")</code> | ||
| | | 生成脚本VM生命周期内唯一的字符串(可选前缀) | ||
|- | |- | ||
| <code>DoUniqueString</code> | | <code>DoUniqueString</code> | ||
| <code>string DoUniqueString(string ''suffix'')</code> | | <code>string DoUniqueString(string ''suffix'')</code> | ||
| | | 生成唯一字符串(功能同<code>UniqueString</code>) | ||
|- | |- | ||
| <code>__ReplaceClosures</code> | | <code>__ReplaceClosures</code> | ||
| <code>void __ReplaceClosures(function ''script'', table ''scope'')</code> | | <code>void __ReplaceClosures(function ''script'', table ''scope'')</code> | ||
| | | <code>script_reload_</code>服务器命令调用的内部函数 | ||
|} | |} | ||
=== | === 仅限单人模式 === | ||
这些函数只能在单人游戏中使用,多人游戏中使用可能导致错误。 | |||
{| class="standard-table" style="width: 100%;" | {| class="standard-table" style="width: 100%;" | ||
! | ! 函数 | ||
! | ! 签名 | ||
! | ! 描述 | ||
|- | |- | ||
| <code>GetPlayer</code> | | <code>GetPlayer</code> | ||
| <code>handle GetPlayer()</code> | | <code>handle GetPlayer()</code> | ||
| | | 获取玩家实体 | ||
|- | |- | ||
| <code>GivePlayerPortalgun</code> | | <code>GivePlayerPortalgun</code> | ||
| <code>void GivePlayerPortalgun()</code> | | <code>void GivePlayerPortalgun()</code> | ||
| | | 给予玩家仅限蓝色传送门枪 | ||
|- | |- | ||
| <code>PrecacheMovie</code> | | <code>PrecacheMovie</code> | ||
| <code>void PrecacheMovie(string)</code> | | <code>void PrecacheMovie(string)</code> | ||
| | | 预加载指定电影(仅在地图生成时的'Precache()'函数中有效) | ||
|- | |- | ||
| <code>ScriptShowHudMessageAll</code> | | <code>ScriptShowHudMessageAll</code> | ||
| <code>void ScriptShowHudMessageAll(string, float)</code> | | <code>void ScriptShowHudMessageAll(string, float)</code> | ||
| | | 显示居中文本消息(持续指定秒数) | ||
|- | |- | ||
| <code>ScriptSteamShowURL</code> | | <code>ScriptSteamShowURL</code> | ||
| <code>bool ScriptSteamShowURL(string)</code> | | <code>bool ScriptSteamShowURL(string)</code> | ||
| | | 在Steam叠加层显示指定URL(需完整地址如http://www.steamgames.com/) | ||
|- | |- | ||
| <code>TryDLC1InstalledOrCatch</code> | | <code>TryDLC1InstalledOrCatch</code> | ||
| <code>void TryDLC1InstalledOrCatch()</code> | | <code>void TryDLC1InstalledOrCatch()</code> | ||
| | | 如果未安装Peer Review DLC则抛出异常(当前PC版本中无效) | ||
|- | |- | ||
| <code>UpgradePlayerPortalgun</code> | | <code>UpgradePlayerPortalgun</code> | ||
| <code>void UpgradePlayerPortalgun()</code> | | <code>void UpgradePlayerPortalgun()</code> | ||
| | | 将玩家传送门枪升级为可发射橙色传送门 | ||
|- | |- | ||
| <code>UpgradePlayerPotatogun</code> | | <code>UpgradePlayerPotatogun</code> | ||
| <code>void UpgradePlayerPotatogun()</code> | | <code>void UpgradePlayerPotatogun()</code> | ||
| | | 将玩家传送门枪升级为带PotatOS的橙色传送门枪 | ||
|} | |} | ||
=== | === 仅限多人模式 === | ||
这些函数只能在多人游戏中使用,单人游戏中使用可能导致错误。 | |||
{| class="standard-table" style="width: 100%;" | {| class="standard-table" style="width: 100%;" | ||
! | ! 函数 | ||
! | ! 签名 | ||
! | ! 描述 | ||
|- | |- | ||
| <code>AddBranchLevelName</code> | | <code>AddBranchLevelName</code> | ||
| <code>void AddBranchLevelName(int, string)</code> | | <code>void AddBranchLevelName(int, string)</code> | ||
| | | 向指定分支添加关卡{{note|合作地图中必须至少调用一次, 否则玩家可能会动弹不得}} | ||
|- | |- | ||
| <code>AddCoopCreditsName</code> | | <code>AddCoopCreditsName</code> | ||
| <code>void AddCoopCreditsName(string)</code> | | <code>void AddCoopCreditsName(string)</code> | ||
| | | 向合作模式演职员表添加名称 | ||
|- | |- | ||
| <code>AddGladosSpokenFlags</code> | | <code>AddGladosSpokenFlags</code> | ||
| <code>void AddGladosSpokenFlags(int, int)</code> | | <code>void AddGladosSpokenFlags(int, int)</code> | ||
| | | 添加特定对话行的位标志(按会话追踪) | ||
|- | |- | ||
| <code>CoopGladosBlowUpBots</code> | | <code>CoopGladosBlowUpBots</code> | ||
| <code>void CoopGladosBlowUpBots()</code> | | <code>void CoopGladosBlowUpBots()</code> | ||
| | | 摧毁两个机器人并阻止重生(用于合作课程1到4最后一关) | ||
|- | |- | ||
| <code>CoopGetNumPortalsPlaced</code> | | <code>CoopGetNumPortalsPlaced</code> | ||
| <code>int CoopGetNumPortalsPlaced()</code> | | <code>int CoopGetNumPortalsPlaced()</code> | ||
| | | 获取玩家已放置的传送门数量 | ||
|- | |- | ||
| <code>CoopGetLevelsCompletedThisBranch</code> | | <code>CoopGetLevelsCompletedThisBranch</code> | ||
| <code>int CoopGetLevelsCompletedThisBranch()</code> | | <code>int CoopGetLevelsCompletedThisBranch()</code> | ||
| | | 获取当前分支中已完成的关卡数 | ||
|- | |- | ||
| <code>CoopGetBranchTotalLevelCount</code> | | <code>CoopGetBranchTotalLevelCount</code> | ||
| <code>int CoopGetBranchTotalLevelCount()</code> | | <code>int CoopGetBranchTotalLevelCount()</code> | ||
| | | 获取当前分支的关卡总数 | ||
|- | |- | ||
| <code>CoopSetCameFromLastDLCMap</code> | | <code>CoopSetCameFromLastDLCMap</code> | ||
| <code>void CoopSetCameFromLastDLCMap(bool)</code> | | <code>void CoopSetCameFromLastDLCMap(bool)</code> | ||
| | | 设置玩家是否来自最后的合作DLC地图(合作课程6) | ||
|- | |- | ||
| <code>CoopSetMapRunTime</code> | | <code>CoopSetMapRunTime</code> | ||
| <code>void CoopSetMapRunTime(float runLength)</code> | | <code>void CoopSetMapRunTime(float runLength)</code> | ||
| | | 设置完成合作地图的时间(可能与Triple Crown(三皇冠)成就相关) | ||
|- | |- | ||
| <code>GetBluePlayerIndex</code> | | <code>GetBluePlayerIndex</code> | ||
| <code>int GetBluePlayerIndex()</code> | | <code>int GetBluePlayerIndex()</code> | ||
| | | 获取蓝色玩家索引 | ||
|- | |- | ||
| <code>GetCameFromLastDLCMap</code> | | <code>GetCameFromLastDLCMap</code> | ||
| <code>bool GetCameFromLastDLCMap()</code> | | <code>bool GetCameFromLastDLCMap()</code> | ||
| | | 检查是否来自最后的合作DLC地图 | ||
|- | |- | ||
| <code>GetCoopBranchLevelIndex</code> | | <code>GetCoopBranchLevelIndex</code> | ||
| <code>int GetCoopBranchLevelIndex(int)</code> | | <code>int GetCoopBranchLevelIndex(int)</code> | ||
| | | 获取指定分支的当前选定关卡索引 | ||
|- | |- | ||
| <code>GetCoopSectionIndex</code> | | <code>GetCoopSectionIndex</code> | ||
| <code>int GetCoopSectionIndex()</code> | | <code>int GetCoopSectionIndex()</code> | ||
| | | 获取合作玩家选择加载的章节索引 | ||
|- | |- | ||
| <code>GetGladosSpokenFlags</code> | | <code>GetGladosSpokenFlags</code> | ||
| <code>int GetGladosSpokenFlags(int)</code> | | <code>int GetGladosSpokenFlags(int)</code> | ||
| | | 获取特定对话行的位标志 | ||
|- | |- | ||
| <code>GetHaveSeenDLCTubesReveal</code> | | <code>GetHaveSeenDLCTubesReveal</code> | ||
| <code>bool GetHaveSeenDLCTubesReveal()</code> | | <code>bool GetHaveSeenDLCTubesReveal()</code> | ||
| | | 检查玩家是否已观看DLC管道 | ||
|- | |- | ||
| <code>GetHighestActiveBranch</code> | | <code>GetHighestActiveBranch</code> | ||
| <code>int GetHighestActiveBranch()</code> | | <code>int GetHighestActiveBranch()</code> | ||
| | | 获取大厅中已解锁的最高关卡 | ||
|- | |- | ||
| <code>GetNumPlayersConnected</code> | | <code>GetNumPlayersConnected</code> | ||
| <code>int GetNumPlayersConnected()</code> | | <code>int GetNumPlayersConnected()</code> | ||
| | | 获取已连接玩家数(通常为2) | ||
|- | |- | ||
| <code>GetOrangePlayerIndex</code> | | <code>GetOrangePlayerIndex</code> | ||
| <code>int GetOrangePlayerIndex()</code> | | <code>int GetOrangePlayerIndex()</code> | ||
| | | 获取橙色玩家索引 | ||
|- | |- | ||
| <code>GetPlayerDeathCount</code> | | <code>GetPlayerDeathCount</code> | ||
| <code>int GetPlayerDeathCount(int player)</code> | | <code>int GetPlayerDeathCount(int player)</code> | ||
| | | 获取指定玩家在会话中的死亡次数 | ||
|- | |- | ||
| <code>IsBranchComplete</code> | | <code>IsBranchComplete</code> | ||
| <code>bool IsBranchComplete(int course)</code> | | <code>bool IsBranchComplete(int course)</code> | ||
| | | 检查分支所有关卡是否已完成 | ||
|- | |- | ||
| <code>IsLevelComplete</code> | | <code>IsLevelComplete</code> | ||
| <code>bool IsLevelComplete(int course, int level)</code> | | <code>bool IsLevelComplete(int course, int level)</code> | ||
| | | 检查指定分支关卡是否已完成 | ||
|- | |- | ||
| <code>IsLocalSplitScreen</code> | | <code>IsLocalSplitScreen</code> | ||
| <code>bool IsLocalSplitScreen()</code> | | <code>bool IsLocalSplitScreen()</code> | ||
| | | 检查是否为本地分屏模式 | ||
|- | |- | ||
| <code>IsPlayerBranchComplete</code> | | <code>IsPlayerBranchComplete</code> | ||
| <code>bool IsPlayerBranchComplete(int player, int course)</code> | | <code>bool IsPlayerBranchComplete(int player, int course)</code> | ||
| | | 检查指定玩家是否完成分支所有关卡 | ||
|- | |- | ||
| <code>IsPlayerLevelComplete</code> | | <code>IsPlayerLevelComplete</code> | ||
| <code>bool IsPlayerLevelComplete(int, int, int)</code> | | <code>bool IsPlayerLevelComplete(int, int, int)</code> | ||
| | | 检查指定玩家是否完成特定分支关卡 | ||
|- | |- | ||
| <code>MarkMapComplete</code> | | <code>MarkMapComplete</code> | ||
| <code>void MarkMapComplete(string)</code> | | <code>void MarkMapComplete(string)</code> | ||
| | | 标记地图为已完成(双方玩家) | ||
|- | |- | ||
| <code>NotifySpeedRunSuccess</code> | | <code>NotifySpeedRunSuccess</code> | ||
| <code>void NotifySpeedRunSuccess(int runLength, string mapname)</code> | | <code>void NotifySpeedRunSuccess(int runLength, string mapname)</code> | ||
| | | 通知客户端速通成功(用于Triple Crown(三皇冠)成就) | ||
|- | |- | ||
| <code>SaveMPStatsData</code> | | <code>SaveMPStatsData</code> | ||
| <code>void SaveMPStatsData()</code> | | <code>void SaveMPStatsData()</code> | ||
| | | 保存多人游戏统计信息(记分牌) | ||
|- | |- | ||
| <code>SetHaveSeenDLCTubesReveal</code> | | <code>SetHaveSeenDLCTubesReveal</code> | ||
| <code>void SetHaveSeenDLCTubesReveal()</code> | | <code>void SetHaveSeenDLCTubesReveal()</code> | ||
| | | 标记玩家已看见DLC管道 | ||
|} | |} | ||
== | == 另见 == | ||
* | * {{L|VScript}} | ||
* | * {{L|VScript Fundamentals|VScript基础}} | ||
* {{sq}} | * {{sq}} {{L|Squirrel}} | ||
* | * {{L|PCapture-Lib - Portal 2 Script Library|PCapture-Lib - 传送门2脚本库}} | ||
* {{l4d2}} | * {{l4d2}} {{L|Left 4 Dead 2/Script Functions}} | ||
* {{csgo}} | * {{csgo}} {{L|List of Counter-Strike: Global Offensive Script Functions}} | ||
{{ACategory|Portal 2}} | |||
{{ACategory|Scripting}} |
Latest revision as of 06:37, 29 June 2025
此列表包含可用于的所有与 传送门2VScript 游戏引擎的松鼠 函数。 当游戏在工具模式 运行时可以使用
script_help
指令在控制台打印出来这些。
变量
实例 | 类型 | 描述 |
---|---|---|
Entities
|
CEntities
|
提供服务器中已生成实体的通道。 |
常量
实例 | 类型 | 值 |
---|---|---|
_charsize_
|
integer | 1 |
_floatsize_
|
integer | 4 |
_intsize_
|
integer | 4 |
_version_
|
string | "Squirrel 2.2.3 stable" |
RAND_MAX
|
integer | 32767 |
PI
|
float | 3.14159 |
类
CBaseEntity
这是实体的脚本句柄类。所有生成的实体都有一个使用此或其子类之一的脚本句柄。
游戏中的所有脚本句柄都可以从Entities访问实体脚本, 可以使用self
关键字访问自己的脚本句柄。activator
和caller
关键字可以在函数调用时访问。
使用方法
函数 | 特征用法 | 描述 |
---|---|---|
__KeyValueFromInt
|
void __KeyValueFromInt(string key, int value)
|
设置实体的某个Keyvalue 为整数。它只更改值, 但不会执行实体处理KeyValue所需的任何代码, 因此可能会产生意想不到的副作用。 |
__KeyValueFromFloat
|
void __KeyValueFromFloat(string key, float value)
|
设置实体的某个Keyvalue 为浮点数。它只更改值, 但不会执行实体处理KeyValue所需的任何代码, 因此可能会产生意想不到的副作用。 |
__KeyValueFromString
|
void __KeyValueFromString(string key, string value)
|
设置实体的某个Keyvalue 为字符串。它只更改值, 但不会执行实体处理KeyValue所需的任何代码, 因此可能会产生意想不到的副作用。 |
__KeyValueFromVector
|
void __KeyValueFromVector(string key, Vector value)
|
设置实体的某个Keyvalue 为向量 。它只更改值, 但不会执行实体处理KeyValue所需的任何代码, 因此可能会产生意想不到的副作用。 |
ConnectOutput
|
void CBaseEntity::ConnectOutput(string output, string func_name)
|
添加一个I/O连接, 当指定的输出触发时, 该连接将调用指定的函数。 |
Destroy
|
void CBaseEntity::Destroy()
|
消灭这个实体。 |
DisconnectOutput
|
void CBaseEntity::DisconnectOutput(string output, string func_name)
|
从I/O事件中删除连接的脚本函数。 |
EmitSound
|
void CBaseEntity::EmitSound(string sound)
|
从该实体处播放一段声音。 |
EyePosition
|
Vector CBaseEntity::EyePosition()
|
获得眼睛位置绝对坐标的向量。 |
FirstMoveChild
|
handle CBaseEntity::FirstMoveChild()
|
如果处于层次结构中,则获取则检索第一个(移动)实体的子级。 |
GetAngles
|
Vector CBaseEntity::GetAngles()
|
获得实体转换为向量的俯仰、水平、横滚的角度数值。 |
GetAngularVelocity
|
Vector CBaseEntity::GetAngularVelocity()
|
获取局部角速度-返回俯仰、水平、横滚的向量。 |
GetBoundingMaxs
|
Vector CBaseEntity::GetBoundingMaxs()
|
获取一个以对象为中心的最大边框的向量。 |
GetBoundingMins
|
Vector CBaseEntity::GetBoundingMins()
|
获取一个以对象为中心的最小边框的向量。 |
GetCenter
|
Vector CBaseEntity::GetCenter()
|
获取对象中心的向量-绝对坐标。 |
GetClassname
|
string CBaseEntity::GetClassname()
|
获取此实体的类名。 |
GetForwardVector
|
Vector CBaseEntity::GetForwardVector()
|
获取实体的正向向量(+X)。 |
GetHealth
|
int CBaseEntity::GetHealth()
|
返回实体当前血量 。 |
GetLeftVector
|
Vector CBaseEntity::GetLeftVector()
|
获取实体的左向量。 |
GetMaxHealth
|
int CBaseEntity::GetMaxHealth()
|
返回实体最大血量。 |
GetModelKeyValues
|
handle CBaseEntity::GetModelKeyValues()
|
获取此实体模型上的键值类实例。 |
GetModelName
|
string CBaseEntity::GetModelName()
|
获取该实体模型名称。 |
GetMoveParent
|
handle CBaseEntity::GetMoveParent()
|
如果处于层次结构中, 则检索实体的父级。 |
GetName
|
string CBaseEntity::GetName()
|
获取此实体的Targetname。 |
GetOrigin
|
Vector CBaseEntity::GetOrigin()
|
返回此实体的局部原点位置坐标。 |
GetOwner
|
handle CBaseEntity::GetOwner()
|
获取此实体的所有者。 |
GetPreTemplateName
|
string CBaseEntity::GetPreTemplateName()
|
将实体名称从模板唯一装饰(&001后缀)中删除。 |
GetRootMoveParent
|
handle CBaseEntity::GetRootMoveParent()
|
如果处于层次结构中, 则向上遍历层次结构以查找根父级 |
GetScriptId
|
string CBaseEntity::GetScriptId()
|
检索用于引用脚本系统中实体的唯一标识符。 |
GetScriptScope
|
handle CBaseEntity::GetScriptScope()
|
检索与实体关联的脚本端数据。 |
GetSoundDuration
|
float CBaseEntity::GetSoundDuration(string, string)
|
以浮点数返回声音的持续时间。接受声音名称和可选的actormodelname。 |
GetTeam
|
int CBaseEntity::GetTeam()
|
找到这个实体所在的队伍。 |
GetUpVector
|
Vector CBaseEntity::GetUpVector()
|
获取实体的向上向量(+Z)。 |
GetVelocity
|
Vector CBaseEntity::GetVelocity()
|
获取实体的速度。请注意,这会读取QPhysics 速度值, 因此它仅适用于玩家、NPC和移动画笔实体。VPhysics对象的速度始终为零, 一种解决方法是记录多个帧上的位置, 并手动推导速度。 |
IsValid
|
bool CBaseEntity::IsValid()
|
如果此实体有效, 则返回true。 |
NextMovePeer
|
handle CBaseEntity::NextMovePeer()
|
返回同一继承层次结构中的下一个实体。 |
PrecacheSoundScript
|
void CBaseEntity::PrecacheSoundScript(string)
|
预先加载一个声音以供以后播放, 应该在Preche()钩子函数中调用。 |
SetAbsOrigin
|
void CBaseEntity::SetAbsOrigin(Vector)
|
将实体传送到此世界位置。 |
SetAngles
|
void CBaseEntity::SetAngles(float, float, float)
|
设置实体俯仰、水平、横滚。 |
SetAngularVelocity
|
void CBaseEntity::SetAngularVelocity(float, float, float)
|
设置局部角速度-浮点数的俯仰、水平、横滚速度。 |
SetForwardVector
|
void CBaseEntity::SetForwardVector(Vector)
|
将实体的正向(+X)向量。 |
SetHealth
|
void CBaseEntity::SetHealth(int)
|
设置实体当前的血量 。 |
SetMaxHealth
|
void CBaseEntity::SetMaxHealth(int)
|
设置实体最大血量。 |
SetModel
|
void CBaseEntity::SetModel(string)
|
更改实体的模型, 这可用于更改prop_weighted_cube或其他类似实体的模型。模型必须预加载, 可以通过预先放置在地图的其他位置来完成。 |
SetOrigin
|
void CBaseEntity::SetOrigin(Vector)
|
将此实体传送到给定位置。 |
SetOwner
|
void CBaseEntity::SetOwner(handle)
|
设置实体的所有者。 |
SetSize
|
void CBaseEntity::SetSize(Vector, Vector)
|
设置边界框大小。(比如func_brush或trigger_multiple) |
SetTeam
|
void CBaseEntity::SetTeam(int)
|
设置此实体所在的队伍。 |
SetVelocity
|
void CBaseEntity::SetVelocity(Vector)
|
设置局部速度。请注意,这会设置QPhysics 速度值,因此它仅适用于玩家、NPC和移动画笔实体。对于VPhysics对象,这没有影响。 |
ValidateScriptScope
|
bool CBaseEntity::ValidateScriptScope()
|
确保已创建实体的脚本作用域。 在分配给实体的作用域之前, 应该调用此函数。 |
entindex
|
int CBaseEntity::entindex()
|
返回实体的索引值。 |
CBaseAnimating
继承 CBaseEntity
用于为道具等实体设置动画的脚本句柄类。
使用方法
函数 | 签名 | 描述 |
---|---|---|
GetAttachmentAngles
|
Vector CBaseAnimating::GetAttachmentAngles(int id)
|
获取附件ID的角度(p,y,r向量)。 |
GetAttachmentOrigin
|
Vector CBaseAnimating::GetAttachmentOrigin(int id)
|
获取附件ID的原始向量。 |
GetObjectScaleLevel
|
int CBaseAnimating::GetObjectScaleLevel()
|
获取实体的缩放级别。 |
IsSequenceFinished
|
bool CBaseAnimating::IsSequenceFinished()
|
检查主序列是否播放完毕。 |
LookupAttachment
|
int CBaseAnimating::LookupAttachment(string)
|
获取命名附件的ID。 |
SetBodygroup
|
void CBaseAnimating::SetBodygroup(int group, int index)
|
设置身体组。group是目标组的索引,index是要使用的部位索引。 |
CBaseFlex
使用方法
函数 | 签名 | 描述 |
---|---|---|
GetCurrentScene
|
handle CBaseFlex::GetCurrentScene()
|
返回最早激活的场景实体实例(如果有)。 |
GetSceneByIndex
|
handle CBaseFlex::GetSceneByIndex(int)
|
返回指定索引的场景实体实例。 |
CBasePlayer
使用方法
函数 | 签名 | 描述 |
---|---|---|
IsNoclipping
|
bool CBasePlayer::IsNoclipping()
|
如果玩家处于穿墙模式则返回true。 |
CEntities
脚本实例: Entities
用于查找和迭代游戏中实体的脚本接口。
要迭代一组实体,请在适当的方法中将null
传递给"previous"参数以开始迭代,或引用先前找到的实体以继续搜索。示例:
//第一种方式
local ent = null; //变量名"ent"可自定义
while(ent = Entities.FindByName(ent, "entityname")) //注意使用"="而非"=="
{
//... //每次迭代时"ent"有效则执行此处代码
}
//第二种方式
for(local ent;ent = Entities.FindByName(ent, "entityname");) //注意分号位置
{
//... //每次迭代时"ent"有效则执行此处代码
}
使用方法
函数 | 签名 | 描述 |
---|---|---|
CreateByClassname
|
handle CEntities::CreateByClassname(string)
|
通过类名创建实体 |
FindByClassname
|
handle CEntities::FindByClassname(handle start_ent, string classname)
|
按类名查找实体。传递'null'开始迭代,或引用先前找到的实体继续搜索 |
FindByClassnameNearest
|
handle CEntities::FindByClassnameNearest(string classname, Vector loc, float radius)
|
查找距离某点最近的指定类名实体 |
FindByClassnameWithin
|
handle CEntities::FindByClassnameWithin(handle start_ent, string classname, Vector loc, float radius)
|
查找半径内的指定类名实体。传递'null'开始迭代 |
FindByModel
|
handle CEntities::FindByModel(handle start_ent, string model)
|
按模型名查找实体。传递'null'开始迭代 |
FindByName
|
handle CEntities::FindByName(handle start_ent, string targetname)
|
按名称(支持通配符)查找实体。传递'null'开始迭代 |
FindByNameNearest
|
handle CEntities::FindByNameNearest(string targetname, Vector loc, float radius)
|
查找距离某点最近的指定名称实体 |
FindByNameWithin
|
handle CEntities::FindByNameWithin(handle, string, Vector loc, float radius)
|
查找半径内的指定名称实体。传递'null'开始迭代 |
FindByTarget
|
handle CEntities::FindByTarget(handle start_ent, string targetname)
|
查找具有特定target 键值的实体。传递'null'开始迭代
|
FindInSphere
|
handle CEntities::FindInSphere(handle start_ent, Vector loc, float radius)
|
查找半径内的实体。传递'null'开始迭代 |
First
|
handle CEntities::First()
|
开始实体列表迭代。等同于Next(null) |
Next
|
handle CEntities::Next(handle)
|
继续迭代,需提供先前找到的实体引用 |
CEnvEntityMaker
继承 CBaseEntity
脚本句柄类是env_entity_maker 。
使用方法
函数 | 签名 | 描述 |
---|---|---|
SpawnEntity
|
void CEnvEntityMaker::SpawnEntity()
|
在maker位置创建实体 |
SpawnEntityAtEntityOrigin
|
void CEnvEntityMaker::SpawnEntityAtEntityOrigin(handle)
|
在指定实体位置创建实体 |
SpawnEntityAtLocation
|
void CEnvEntityMaker::SpawnEntityAtLocation(Vector, Vector)
|
在指定位置和角度创建实体 |
SpawnEntityAtNamedEntityOrigin
|
void CEnvEntityMaker::SpawnEntityAtNamedEntityOrigin(string)
|
在命名实体位置创建实体 |
CLinkedPortalDoor
[待完善]
使用方法
函数 | 签名 | 描述 |
---|---|---|
GetPartnerInstance
|
handle CLinkedPortalDoor::GetPartnerInstance()
|
获取门链接伙伴的实例句柄 |
GetPartnername
|
string CLinkedPortalDoor::GetPartnername()
|
返回门的伙伴名称 |
CPlayerVoiceListener
[待完善]
使用方法
函数 | 签名 | 描述 |
---|---|---|
GetPlayerSpeechDuration
|
float CPlayerVoiceListener ::GetPlayerSpeechDuration(int)
|
返回玩家持续说话的秒数 |
IsPlayerSpeaking
|
bool CPlayerVoiceListener ::IsPlayerSpeaking(int)
|
返回指定玩家是否正在说话 |
CPortal_Player
[待完善]
使用方法
函数 | 签名 | 描述 |
---|---|---|
GetWheatleyMonitorDestructionCount
|
int CPortal_Player ::GetWheatleyMonitorDestructionCount()
|
获取玩家摧毁Wheatley显示器的数量 |
IncWheatleyMonitorDestructionCount
|
void CPortal_Player ::IncWheatleyMonitorDestructionCount()
|
增加玩家摧毁Wheatley显示器的计数 |
TurnOffPotatos
|
void CPortal_Player ::TurnOffPotatos()
|
关闭Potatos材质光源 |
TurnOnPotatos
|
void CPortal_Player ::TurnOnPotatos()
|
开启Potatos材质光源 |
CPropLinkedPortalDoor
[待完善]
使用方法
函数 | 签名 | 描述 |
---|---|---|
GetPartnerInstance
|
handle CPropLinkedPortalDoor ::GetPartnerInstance()
|
获取门链接伙伴的实例句柄 |
GetPartnername
|
string CPropLinkedPortalDoor ::GetPartnername()
|
返回门的伙伴名称 |
CSceneEntity
继承 CBaseEntity
使用方法
函数 | 签名 | 描述 |
---|---|---|
AddBroadcastTeamTarget
|
void CSceneEntity::AddBroadcastTeamTarget(int)
|
通过索引将团队添加到广播列表 |
EstimateLength
|
float CSceneEntity::EstimateLength()
|
返回场景长度(秒) |
FindNamedEntity
|
handle CSceneEntity::FindNamedEntity(string)
|
根据实体引用(如!target)从场景对象获取实际实体 |
IsPaused
|
bool CSceneEntity::IsPaused()
|
检查当前场景是否暂停 |
IsPlayingBack
|
bool CSceneEntity::IsPlayingBack()
|
检查当前场景是否正在播放 |
LoadSceneFromString
|
bool CSceneEntity::LoadSceneFromString(string, string)
|
根据虚拟场景名和vcd字符串加载场景 |
RemoveBroadcastTeamTarget
|
void CSceneEntity::RemoveBroadcastTeamTarget(int)
|
通过索引从广播列表移除团队 |
CScriptKeyValues
模型$keyvalues 块的脚本句柄表示。 子键是相同类的实例。
使用方法
函数 | 签名 | 描述 |
---|---|---|
FindKey
|
handle CScriptKeyValues::FindKey(string)
|
根据键名查找关联的KeyValues对象 |
GetFirstSubKey
|
handle CScriptKeyValues::GetFirstSubKey()
|
获取第一个子键对象 |
GetKeyBool
|
bool CScriptKeyValues::GetKeyBool(string)
|
获取键关联的布尔值 |
GetKeyFloat
|
float CScriptKeyValues::GetKeyFloat(string)
|
获取键关联的浮点值 |
GetKeyInt
|
int CScriptKeyValues::GetKeyInt(string)
|
获取键关联的整数值 |
GetKeyString
|
string CScriptKeyValues::GetKeyString(string)
|
获取键关联的字符串值 |
GetNextKey
|
handle CScriptKeyValues::GetNextKey()
|
获取子键组中的下一个键对象 |
IsKeyEmpty
|
bool CScriptKeyValues::IsKeyEmpty(string)
|
检查键名是否没有值 |
ReleaseKeyValues
|
void CScriptKeyValues::ReleaseKeyValues()
|
释放根KeyValues对象内容 |
CTriggerCamera
继承 CBaseEntity
使用方法
函数 | 签名 | 描述 |
---|---|---|
GetFov
|
int CTriggerCamera::GetFov()
|
获取相机当前FOV设置(整数) |
SetFov
|
void CTriggerCamera::SetFov(int, float)
|
设置相机FOV(整数角度)和FOV变化率(浮点) |
Math
内置的Squirrel数学库。
函数 | 签名 | 描述 |
---|---|---|
abs
|
int abs(float x)
|
返回x 的整数绝对值
|
acos
|
float acos(float x)
|
返回x 的反余弦值
|
asin
|
float asin(float x)
|
返回x 的反正弦值
|
atan
|
float atan(float x)
|
返回x 的反正切值
|
atan2
|
float atan2(float x, float y)
|
返回x/y 的反正切值
|
ceil
|
float ceil(float x)
|
返回大于等于x 的最小整数值
|
cos
|
float cos(float x)
|
返回x 的余弦值
|
exp
|
float exp(float x)
|
返回x 的指数值(e^x )
|
fabs
|
float fabs(float x)
|
返回x 的浮点绝对值
|
floor
|
float floor(float x)
|
返回小于等于x 的最大整数值
|
log
|
float log(float x)
|
返回x 的自然对数
|
log10
|
float log10(float x)
|
返回x 的以10为底对数
|
pow
|
float pow(float x, float y)
|
返回x 的y 次幂
|
rand
|
int rand()
|
返回0到RAND_MAX 间的伪随机整数
|
sin
|
float sin(float x)
|
返回x 的正弦值
|
sqrt
|
float sqrt(float x)
|
返回x 的平方根
|
srand
|
void srand(float seed)
|
设置伪随机数生成器的种子 |
tan
|
float tan(float x)
|
返回x 的正切值
|
向量
表示一个x/y/z位置,被许多函数返回/传递。它以3个x/y/z位置作为参数。
可以对向量应用一些数学运算 - 任意两个向量之间的+/-,以及向量 * 数字
(仅限此顺序)。所有三种运算都返回另一个向量。其他数学运算通过方法调用完成:
使用方法
函数 | 签名 | 描述 |
---|---|---|
Cross
|
Vector Vector::Cross(Vector other)
|
返回向量叉积 - this × other
|
Dot
|
float Vector::Dot(Vector other)
|
返回向量点积 - this · other
|
Length
|
float Vector::Length()
|
返回与原点距离 |
Length2D
|
float Vector::Length2D()
|
返回与原点距离(忽略Z轴) |
LengthSqr
|
float Vector::LengthSqr()
|
返回与原点距离的平方(计算更快,无需平方根) |
Length2DSqr
|
float Vector::Length2DSqr()
|
返回与原点距离的平方(忽略Z轴,计算更快) |
Norm
|
float Vector::Norm()
|
将向量长度归一化为1,并返回原长度 |
ToKVString
|
string Vector::ToKVString()
|
返回"X Y Z"格式字符串 |
其他函数
函数 | 签名 | 描述 |
---|---|---|
Assert
|
void Assert(exp, string message = null)
|
如果exp为false则抛出异常(可选消息) |
CreateProp
|
handle CreateProp(string classname, Vector origin, string modelname, int activity)
|
创建道具(类应为prop_physics风格实体) |
CreateSceneEntity
|
handle CreateSceneEntity(string)
|
创建用于播放指定场景的场景实体 |
DebugDrawBox
|
void DebugDrawBox(Vector origin, Vector mins, Vector maxs, int r, int g, int b, int alpha, float duration)
|
绘制调试方框(需开发者模式),位于origin ,尺寸为mins /maxs ,持续duration 秒(-1.0为1帧),颜色范围0-255
|
DebugDrawLine
|
void DebugDrawLine(Vector start, Vector end, int r, int g, int b, bool hitTest, float duration)
|
绘制调试线(需开发者模式),持续duration 秒,颜色范围0-255
|
DoIncludeScript
|
bool DoIncludeScript(string filename, table scope)
|
在scope 作用域执行脚本文件"scripts/vscripts/" + filename (可省略.nut 扩展名)
|
IncludeScript
|
bool IncludeScript(string filename, table scope = null)
|
在scope 作用域(默认为this )执行脚本文件
|
DoEntFire
|
void DoEntFire(string target, string action, string value, float delay, handle activator, handle caller)
|
生成实体I/O 事件 |
EntFire
|
function EntFire(target, action, value, delay, activator)
|
生成实体I/O 事件(value/delay/activator可选) |
EntFireByHandle
|
void EntFireByHandle(handle target, string action, string value, float delay, handle activator, handle caller)
|
生成实体I/O事件(第一个参数为实体实例) |
FrameTime
|
float FrameTime()
|
获取服务器上一帧耗时 |
GetDeveloperLevel
|
int GetDeveloperLevel()
|
获取'developer'级别 |
GetMapIndexInPlayOrder
|
int GetMapIndexInPlayOrder()
|
获取创意工坊地图的游玩顺序索引(非工坊地图返回-2) |
GetMapName
|
string GetMapName()
|
获取当前地图名称 |
GetNumMapsPlayed
|
int GetNumMapsPlayed()
|
获取玩家已游玩的创意工坊地图数量 |
GetPlayerSilenceDuration
|
float GetPlayerSilenceDuration(int player_index)
|
获取指定玩家麦克风静默时长 |
IsMultiplayer
|
bool IsMultiplayer()
|
检查是否为多人游戏 |
LoopSinglePlayerMaps
|
bool LoopSinglePlayerMaps()
|
检查loopsingleplayermaps 变量是否启用(多人游戏仍有效)
|
RandomFloat
|
float RandomFloat(float min, float max)
|
生成范围内随机浮点数(包含边界) |
RandomInt
|
int RandomInt(int min, int max)
|
生成范围内随机整数(包含边界) |
RecordAchievementEvent
|
void RecordAchievementEvent(string name, int player_index)
|
解锁成就或增加进度 |
RequestMapRating
|
void RequestMapRating()
|
在创意工坊地图弹出评分对话框 |
RetrieveNativeSignature
|
void RetrieveNativeSignature(string nativeFunction)
|
[待完善] |
SendToConsole
|
void SendToConsole(string command)
|
向控制台发送命令(多人游戏中视为主机命令) |
SetDucking
|
void SetDucking(string, string, float)
|
设置音频闪避通道级别 |
SetMapAsPlayed
|
int SetMapAsPlayed()
|
将当前地图添加到游玩顺序(非工坊地图返回-2) |
ShowMessage
|
void ShowMessage(string)
|
向所有客户端显示HUD消息 |
Time
|
float Time()
|
获取当前服务器时间 |
TraceLine
|
float TraceLine(Vector start, Vector end, handle ignored_ent)
|
给定起点/终点和忽略实体,返回击中世界的线段比例(不检测实体) |
UniqueString
|
string UniqueString(string suffix = "")
|
生成脚本VM生命周期内唯一的字符串(可选前缀) |
DoUniqueString
|
string DoUniqueString(string suffix)
|
生成唯一字符串(功能同UniqueString )
|
__ReplaceClosures
|
void __ReplaceClosures(function script, table scope)
|
script_reload_ 服务器命令调用的内部函数
|
仅限单人模式
这些函数只能在单人游戏中使用,多人游戏中使用可能导致错误。
函数 | 签名 | 描述 |
---|---|---|
GetPlayer
|
handle GetPlayer()
|
获取玩家实体 |
GivePlayerPortalgun
|
void GivePlayerPortalgun()
|
给予玩家仅限蓝色传送门枪 |
PrecacheMovie
|
void PrecacheMovie(string)
|
预加载指定电影(仅在地图生成时的'Precache()'函数中有效) |
ScriptShowHudMessageAll
|
void ScriptShowHudMessageAll(string, float)
|
显示居中文本消息(持续指定秒数) |
ScriptSteamShowURL
|
bool ScriptSteamShowURL(string)
|
在Steam叠加层显示指定URL(需完整地址如http://www.steamgames.com/) |
TryDLC1InstalledOrCatch
|
void TryDLC1InstalledOrCatch()
|
如果未安装Peer Review DLC则抛出异常(当前PC版本中无效) |
UpgradePlayerPortalgun
|
void UpgradePlayerPortalgun()
|
将玩家传送门枪升级为可发射橙色传送门 |
UpgradePlayerPotatogun
|
void UpgradePlayerPotatogun()
|
将玩家传送门枪升级为带PotatOS的橙色传送门枪 |
仅限多人模式
这些函数只能在多人游戏中使用,单人游戏中使用可能导致错误。
函数 | 签名 | 描述 |
---|---|---|
AddBranchLevelName
|
void AddBranchLevelName(int, string)
|
向指定分支添加关卡![]() |
AddCoopCreditsName
|
void AddCoopCreditsName(string)
|
向合作模式演职员表添加名称 |
AddGladosSpokenFlags
|
void AddGladosSpokenFlags(int, int)
|
添加特定对话行的位标志(按会话追踪) |
CoopGladosBlowUpBots
|
void CoopGladosBlowUpBots()
|
摧毁两个机器人并阻止重生(用于合作课程1到4最后一关) |
CoopGetNumPortalsPlaced
|
int CoopGetNumPortalsPlaced()
|
获取玩家已放置的传送门数量 |
CoopGetLevelsCompletedThisBranch
|
int CoopGetLevelsCompletedThisBranch()
|
获取当前分支中已完成的关卡数 |
CoopGetBranchTotalLevelCount
|
int CoopGetBranchTotalLevelCount()
|
获取当前分支的关卡总数 |
CoopSetCameFromLastDLCMap
|
void CoopSetCameFromLastDLCMap(bool)
|
设置玩家是否来自最后的合作DLC地图(合作课程6) |
CoopSetMapRunTime
|
void CoopSetMapRunTime(float runLength)
|
设置完成合作地图的时间(可能与Triple Crown(三皇冠)成就相关) |
GetBluePlayerIndex
|
int GetBluePlayerIndex()
|
获取蓝色玩家索引 |
GetCameFromLastDLCMap
|
bool GetCameFromLastDLCMap()
|
检查是否来自最后的合作DLC地图 |
GetCoopBranchLevelIndex
|
int GetCoopBranchLevelIndex(int)
|
获取指定分支的当前选定关卡索引 |
GetCoopSectionIndex
|
int GetCoopSectionIndex()
|
获取合作玩家选择加载的章节索引 |
GetGladosSpokenFlags
|
int GetGladosSpokenFlags(int)
|
获取特定对话行的位标志 |
GetHaveSeenDLCTubesReveal
|
bool GetHaveSeenDLCTubesReveal()
|
检查玩家是否已观看DLC管道 |
GetHighestActiveBranch
|
int GetHighestActiveBranch()
|
获取大厅中已解锁的最高关卡 |
GetNumPlayersConnected
|
int GetNumPlayersConnected()
|
获取已连接玩家数(通常为2) |
GetOrangePlayerIndex
|
int GetOrangePlayerIndex()
|
获取橙色玩家索引 |
GetPlayerDeathCount
|
int GetPlayerDeathCount(int player)
|
获取指定玩家在会话中的死亡次数 |
IsBranchComplete
|
bool IsBranchComplete(int course)
|
检查分支所有关卡是否已完成 |
IsLevelComplete
|
bool IsLevelComplete(int course, int level)
|
检查指定分支关卡是否已完成 |
IsLocalSplitScreen
|
bool IsLocalSplitScreen()
|
检查是否为本地分屏模式 |
IsPlayerBranchComplete
|
bool IsPlayerBranchComplete(int player, int course)
|
检查指定玩家是否完成分支所有关卡 |
IsPlayerLevelComplete
|
bool IsPlayerLevelComplete(int, int, int)
|
检查指定玩家是否完成特定分支关卡 |
MarkMapComplete
|
void MarkMapComplete(string)
|
标记地图为已完成(双方玩家) |
NotifySpeedRunSuccess
|
void NotifySpeedRunSuccess(int runLength, string mapname)
|
通知客户端速通成功(用于Triple Crown(三皇冠)成就) |
SaveMPStatsData
|
void SaveMPStatsData()
|
保存多人游戏统计信息(记分牌) |
SetHaveSeenDLCTubesReveal
|
void SetHaveSeenDLCTubesReveal()
|
标记玩家已看见DLC管道 |