⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 player.h

📁 墨香最新私服
💻 H
📖 第 1 页 / 共 2 页
字号:
// Player.h: interface for the CPlayer class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_PLAYER_H__D36AF2E1_0FD9_4120_B257_64B0BE21D669__INCLUDED_)
#define AFX_PLAYER_H__D36AF2E1_0FD9_4120_B257_64B0BE21D669__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "Object.h"

#include "ExchangeManager.h"
#include "OptionManager.h"
#include "ItemContainer.h"
#include "InventorySlot.h"
#include "PyogukSlot.h"
#include "WearSlot.h"
#include "Purse.h"
#include "AbilityGroup.h"
#include "../[CC]Skill/DelayGroup.h"

// jsd quest
#include "..\[CC]Quest\QuestDefines.h"
#include "QuestGroup.h"


//
class cStreetStall;
class CMonster;
class CItemContainer;
class CItemSlot;
class CQuestBase;
class CQuestScript;
class CQuestGroup;
enum
{
	PLAYERINITSTATE_ONLY_ADDED = 0,
	PLAYERINITSTATE_HERO_INFO = 1,
	PLAYERINITSTATE_MUGONG_INFO = 2,
	PLAYERINITSTATE_ITEM_INFO = 4,
	PLAYERINITSTATE_ITEM_OPTION_INFO = 8,
	PLAYERINITSTATE_ABILITY_INFO = 16,
	PLAYERINITSTATE_PYOGUK_INFO = 32,
	PLAYERINITSTATE_GMCONTROL_INFO = 64,
	PLAYERINITSTATE_ACKMSG_SEND = 128,
	PLAYERINITSTATE_INITED = 256,
};

enum
{
	MONEY_ADDITION = 0,
	MONEY_SUBTRACTION,
};

#define GETITEM_FLAG_INVENTORY	0x00000001
#define GETITEM_FLAG_WEAR		0x00000002
#define WANTED_DESTROYED_TIME 48*3600*1000
class CPlayer : public CObject  
{
	CDelayGroup m_DelayGroup;
	DWORD m_ChannelID;

	BOOL m_bPyogukInit;
	DWORD m_UniqueIDinAgent;
	int m_initState;
	CHARACTER_TOTALINFO m_HeroCharacterInfo;
	HERO_TOTALINFO		m_HeroInfo;
	MUGONG_TOTALINFO	m_HeroMugongInfo;
	
	CAbilityGroup		m_AbilityGroup;

	CItemContainer		m_ItemContainer;
	CInventorySlot		m_InventorySlot;
	CWearSlot			m_WearSlot;
	CPyogukSlot			m_PyogukSlot;
	CInventoryPurse		m_InventoryPurse;
	CPyogukPurse		m_PyogukPurse;

	// RaMa - QuestItem包访
//	sQUESTITEM			m_sQuestItem[MAX_QUEST_ITEM];
//	DWORD				m_dwQuestItemCount;

//	QUICKITEM m_QuickItem[MAX_QUICKSHEET_NUM][MAX_QUICKITEMPERSHEET_NUM];
//	quick_cur_info m_quick_info;

	char m_StreetStallTitle[MAX_STREETSTALL_TITLELEN+1];

	player_calc_stats m_charStats;
	player_calc_stats m_itemStats;
	ABILITY_STATS m_AbilityStats;
		 
	// LIFE RECOVER绰 COBJECT肺
	RECOVER_TIME m_NaeRyukRecoverTime;
	YYRECOVER_TIME m_YYNaeRyukRecoverTime;

	WORD m_ChangeBeforeMapNum;
	WORD m_ChangeWantMapNum;

	DWORD m_CurComboNum;

	WORD m_ChangeNpcIndex;

	BYTE m_curGravity;

// KES HACK CHECK
	int	m_nHackCount;			//skill + move
	DWORD m_dwHackStartTime;

// KES EXCHNAGE 040112
//	CExchangeRoom*		m_pExchangeRoom;
	sEXCHANGECONTAINER	m_ExchangeContainer;
// KES VIMU 031101
	//海撇吝牢啊?
	BOOL				m_bVimuing;
	DWORD				m_dwOpPlayerID;

// KES OPTION 031213
	sGAMEOPTION			m_GameOption;
// KES PK
	DWORD				m_dwPKModeStartTime;	//with gCurTime
	DWORD				m_dwPKContinueTime;
// KES BADFAME
	DWORD				m_dwLastReduceHour;		//with PlayTime
	void				AddBadFameReduceTime();
// KES EXIT
	BOOL				m_bExit;	//辆丰敲贰弊
	DWORD				m_dwExitStartTime;
	BOOL				m_bNormalExit;
//
	DWORD				m_dwUserLevel;
///////////	

// LBS 畴痢惑 包访 03.09.29/////
	cStreetStall* m_pGuetStall;
////////////////////////////////

///////////////////////////////////////////
// LBS 矫埃喊 Log 包访 04.02.06
//	DWORD				m_dwStartTime;
	DWORD				m_dwProgressTime;
//	MHTIMEMGR_OBJ->GetMHTime()
///////////////////////////////////////////
	
	WANTEDTYPE			m_WantedIDX;
	cPtrList			m_WantedList;

	WORD				m_MurdererKind;
	DWORD				m_MurdererIDX;
	BOOL				m_bReadyToRevive; //磷篮 惑怕俊辑父 靖

	//
	DWORD				m_LoginTime;
	DWORD				m_ContinuePlayTime;	
	

	void DoSetInited();
	virtual void SetInitedGrid();
	

	friend class CCharacterCalcManager;
	friend class CInventoryPurse;
	friend class CAbilityGroup;
	
	void SetMurderIDX(DWORD CharacterIDX)			{ m_MurdererIDX = CharacterIDX; }
	void SetMurderKind(WORD Kind)					{ m_MurdererKind = Kind; }
public:
	void SetChannelID(DWORD id)		{	m_ChannelID = id;	}
	DWORD GetChannelID()	{	return m_ChannelID;	}
// KES
	BOOL				m_bNeedRevive;
//
	void SpeedHackCheck();
//
	HERO_TOTALINFO* GetHeroTotalInfo();

	ABILITY_STATS*	GetAbilityStats()	{	return &m_AbilityStats;	}
	CAbilityGroup*	GetAbilityGroup()	{	return &m_AbilityGroup;	}
	CDelayGroup*	GetDelayGroup()		{	return &m_DelayGroup;	}

	CItemSlot * GetSlot(POSTYPE absPos);
	CItemSlot * GetSlot(eITEMTABLE tableIdx);

	//CItemContainer * GetContainer() { return m_pItemContainer; } 
	void SetUniqueIDinAgent(DWORD uniqueid)	{	m_UniqueIDinAgent = uniqueid;	}
	DWORD GetUniqueIDinAgent()	{	return m_UniqueIDinAgent;	}
	
	void InitBaseObjectInfo(BASEOBJECT_INFO* pBaseInfo);

	BOOL IsVisible()
	{
		return (m_HeroCharacterInfo.bVisible ? TRUE : FALSE);
	}
	void SetVisible(BOOL val)
	{
		m_HeroCharacterInfo.bVisible = val ? true : false;
	}
	
	// Gravity --------------------------------------------------------------
	virtual DWORD GetGravity();
	virtual void SetGravity(DWORD gravity)
	{
	}
	// Gravity --------------------------------------------------------------

	CPlayer();
	virtual ~CPlayer();
	void InitClearData();

	virtual BOOL Init(EObjectKind kind,DWORD AgentNum, BASEOBJECT_INFO* pBaseObjectInfo);
	virtual void Release();

	// 檬扁拳 
	void InitCharacterTotalInfo(CHARACTER_TOTALINFO* pTotalInfo);
	void InitHeroTotalInfo(HERO_TOTALINFO* pHeroInfo);
	void InitMugongTotalInfo(MUGONG_TOTALINFO* pMugongInfo);
	void InitItemTotalInfo(ITEM_TOTALINFO* pItemInfo);
	void InitPyogukItemInfo(PYOGUK_ITEM* pItemInfo);

	int GetInitState(){ return m_initState; }
	void SetInitState(int initstate,DWORD protocol);

	// 颇萍 包访 窃荐	
	void SendPlayerLifeToParty(DWORD life, DWORD PartyIdx);
	void SendPlayerShieldToParty(DWORD Shield, DWORD PartyIdx);
	void SendPlayerNaeRyukToParty(DWORD naeryuk, DWORD PartyIdx);
	void SendMoveInfotoParty();

	// 某腐磐 荐摹 汲沥 //////////////////////////////////////////////////////////
	LEVELTYPE GetPlayerLevelUpPoint() { return m_HeroInfo.LevelUpPoint;	}
	void SetPlayerLevelUpPoint(LEVELTYPE val);
	EXPTYPE GetPlayerExpPoint() { return m_HeroInfo.ExpPoint; }
	void SetPlayerExpPoint(EXPTYPE point,BYTE bDie=0);
	void AddPlayerExpPoint(EXPTYPE Exp);
	void ReduceExpPoint(EXPTYPE minusExp, BYTE bLogType);
	EXPTYPE GetPlayerAbilityExpPoint() { return m_AbilityGroup.GetAbilityExp(); }
	void SetPlayerAbilityExpPoint(EXPTYPE point,BOOL bUse=0);
	void AddAbilityExp(DWORD AbilityExp);

	EXPTYPE AddExpPointToMugong(WORD MugongIdx,EXPTYPE exp,BOOL bSuryunComplete = FALSE);
	void SetPlayerMugongSung(POSTYPE abspos, BYTE sung, WORD Reason);
	void MugongLevelDown(WORD MugongIdx, WORD Reason);
	
	FAMETYPE GetFame()			{ return m_HeroInfo.Fame;	}
	void SetFame(FAMETYPE val)	{ m_HeroInfo.Fame = val; 	}

	FAMETYPE GetBadFame()			{ return m_HeroCharacterInfo.BadFame;	}
	void SetBadFame(FAMETYPE val)	{ m_HeroCharacterInfo.BadFame = val; 	}

	WORD GetCheRyuk(){ return m_HeroInfo.wCheRyuk + GetItemStats()->CheRyuk; }
	WORD GetSimMek(){ return m_HeroInfo.wSimMek + GetItemStats()->SimMaek; }
	WORD GetGenGol(){ return m_HeroInfo.wGenGol + GetItemStats()->GenGol; }
	WORD GetMinChub(){ return m_HeroInfo.wMinChub + GetItemStats()->MinChub; }
	void SetCheRyuk(WORD val);
	void SetSimMek(WORD val);
	void SetGenGol(WORD val);
	void SetMinChub(WORD val);

	void AddGenGol(WORD val);
	void AddSimMek(WORD val);
	void AddMinChub(WORD val);
	void AddCheRyuk(WORD val);
	
	WORD GetPlayerLoginPoint(){return m_HeroCharacterInfo.LoginPoint_Index;}
	void SetLoginPoint(WORD LoginPoint){m_HeroCharacterInfo.LoginPoint_Index = LoginPoint;}
	void InitMapChangePoint(){m_HeroCharacterInfo.MapChangePoint_Index = 0;}
	void SetMapChangePoint(WORD point){m_HeroCharacterInfo.MapChangePoint_Index = point;}	// YH
	WORD GetMapChangePoint() { return m_HeroCharacterInfo.MapChangePoint_Index;	} //hs for party
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -