meta data for this page
  •  

📚 差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
scripting:client:character [2024/03/18 14:07] bibiboxsscripting:client:character [2025/08/27 15:10] (当前版本) bibiboxs
行 1: 行 1:
 <markdown> <markdown>
 # Client/Character # Client/Character
 +> 注意:有关客户端的同步内容,可能受到`Stream`流的同步范围影响,不一定所有对象都在被激活状态(距离过远,没有同步)。
  
 ## Event ## Event
  
-### OnCharacterEnterVehicle(character, vehicle, seat )+### OnCharacterBaseState( character, baseState )
  
-> 当角色进入载具时触发。+> 当角色`BaseState`发生改变时触发。
  
  
  
-### OnCharacterExitVehicle( character, vehicleseat )+### OnCharacterPropAction( character, prophitPos )
  
-> 当角色离开载具时触发。+> 当角色进行一次攻击\行为时触发。 
 +>  
 +> 注意:如果服务端设置`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: string character.UUID: string
 +```
 +
 +
 +
 +### character.Name
 +
 +> 获取实例对象的名称(即使被`Owner`控制也不会返回玩家名)。
 +
 +```javascript
 +character.Name: string
 ``` ```
  
行 40: 行 77:
 ### character.Pos ### character.Pos
  
-> 获取实例对象的坐标位置。+> 获取实例对象的坐标位置,如果当前角色正在被玩家本地控制,此属性可以进行修改
  
 ```javascript ```javascript
 character.Pos: Vector character.Pos: Vector
 +```
 +
 +
 +
 +### character.Forward
 +
 +> 获取角色正前方向量。
 +
 +```javascript
 +character.Forward: Vector
 ``` ```
  
行 54: 行 101:
 ```javascript ```javascript
 character.Angle: float character.Angle: float
 +```
 +
 +
 +### character.HAngle
 +
 +> 获取角色本地偏移角度(水平)。
 +
 +```javascript
 +character.HAngle: float
 +```
 +
 +
 +
 +### character.VAngle
 +
 +> 获取角色本地偏移角度(前后)。
 +
 +```javascript
 +character.VAngle: float
 ``` ```
  
行 74: 行 140:
 ```javascript ```javascript
 character.Armour: int character.Armour: int
 +```
 +
 +
 +
 +### character.BaseState
 +
 +> 获取角色[基础状态](reference/instances)。
 +
 +```javascript
 +character.BaseState: int
 ``` ```
  
行 108: 行 184:
  
  
-### character.PropID+### character.Prop
  
-> 获取实例对象的手持道具ID+> 获取实例对象的**手持道具对象**(结构)
  
 ```javascript ```javascript
-character.PropIDint +character.PropProp
-``` +
- +
- +
- +
-### character.PropAmount +
- +
-> 获取实例对象的手持道具数量(单一物品数量`Amount`,并非全部背包数量)。 +
- +
-```javascript +
-character.PropAmount: int+
 ``` ```
  
行 154: 行 220:
 ```javascript ```javascript
 character.Owner: Player character.Owner: Player
 +```
 +
 +
 +
 +### character.IsAI
 +
 +> 获取角色是否为NPC(AI)。
 +
 +```javascript
 +character.IsAI: bool
 +```
 +
 +
 +
 +### character.IsPlayer
 +
 +> 获取角色是否为玩家控制的角色。
 +
 +```javascript
 +character.IsPlayer: bool
 +```
 +
 +
 +
 +### character.IsLocal
 +
 +> 获取实例对象是否为本地玩家控制,此方法会自动检测`Null`(**专用服务器模式**本地空玩家的特殊属性)而不会触发异常。
 +
 +```javascript
 +character.IsLocal: bool
 +```
 +
 +
 +
 +### character.IsDriver
 +
 +> 获取角色是否在主驾驶载具(仅主驾驶有效,乘员状态将返回`false`)。
 +
 +```javascript
 +character.IsDriver: bool
 +```
 +
 +
 +
 +### character.IsPassenger
 +
 +> 获取角色是否在**乘坐载具**(即使角色正在主驾驶,也会返回`true`)。
 +
 +```javascript
 +character.IsPassenger: bool
 +```
 +
 +
 +
 +### character.IsInWater
 +
 +> 获取角色是否**在水中**。
 +
 +```javascript
 +character.IsInWater: bool
 +```
 +
 +
 +
 +### character.IsOnFire
 +
 +> 获取角色是否**正在燃烧**。
 +
 +```javascript
 +character.IsOnFire: bool
 +```
 +
 +
 +
 +### character.IsSwimming
 +
 +> 获取角色是否**正在游泳**。
 +
 +```javascript
 +character.IsSwimming: bool
 +```
 +
 +
 +
 +### character.IsCrouch
 +
 +> 获取角色是否**正在蹲下**。
 +
 +```javascript
 +character.IsCrouch: bool
 +```
 +
 +
 +
 +### character.BodyHeight
 +
 +> 获取角色身体高度(本地偏移量),不同的角色类型可能有不同高度,通常为头部偏高一点的位置。
 +
 +> 扩展:可能用于获取头顶`Bubble`显示的高度。
 +
 +```javascript
 +character.BodyHeight: float
 +```
 +
 +
 +
 +### character.FocusMode
 +
 +> 获取角色**专注聚焦模式**开关。
 +
 +```javascript
 +character.FocusMode: bool
 +```
 +
 +
 +
 +### character.FlyMode
 +
 +> 获取角色**飞行模式**开关。
 +
 +```javascript
 +character.FlyMode: bool
 +```
 +
 +
 +
 +### character.GhostMode
 +
 +> 获取角色**幽灵模式**开关。
 +
 +```javascript
 +character.GhostMode: bool
 ``` ```
  
行 197: 行 395:
 function Character.Get( index: int ): Character function Character.Get( index: int ): Character
 ``` ```
 +
 +
 +
 +## Function
 +
 +### character.GetNodeExtendPos()
 +
 +> 获取角色指定节点位置的当前世界坐标,如果不存在节点则返回`Vector(0, 0, 0)`。
 +
 +```javascript
 +function character.GetNodeExtendPos( node: int, isLocal: bool = false ): Vector
 +```
 +
 +- **node:**角色节点位置(索引)
 +- **isLocal:**是否获取本地空间结果
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +