101 lines
3.8 KiB
C++
101 lines
3.8 KiB
C++
#pragma once
|
|
|
|
#include "stdafx.h"
|
|
#include "Unit.h"
|
|
|
|
class CGameServerDlg;
|
|
class CPet : public Unit
|
|
{
|
|
public:
|
|
CPet();
|
|
std::string m_strPetID;
|
|
uint16 m_sNid;
|
|
uint64 m_iExp;
|
|
typedef CSTLMap <_PET_MOVE> PetMovingMap;
|
|
PetMovingMap m_MovingMap;
|
|
uint32 LastStep;
|
|
_ITEM_DATA m_sItemArray[PET_MAX];
|
|
uint32 SpecialPetID;
|
|
uint8 m_bLevel;
|
|
uint32 LastMovedTime;
|
|
uint16 m_sSatisfaction;
|
|
uint64 m_Serial;
|
|
bool isMoving;
|
|
bool isDropping;
|
|
uint8 mode;
|
|
uint8 m_sClass;
|
|
int m_sMaxHp,m_sHp,m_sMaxMp,m_sMp;
|
|
uint16 m_sAttack,m_sAc;
|
|
uint8 m_byState; // ¸ó½ºÅÍ (NPC) »óÅÂ
|
|
int m_iSellingGroup; // ItemGroup
|
|
int16 m_byDirection;
|
|
uint8 m_NpcState; // NPCÀÇ »óÅ - »ì¾Ò´Ù, Á×¾ú´Ù, ¼ÀÖ´Ù µîµî...
|
|
|
|
short m_sPid; // MONSTER(NPC) Picture ID
|
|
short m_sSize; // MONSTER(NPC) Size
|
|
int m_iWeapon_1;
|
|
int m_iWeapon_2;
|
|
|
|
uint8 m_bNation;
|
|
uint8 m_bZone;
|
|
float m_curx, m_curz, m_cury;
|
|
|
|
INLINE float GetX() { return m_curx; }
|
|
INLINE float GetY() { return m_cury; }
|
|
INLINE float GetZ() { return m_curz; }
|
|
|
|
INLINE uint16 GetSPosX() { return uint16(GetX() * 10); };
|
|
INLINE uint16 GetSPosY() { return uint16(GetY() * 10); };
|
|
INLINE uint16 GetSPosZ() { return uint16(GetZ() * 10); };
|
|
|
|
bool m_bMonster; // are we a monster or an NPC?
|
|
|
|
CNpc * m_pNpc;
|
|
CUser* pSession;
|
|
|
|
virtual void Initialize();
|
|
virtual uint16 GetID() { return m_sNid; };
|
|
virtual std::string & GetName() { return m_strPetID; };
|
|
virtual int32 GetHealth() { return m_pNpc->GetHealth(); };
|
|
virtual int32 GetMaxHealth() { return m_pNpc->GetMaxHealth(); };
|
|
virtual int32 GetMana() { return m_pNpc->GetMana(); };
|
|
virtual int32 GetMaxMana() { return m_pNpc->GetMaxMana(); };
|
|
virtual bool isBlinking() { return m_pNpc->isBlinking(); };
|
|
virtual bool isDead() { return m_pNpc->isDead(); };
|
|
// 90 asas ve captain hýzý 67 swli hýz
|
|
virtual void Moving(float toX, float toY, float toZ, uint8 Speed);
|
|
void SendMoveResult(float fX, float fY, float fZ, float fSpeed /*= 0.0f*/);
|
|
virtual void AddtoMovingMap(float toX, float toY, float toZ, uint8 speed, bool IsDrop, uint32 BundleID);
|
|
uint16 m_sSid; // prototype ID
|
|
INLINE short GetProtoID() { return m_sSid; };
|
|
INLINE bool isMonster() { return m_bMonster; }
|
|
|
|
void GetNpcInfos(Packet & pkt,CUser* pUser = nullptr);
|
|
|
|
|
|
virtual bool isAlive() { return m_pNpc->isAlive(); };
|
|
virtual void GetInOut(Packet& result, uint8 bType);
|
|
virtual void AddToRegion(int16 new_region_x, int16 new_region_z);
|
|
virtual short GetDamage(Unit* pTarget, _MAGIC_TABLE* pSkill, bool bPreviewOnly){ return m_pNpc->GetDamage(pTarget, pSkill, bPreviewOnly); };
|
|
virtual void OnAttack(Unit* pTarget, AttackType attackType);
|
|
virtual void OnDefend(Unit* pAttacker, AttackType attackType);
|
|
virtual void InsertSavedMagic(uint32 nSkillID, uint16 sDuration);
|
|
virtual bool HasSavedMagic(uint32 nSkillID) { return m_pNpc->HasSavedMagic(nSkillID); };
|
|
virtual int16 GetSavedMagicDuration(uint32 nSkillID) { return m_pNpc->GetSavedMagicDuration(nSkillID); };
|
|
virtual void HpChange(int amount, Unit* pAttacker, bool bSendToAI);
|
|
virtual void HpChangeMagic(int amount, Unit* pAttacker, AttributeType attributeType);
|
|
virtual void MSpChange(int amount);
|
|
virtual void ExpChange(int amount);
|
|
virtual void SatisfactionChange(int amount);
|
|
virtual void Dead();
|
|
virtual void StateChangeServerDirect(uint8 bType, uint32 nBuff);
|
|
virtual bool isHostileTo(Unit* pTarget) { return m_pNpc->isHostileTo(pTarget); };
|
|
virtual bool CanAttack(Unit* pTarget) { return m_pNpc->CanAttack(pTarget); };
|
|
virtual bool isAttackable(Unit* pTarget) { return m_pNpc->isAttackable(pTarget); };
|
|
virtual bool CanCastRHit(uint16 m_SocketID) { return m_pNpc->CanCastRHit(m_SocketID); };
|
|
virtual bool isSameEventRoom(Unit* pTarget) { return m_pNpc->isSameEventRoom(pTarget); };
|
|
virtual void SummonPet(CUser * pSessionz);
|
|
virtual void UpdatePetItem();
|
|
|
|
virtual ~CPet();
|
|
}; |