事件

# 您可以使用 [callbacks.Register()](doc:O2EcwsHc) 来追踪下列事件的触发 ### Draw 每帧渲染都会被触发,经常配合 **[draw.*](doc:FEHo2RQL)** 函数使用 --- ### CreateMove 每tick被触发,返回封装好的 UserCmd 类给回调方法。 键值索引 | 介绍 --- | ----------- **chokedcommands** | 当前已经被阻塞的 UserCmd 计数 **command_number** | 当前 UserCmd 的序号 **tick_count** | 当前 tick 计数 **viewangles** | 当前的视角(封装为 **[欧拉角](doc:g3sER7An)**) **aimdirection** | 瞄准方向(封装为 **[三维向量](doc:cQ9pAMn4)**) **forwardmove** | 向前 / 向后的移动速度(最大值为 450) **sidemove** | 向左 / 向右的移动速度(最大值为 450) **upmove** | 向上的移动速度 **buttons** | 当前按下的按钮(请使用 **位运算** 来计算和修改) **impulse** | 当前的冲量(即末动量减去初动量) **weaponselect** | 当前玩家的武器选择(武器 ID) **weaponsubtype** | 当前玩家的武器副类型 **random_seed** | 当前 tick 的伪随机种子(CRC 使用) **mousedx** | 鼠标在屏幕上的水平位置 **mousedy** | 鼠标在屏幕上的垂直位置 **hasbeenpredicted** | 当前是否吻合服务器的预测轨迹补偿 **headangles** | 头部视角(封装为 **[欧拉角](doc:g3sER7An)**) **headoffset** | 头部补偿向量(封装为 [**三维向量**](doc:cQ9pAMn4)) **sendpacket** | 当前 UserCmd 是否被阻塞 --- ### FireGameEvent 当 **监听的游戏事件被触发** 时触发,返回封装好的 GameEvent 类给回调方法。 可通过 **client.AllowListener('事件名')** 来监听。 [游戏事件 文档 (由 AlliedModders 维护)](https://wiki.alliedmods.net/Counter-Strike:_Global_Offensive_Events) 方法名 | 接受参数 |介绍 --- |------ |----------- **GetName** | 空 | 获得被触发的当前 GameEvent 名称 **GetString** | 字段名称 | 以 **字符串** 的形式返回所请求 **字段名称** 的内容 **GetInt** | 字段名称 | 以 **整数** 的形式返回所请求 **字段名称** 的内容 **GetFloat** | 字段名称 | 以 **浮点数** 的形式返回所请求 **字段名称** 的内容 --- ### DispatchUserMessage 每次服务器下发 UserMessage 时触发,返回封装好的 UserMessage 类给回调方法。 [UserMessage 文档 (由 Steam Database 维护)](https://github.com/SteamDatabase/Protobufs/blob/master/csgo/cstrike15_usermessages.proto) 方法名 | 接受参数 |介绍 --- |------ |----------- **GetID** | 空 | 获得被触发的当前 UserMessage 类型 ID **GetString** | 索引,重复索引 | 以 **字符串** 的形式返回所请求 **索引** 的内容 **GetInt** | 索引,重复索引 | 以 **整数** 的形式返回所请求 **索引** 的内容 **GetFloat** | 索引,重复索引 | 以 **浮点数** 的形式返回所请求 **索引** 的内容 --- ### SendStringCmd 当 **控制台指令发送给服务器** 时触发,返回封装好的 StringCmd 类给回调方法。 方法名 | 接受参数 |介绍 --- |------ |----------- **Get** | 空 | 获取发送给服务器的指令内容 **Set** | 字符串 | 设置发送给服务器的指令内容 --- ### AimbotTarget 当 合法自瞄 / 暴力自瞄 **锁定/更换** 目标时触发,返回更换后的[玩家实体](doc:OCsAv1zG)。 --- ### DrawESP 每次 **循环渲染 ESP** 时触发,返回封装好的 EspBuilder 类给回调方法。 方法名 | 接受参数 |介绍 --- |------ |----------- **GetEntity** | 空 | 构建 ESP 的 **[玩家实体](doc:OCsAv1zG)** **GetRect** | 空 | 构建 ESP 的 **[玩家实体](doc:OCsAv1zG)** 的方框 *x, y, w, h* **Color** | 红,绿,蓝,透明 | 构建 ESP 的 **[玩家实体](doc:OCsAv1zG)** 的 ESP 颜色 **AddTextTop** | 字符串 | 在 **[玩家实体](doc:OCsAv1zG)** 的顶部渲染字符串 **AddTextBottom** | 字符串 | 在 **[玩家实体](doc:OCsAv1zG)** 的底部渲染字符串 **AddTextLeft** | 字符串 | 在 **[玩家实体](doc:OCsAv1zG)** 的左侧渲染字符串 **AddTextRight** | 字符串 | 在 **[玩家实体](doc:OCsAv1zG)** 的右侧渲染字符串 **AddBarTop** | 百分比 | 在 **[玩家实体](doc:OCsAv1zG)** 的顶部渲染进度条 **AddBarBottom** | 百分比 | 在 **[玩家实体](doc:OCsAv1zG)** 的底部渲染进度条 **AddBarLeft** | 百分比 | 在 **[玩家实体](doc:OCsAv1zG)** 的左侧渲染进度条 **AddBarRight** | 百分比 | 在 **[玩家实体](doc:OCsAv1zG)** 的右侧渲染进度条 **AddIconTop** | 材质 ID | 在 **[玩家实体](doc:OCsAv1zG)** 的顶部渲染指定材质 **AddIconBottom** | 材质 ID | 在 **[玩家实体](doc:OCsAv1zG)** 的底部渲染指定材质 **AddIconLeft** | 材质 ID | 在 **[玩家实体](doc:OCsAv1zG)** 的左侧渲染指定材质 **AddIconRight** | 材质 ID | 在 **[玩家实体](doc:OCsAv1zG)** 的右侧渲染指定材质 --- ### DrawModel 每次 **模型渲染(例:玩家模型 / 武器模型)** 时触发,返回封装好的 DrawModelContext 类给回调方法。 方法名 | 接受参数 |介绍 --- |------ |----------- **GetEntity** | 空 | 返回封装好的 **[当前实体](doc:OCsAv1zG)** **ForcedMaterialOverride** | 材质 ID | 用 **[指定材质](doc:2IqAlUHf)** 覆盖 **[当前材质](doc:2IqAlUHf)** **DrawExtraPass** | 空 | 再对 **[当前实体](doc:OCsAv1zG)** 进行一次渲染 --- ### Unload 每次 **卸载当前 Lua** 时触发。 ```lua callbacks.Register("Unload", function () print("Unload") end) ```