实体
武器 CWeapon
查看 MarkdownPed 武器槽实例与开火入口
CWeapon.h
挂在 Ped 武器槽上的实例(类型、弹匣、状态)。全局表见 world-state 的 CWeaponInfo。
eWeaponType m_eWeaponType;
eWeaponState m_nState;
unsigned int m_nAmmoInClip;
unsigned int m_nAmmoTotal;
unsigned int m_nTimeForNextShot;enum eWeaponState : unsigned int {
WEAPONSTATE_READY,
WEAPONSTATE_FIRING,
WEAPONSTATE_RELOADING,
WEAPONSTATE_OUT_OF_AMMO,
WEAPONSTATE_MELEE_MADECONTACT
};bool IsTypeMelee();
bool IsType2Handed();
bool IsTypeProjectile();
bool HasWeaponAmmoToBeUsed();void Initialise(eWeaponType weaponType, int ammo, CPed* owner);
void Reload(CPed* owner);
void Shutdown();参数多,错用易崩。
bool Fire(CEntity* firingEntity, CVector* origin, CVector* muzzlePosn,
CEntity* targetEntity, CVector* target, CVector* originForDriveBy);
bool FireProjectile(CEntity* firingEntity, CVector* origin,
CEntity* targetEntity, CVector* target, float force);
bool FireInstantHit(CEntity* firingEntity, CVector* origin, CVector* muzzlePosn,
CEntity* targetEntity, CVector* target, CVector* originForDriveBy, bool arg6, bool muzzle);
void FireFromCar(CVehicle* vehicle, bool leftSide, bool rightSide);static void GenerateDamageEvent(CPed* victim, CEntity* creator, eWeaponType weaponType,
int damageFactor, ePedPieceTypes pedPiece, int direction);
static bool ProcessLineOfSight(CVector const& startPoint, CVector const& endPoint,
CColPoint& outColPoint, CEntity*& outEntity, eWeaponType weaponType, CEntity* arg5,
bool buildings, bool vehicles, bool peds, bool objects, bool dummies, bool arg11, bool doIgnoreCameraCheck);
static bool CanBeUsedFor2Player(eWeaponType weaponType);CWeaponInfo::GetWeaponInfo(type, skill) 改射程 / 伤害等全局。实例弹药在 CWeapon,表在 Info。
评论