Initial MSVC 2008 projects workspace
This commit is contained in:
162
l2packets/l2world/L2Character.h
Normal file
162
l2packets/l2world/L2Character.h
Normal file
@@ -0,0 +1,162 @@
|
||||
#ifndef H_L2CHARACTER
|
||||
#define H_L2CHARACTER
|
||||
#include "L2Object.h"
|
||||
|
||||
/** \class L2Character
|
||||
|
||||
L2Character represents common properties for all moving objects in game:\n
|
||||
treasure chests, doors, chairs, mobs, npcs, players...\n
|
||||
\n
|
||||
Every character is L2Object:\n
|
||||
Every L2Object has its objectID and can also have its coordinates in L2World)\n
|
||||
\n
|
||||
Additionally:\n
|
||||
Every L2Character has LEVEL!\n
|
||||
Every L2Character has its charName and charTitle\n
|
||||
Every L2Character has its heading\n
|
||||
Every L2Character has moving speed in states: running, walking\n
|
||||
Every L2Character has its move destination: xDst, yDst, zDst\n
|
||||
Every L2Character can calc its position based on destnation point and time passed since last calc\n
|
||||
Every L2Character has its base stats: INT WIT MEN CON STR DEX\n
|
||||
Every L2Character has its stats: pAtk, mAtk, ..., curHp, maxHp, ...\n
|
||||
Every L2Character has abnormalEffect\n
|
||||
Every L2Character has its target\n
|
||||
Every L2Character can be in combat\n
|
||||
Every L2Character has its collision radius and height\n
|
||||
Every L2Character has its pvpFlag, karma\n
|
||||
Every L2Character has its clan, ally IDs and clan/ally crest IDs\n
|
||||
*/
|
||||
|
||||
class L2Character : public L2Object
|
||||
{
|
||||
public:
|
||||
/** Default constructor, just calls setUnused() (zeroes all members) */
|
||||
L2Character();
|
||||
|
||||
/** Copy constructor
|
||||
* \param other source to copy from */
|
||||
L2Character( const L2Character& other );
|
||||
|
||||
/** Operator =
|
||||
* \param other source to copy from
|
||||
* \return reference to this object
|
||||
*/
|
||||
virtual const L2Character& operator=( const L2Character& other );
|
||||
|
||||
/** Default destructor, just calls setUnused() (zeroes all members) */
|
||||
virtual ~L2Character();
|
||||
|
||||
public:
|
||||
/** Initializes object's state (zeroes all members)
|
||||
* \return none
|
||||
*/
|
||||
virtual void setUnused();
|
||||
|
||||
public:
|
||||
/** MoveToLocation packet parser.
|
||||
* MoveToLocation packet is sent when some object starts moving to some point.
|
||||
* Updates x,y,z, xDst,yDst,zDst.
|
||||
* Updates lastMoveTickTime (sets to current time).
|
||||
* \param l2_game_packet pointer to L2GamePacket object to parse
|
||||
* \return none
|
||||
* \see lastMoveTickTime
|
||||
*/
|
||||
virtual bool parse_MoveToLocation( void *l2_game_packet );
|
||||
|
||||
/** Calculates current character position based on x, y, z, xDst, yDst, zDst,
|
||||
* runSpeed / walkSpeed, isRunning, current time and last time when character coords were
|
||||
* known exactly (from some packet or after previous calculation).
|
||||
* Updates x,y,z and lastMoveTickTime (sets to current time).
|
||||
* \return none
|
||||
* \see lastMoveTickTime
|
||||
*/
|
||||
virtual void processMoveTick();
|
||||
|
||||
/** Starts 'moving' character: sets destination coords and current coords.
|
||||
* Updates x,y,z,xDst,yDst,zDst,lastMoveTickTime.
|
||||
* \param mxd,myd,mzd destination point coords
|
||||
* \param mx,my,mz current char coords
|
||||
* \return none
|
||||
* \see lastMoveTickTime
|
||||
*/
|
||||
virtual void startMoveTo( int mxd, int myd, int mzd, int mx, int my, int mz );
|
||||
|
||||
/** sets xDst,yDst,zDst to 0x7FFFFFFF, indicating that character is not moving.
|
||||
* \return none
|
||||
* \see xDst,yDst,zDst
|
||||
*/
|
||||
virtual void stopMove() { xDst = 0x7FFFFFFF; yDst = 0x7FFFFFFF; zDst = 0x7FFFFFFF; }
|
||||
|
||||
/** moving test
|
||||
* \return 1 if char is moving, 0 if not
|
||||
* \see xDst,yDst,zDst
|
||||
*/
|
||||
virtual int isMoving() { return ((xDst != 0x7FFFFFFF) && (yDst != 0x7FFFFFFF) && (zDst!=0x7FFFFFFF)); }
|
||||
|
||||
public:
|
||||
/** Sets char name.
|
||||
* \param name new char name to set.
|
||||
*/
|
||||
virtual void setName( const wchar_t *name );
|
||||
virtual void setName( const char *name );
|
||||
|
||||
/** Sets char title.
|
||||
* \param title new char title to set.
|
||||
*/
|
||||
virtual void setTitle( const wchar_t *title );
|
||||
virtual void setTitle( const char *title );
|
||||
|
||||
virtual const wchar_t *getName(); //< not really used
|
||||
virtual const wchar_t *getTitle(); //< not really used
|
||||
|
||||
public:
|
||||
int level; ///< character level
|
||||
wchar_t charName[128]; ///< character name
|
||||
wchar_t charTitle[128]; ///< character title (displayed above name in client ^^)
|
||||
int xDst; ///< x-destination move coord (=0x7FFFFFFF if char is not moving)
|
||||
int yDst; ///< y-destination move coord (=0x7FFFFFFF if char is not moving)
|
||||
int zDst; ///< z-destination move coord (=0x7FFFFFFF if char is not moving)
|
||||
unsigned int heading; ///< heading... not really used
|
||||
int runSpeed; ///< run speed
|
||||
int walkSpeed; ///< walk speed
|
||||
int isRunning; ///< 1, if char is runing, 0 if walking
|
||||
int isSitting; ///< 1, if char is sitting, 0 if standing
|
||||
int isAlikeDead; ///< 1, if characted is dead or looks like dead (fake death)
|
||||
int isFlying; ///< 1, if character is flying (?) T2.3
|
||||
unsigned long long int lastMoveTickTime; ///< timer used to store last time when character coords were known exactly
|
||||
int s_STR; ///< STR base stat
|
||||
int s_DEX; ///< DEX base stat
|
||||
int s_CON; ///< CON base stat
|
||||
int s_INT; ///< INT base stat
|
||||
int s_WIT; ///< WIT base stat
|
||||
int s_MEN; ///< MEN base stat
|
||||
int pAtk;
|
||||
int pDef;
|
||||
int mAtk;
|
||||
int mDef;
|
||||
int pAtkSpd;
|
||||
int mAtkSpd;
|
||||
int accuracy;
|
||||
int evasion;
|
||||
int critical;
|
||||
double curHp; ///< current HP value
|
||||
double maxHp; ///< maximum HP value
|
||||
double curMp; ///< current MP value
|
||||
double maxMp; ///< maximum MP value
|
||||
double curCp; ///< current CP value
|
||||
double maxCp; ///< maximum CP value
|
||||
unsigned int abnormalEffect; ///< flags for visible buffs/defuffs: poison, medusa, bleed, ...
|
||||
unsigned int targetObjectID; ///< objectID of object which is targeted by this character
|
||||
int isInCombat; ///< 1, if char is in combat state, 0 if not
|
||||
double collisionRadius;
|
||||
double collisionHeight;
|
||||
int pvpFlag;
|
||||
int karma;
|
||||
unsigned int clanID;
|
||||
unsigned int clanCrestID;
|
||||
unsigned int clanCrestLargeID;
|
||||
unsigned int allyID;
|
||||
unsigned int allyCrestID;
|
||||
};
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user