实体

行人 CPed

血量、武器、状态与骨骼

CPed.h · 字段 / 方法以头文件为准

逻辑帧改状态;drawing 只读。

改血量与护甲

m_fHealth / m_fMaxHealth / m_fArmour

逻辑帧改。

float m_fHealth;
float m_fMaxHealth;
float m_fArmour;

给武器与切换

GiveWeapon / SetCurrentWeapon / ClearWeapons

逻辑帧。

void GiveWeapon(eWeaponType weaponType, unsigned int ammo, bool likeUnused);
void SetCurrentWeapon(int slot);
void SetCurrentWeapon(eWeaponType weaponType);
void ClearWeapons();
void ClearWeapon(eWeaponType weaponType);
CWeapon* GetWeapon(); // 当前槽

改弹药

GrantAmmo / SetAmmo / DoWeHaveWeaponAvailable
void GrantAmmo(eWeaponType weaponType, unsigned int ammo);
void SetAmmo(eWeaponType weaponType, unsigned int ammo);
bool DoWeHaveWeaponAvailable(eWeaponType weaponType);

判断玩家与所在车

IsPlayer / IsAlive / m_pVehicle
bool IsPlayer();
bool IsAlive();
CVehicle* m_pVehicle;
// ped flags: bInVehicle

查武器槽与熟练度

GetWeaponSlot / GetWeaponSkill / SetWeaponSkill
int GetWeaponSlot(eWeaponType weaponType);
char GetWeaponSkill(eWeaponType weaponType);
char GetWeaponSkill();
void SetWeaponSkill(eWeaponType weaponType, char skill);

换 ped 模型

SetModelIndex

模型须已加载。

void SetModelIndex(unsigned int modelIndex);

取坐标

GetPosition

改位置在逻辑帧,别在 drawing。

CVector GetPosition();

取骨骼位置

GetBonePosition / GetTransformedBonePosition

渲染帧可用;注意 clump 有效。

void GetBonePosition(RwV3d& outPosition, unsigned int boneId, bool updateSkinBones);
void GetTransformedBonePosition(RwV3d& inOffsetOutPosn, unsigned int boneId, bool updateSkinBones);

设置 ped 状态与移动

SetPedState / SetMoveState

谨慎改状态,易与任务系统打架。

void SetPedState(ePedState pedState);
void SetMoveState(eMoveState moveState);
ePedState m_ePedState;
// m_nMoveState, m_nPedType

On this page