📄 player.h
字号:
// 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 + -