CP3SObj@

The scripting entity which is attached to all POSTAL3 entities, this is what Postal3Script is using for it's scripting.


Methods

Attributes

  • int GetAttr(const string&in sAttr) -- Gets the value of an entity.
  • bool HasAttr(const string&in sAttr) -- Checks if an attribute exists.
  • bool SetAttr(const string&in sAttr, int val, int min = -1, int max = 100) -- Sets or creates an attribute with values specified.
  • bool RemoveAttr(const string&in sAttr) -- Removes an attribute if it exists.

Pointers

  • CBaseEntity@ GetBaseEntity() -- Gets the base entity pointer.
  • CP3SObj@ GetTarget() -- Gets the current P3S target.
  • CP3SObj@ GetCaller() -- Gets the current P3S caller.
  • CP3SObj@ GetMemory(int iSlot) -- Gets the object from a memory slot, if it exists. Min: 0 Max: 15
  • CP3SObj@ GetWeapon() -- Gets the held weapon, if there's any.
  • CP3SObj@ GetAnchor() -- Gets the anchor, if there's any.
  • CP3SObj@ GetItem() -- Gets currently held item, if there's any.
  • CP3Weapon@ GetWeaponPtr() -- Gets the weapon pointer for the object's weapon. For Player it is always the active weapon, for NPCs it is always the Melee or Ranged weapon stored.

Targeting

  • void SetTarget(CP3SObj@ ent) -- Sets P3S target.
  • void SetEnemy(CP3SObj@ pEnemy, bool bSetCondNewEnemy = true) -- Sets the enemy.
  • void SetCaller(CP3SObj@ ent) -- Sets P3S caller.
  • void SetMemory(CP3SObj@ ent, int iSlot) -- Saves an object to the memory slot. Min: 0 Max: 15
  • void Ignore(CP3SObj@ ent, float flTime) -- Ignores an object for a specified amount of time.
  • bool IsIgnored(CP3SObj@ ent) -- Checks if object is already ignored.

States, Patterns

  • bool State(string&in sState) -- Sets the P3S state.
  • bool Pattern(string&in sPattern) -- Sets the P3S pattern, from it's current P3S state.
  • void ExecutePattern(string&in sXptPattern) -- Executes a P3S pattern externally.
  • void FireEvent(string&in sEvent, CP3SObj@ obj = null) -- Fires a P3S event, caller(obj) is optional.
  • bool HasAI() -- Checks if entity has a behavior defined.

Timers

  • bool GetTimer(string&in timerName) -- Checks if Timer exists.
  • void SetTimer(string&in timerName, float flTime, bool bRepeated) -- Sets a Timer, seconds, and should it repeat.
  • float GetTimerVal(string&in timerName) -- Gets a Timer's current interval (seconds). 0 or below means the Timer has elapsed.
  • float GetTimerFreq(string&in timerName) -- Gets the Timer's frequency.
  • bool IsTimerRepeated(string&in timerName) -- Checks if Timer is repeated.

Data

  • void SetBehavior(string&in Behavior, string& Manner = null, string& Faction = null, string& Init = null, string& Start = null) -- Sets the new behavior for the object.
  • string GetManner() -- Gets the manner's name.
  • string GetFaction() -- Gets the faction's name.
  • string GetCurState() -- Gets the current P3S state's name.
  • string GetCurGroup() -- Gets the current P3S state's group's name. (Neutral, Alert, Combat)
  • string GetBehavior() -- Gets the behavior name.
  • string GetInherit() -- Gets the inherited behavior name, if there's any.
  • string GetCurPattern() -- Gets the current P3S pattern's name.

Identify

  • bool IsPlayer() -- Checks if object is a player.
  • bool IsNPC() -- Checks if object is an NPC.
  • bool IsHuman() -- Checks if object is a human NPC.
  • bool IsAnimal() -- Checks if object is an animal. (Dog, Cat, Monkey, Motorhead, Rhino, Pigeon)
  • bool IsDog() -- Checks if object is a Dog.
  • bool IsCat() -- Checks if object is a Cat.
  • bool IsMonkey() -- Checks if object is a monkey. (+Motorhead)
  • bool IsMotorhead() -- Checks if object is Motorhead.
  • bool IsProp() -- Checks if object is a prop. (Item, Weapon, Corpse)
  • bool IsItem() -- Checks if object is an item. (Inventory items)
  • bool IsWeapon() -- Checks if object is a weapon.
  • bool IsCorpse() -- Checks if object is a corpse/limb.
  • bool IsVehicle() -- Checks if object is a vehicle.
  • bool IsFSM() -- Checks if object is Anchor, AttackPos, LaserDot, or Effect.
  • bool IsAnchor() -- Checks if object is an Anchor.
  • bool IsAttackPos() -- Checks if object is attack pos.
  • bool IsLaserDot() -- Checks if object is laser dot.
  • bool IsEffect() -- Checks if object is effect.

Stimuli

  • void KnockOut(CP3SObj@ attacker = null) -- Knocks the object out. Attacker is optional.
  • void Suicide(CP3SObj@ attacker = null) -- Kills the object. Attacker is optional.
  • void Relationship(CP3SObj@ ent, int disp, int prio) -- Sets the relationship towards an object.
  • bool CanSee(CP3SObj@ ent, bool bFOV = true) -- Checks if object can see the entity. If bFOV is false, then it checks if vision is obstructed.
  • void Follow(bool bEnabled, int iMode = 0, double fDist = 0.0f) -- Forces the object to follow it's current target. Modes
  • void MoveToTarget(int movementType, int face, int flags, double fDist, double fAngle, double flLeaderAdvanceTime = 0.0f, bool bScriptCommand = true) -- Forces the object to move to it's current target. (Face types|Movement types)
  • bool IsOnFire() -- Checks if object is on fire.
  • void Ignite(CBaseEntity@ activator, float flFlameLifetime, bool bNPCOnly, float flSize, bool bCalledByLevelDesigner) -- Ignites the object.
  • void Extinguish() -- Extinguishes the object.

Inventory

  • bool HasWeapon(int weaponId, bool bAmmoCheck = true) -- Checks if object has a weapon. Ammo check is only needed for players. Weapon IDs
  • bool HasHeldWeapon() -- Checks if object is holding a weapon.
  • bool HasHeldItem() -- Checks if object is holding an item.
  • int GetAmmoCount(int ammoIndex) -- Gets the ammo count.

Appearance

  • int Sequence(string&in seq, float dur, int flags = 0) -- Starts a sequence. (NPC only) Returns 1 if it was successful. Flags
  • void ResetSequence() -- Resets current sequence. (NPC only)
  • int Say(string&in sentence, int priority = 0) -- Makes the object say a sentence. Priority Flags
  • void EmitSound(string&in name) -- Plays a sound. Equivalent to Postal3Script's EmitSound.

Other

  • void TeleportTo(CP3SObj@ ent) -- Teleports the object to an object.
  • void AngelScript(string&in sClass, string&in sFunc, CP3SObj@ caller = null) -- Executes AngelScript calls for this object.
  • void Headblob(string&in hbName) -- Sets Headblob.
  • float GetTargetDot(CBaseEntity@ target) -- Gets the dot between target.