meta data for this page
📚 差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
| scripting:client:character [2024/03/18 14:07] – bibiboxs | scripting:client:character [2025/08/27 15:10] (当前版本) – bibiboxs | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| < | < | ||
| # Client/ | # Client/ | ||
| + | > 注意:有关客户端的同步内容,可能受到`Stream`流的同步范围影响,不一定所有对象都在被激活状态(距离过远,没有同步)。 | ||
| ## Event | ## Event | ||
| - | ### OnCharacterEnterVehicle(character, | + | ### OnCharacterBaseState( character, |
| - | > 当角色进入载具时触发。 | + | > 当角色`BaseState`发生改变时触发。 |
| - | ### OnCharacterExitVehicle( character, | + | ### OnCharacterPropAction( character, |
| - | > 当角色离开载具时触发。 | + | > 当角色进行一次攻击\行为时触发。 |
| + | > | ||
| + | > 注意:如果服务端设置`character.CanAction == false`等,则不会触发此事件。 | ||
| + | |||
| + | |||
| + | |||
| + | ### OnCharacterPropFocus( character, prop, state ) | ||
| + | |||
| + | > 当角色切换焦点状态时触发(鼠标右键按下\松开)。 | ||
| + | |||
| + | |||
| + | |||
| + | ## Static Property | ||
| + | |||
| + | ### Character.Local | ||
| + | |||
| + | > 获取本地玩家正在控制的角色对象。 | ||
| + | > | ||
| + | > **==注意:在专用服务器模式(`BatchMode`)下,通过服务器自身脚本访问此属性,将会得到一个空值`Null`,因为专用服务器本身并不包含本地玩家。==** | ||
| + | |||
| + | [note2] | ||
| + | 由于**专用服务器模式**本地空玩家的特殊属性,`Character`类对象提供了一个快捷检测方法:`character.IsLocal`判断是否为本地玩家角色,此方法会自动检测`Null`而不会触发异常。 | ||
| + | [/note] | ||
| + | |||
| + | ```javascript | ||
| + | if(Character.Local) DLog(Character.Local.Pos); | ||
| + | ``` | ||
| 行 34: | 行 61: | ||
| ```javascript | ```javascript | ||
| character.UUID: | character.UUID: | ||
| + | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ### character.Name | ||
| + | |||
| + | > 获取实例对象的名称(即使被`Owner`控制也不会返回玩家名)。 | ||
| + | |||
| + | ```javascript | ||
| + | character.Name: | ||
| ``` | ``` | ||
| 行 40: | 行 77: | ||
| ### character.Pos | ### character.Pos | ||
| - | > 获取实例对象的坐标位置。 | + | > 获取实例对象的坐标位置,如果当前角色正在被玩家本地控制,此属性可以进行修改。 |
| ```javascript | ```javascript | ||
| character.Pos: | character.Pos: | ||
| + | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ### character.Forward | ||
| + | |||
| + | > 获取角色正前方向量。 | ||
| + | |||
| + | ```javascript | ||
| + | character.Forward: | ||
| ``` | ``` | ||
| 行 54: | 行 101: | ||
| ```javascript | ```javascript | ||
| character.Angle: | character.Angle: | ||
| + | ``` | ||
| + | |||
| + | |||
| + | ### character.HAngle | ||
| + | |||
| + | > 获取角色本地偏移角度(水平)。 | ||
| + | |||
| + | ```javascript | ||
| + | character.HAngle: | ||
| + | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ### character.VAngle | ||
| + | |||
| + | > 获取角色本地偏移角度(前后)。 | ||
| + | |||
| + | ```javascript | ||
| + | character.VAngle: | ||
| ``` | ``` | ||
| 行 74: | 行 140: | ||
| ```javascript | ```javascript | ||
| character.Armour: | character.Armour: | ||
| + | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ### character.BaseState | ||
| + | |||
| + | > 获取角色[基础状态](reference/ | ||
| + | |||
| + | ```javascript | ||
| + | character.BaseState: | ||
| ``` | ``` | ||
| 行 108: | 行 184: | ||
| - | ### character.PropID | + | ### character.Prop |
| - | > 获取实例对象的手持道具ID。 | + | > 获取实例对象的**手持道具对象**(结构)。 |
| ```javascript | ```javascript | ||
| - | character.PropID: int | + | character.Prop: Prop |
| - | ``` | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | ### character.PropAmount | + | |
| - | + | ||
| - | > 获取实例对象的手持道具数量(单一物品数量`Amount`,并非全部背包数量)。 | + | |
| - | + | ||
| - | ```javascript | + | |
| - | character.PropAmount: | + | |
| ``` | ``` | ||
| 行 154: | 行 220: | ||
| ```javascript | ```javascript | ||
| character.Owner: | character.Owner: | ||
| + | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ### character.IsAI | ||
| + | |||
| + | > 获取角色是否为NPC(AI)。 | ||
| + | |||
| + | ```javascript | ||
| + | character.IsAI: | ||
| + | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ### character.IsPlayer | ||
| + | |||
| + | > 获取角色是否为玩家控制的角色。 | ||
| + | |||
| + | ```javascript | ||
| + | character.IsPlayer: | ||
| + | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ### character.IsLocal | ||
| + | |||
| + | > 获取实例对象是否为本地玩家控制,此方法会自动检测`Null`(**专用服务器模式**本地空玩家的特殊属性)而不会触发异常。 | ||
| + | |||
| + | ```javascript | ||
| + | character.IsLocal: | ||
| + | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ### character.IsDriver | ||
| + | |||
| + | > 获取角色是否在主驾驶载具(仅主驾驶有效,乘员状态将返回`false`)。 | ||
| + | |||
| + | ```javascript | ||
| + | character.IsDriver: | ||
| + | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ### character.IsPassenger | ||
| + | |||
| + | > 获取角色是否在**乘坐载具**(即使角色正在主驾驶,也会返回`true`)。 | ||
| + | |||
| + | ```javascript | ||
| + | character.IsPassenger: | ||
| + | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ### character.IsInWater | ||
| + | |||
| + | > 获取角色是否**在水中**。 | ||
| + | |||
| + | ```javascript | ||
| + | character.IsInWater: | ||
| + | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ### character.IsOnFire | ||
| + | |||
| + | > 获取角色是否**正在燃烧**。 | ||
| + | |||
| + | ```javascript | ||
| + | character.IsOnFire: | ||
| + | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ### character.IsSwimming | ||
| + | |||
| + | > 获取角色是否**正在游泳**。 | ||
| + | |||
| + | ```javascript | ||
| + | character.IsSwimming: | ||
| + | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ### character.IsCrouch | ||
| + | |||
| + | > 获取角色是否**正在蹲下**。 | ||
| + | |||
| + | ```javascript | ||
| + | character.IsCrouch: | ||
| + | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ### character.BodyHeight | ||
| + | |||
| + | > 获取角色身体高度(本地偏移量),不同的角色类型可能有不同高度,通常为头部偏高一点的位置。 | ||
| + | > | ||
| + | > 扩展:可能用于获取头顶`Bubble`显示的高度。 | ||
| + | |||
| + | ```javascript | ||
| + | character.BodyHeight: | ||
| + | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ### character.FocusMode | ||
| + | |||
| + | > 获取角色**专注聚焦模式**开关。 | ||
| + | |||
| + | ```javascript | ||
| + | character.FocusMode: | ||
| + | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ### character.FlyMode | ||
| + | |||
| + | > 获取角色**飞行模式**开关。 | ||
| + | |||
| + | ```javascript | ||
| + | character.FlyMode: | ||
| + | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ### character.GhostMode | ||
| + | |||
| + | > 获取角色**幽灵模式**开关。 | ||
| + | |||
| + | ```javascript | ||
| + | character.GhostMode: | ||
| ``` | ``` | ||
| 行 197: | 行 395: | ||
| function Character.Get( index: int ): Character | function Character.Get( index: int ): Character | ||
| ``` | ``` | ||
| + | |||
| + | |||
| + | |||
| + | ## Function | ||
| + | |||
| + | ### character.GetNodeExtendPos() | ||
| + | |||
| + | > 获取角色指定节点位置的当前世界坐标,如果不存在节点则返回`Vector(0, | ||
| + | |||
| + | ```javascript | ||
| + | function character.GetNodeExtendPos( node: int, isLocal: bool = false ): Vector | ||
| + | ``` | ||
| + | |||
| + | - **node:**角色节点位置(索引) | ||
| + | - **isLocal:**是否获取本地空间结果 | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||