Planeshift
gemNPC Class Reference

#include <gem.h>

Classes

struct  DialogCounter
 

Public Member Functions

void ActionCommand (bool actionMy, bool actionNarrate, const char *actText, Client *who, bool actionPublic, csTicks &timeDelay)
 Used to allow a NPC to communicate through action to its environment. More...
 
void AddBadText (const char *playerSaid, const char *trigger)
 
virtual void AddLootablePlayer (PID playerID)
 
virtual void ApplyStaminaCalculations (const csVector3 &velocity, float times)
 
virtual void Broadcast (int clientnum, bool control)
 
void CheckSpeakers ()
 Check speakers to see if not spoken to anymore. More...
 
virtual void ForcePositionUpdate ()
 
 gemNPC (GEMSupervisor *gemSupervisor, CacheManager *cachemanager, EntityManager *entityManager, psCharacter *chardata, const char *factname, InstanceID myInstance, iSector *room, const csVector3 &pos, float rotangle, int clientnum)
 
void GetBadText (size_t first, size_t last, csStringArray &saidArray, csStringArray &trigArray)
 
virtual unsigned GetDefaultAttackID ()
 
virtual csString GetDefaultBehavior (const csString &dfltBehaviors)
 
const csArray< PID > & GetLootablePlayers () const
 
virtual psNPCDialogGetNPCDialogPtr ()
 
virtual const char * GetObjectType ()
 
virtual gemObjectGetOwner ()
 
virtual ClientGetRandomLootClient (int range)
 
virtual AccountID GetSuperclientID ()
 
virtual gemObjectGetTarget ()
 
virtual bool HasKillStealProtection ()
 Returns if the npc has killsteal protection. More...
 
bool IsBusy () const
 True if the NPC client sent the busy command. More...
 
bool IsLootablePlayer (PID playerID)
 
void ReactToPlayerApproach (psNPCCommandsMessage::PerceptionType type, gemActor *player)
 
void RegisterSpeaker (Client *client)
 Register clients that speak to a npc. More...
 
virtual void RemoveLootablePlayer (PID playerID)
 
void Say (const char *sayText, Client *who, bool sayPublic, csTicks &timeDelay)
 Used to allow a NPC to communicate by saying things to its environment. More...
 
virtual bool Send (int clientnum, bool control, bool to_superclients, psPersistAllEntities *allEntities=NULL)
 Send this object to the given client. More...
 
virtual void SendBehaviorMessage (const csString &str, gemObject *obj)
 
virtual void SendGroupStats ()
 
void SetBusy (bool busy)
 To set the busy state of the NPC. More...
 
virtual void SetCombatStance (const Stance &stance)
 
virtual void SetDefaultAttackID (unsigned id)
 
virtual void SetOwner (gemObject *owner)
 
virtual void SetPosition (const csVector3 &pos, float angle, iSector *sector)
 
virtual void SetSuperclientID (AccountID id)
 
virtual void SetTarget (gemObject *newTarget)
 
void SetupDialog (PID npcID, PID masterNpcID, bool force=false)
 
void ShowPopupMenu (Client *client)
 
virtual ~gemNPC ()
 
- Public Member Functions inherited from gemActor
int ActiveSpellCount (const csString &name)
 
void AddActiveSpell (ActiveSpell *asp)
 
void AddAttackerHistory (gemActor *attacker, float damage)
 
void AddAttackerHistory (gemActor *attacker, float hpRate, csTicks duration)
 
bool AddChatReport (gemActor *reporter)
 Adds an active report (file logging session) to this actor. More...
 
bool AtRest () const
 
void AttachScript (ProgressionScript *script, int type)
 
virtual void BroadcastTargetStatDR (ClientConnectionSet *clients)
 
bool CanBeAttackedBy (gemActor *attacker, gemActor *&lastAttacker) const
 
void CancelActiveSpellsForDeath ()
 
void CancelActiveSpellsWhichDamage ()
 
void ClearDamageHistory ()
 
void Defeat ()
 
void DetachScript (ProgressionScript *script, int type)
 
void DoDamage (gemActor *attacker, float damage)
 
void EndAttack ()
 
void FallBegan (const csVector3 &pos, iSector *sector)
 Called when the object began falling - 'fallBeginning' tells where the fall started displaceY is the displacement that needs to be added to due to passing through warping portals portalSector is the final sector of the player after passing through the warping portals. More...
 
float FallEnded (const csVector3 &pos, iSector *sector)
 Called when the object has fallen down - sets its falling status to false. More...
 
ActiveSpellFindActiveSpell (const csString &name, SPELL_TYPE type)
 
int FindAnimIndex (const char *name)
 
gemObjectFindNearbyActorName (const char *name)
 Used by chat manager to identify an npc you are near if you talk to one. More...
 
virtual void ForcePositionUpdate (int32_t loadDelay=0, csString background="", csVector2 point1=0, csVector2 point2=0, csString widget="")
 
 gemActor (GEMSupervisor *gemsupervisor, CacheManager *cachemanager, EntityManager *entitymanager, psCharacter *chardata, const char *factname, InstanceID myInstance, iSector *room, const csVector3 &pos, float rotangle, int clientnum)
 
uint32_t GetActiveMagicSequence ()
 Get the activeMagic sequence, updating to the next value;. More...
 
csArray< ActiveSpell * > & GetActiveSpells ()
 
FrozenBuffableGetBuffableFrozen ()
 
virtual psCharacterGetCharacterData ()
 
virtual ClientGetClient () const
 
const StanceGetCombatStance ()
 
AttackerHistoryGetDamageHistory (int pos) const
 
size_t GetDamageHistoryCount () const
 
csTicks GetFallStartTime ()
 
bool GetFiniteInventory ()
 
const char * GetFirstName ()
 
csPtr< PlayerGroupGetGroup ()
 
int GetGroupID ()
 
psGuildInfoGetGuild ()
 
psGuildLevelGetGuildLevel ()
 
psGuildMemberGetGuildMembership ()
 Gets the psguildmember structure refereed to this actor, if in a guild. More...
 
const char * GetGuildName ()
 
virtual bool GetInvincibility ()
 
void GetLastLocation (csVector3 &pos, float &yrot, iSector *&sector, InstanceID &instance)
 Get the last reported location this actor was at. More...
 
void GetLastProductionPos (csVector3 &pos)
 
virtual void GetLastSuperclientPos (csVector3 &pos, InstanceID &instance, csTicks &last) const
 
int GetMasqueradeLevel ()
 
PSCHARACTER_MODE GetMode ()
 
const char * GetModeStr ()
 Return a string name of the mode. More...
 
psCharacterGetMount () const
 
virtual PID GetPID ()
 
void GetPrevTeleportLocation (csVector3 &pos, float &yrot, iSector *&sector, InstanceID &instance)
 Get the location of the player before he was teleported. More...
 
const csVector3 & GetProductionStartPos (void) const
 Returns the place where the player last started digging. More...
 
float GetRelativeFaction (gemActor *speaker)
 
int GetSecurityLevel ()
 
bool GetSpawnPos (csVector3 &pos, float &yrot, iSector *&sector, bool useRange=false)
 Gets the player spawn position according to his race. More...
 
gemObjectGetTargetObject () const
 
int GetTargetType (gemObject *target)
 Get the target type in regards to attacks. More...
 
psWorkGameEventGetTradeWork ()
 Return trade work event so it can be stopped. More...
 
void GetValidPos (csVector3 &pos, float &yrot, iSector *&sector, InstanceID &instance)
 
virtual float GetVelocity ()
 Get the z velocity of the actor. More...
 
bool GetViewAllObjects ()
 Flag to determine of this player can see all objects. More...
 
virtual bool GetVisibility ()
 
void HandleDeath ()
 
virtual bool HasBeenAttackedBy (gemActor *attacker)
 Checks the attacker history to see if the attacker has actually attacked the entity. More...
 
bool InGroup () const
 
virtual bool InsideGuardedArea (gemObject *object)
 Check if object is inside guarded area. More...
 
void InterruptSpellCasting ()
 
void InvokeAttackScripts (gemActor *defender, psItem *weapon)
 
void InvokeDefenseScripts (gemActor *attacker, psItem *weapon)
 
void InvokeMovementScripts ()
 
void InvokeNearlyDeadScripts (gemActor *defender, psItem *weapon)
 
bool IsAllowedToAttack (gemObject *target, csString &msg)
 Checks if our actor can attack given target. More...
 
bool IsAllowedToMove ()
 
bool IsFalling ()
 Checks if the object is falling. More...
 
bool IsFrozen ()
 
bool IsGroupedWith (gemActor *other, bool IncludePets=false) const
 
bool IsLoggingChat () const
 Returns /report file logging status. More...
 
bool IsMounted ()
 
bool IsMyPet (gemActor *other) const
 
bool IsSpellCasting ()
 
void Kill (gemActor *attacker)
 
bool LogChatMessage (const char *who, const psChatMessage &msg)
 Adds the chat message to the history and optionally to the log file. More...
 
bool LogLine (const char *szLine)
 Saves a line to this actor's chat history and logs it to a file, if there are active reports. More...
 
bool LogSystemMessage (const char *szLine)
 Saves a system message to this actor's chat history and logs it to a file, if there are active reports. More...
 
void MoveToLastPos ()
 Moves player to his last reported location. More...
 
bool MoveToSpawnPos (int32_t delay=0, csString background="", csVector2 point1=0, csVector2 point2=0, csString widget="")
 Moves player to his spawn position. More...
 
bool MoveToValidPos (bool force=false)
 Restores actor to his last valid position. More...
 
void MulticastDRUpdate ()
 
void ProcessStamina ()
 
void ProcessStamina (const csVector3 &velocity, bool force=false)
 
void RegisterCallback (iDeathCallback *receiver)
 
bool RemoveActiveSpell (ActiveSpell *asp)
 
void RemoveAttackerHistory (gemActor *attacker)
 
void RemoveChatReport ()
 Removes an active report (file logging session) for this actor. More...
 
void RemoveFromGroup ()
 
void Resurrect ()
 
virtual bool SeesObject (gemObject *object, float range)
 
void SendActiveSpells ()
 
virtual void SendGroupMessage (MsgEntry *me)
 Distribute this object to all members of a group. More...
 
virtual void SendTargetStatDR (Client *client)
 
void SetAction (const char *anim, csTicks &timeDelay)
 
void SetAllowedToDisconnect (bool allowed)
 Call this to ask the actor to set allowed to disconnect in the connected client. More...
 
void SetAllowedToMove (bool newvalue)
 
void SetDefaults (bool player)
 Set attributes back to default. More...
 
bool SetDRData (psDRMessage &drmsg)
 
void SetEquipment (const char *equip)
 
void SetFiniteInventory (bool v)
 
void SetFrozen (bool flag)
 Check whether the actor is frozen. More...
 
void SetGroup (PlayerGroup *group)
 
void SetInstance (InstanceID worldInstance)
 
virtual void SetInvincibility (bool invincible)
 
void SetLastProductionPos (csVector3 &pos)
 
virtual void SetLastSuperclientPos (const csVector3 &pos, InstanceID instance, const csTicks &now)
 
void SetMasqueradeLevel (int level)
 
bool SetMesh (const char *meshname)
 
void SetMode (PSCHARACTER_MODE newmode, uint32_t extraData=0)
 
void SetMount (psCharacter *newMount)
 
void SetPosition (const csVector3 &pos, float angle, iSector *sector)
 
void SetPrevTeleportLocation (const csVector3 &pos, float yrot, iSector *sector, InstanceID instance)
 Record the location of this actor before he was teleported. More...
 
void SetProductionStartPos (const csVector3 &pos)
 Sets the place where the player started digging. More...
 
void SetSecurityLevel (int level)
 
void SetSpellCasting (psSpellCastGameEvent *event)
 
void SetTargetObject (gemObject *object)
 
void SetTextureParts (const char *parts)
 
void SetTradeWork (psWorkGameEvent *event)
 Assign trade work event so it can be accessed. More...
 
bool SetupCharData ()
 
void SetViewAllObjects (bool v)
 
virtual void SetVisibility (bool visible)
 
void Sit ()
 Make the character sit. More...
 
void Stand ()
 Makes the character stand up. More...
 
bool StartAttack ()
 
void StopMoving (bool worldVel=false)
 
void Teleport (const char *sec, const csVector3 &pos, float yrot, InstanceID instance, int32_t loadDelay=0, csString background="", csVector2 point1=0, csVector2 point2=0, csString widget="")
 
void Teleport (iSector *sector, const csVector3 &pos, float yrot, InstanceID instance, int32_t loadDelay=0, csString background="", csVector2 point1=0, csVector2 point2=0, csString widget="")
 
void Teleport (iSector *sector, const csVector3 &pos, float yrot, int32_t loadDelay=0, csString background="", csVector2 point1=0, csVector2 point2=0, csString widget="")
 
void UnregisterCallback (iDeathCallback *receiver)
 
virtual bool UpdateDR ()
 
void UpdateStats ()
 Checks the vitals (hp, mana, ...) for the specific gemActor If there are updates to publish, it then uses SendStatDRMessage to inform all actors client side. More...
 
void UpdateValidLocation (const csVector3 &pos, float yrot, iSector *sector, InstanceID instance, bool force=false)
 
virtual ~gemActor ()
 
virtual double GetProperty (MathEnvironment *env, const char *ptr)
 
virtual double CalcFunction (MathEnvironment *env, const char *functionName, const double *params)
 
- Public Member Functions inherited from gemObject
virtual void Disconnect ()
 Called when a client disconnects. More...
 
virtual void Dump ()
 Dump debug information. More...
 
gemActorGetActorPtr ()
 
gemActionLocationGetALPtr ()
 
virtual float GetBaseAdvertiseRange ()
 This value indicates the range that this entity would become visible to other entities if no other modifiers were taken into consideration. More...
 
uint32_t GetClientID ()
 
EID GetEID ()
 
InstanceID GetInstance ()
 
psItemGetItem ()
 
gemItemGetItemPtr ()
 
const char * GetName ()
 
gemNPCGetNPCPtr ()
 
gemPetGetPetPtr ()
 
bool IsAlive () const
 Returns whether the object is alive. More...
 
virtual bool IsUpdateReq (csVector3 const &pos, csVector3 const &oldPos)
 
virtual bool IsValid (void)
 
float RangeTo (gemObject *obj, bool ignoreY=false, bool ignoreInstance=false)
 
void RegisterCallback (iDeleteObjectCallback *receiver)
 
void SetAlive (bool flag, bool queue=true)
 Set needed stats for alive or dead for object. More...
 
void SetInstance (InstanceID newInstance)
 
void SetName (const char *n)
 
void UnregisterCallback (iDeleteObjectCallback *receiver)
 
virtual ~gemObject ()
 
virtual const char * ToString ()
 
iMeshWrapper * GetMeshWrapper ()
 
csString GetMesh ()
 
void Move (const csVector3 &pos, float rotangle, iSector *room)
 
bool IsNear (gemObject *obj, float radius, bool ignoreY=false)
 
const csVector3 & GetPosition ()
 
void GetPosition (csVector3 &pos, float &yrot, iSector *&sector)
 
void GetPosition (csVector3 &pos, iSector *&sector)
 
float GetAngle ()
 Get rotation of entity as returned by psWorld::Matrix2YRot. More...
 
iSector * GetSector ()
 
const char * GetSectorName ()
 
csArray< gemObject * > * GetObjectsInRange (float range)
 
ProximityListGetProxList ()
 
csArray< PublishDestination > & GetMulticastClients ()
 Returns all the clients which are inside our proxy list. More...
 
void UpdateProxList (bool force=false)
 Generates proxlist if needed (or forced). More...
 
void RemoveFromAllProx ()
 
void SetAlwaysWatching (bool w)
 
bool AlwaysWatching ()
 
virtual int GetGuildID ()
 
- Public Member Functions inherited from iDeleteNotificationObject
virtual ~iDeleteNotificationObject ()
 
- Public Member Functions inherited from iScriptableVar
virtual ~iScriptableVar ()
 
- Public Member Functions inherited from iDeathNotificationObject
virtual ~iDeathNotificationObject ()
 

Protected Attributes

csPDelArray< DialogCounterbadText
 
bool busy
 Indicator from the NPC client to state the if the NPC is busy. More...
 
unsigned default_attackid
 Default attack type ID. More...
 
csArray< PID > lootablePlayers
 Array of client id's allowed to loot this char. More...
 
csTicks nextLongRangeAvail
 When can npc respond to long range prox trigger again. More...
 
csTicks nextShortRangeAvail
 When can npc respond to short range prox trigger again. More...
 
csTicks nextVeryShortRangeAvail
 When can npc respond to very short range prox trigger again. More...
 
psNPCDialognpcdialog
 
csWeakRef< gemObjectowner
 
int speakers
 
AccountID superClientID
 
csWeakRef< gemObjecttarget
 
- Protected Attributes inherited from gemActor
uint32_t activeMagic_seq
 active magic message seq More...
 
unsigned int activeReports
 unsigned int activeReports Info: Total /report commands filed against this player that are still active (logging). More...
 
csArray< ActiveSpell * > activeSpells
 
bool atRest
 Is this character stationary or moving? More...
 
uint8_t attack_cnt
 Count of attack events in CS event queue. More...
 
csVector3 bottom
 
csArray< ChatHistoryEntrychatHistory
 csArray<ChatHistoryEntry> chatHistory Info: Chat history for this player. A chat line stays in history for CHAT_HISTORY_LIFETIME (defined in gem.cpp). More...
 
csWeakRef< ClientclientRef
 
Stance combat_stance
 
csArray< iDeathCallback * > deathReceivers
 List of objects which are to be notified when this actor dies. More...
 
csPDelArray< AttackerHistorydmgHistory
 
uint8_t DRcounter
 increments in loop to prevent out of order packet overwrites of better data More...
 
csVector3 fallStartPos
 the position where the fall began More...
 
iSector * fallStartSector
 the sector where the fall began More...
 
csTicks fallStartTime
 
uint8_t forceDRcounter
 sequence number for forced position updates More...
 
iSector * forcedSector
 Needed to force the effect of a psForcePositionMessage since sectors are tied to instances and force position messages may be lost on crash, loading failure, etc. This ensures that a DR message containing the new sector is received at least once. More...
 
csRef< PlayerGroupgroup
 
bool invincible
 cannot be attacked More...
 
bool isAllowedToMove
 Is a movement lockout in effect? More...
 
bool isFalling
 is this object falling down ? More...
 
FrozenBuffable isFrozen
 Whether the actor is frozen or not. More...
 
DRstate last_location
 
csVector3 last_production_pos
 
csTicks lastDR
 
unsigned int lastSentSuperclientInstance
 
csVector3 lastSentSuperclientPos
 
csTicks lastSentSuperclientTick
 
csVector3 lastV
 
csRef< iFile > logging_chat_file
 csRef<iFile> logging_chat_file Info: log file handle. More...
 
int masqueradeLevel
 
psCharactermount
 
uint8_t movementMode
 Actor movement mode from DB table movement_modes. More...
 
DRstate newvalid_location
 
csVector3 offset
 
csPDelArray< ProgressionScriptonAttackScripts
 
csPDelArray< ProgressionScriptonDefenseScripts
 
csPDelArray< ProgressionScriptonMovementScripts
 
csPDelArray< ProgressionScriptonNearlyDeadScripts
 
PID pid
 Player ID (also known as character ID or PID) More...
 
PSCHARACTER_MODE player_mode
 
DRstate prev_teleport_location
 
csVector3 productionStartPos
 Production Start Pos is used to record the place where people started digging. More...
 
psCharacterpsChar
 
int securityLevel
 What commands the actor can access. Normally only for a player controlled object. More...
 
psSpellCastGameEventspellCasting
 Hold a pointer to the game event < for the spell currently cast. More...
 
csWeakRef< gemObjecttargetObject
 Is the current targeted object for this actor. More...
 
csVector3 top
 
struct gemActor::DRstate valid_location
 
bool viewAllObjects
 can view invisible objects? More...
 
bool visible
 is visible to clients ? More...
 
psWorkGameEventworkEvent
 
- Protected Attributes inherited from gemObject
bool alwaysWatching
 True if this object always watches (proxlists) regardless of owner. More...
 
CacheManagercacheManager
 
EID eid
 Entity ID (unique identifier for object) More...
 
EntityManagerentityManager
 
csString factname
 Name of CS Mesh Factory used to create this object. More...
 
bool is_alive
 Flag indicating whether object is alive or not. More...
 
csString matname
 Name of base material used by this object. More...
 
csString name
 Name of this object, used mostly for debugging. More...
 
csRef< iMeshFactoryWrapper > nullfact
 Null factory for our mesh instances. More...
 
gemMeshpcmesh
 link to mesh class More...
 
float prox_distance_current
 What is the current actual range for proxlists (they adjust when the # of objects gets too high) More...
 
float prox_distance_desired
 What is the maximum range of proxlist we want. More...
 
ProximityListproxlist
 Proximity List for this object. More...
 
csArray< iDeleteObjectCallback * > receivers
 List of objects which are to be notified when this object is deleted. More...
 
bool valid
 Is object fully loaded. More...
 
InstanceID worldInstance
 Only objects which match instances can see each other. More...
 

Additional Inherited Members

- Public Attributes inherited from gemActor
psLinearMovementpcmove
 
bool nevertired
 These flags are for GM/debug abilities. More...
 
bool infinitemana
 infinite mana More...
 
bool instantcast
 cast spells instantly More...
 
bool safefall
 no fall damage More...
 
bool questtester
 no quest lockouts More...
 
bool givekillexp
 give exp if killed More...
 
- Protected Member Functions inherited from gemActor
bool CanSwitchMode (PSCHARACTER_MODE from, PSCHARACTER_MODE to)
 
bool InitCharData (Client *c)
 
bool InitLinMove (const csVector3 &pos, float angle, iSector *sector)
 Determines the right size and height for the collider for the sprite and sets the actual position of the sprite. More...
 
void SetGMDefaults ()
 Set initial attributes for GMs. More...
 
- Protected Member Functions inherited from gemObject
 gemObject (GEMSupervisor *gemsupervisor, EntityManager *entitymanager, CacheManager *cachemanager, const char *name, const char *factname, InstanceID myinstance, iSector *room, const csVector3 &pos, float rotangle, int clientnum)
 
void InitMesh (const char *name, const csVector3 &pos, const float rotangle, iSector *room)
 
bool InitProximityList (float radius, int clientnum)
 
- Static Protected Attributes inherited from gemObject
static GEMSupervisorcel
 Static ptr back to main collection of all objects. More...
 

Detailed Description

Definition at line 1910 of file gem.h.

Constructor & Destructor Documentation

gemNPC::gemNPC ( GEMSupervisor gemSupervisor,
CacheManager cachemanager,
EntityManager entityManager,
psCharacter chardata,
const char *  factname,
InstanceID  myInstance,
iSector *  room,
const csVector3 &  pos,
float  rotangle,
int  clientnum 
)
virtual gemNPC::~gemNPC ( )
virtual

Member Function Documentation

void gemNPC::ActionCommand ( bool  actionMy,
bool  actionNarrate,
const char *  actText,
Client who,
bool  actionPublic,
csTicks &  timeDelay 
)

Used to allow a NPC to communicate through action to its environment.

Use this to publish chat messages of type ME,MY,NARRATE for NPCs. They can either be of private to the client who or broadcasted. Use one of the actionMy or actionNarrate to override the default type of ME.

Parameters
actionMyIf true a /my will be used
actionNarrateIf true a narrate will be used if not actionMy is set.
actTextThe text to send.
whoWho to send to.
actionPublicTrue if it should be a public action, otherwise it will only be sent to the destination client given by who.
timeDelayUsed to lay out a sequence of responses in time depended on the length of the actText.
void gemNPC::AddBadText ( const char *  playerSaid,
const char *  trigger 
)
virtual void gemNPC::AddLootablePlayer ( PID  playerID)
virtual

Reimplemented from gemObject.

virtual void gemNPC::ApplyStaminaCalculations ( const csVector3 &  velocity,
float  times 
)
inlinevirtual

Reimplemented from gemActor.

Definition at line 1990 of file gem.h.

virtual void gemNPC::Broadcast ( int  clientnum,
bool  control 
)
virtual
Parameters
clientnumThe client that initiated this update.
controlSet to true when sent to the controlling client.

Reimplemented from gemActor.

void gemNPC::CheckSpeakers ( )

Check speakers to see if not spoken to anymore.

virtual void gemNPC::ForcePositionUpdate ( )
virtual
void gemNPC::GetBadText ( size_t  first,
size_t  last,
csStringArray &  saidArray,
csStringArray &  trigArray 
)
virtual unsigned gemNPC::GetDefaultAttackID ( )
inlinevirtual

Reimplemented from gemActor.

Definition at line 1964 of file gem.h.

virtual csString gemNPC::GetDefaultBehavior ( const csString &  dfltBehaviors)
virtual

Reimplemented from gemActor.

const csArray<PID>& gemNPC::GetLootablePlayers ( ) const
inline

Definition at line 1996 of file gem.h.

virtual psNPCDialog* gemNPC::GetNPCDialogPtr ( )
inlinevirtual

Reimplemented from gemObject.

Definition at line 1973 of file gem.h.

virtual const char* gemNPC::GetObjectType ( )
inlinevirtual

Reimplemented from gemActor.

Reimplemented in gemPet.

Definition at line 1969 of file gem.h.

virtual gemObject* gemNPC::GetOwner ( )
inlinevirtual

Reimplemented from gemObject.

Definition at line 2066 of file gem.h.

virtual Client* gemNPC::GetRandomLootClient ( int  range)
virtual

Reimplemented from gemObject.

virtual AccountID gemNPC::GetSuperclientID ( )
inlinevirtual

Reimplemented from gemObject.

Definition at line 1978 of file gem.h.

virtual gemObject* gemNPC::GetTarget ( )
inlinevirtual

Definition at line 2059 of file gem.h.

virtual bool gemNPC::HasKillStealProtection ( )
inlinevirtual

Returns if the npc has killsteal protection.

Rules about killsteal protection should be implemented here. Generic NPCs have killsteal protection, pet don't have it.

Returns
A boolean indicating if this gemNPC must have killsteal protection.

Reimplemented from gemObject.

Definition at line 2082 of file gem.h.

bool gemNPC::IsBusy ( ) const

True if the NPC client sent the busy command.

NPC operation <busy /> and <idle /> set and cleare this flag.

See also
BusyOperation
bool gemNPC::IsLootablePlayer ( PID  playerID)
virtual

Reimplemented from gemObject.

void gemNPC::ReactToPlayerApproach ( psNPCCommandsMessage::PerceptionType  type,
gemActor player 
)
void gemNPC::RegisterSpeaker ( Client client)

Register clients that speak to a npc.

virtual void gemNPC::RemoveLootablePlayer ( PID  playerID)
virtual

Reimplemented from gemObject.

void gemNPC::Say ( const char *  sayText,
Client who,
bool  sayPublic,
csTicks &  timeDelay 
)

Used to allow a NPC to communicate by saying things to its environment.

Use this to publish chat messages of type SAY for NPCs. They can either be of private to the client who or broadcasted.

Parameters
sayTextThe text to send.
whoWho to send to.
sayPublicTrue if it should be a public say, otherwise it will only be sent to the destination client given by who.
timeDelayUsed to lay out a sequence of responses in time depended on the length of the sayText.
virtual bool gemNPC::Send ( int  clientnum,
bool  control,
bool  to_superclients,
psPersistAllEntities allEntities = NULL 
)
virtual

Send this object to the given client.

Parameters
clientnumThe client that initiated this update.
controlSet to true when sent to the controlling client.
to_superclientsSend to super clients
allEntitiesBuffer the message instead of sending it.

Reimplemented from gemActor.

virtual void gemNPC::SendBehaviorMessage ( const csString &  str,
gemObject obj 
)
virtual

Reimplemented from gemActor.

virtual void gemNPC::SendGroupStats ( )
virtual

Reimplemented from gemActor.

void gemNPC::SetBusy ( bool  busy)

To set the busy state of the NPC.

NPC operation <busy /> and <idle /> set and cleare this flag.

See also
BusyOperation
virtual void gemNPC::SetCombatStance ( const Stance stance)
virtual

Reimplemented from gemActor.

virtual void gemNPC::SetDefaultAttackID ( unsigned  id)
inlinevirtual

Reimplemented from gemActor.

Definition at line 1960 of file gem.h.

virtual void gemNPC::SetOwner ( gemObject owner)
virtual
virtual void gemNPC::SetPosition ( const csVector3 &  pos,
float  angle,
iSector *  sector 
)
virtual
virtual void gemNPC::SetSuperclientID ( AccountID  id)
inlinevirtual

Reimplemented from gemObject.

Definition at line 1982 of file gem.h.

virtual void gemNPC::SetTarget ( gemObject newTarget)
inlinevirtual

Definition at line 2055 of file gem.h.

void gemNPC::SetupDialog ( PID  npcID,
PID  masterNpcID,
bool  force = false 
)
void gemNPC::ShowPopupMenu ( Client client)

Member Data Documentation

csPDelArray<DialogCounter> gemNPC::badText
protected

Definition at line 1942 of file gem.h.

bool gemNPC::busy
protected

Indicator from the NPC client to state the if the NPC is busy.

Definition at line 1948 of file gem.h.

unsigned gemNPC::default_attackid
protected

Default attack type ID.

Definition at line 1944 of file gem.h.

csArray<PID> gemNPC::lootablePlayers
protected

Array of client id's allowed to loot this char.

Definition at line 1923 of file gem.h.

csTicks gemNPC::nextLongRangeAvail
protected

When can npc respond to long range prox trigger again.

Definition at line 1920 of file gem.h.

csTicks gemNPC::nextShortRangeAvail
protected

When can npc respond to short range prox trigger again.

Definition at line 1919 of file gem.h.

csTicks gemNPC::nextVeryShortRangeAvail
protected

When can npc respond to very short range prox trigger again.

Definition at line 1918 of file gem.h.

psNPCDialog* gemNPC::npcdialog
protected

Definition at line 1913 of file gem.h.

csWeakRef<gemObject> gemNPC::owner
protected

Definition at line 1916 of file gem.h.

int gemNPC::speakers
protected

Definition at line 1946 of file gem.h.

AccountID gemNPC::superClientID
protected

Definition at line 1914 of file gem.h.

csWeakRef<gemObject> gemNPC::target
protected

Definition at line 1915 of file gem.h.


The documentation for this class was generated from the following file: