SACLEO+

角色实体 Entity Char

角色骨骼、任务状态、武器与生命周期

sa · 扩展 CLEO+ · 需 CLEO + CLEO+

角色 / 玩家相关。入口见 entity。写法见 Lua / Redux

骨骼 / 透明度

GET_CHAR_BONE_MATRIX · 0D0B
Char.GetBoneMatrix

取角色骨骼矩阵地址。用在 if 里;失败没有有效地址。

0D0B GET_CHAR_BONE_MATRIX
in: self, pedBone
out: matrix
SET_CHAR_MODEL_ALPHA · 0D10
Char.SetModelAlpha

设角色模型透明度 0–255。

0D10 SET_CHAR_MODEL_ALPHA
in: self, alpha
GET_CHAR_BONE · 0D30
Char.GetBone

取骨骼节点地址。用在 if 里。

0D30 GET_CHAR_BONE
in: self, pedBone
out: address
GET_BONE_OFFSET_VECTOR · 0D31
Char.GetBoneOffsetVector

骨骼偏移向量指针。

0D31 GET_BONE_OFFSET_VECTOR
in: pedBone
out: offsetVector
GET_BONE_QUAT · 0D32
Char.GetBoneQuat

骨骼四元数指针(配合 GET_CHAR_BONE)。

0D32 GET_BONE_QUAT
in: bone
out: quat

生命 / 控制 / 扩展变量

GET_CHAR_MAX_HEALTH · 0D39
Char.GetMaxHealth

取角色最大生命。

0D39 GET_CHAR_MAX_HEALTH
in: self
out: maxHealth
IS_CHAR_SCRIPT_CONTROLLED · 0E0A
Char.IsScriptControlled

角色是否脚本控制。用在 if 里。

0E0A IS_CHAR_SCRIPT_CONTROLLED
in: self
MARK_CHAR_AS_NEEDED · 0E0B
Char.MarkAsNeeded

标记角色为脚本控制,避免被清理。

0E0B MARK_CHAR_AS_NEEDED
in: self
INIT_EXTENDED_CHAR_VARS · 0E14
Char.InitExtendedVars

给角色挂扩展变量槽。identifier 可用 "AUTO"(按脚本指针唯一)。用在 if 里。

0E14 INIT_EXTENDED_CHAR_VARS
in: self, identifier, totalVars
SET_EXTENDED_CHAR_VAR · 0E15
Char.SetExtendedVar

写角色扩展变量;需先 0E14。用在 if 里。

0E15 SET_EXTENDED_CHAR_VAR
in: self, identifier, varNumber, value
GET_EXTENDED_CHAR_VAR · 0E16
Char.GetExtendedVar

读角色扩展变量;未初始化则失败。用在 if 里。

0E16 GET_EXTENDED_CHAR_VAR
in: self, identifier, varNumber
out: value

贴地 / 坐标 / 任务

FIX_CHAR_GROUND_BRIGHTNESS_AND_FADE_IN · 0E24
Char.FixGroundBrightnessAndFadeIn

修正角色贴地/亮度,可选淡入。

0E24 FIX_CHAR_GROUND_BRIGHTNESS_AND_FADE_IN
in: self, fixGround, fixBrightness, fadeIn
SET_CHAR_COORDINATES_SIMPLE · 0E32
Char.SetCoordinatesSimple

直接写角色坐标,不做常规传送那套异常处理。

0E32 SET_CHAR_COORDINATES_SIMPLE
in: self, x, y, z
IS_CHAR_DOING_TASK_ID · 0E42
Char.IsDoingTaskId

角色是否在执行指定 taskId。用在 if 里。

0E42 IS_CHAR_DOING_TASK_ID
in: self, taskId
GET_CHAR_TASK_POINTER_BY_ID · 0E43
Char.GetTaskPointerById

按 taskId 取任务结构地址。用在 if 里。

0E43 GET_CHAR_TASK_POINTER_BY_ID
in: self, taskId
out: address
GET_CHAR_KILL_TARGET_CHAR · 0E44
Char.GetKillTargetChar

取角色当前击杀目标句柄。用在 if 里。

0E44 GET_CHAR_KILL_TARGET_CHAR
in: self
out: killTarget

行为状态

IS_CHAR_USING_GUN · 0E46
Char.IsUsingGun

是否在用枪。用在 if 里。

0E46 IS_CHAR_USING_GUN
in: self
IS_CHAR_FIGHTING · 0E47
Char.IsFighting

是否在肉搏。用在 if 里。

0E47 IS_CHAR_FIGHTING
in: self
IS_CHAR_FALLEN_ON_GROUND · 0E48
Char.IsFallenOnGround

是否倒地。用在 if 里。

0E48 IS_CHAR_FALLEN_ON_GROUND
in: self
IS_CHAR_ENTERING_ANY_CAR · 0E49
Char.IsEnteringAnyCar

是否在上车过程中。用在 if 里。

0E49 IS_CHAR_ENTERING_ANY_CAR
in: self
IS_CHAR_EXITING_ANY_CAR · 0E4A
Char.IsExitingAnyCar

是否在下车过程中。用在 if 里。

0E4A IS_CHAR_EXITING_ANY_CAR
in: self
IS_CHAR_PLAYING_ANY_SCRIPT_ANIMATION · 0E4B
Char.IsPlayingAnyScriptAnimation

是否在播脚本动画;includeAnims 控制范围。用在 if 里。

0E4B IS_CHAR_PLAYING_ANY_SCRIPT_ANIMATION
in: self, includeAnims
IS_CHAR_DOING_ANY_IMPORTANT_TASK · 0E4C
Char.IsDoingAnyImportantTask

是否在做重要任务;includeAnims 是否算动画。用在 if 里。

0E4C IS_CHAR_DOING_ANY_IMPORTANT_TASK
in: self, includeAnims

生命 / 武器 / 碰撞

GET_CHAR_HEALTH_PERCENT · 0E5C
Char.GetHealthPercent

取生命百分比(浮点)。

0E5C GET_CHAR_HEALTH_PERCENT
in: self
out: healthPercent
GET_CURRENT_CHAR_WEAPONINFO · 0E83
Char.GetCurrentWeaponinfo

取角色当前武器的 WeaponInfo。用在 if 里。

0E83 GET_CURRENT_CHAR_WEAPONINFO
in: self
out: handle
GET_CHAR_WEAPON_STATE · 0E8B
Char.GetWeaponState

取当前武器状态。

0E8B GET_CHAR_WEAPON_STATE
in: self
out: weaponState
GET_CHAR_WEAPON_CLIP · 0E8C
Char.GetCharWeaponClip

取当前弹匣余弹。

0E8C GET_CHAR_WEAPON_CLIP
in: self
out: weaponClip
GET_CHAR_COLLISION_SURFACE · 0E8E
Char.GetCollisionSurface

取角色碰撞表面类型。

0E8E GET_CHAR_COLLISION_SURFACE
in: self
out: surfaceType
GET_CHAR_COLLISION_LIGHTING · 0E8F
Char.GetCollisionLighting

取角色碰撞处光照。

0E8F GET_CHAR_COLLISION_LIGHTING
in: self
out: lighting

空中 / 任务清理 / 二号玩家

IS_CHAR_REALLY_IN_AIR · 0E92
Char.IsReallyInAir

是否真在空中(含降落伞/喷气背包)。用在 if 里。

0E92 IS_CHAR_REALLY_IN_AIR
in: self
CLEAR_CHAR_PRIMARY_TASKS · 0E96
Char.ClearPrimaryTasks

清主任务。

0E96 CLEAR_CHAR_PRIMARY_TASKS
in: self
CLEAR_CHAR_SECONDARY_TASKS · 0E97
Char.ClearSecondaryTasks

清次任务。

0E97 CLEAR_CHAR_SECONDARY_TASKS
in: self
SET_CHAR_SECOND_PLAYER · 0EA0
Char.SetSecondPlayer

把角色设为二号玩家控制;可选镜头与分车。

0EA0 SET_CHAR_SECOND_PLAYER
in: self, enableCamera, separateCars

着火 / 警察 / 逮捕

IS_CHAR_ON_FIRE · 0EA4
Char.IsOnFire

是否着火。用在 if 里。

0EA4 IS_CHAR_ON_FIRE
in: self
GET_CLOSEST_COP_NEAR_CHAR · 0EA5
Char.GetClosestCop

取角色附近最近警察。用在 if 里。

0EA5 GET_CLOSEST_COP_NEAR_CHAR
in: self, radius, alive, inCar, onFoot, seenInFront
out: closestCop
SET_CHAR_ARRESTED · 0EAA
Char.SetArrested

把 pedState 设为被逮捕。

0EAA SET_CHAR_ARRESTED
in: self
GET_CHAR_PEDSTATE · 0EAB
Char.GetPedState

取 pedState。

0EAB GET_CHAR_PEDSTATE
in: self
out: pedState

抗性 / 武器可见 / 统计

GET_CHAR_PROOFS · 0EAC
Char.GetProofs

取角色伤害抗性:子弹/火/爆/撞/近战。

0EAC GET_CHAR_PROOFS
in: self
out: bullet, fire, explosion, collision, melee
IS_CHAR_WEAPON_VISIBLE_SET · 0EAF
Char.IsWeaponVisibleSet

武器可见标志是否打开。用在 if 里。

0EAF IS_CHAR_WEAPON_VISIBLE_SET
in: self
GET_CHAR_STAT_ID · 0EB1
Char.GetStatId

取 pedStat id(data/pedstats.dat)。

0EB1 GET_CHAR_STAT_ID
in: self
out: pedStat
GET_CHAR_DAMAGE_LAST_FRAME · 0EB5
Char.GetDamageLastFrame

上一帧伤害:来源角色、武器、部位、强度。用在 if 里。

0EB5 GET_CHAR_DAMAGE_LAST_FRAME
in: self
out: entity, weaponType, bodyPart, intensity

生命周期 / 移动

GET_CHAR_RANDOM_SEED · 0EC8
Char.GetRandomSeed

取角色 randomSeed。

0EC8 GET_CHAR_RANDOM_SEED
in: self
out: randomSeed
GET_CHAR_MOVE_STATE · 0ECB
Char.GetMoveState

取角色移动状态。

0ECB GET_CHAR_MOVE_STATE
in: self
out: moveState
DONT_DELETE_CHAR_UNTIL_TIME · 0ECC
Char.DontDeleteUntilTime

msFromNow 毫秒内不删角色。

0ECC DONT_DELETE_CHAR_UNTIL_TIME
in: self, msFromNow
GET_TIME_CHAR_IS_DEAD · 0ECE
Char.GetTimeIsDead

角色死亡已过多久(ms)。

0ECE GET_TIME_CHAR_IS_DEAD
in: self
out: timeIsDead
SET_CHAR_IGNORE_DAMAGE_ANIMS · 0ED9
Char.SetIgnoreDamageAnims

是否忽略受击动画。

0ED9 SET_CHAR_IGNORE_DAMAGE_ANIMS
in: self, state

fear / 任务 / special 挂件

GET_CHAR_FEAR · 0EFA
Char.GetFear

取角色 fear(pedstats)。

0EFA GET_CHAR_FEAR
in: self
out: fear
GET_CHAR_SIMPLEST_ACTIVE_TASK · 0EFF
Char.GetSimplestActiveTask

取最简活动任务 taskId 与任务地址。用在 if 里。

0EFF GET_CHAR_SIMPLEST_ACTIVE_TASK
in: self
out: taskId, address
CREATE_RENDER_OBJECT_TO_CHAR_BONE_FROM_SPECIAL · 0F02
Char.CreateRenderObjectToCharBoneFromSpecial

用 specialModel 挂到角色骨骼(相对 0E2E)。

0F02 CREATE_RENDER_OBJECT_TO_CHAR_BONE_FROM_SPECIAL
in: self, specialModel, pedBone, x, y, z, rx, ry, rz
out: renderobject

On this page