概述
可执行函数是使用虚幻脚本在类内部定义的特殊函数类型。这些函数可以由处于运行时的用户执行,通过在引擎运行过程中调出游戏内置控制台(通常是通过按下 ~ 按键)并在该函数可能需要的任何参数后面输入函数的名称。这些函数类似于控制台命令,可以在控制台中执行,但是还是有所不同,因为它们是在脚本中进行定义的,而且可以很容易地添加、修改或删除。为可执行函数扫描的类(包括所有子类):
- Input(输入)
- Controller(控制器)
- Pawn
- InventoryManager(武器库管理器)
- Weapon(武器)
- HUD
- GameInfo
- CheatManager(秘籍管理器)
- GameViewportClient
- Interaction - 将会执行放置到PlayerController的交易中交易,但是不会在控制台命令中全部显示出来
创建新的可执行函数
要添加新的可执行函数,这样就可以将它映射到一个按键上,它与在函数前面添加“可执行函数”一样简单。下面的示例会显示图和添加一个参数化的可执行函数。
ExamplePawn.uc
exec function MyExecFunction(int ParameterA){ `Log("The user executed my custom function with "$ParameterA);}
更改 *Input.ini
将一个新的可执行函数添加到您自己的类中将会允许控制台执行这些函数,但是通常您需要将它们直接绑定到一个按键上。进行这项操作的方法是将这个按键绑定添加到您的 *Input.ini。这个 * 是前缀,它可以是Default(如果您希望添加一个默认按键绑定)或者UDK(如果您希望添加一个非默认按键绑定,而是UDK指定按键绑定)。这些配置文件通常放置在%UDK_ROOT%\UDKGame\Config\(其中UDKGame将是您的游戏项目文件夹)中。要添加一个新的按键绑定,请确保将其插入到[Engine.PlayerInput]配置组下面。下面的示例会显示如何将一个按键绑定到 H 上,通过在上面的示例中定义的参数运行这个自定义可执行函数。
.Bindings=(Name="H",Command="MyExecFunction 99")
现有引擎可执行函数
下面列出的可执行函数都可以在基础引擎类中找到。
游戏管理这些函数可以让您管理当前游戏。大多数这些函数要求您以管理员身份登录到服务器,而有些函数只要求您具有某些特定特权即可。
- Admin [command] –这会在您以管理员身份登录的服务器上执行一个管理员命令。
- Kick [command] [users] – 从游戏中删除一个用户。用户可以使他们的 ID(如踢除列表命令所示)或一个名称(*可以用作一个通配符)。该命令可选,也可以是以下其中一个命令:
- List – 显示所有玩家及其 ID
- Ban – 不允许玩家返回
- Session – 禁止用户(仅限该游戏)
- KickBan [users] – 删除游戏中的一个用户并不允许他们返回。用户可以使他们的 ID(如踢除列表命令所示)或一个名称(*可以用作一个通配符)。
- KillBots – 删除游戏中的所有机器人。
- PlayerList – 显示所有玩家名称以及他们的 ping 时间。
- RestartMap – 重启当前地图。
- Switch [map] – 根据地图的值通知服务器更改关卡。将地图解析为地图 URL(请参阅 CommandLineArguments(命令行参数)了解更多有关地图 URL 的详细信息)。
秘籍这些函数在大多数游戏中被看做是秘籍,但是通常都是在开发过程中使用。
- AffectedByHitEffects – 使玩家不受所有撞击效果影响(例如,冲力、撞击效果等等)。
- AllAmmo – 将弹药数目设置为所有武器的最大值
- AllWeapons – 为玩家提供游戏中所有可用的武器。
- Amphibious - 使玩家可以实际不限定地呆在水下(设置 Paw.UnderwaterTime = 999999.0)。
- EnableCheats - 在游戏中启用秘籍
- Fly - 使玩家可以用飞代替走。
- FreezeFrame [delay] - 由于特定延迟时间,强制游戏暂停。
- Ghost - 使玩家处于可以飞,穿越几何体且不受伤害影响的‘幽灵般’的状态。
- GiveWeapon [weaponclass] - 为玩家提供一个特定的武器类的实例。
- God - 使玩家处于不会再受到伤害影响的状态。
- KillAll [class] - 销毁或破坏关卡中特定类的所有实例。
- KillPawns - 销毁关卡中的所有 pawn。
- KillViewActor - 销毁或破坏当前设置为 ViewTarget(视图目标)的 actor。
- Loaded - 为玩家提供所有可用的武器以及这些武器上的全部弹药。这相当于调用 AllWeapons,然后再调用 AllAmmo。
- PlayersOnly - 将世界设置为只更新玩家,忽略所有其他 actors。
- SetGravity [amount] - 将 Z 轴的重力设置为特定的数量。
- SetJumpZ [height] - 将玩家可以跳动的垂直距离 a 设置为指定高度。
- SetSpeed [multiplier] - 使用指定的乘法器乘以玩家的默认地面和水面速度。
- Slomo [speed] - 将游戏速度设置为指定的速度。
- Summon [classname] - 召唤或生成一个特定的类名称的实例(这是包类字符串)。
- Teleport - 将玩家传送到他们正在查看的表面。
- Walk - 将玩家设置恢复为默认的走动状态。
调试命令这些函数通常在运行时调试的时候使用。
- Avatar [classname] - 拥有一个特定类名称的 pawn(这是一种名称类型)。
- BugItGo [X] [Y] [Z] [Pitch] [Yaw] [Roll] - 将玩家移动到该位置 (X, Y, Z) 并为了查看提交的 BugIt bug 而指定进行的旋转(Pitch(倾斜), Yaw(偏离), Roll(翻转))。
- CauseEvent [EventName] - 使用给定的 EventName 触发 Kismet 事件。
- CE [EventName] - 使用给定的 EventName 触发控制台事件。
- ChangeSize multiplier - 将玩家的尺寸设置为是默认玩家尺寸的倍数。
- ClearProgressMessages - 清除所有进度消息;将它们设置为一个空的字符串。
- ConsoleKey [key] - 将指定按键的按键按下事件从控制台发送到系统。这适用于远程调试,前提是您不具有输入数据的本地键盘访问权限。
- CrowdDebug [bEnable] - 触发显示群体代理程序的后期渲染信息。
- CrowdFocus - 为附近可见的群体代理程序显示后期渲染信息。
- CrowdToggle - 触发所有群体管理器打开或关闭。
- DebugCreatPlayer [controllerid] - 使用给定的生成规则创建尝试从控制器输入数据的玩家。
- DebugPause - 记录当前正在进行的游戏的暂停状态。
- DebugRemovePlayer [controllerid] - 使用给定的生成规则删除尝试从控制器输入数据的玩家。
- DestroyFractures [radius] - 使所有特定半径范围内的已破裂静态网格物体彼此分离。半径为可选项,默认值为 256.0 单位。
- DumpOnlineSessionState - 记录游戏类型和网络层的当前会话状态。
- DumpVoiceMutingState - 记录服务器的当前噪音抑制状态。
- EndPath - 停止插值。
- FractureAllMeshes - 在关卡内部所有破裂的静态网格物体中,至少会使一个破裂要被停止。
- FractureAllMeshesToMaximizeMemoryusage - 使关卡内部所有破裂的静态网格物体以会最大化内存使用情况的方式破裂。
- FXPlay [class] [anim] - 查找给定类最近的 pawn,然后播放这个特定的 FaceFX 动画。
- FXStop [class] - 查找给定类最近的 pawn,然后停止所有当前正在播放的 FaceFX 动画。
- ListConsoleEvents -显示 HUD 上所有控制台事件的列表。
- ListCE - 显示 HUD 上所有控制台事件的列表。
- ListDynamicActors - 将所有动态 actor(在关卡开始后创建的 actor)的列表输出到记录中。
- LogLoc - 使用 BugIt 格式记录玩家的当前位置,但是没有进行截屏或采取进一步行动。
- MoreSpeed - 强制玩家进入跑步状态。
- NormalSpeed - 强制玩家进入走动状态。
- NavMeshVerification - 启用计时器进行定期的导航网格物体验证。
- PathChild [count] - 为了进行调试,沿着当前路径向前前进一步。
- PathClear - 清除所有调试路径信息。
- PathStep [count] - 为了进行调试,沿着当前路径向前前进一步。
- RefreshFormatting - 强制为活动的 UIScene 进行格式更新和场景刷新。
- RememberSpot - 将当前位置指定为需要记住供路径测试使用的地点。
- RemoteEvent [EventName] - 在 Kismet 中使用控制台提供的 EventName(事件名称)触发 Kismet 中的远程事件。
- RE [EventName] - 在 Kismet 中使用控制台提供的 EventName(事件名称)触发 Kismet 中的远程事件。
- SaveActorConfig [actorname] - 使用与指定的 actorname(actor 名称)相符的名称保存 actor 的配置。
- SaveClassConfig [classname] - 保存给定的类名称的配置。
- SendToConsole [command] - 执行给定的控制台命令。
- SetConsoleTarget [playerindex] - 在会执行控制台命令的玩家上下文中设置玩家(在 GamePlayers(游戏玩家)数组中根据玩家索引进行选择)。
- SetFreezeRendering - 触发 FREEZERENDERING 控制台命令固定渲染状态。
- SetOnlineDebugLevel [level] - 将特定操作系统登录关卡设置为给定关卡(这是一个整型变量)。
- SetSplit [mode] - 将分屏配置设置为特定的 ESplitScreenType(分屏类型)模式。
- ShowDatatStoreField [markup] - 使用给定的标记将数据存储的值输出到记录中。
- ShowDataStores [bVerbose] - 将所有已注册的数据存储输出到记录中。如果已经指定了 bVerbose(冗余)并将其设置为真,会显示有关每个数据存储的详细信息。
- ShowDebug [debugtype] - 触发显示玩家的当前 ViewTarget(视图目标)的属性。如果已经指定了 debugtype(调试类型),那么会触发该特定类型,但是启用的属性不会再处于整体显示的状态。如果没有指定,会触发整体显示状态。
- ShowDebugSelectedInfo - 触发会显示有关调试相机正在查看的 actor 的信息显示。
- ShowDockingStacks - 显示所有活动的 UIScenes 的停靠栈。
- ShowGameDebug - 触发显示 GameInfo 调试信息。
- ShowGameState - 将 GameInfo 当前的状态栈转存到记录中。
- ShowPlayerState - 将玩家的状态栈转存到记录中。
- ShowTileSafeArea - 在视口上,绘制平铺显示的安全区。
- SSSwapControllers - 在玩家之间,旋转控制器 ID。这可以用于在只有一个控制器的情况下测试分屏多人游戏。
- StreamLevelIn [level] - 动态载入指定的关卡;
- StreamLevelOut [level] - 动态载出给定的关卡。
- TestLevel - 检查当前关卡内所有的 actors 是否有错误。
- TestNavMeshPath [bDrawPath] - 尝试计算从玩家的当前位置到玩家正在查看的位置之间的路径。如果 bDrawPath(绘制路径)为真,那么该路径将会显示在屏幕上(该项为可选项,默认值为真)。
- ToggleDebugCamera - 没有锁定游戏性而锁定本地玩家的输入的情况下,在玩家相机和调试相机之间切换。
- ToggleDebutInput - 会触发调试输入数据处理。
- UTrace - 会触发脚本函数调用的 跟踪/记录。
- VerbosePathDebug - 显示从玩家当前视口到 10000 个单位以外的距离进行 TraceActors 交互的结果。
- ViewActor [actorname] - 将具有给定 actorname(actor 名称)的 actor 设置为当前 ViewTarget(视图目标)并更改为第三人称视角。
- ViewBot - 会将玩家的 ViewTarget(视图目标)设置为目前没有设置为 Viewtarget(视图目标)的第一个机器人。
- ViewClass [class] - 会将玩家的 ViewTarget(视图目标)设置为目前没有设置为 ViewTarget(视图目标)的给定类的第一个实例。
- ViewFlag - 会将玩家的 ViewTarget(视图目标)设置为旗手标志(如果有一个旗手标志)。
- ViewPlayer [playername] - 会将具有指定玩家名称的玩家设置为 ViewTarget(视图目标)。
- ViewSelf [bQuiet] - 会将玩家的 ViewTarget(视图目标)设置返回到它的 pawn。如果 bQuiet 为假,会向玩家显示一条消息(该项为可选项,默认值为假)。
- WriteToLog [message] - 会将消息输出到记录中,在后面加上“NOW! “。“.
玩家命令- Jump - 会使玩家跳动。
- LocalTravel [mapURL] - 会使客户端传导到指定的 mapURL。
- Mutate [command] - 会将指定命令一直传递到设置方法列表。
- QuickLoad - 加载由 QuickSave 可执行函数创建的保存游戏。
- QuickSave - 为正在进行的游戏创建一个保存版本。
- RestartLevel - 重启当前关卡。
- ShowMenu - 未实现。
- SmartJump - 会使玩家跳动。
- Suicide - 会使玩家自杀。
游戏性命令
设置- Camera [mode] - 将玩家的相机更改为特定模式(例如,“第一人称视角”或“第三人称视角”)。
- ChangeTeam [teamname] - 将玩家当前的团队更改为特定的团队名称(这是体现团队的颜色的字符串,例如,“红色”或“蓝色”)。
- ClearSmoothing - 会清除鼠标平滑处理。
- FOV [fovangle] - 将玩家相机的视图区域设置为特定的视场角。
- InvertMouse - 会触发颠倒鼠标输入。
- InvertTurn - 会触发颠倒的转弯。
- SetBind [bindname] [command] - 会使用特定绑定名称为指定命令创建一个新的按键绑定。
- SetName [name] - 将玩家的名称设置为给定的名称。
- SetSensitivity [sensitivity] - 将鼠标灵敏度设置为指定的敏感度。
- SetShowSubtitles [bShowSubtitles] - 根据 bShowSubtitles 的值显示或隐藏子标题。
- SwitchTeam - 将玩家从现有团队中切换到其他团队。
武器库- NextWeapon - 将玩家的武器切换为武器库中的下一个武器。
- PrevWeapon - 将玩家的武器切换为武器库中的上一个武器。
- StartFire [firemode] - 射出玩家当前使用可选开火模式选择的武器。
- StartAltFire [firemode] - 射出玩家当前使用备选开火模式选择的武器。
- StopFire [firemode] - 停止射出玩家当前使用可选开火模式选择的武器。
- StopAltFire [firemode] - 停止射出玩家当前使用备选开火模式选择的武器。
- SwitchToBestWeapon [bForceNewWeapon] - 尝试将玩家的武器更换为玩家武器库中最好的武器。如果 ForceNewWeapon(强制使用新武器)为真,那么这个新武器将会是与当前正在使用的武器不同的武器,假设玩家此时有多个武器(该选项为可选项,默认值为假)。
- ThrowWeapon - 扔掉玩家的当前武器并切换为一个新武器。
- Use - 使玩家可以互动,或尝试互动,与玩家接触的任何关卡对象进行互动。
通信- Say [message] - 向所有玩家发送指定消息
- Speech [type] [index] [callsign] - 向指定玩家发送指定类型的语音消息。
- Talk - 会打开一个装有可以发送消息的“对话”选项的微小控制台。
- TeamSay [message] - 向所有团队成员发送指定的消息。
- TeamTalk - 会打开一个装有可以发送团队消息的“团队对话”选项的微小控制台
HUD- ToggleHUD - 会触发所有 HUD 项的可见性。
- ShowHUD - 会触发所有 HUD 项的可见性。
- ShowScores - 会触发积分榜的可见性。
- SetShowScores [bShowScores} - 将积分榜的可见性状态设置为 bShowScores(显示积分)。
UTGame
在该部分列出的可执行函数值可以在 UTGame 类中找到,而在基础引擎中不可用。
游戏管理- AdminChangeMap [mapURL] - 使用给定的 mapURL 更改地图。
- AdminForceTextMute [user] - 阻止用户发送文本消息。
- AdminForceTextUnMute [user] - 允许用户发送文本消息
- AdminForceVoiceMute [user] - 阻止用户发送语音消息。
- AdminForceVoiceUnMute [user] - 允许用户发送语音消息。
- AdminKick [user] - 从游戏中踢出指定的用户。
- AdminKickBan [user] - 从游戏中踢出并禁止指定的用户。
- AdminLogin [password] - 使用提供的密码登录为服务器管理员。有些可执行命令要求以管理员身份运行。
- AdminLogout - 以服务器管理员身份注销。
- AdminPlayerList - 如显示客户端消息一样会显示所有玩家的列表。
- AdminRestartMap - 重启当前地图。
- Disconnect - 断开连接并返回到主要菜单。
秘籍- EditWeapon [weapon] - 会打开一个属性窗口,可以编辑指定武器的属性。如果没有指定武器,会将所有可用的武器输出到记录中。
- FreeCamera - 将玩家的相机设置为自由轨道相机模式。
- Glow [amount] - 将关卡中 UTVehicle 类的所有实例的 AmbientGlow 设置为指定的量(量的线性颜色LinearColor of amount, amount, amount, 1.0).
- Invisible [bInvisible] - 根据 bInvisible 的值设置可见性或不可见性。
- KillBadGuys - 销毁所有不在同一个团队作为玩家的 pawns。
- KillOtherBots - 销毁关卡中所有当前不是玩家的视图目标的机器人。
- KillOthers - 销毁关卡中除本地玩家以外的所有玩家。
- KillThis - 销毁本地玩家。
- LM [messageclass] - 将本地消息类设置为制定的消息类。
- LMS [switch] - 使玩家可以接收由当前本地消息类和给定的开关指定的本地消息。
- PhysicsGun - 为玩家提供实际枪支。
- RBGrav [gravityscaling] - 将关卡的刚体比重标度设置为指定的比重标度值。
- SetStickBind [value] - 将控制杆绑定设置为指定的值。
- ShowStickBindings - 将所有当前的控制杆绑定输出到记录中。
- SpawnABloodDecal - 在玩家当前所在位置生成一个血迹贴花。
- SuicideBy [damagetype] [healthvalue] - 使玩家可以使用指定的伤害类型和健康值自杀,以此测试死忙特效。
- SummonV [classname] - 召唤由提供的类名称指定的车辆。
- TiltIt [bActive] - 根据 bActive 的值,为玩家设置倾斜活动或不活动。
调试- AddBots [number] - 为了进行测试,会向关卡中添加指定机器人数。
- AddBlueBots [number] - 在团队游戏中为蓝队添加指定的机器人数。
- AddNamedBot [name] [bUseTeamNum] [teamnum] - 添加一个使用指定名称的机器人。如果 bUseTeamNum 为真而且指定了团队数,那么将该机器人添加到指定的团队。
- AddRedBots [number] - 在团队游戏中为红队添加指定的机器人数。
- AdjustCameraScale [bIn] - 根据 bIn 的值会将相机移进火移出。
- AngDriveDamp [amount] - 将玩家的物理资源的角度阻尼缩放比例设置为指定的量。
- AngDriveSpring [amount] - 将玩家的物理资源的角度弹性比例设置为指定的量。
- BackDamp [amount] - 将玩家的物理资源背面的阻尼比例设置为指定的量。
- BackSpring [amount] - 将玩家的物理资源背面的弹性比例设置为指定的量。
- DebugViewAcceleration - 会触发显示视图加速信息。
- DebugTargetAdhesion - 会触发目标粘着信息显示。
- DebugTargetFriction - 会触发目标摩擦信息显示。
- FixedView [visiblemeshes] - 在修复视图时开启玩家的视图。如果可视网格物体设置为“是”、“真”或“1”,那么可以看到网格物体。
- FlushDebug - 会齐平任何固定调试绘制。
- GetPlayerLoc - 会将玩家的所在位置和旋转输出到记录中。
- HandDamp [amount] - 将玩家的物理资源手的阻尼比例设置为 amount。
- HandSpring [amount] - 将玩家的物理资源手的弹性比例设置为 amount。
- LinDriveDAmp [springamount] [dampamount] - 将玩家的物理资源的线性阻尼比例设置为指定的 dampamount。
- LinDriveSpring [springamount] [dampamount] - 将玩家的物理资源的线性弹性比例设置为指定的 springamount。
- StartMusic - 如果没有音乐管理器,那么生成一个新的音乐管理器,并开始播放音乐。
- TestResetPhys - 重置玩家的物理状态。
- UnlockChapter [chapter] - 会为了可以进行测试而解开指定的秘籍。
- ViewObjective - 查看当前的可见实物。
- ViewPlayerByName [playername] - 将具有指定的 playername 的玩家设置为当前的 ViewTarget(视图目标)。
游戏性- BecomeActive - 从观看比赛到成为比赛中的选手。
- DropFlag - 如果玩家正扛着旗,这会强制玩家放弃旗。
- Duck - 使玩家停靠或蹲着。
- PlayVehicleHorm - 播放玩家正在驾驶的车的喇叭。
- RetrieveSettingsFromProfile - 会从目前的资料中加载玩家的设置。
- SetAutoTaunt [bAutoTaunt] - 将玩家的自动辱骂值设置为 bAutoTaunt 的指定值。
- Taunt [tauntindex] - 播放由 tauntindex 指定的辱骂。
- UnDuck - 使玩家处于蹲着的状态。
通信- ToggleSpeaking [bOn] - 根据 bOn 的值打开或关闭语音识别功能。
HUD- GrowHUD - 将丢失的元素添加到 HUD。
- ShrinkHUD - 删除 HUD 中的元素。
- ReleaseShowScores - 触发显示积分板。
- SetShowScores [bShowScores] - 根据 bShowScores 的值显示或隐藏积分板。
- ShowAllAI - 触发在 HUD 中 AI 覆盖层显示。
- ShowSquadRoutes - 触发会显示小队路线。
- ToggleMinimap - 会触发显示 HUD 上的迷你地图。
- ToggleScreenShotMode - 会触发所有 HUD 元素显示进行截屏。
|