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

📄 commonstruct.h

📁 墨香最新私服
💻 H
📖 第 1 页 / 共 5 页
字号:
#ifndef __COMMONSTRUCT_H__
#define __COMMONSTRUCT_H__

#include "..\[CC]Ability\AbilityCommonHeader.h"
#include "AddableInfo.h"

#pragma pack(push,1)
/**********************************************************************************/
/*			酒贰狼 努贰胶俊父 荤侩登绰 DEFINE			 						  */
/**********************************************************************************/
#define MAX_NETWORK_MSG	256

typedef WORD MAPTYPE;
typedef DWORD EXPTYPE;
typedef WORD LEVELTYPE;

typedef WORD DURTYPE;
typedef WORD POSTYPE;

typedef int FAMETYPE;
typedef WORD WANTEDTYPE;

typedef DWORD			MONEYTYPE;
#define MAXMONEY		MAXULONG_PTR		// 0xffffffff(4294967295)

struct MSGROOT
{
	BYTE CheckSum;
#ifdef _CRYPTCHECK_ 
	MSGROOT():Code(0){}
	char Code;
#endif
	BYTE Category;
	BYTE Protocol;
};
struct MSGBASE :public MSGROOT
{
	DWORD dwObjectID;
};

struct MAPSERVER_TRANSDATAONOFF : public MSGROOT // ON/OFF 傈价 菩哦
{
	int MapServerGroupNum;
	int MapServerNum;
	int HardNum;
};

struct MAPSERVER_TRANSDATA : public MSGROOT // 老馆 傈价 菩哦
{
	int MapServerGroupNum;
	int MapServerNum;
	int HardNum;
};

struct MSGBASEDATA :public MSGROOT //皋矫瘤 傈价侩
{
	int MapServerGroupNum;
	int MapServerNum;
	char Messagebuff[1028];
};

struct MSGCRYPTDATA : public MSGROOT
{
#ifdef _CRYPTCHECK_ 
	HselInit eninit;
	HselInit deinit;
#endif
};

struct COMPRESSEDPOS
{
	WORD wx;
	WORD wz;
	void Compress(VECTOR3* pPos)
	{
		wx = WORD(pPos->x);
		wz = WORD(pPos->z);
	}
	void Decompress(VECTOR3* pRtPos)
	{
		pRtPos->x = wx;
		pRtPos->z = wz;
		pRtPos->y = 0;
	}
};
struct COMPRESSEDTARGETPOS
{
	void Init()
	{
		PosNum = 0;
	}
	void AddTargetPos(VECTOR3 * pPos)
	{
		pos[PosNum++].Compress(pPos);
	}
	int GetSize()
	{
		return sizeof(COMPRESSEDTARGETPOS) - sizeof(COMPRESSEDPOS)*(MAX_CHARTARGETPOSBUF_SIZE-PosNum);
	}
	int GetSurplusSize()
	{
		return sizeof(COMPRESSEDPOS)*(MAX_CHARTARGETPOSBUF_SIZE-PosNum);
	}
	BYTE PosNum;
	COMPRESSEDPOS pos[MAX_CHARTARGETPOSBUF_SIZE];
};

struct SEND_MOVEINFO
{
	COMPRESSEDPOS CurPos;
	bool MoveMode;
	WORD KyungGongIdx;
};

struct BASEMOVE_INFO
{
	VECTOR3 CurPosition;
private:
	BYTE CurTargetPositionIdx;
	BYTE MaxTargetPositionIdx;
	VECTOR3 TargetPositions[MAX_CHARTARGETPOSBUF_SIZE];
public:
	bool bMoving;
	bool MoveMode;		 // 0:顿扁 1:叭扁

	WORD KyungGongIdx;	// 版傍Idx 0: 版傍吝捞 酒聪促  !0: 荤侩吝牢 版傍锅龋
	
	void SetFrom(SEND_MOVEINFO* pInfo)
	{
		bMoving = FALSE;
		pInfo->CurPos.Decompress(&CurPosition);
		MoveMode = pInfo->MoveMode;
		KyungGongIdx = pInfo->KyungGongIdx;
	}
	BYTE GetCurTargetPosIdx() { return CurTargetPositionIdx; }
	BYTE GetMaxTargetPosIdx() { return MaxTargetPositionIdx; }
	BYTE & GetMaxTargetPosIdxRef() { return MaxTargetPositionIdx; }
	void SetCurTargetPosIdx(BYTE idx) { CurTargetPositionIdx=idx; }
	void SetMaxTargetPosIdx(BYTE idx) { MaxTargetPositionIdx=idx; }

	VECTOR3 * GetTargetPosition(BYTE idx) { return &TargetPositions[idx]; }
	VECTOR3 * GetTargetPositionArray() { return TargetPositions; }
	void InitTargetPosition()
	{
		CurTargetPositionIdx = 0;
		MaxTargetPositionIdx = 0;
		memset( TargetPositions, 0, sizeof( VECTOR3 ) * MAX_CHARTARGETPOSBUF_SIZE );
	}
};

struct MOVE_INFO : public BASEMOVE_INFO
{
	BOOL m_bLastMoving; // 努扼捞攫飘俊辑父 静烙
	BOOL m_bEffectMoving;

	DWORD m_dwMoveCalculateTime;
	BOOL m_bMoveCalculateTime;

	// 付瘤阜栏肺 拌魂茄 矫埃.
	// 付瘤阜栏肺 拌魂茄 矫埃捞 倔付登瘤 臼疽栏搁 肚促矫 拌魂窍瘤 臼绰促
	DWORD Move_LastCalcTime;

	DWORD Move_StartTime;
	VECTOR3 Move_StartPosition;
	VECTOR3 Move_Direction;

	float Move_EstimateMoveTime;

};

struct STATE_INFO
{
	int State_Start_Motion;
	int State_Ing_Motion;
	int State_End_Motion;
	DWORD State_End_MotionTime;
	DWORD State_End_Time;
	DWORD State_Start_Time;
	BYTE BeforeState;
	BYTE bEndState;
};


struct HERO_TOTALINFO
{
	WORD	wGenGol;						// 辟榜
	WORD	wMinChub;						// 刮酶
	WORD	wCheRyuk;						// 眉仿
	WORD	wSimMek;						// 缴钙

	DWORD	wNaeRyuk;						// 郴仿
	DWORD	wMaxNaeRyuk;					// 弥措 郴仿

	FAMETYPE	Fame;						// 疙己
	WORD	wKarma;							// 急厩档(啊摹包)

	EXPTYPE	ExpPoint;						// 版氰摹
	LEVELTYPE	LevelUpPoint;				// 饭骇诀器牢飘		//??????
	MONEYTYPE	Money;						// 捣

	DWORD	PartyID;						// 颇萍 牢郸胶 	
	char	MunpaName[MAX_MUNPA_NAME+1];	// 巩颇 捞抚
	WORD	KyungGongGrade;					// 版傍 版瘤
	
	DWORD	AbilityExp;						// 漂扁摹

	DWORD	Playtime;						// Play Time
	DWORD	LastPKModeEndTime;				// 付瘤阜 混扁葛靛 off矫埃
	LEVELTYPE MaxLevel;						// 棵耳菌带 弥绊 饭骇
};

struct MONSTER_TOTALINFO
{
	DWORD Life;
	DWORD Shield;
	WORD MonsterKind;
	WORD Group;	
	MAPTYPE MapNum;
	//char Name;					//捞芭 吝汗凳..BASEOBJECT_INFO客  taiyo
};

struct NPC_TOTALINFO
{
	WORD NpcKind;
	WORD Group;
	MAPTYPE MapNum;
	WORD NpcUniqueIdx;
	WORD NpcJob;				// NPC_ROLE肺 官层具 窃! : taiyo
	
};

struct QUESTNPCINFO
{
	DWORD	dwObjIdx;
	MAPTYPE	wMapNum;
	WORD	wNpcKind;
	char	sName[17];
	WORD	wNpcIdx;
	VECTOR3	vPos;
	float	fDir;	
};

//////////////////////////////////////////////////////////////////////////
// taiyo : ITEMBASE客 MUGONGBASE狼 惑困 努贰胶甫 积己
struct ICONBASE
{
	DWORD	dwDBIdx;
	WORD	wIconIdx;		// 酒捞袍->itemIdx, 公傍->mugongIdx
	POSTYPE Position;		// 
};

struct QUICKBASE
{
	POSTYPE Position;
};

class ITEM_OPTION_INFO
{
public:
	DWORD	dwOptionIdx;
	DWORD	dwItemDBIdx;
	WORD	GenGol;					//		辟榜+(康备)	康距苞 厘馒 酒捞袍俊 傍烹荤侩
	WORD	MinChub;				//		刮酶+(康备)	康距苞 厘馒 酒捞袍俊 傍烹荤侩
	WORD	CheRyuk;				//		眉仿+(康备)	康距苞 厘馒 酒捞袍俊 傍烹荤侩
	WORD	SimMek;					//		缴钙+(康备)	康距苞 厘馒 酒捞袍俊 傍烹荤侩
	DWORD	Life;					//		积疙仿+(康备)	康距苞 厘馒 酒捞袍俊 傍烹荤侩
	WORD	NaeRyuk;				//		积疙仿+(康备)	康距苞 厘馒 酒捞袍俊 傍烹荤侩
	DWORD	Shield;					//		龋脚碍扁+(康备)	康距苞 厘馒 酒捞袍俊 傍烹荤侩
	ATTRIBUTEREGIST AttrRegist;		//		拳 加己 历亲仿+(康备)	康距苞 厘馒 酒捞袍俊 傍烹荤侩
	WORD	PhyAttack;
	WORD	CriticalPercent;
	ATTRIBUTEATTACK AttrAttack;		//				拳加己傍拜仿+%
	WORD	PhyDefense;				//				拱府 规绢仿+ 
};


//////////////////////////////////////////////////////////////////////////
struct MUGONGBASE : public ICONBASE
{
	EXPTYPE	ExpPoint;		// 公傍版氰摹
	BYTE	Sung;			// 公傍饭骇
	BYTE	bWear;			// 诀单捞飘 秦具 窍绰瘤狼 咯何
	POSTYPE	QuickPosition;	// 窜绵 酒捞能俊 厘馒等 困摹
};

struct MUGONG_TOTALINFO
{
	MUGONGBASE	mugong[SLOT_MUGONGTOTAL_NUM];		// 公傍+柳过
};

//////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////
struct ITEMBASE : public ICONBASE
{
//	DWORD DBIdx;
//	WORD ItemIdx;
	DURTYPE Durability;
//	POSTYPE bPosition;
	POSTYPE	QuickPosition;	// 窜绵 酒捞能俊 厘馒等 困摹
	//BYTE MapNum;
};
struct SLOTINFO
{
	BOOL	bLock;
	WORD	wPassword;
	WORD	wState;
};

struct ITEM_TOTALINFO
{
	ITEMBASE Inventory[SLOT_INVENTORY_NUM];
	ITEMBASE WearedItem[eWearedItem_Max];	
	//WORD	QuickItem[MAX_QUICKITEM_NUM];	// 窜绵酒捞袍 4
};

struct PYOGUK_ITEM
{
	ITEMBASE Pyoguk[SLOT_PYOGUK_NUM];
};

//////////////////////////////////////////////////////////////////////////


//------ 颇萍俊辑 荤侩窍绰 备炼眉 -------------------------------
struct SEND_PARTY_GAUGE : public MSGBASE
{
	DWORD PlayerID;
	float GaugePercent;
};

struct PARTY_MEMBER
{
	DWORD dwMemberID;
	BOOL bLogged;
	BYTE LifePercent;
	BYTE ShieldPercent;
	BYTE NaeRyukPercent;
	char Name[MAX_NAME_LENGTH+1];
	LEVELTYPE Level;	
	WORD	posX;
	WORD	posZ;
};

struct PARTY_INFO : public MSGBASE 
{
	DWORD PartyDBIdx;
	BYTE Option;
	PARTY_MEMBER Member[MAX_PARTY_LISTNUM];
};

struct SEND_PARTY_MEMBER_POS : public MSGBASE
{
	DWORD	dwMemberID;
	WORD	posX;
	WORD	posZ;
};

struct SEND_PARTY_MEMBER_INFO : public MSGBASE 
{
	PARTY_MEMBER MemberInfo;
	DWORD PartyID;
};

struct SEND_CHANGE_PARTY_MEMBER_INFO : public MSGBASE
{
	DWORD PartyID;
	char Name[MAX_NAME_LENGTH+1];
	LEVELTYPE Level;
};

//------ 颇萍俊辑 荤侩窍绰 备炼眉 -------------------------------

//////////////////////////////////////////////////////////////////////////



struct MAPSELECT_PARAM			// 纳腐磐 父甸锭 郴何俊辑 静捞绰 备炼眉
{
	/*
	MAPSELECT_PARAM()
	{
		*Name=0;
		JobType =  0;
		SexType =  0;
		BodyType = 0;
		HairType = 0;
		FaceType = 0;
		StartArea = 0;
		bDuplCheck=FALSE;
	}
	*/
	char Name[MAX_NAME_LENGTH+1];			// 某腐磐 捞抚
	BYTE	JobType;
	BYTE	SexType;
	BYTE	BodyType;
	BYTE	HairType;
	BYTE	FaceType;
	BYTE	StartArea;
	BOOL	bDuplCheck;
};

struct CHARACTERMAKEINFO : public MSGBASE
{
	char Name[MAX_NAME_LENGTH+1];			// 某腐磐 捞抚
	DWORD	UserID;
	BYTE	SexType;
	BYTE	BodyType;
	BYTE	HairType;
	BYTE	FaceType;
	BYTE	StartArea;
	BOOL	bDuplCheck;
	WORD	WearedItemIdx[eWearedItem_Max];	// 馒侩茄 酒捞牌甸狼 辆幅
	BYTE    StandingArrayNum;				// pjs 纳腐磐狼 困摹 鉴辑 [5/22/2003]
	
	float	Height;
	float	Width;

};

//////////////////////////////////////////////////////////////////////////
// taiyo : 辑滚俊辑父 荤侩窍唱?
struct CALCCHARACTER
{
	WORD wAttack;
	WORD wDefense;
	WORD wHit;
	WORD wDisengage;
	WORD wMove;
	WORD wLife;
	WORD wInner;

	WORD wHwa;
	WORD wSu;
	WORD wMok;
	WORD wKum;
	WORD wTo;
	WORD wDok;
};
//////////////////////////////////////////////////////////////////////////
// 霸矫魄 包访
struct AUCTION_BOARDTITLE
{
	DWORD BidIdx;		// 版概锅龋(甘辑滚俊辑 包府窍绰 PrimaryKey)
	WORD ItemIdx;
	WORD ItemNum;
	DWORD EndDate;
	DWORD EndTime;
	DWORD CurrentPrice;
	DWORD ImmediatePrice;
};
//////////////////////////////////////////////////////////////////////////


struct MSG_INT : public MSGBASE
{
	int nData;
};

struct MSG_DWORD : public MSGBASE
{
	DWORD dwData;
};

struct MSG_DWORD2 : public MSGBASE
{
	DWORD dwData1;
	DWORD dwData2;
};

struct MSG_DWORDBYTE : public MSGBASE
{
	DWORD dwData;
	BYTE bData;
};

struct MSG_DWORD2BYTE : public MSGBASE
{
	DWORD dwData1;
	DWORD dwData2;
	BYTE bData;
};

struct MSG_DWORD3 : public MSGBASE
{
	DWORD dwData1;
	DWORD dwData2;
	DWORD dwData3;
};

struct MSG_WORD : public MSGBASE
{
	WORD wData;
};

struct MSG_WORD2 : public MSGBASE
{
	WORD wData1;
	WORD wData2;
};
struct MSG_WORD3 : public MSGBASE
{
	WORD wData1;
	WORD wData2;
	WORD wData3;
};
struct MSG_WORD4 : public MSGBASE
{
	WORD wData1;
	WORD wData2;
	WORD wData3;
	WORD wData4;
};

struct MSG_DWORD_WORD : public MSGBASE
{
	DWORD dwData;
	WORD wData;
};

struct MSG_BYTE : public MSGBASE
{
	BYTE bData;
};

struct TESTMSG : public MSGBASE
{
	char Msg[MAX_CHAT_LENGTH+1];
	int GetMsgLength() { return sizeof(TESTMSG) - MAX_CHAT_LENGTH + strlen(Msg); }
};

struct TESTMSGID : public MSGBASE
{
	DWORD dwSenderID;
	char Msg[MAX_CHAT_LENGTH+1];
	int GetMsgLength() { return sizeof(TESTMSGID) - MAX_CHAT_LENGTH + strlen(Msg); }
};

//struct MSG_STR : public MSGBASE
//{
//	char Data[256];
//};

struct MSG_EVENT_MONSTERREGEN : public MSGBASE
{
	WORD	MonsterKind;
	BYTE	cbMobCount;		//mob count
	WORD	wMap;			//map
	BYTE	cbChannel;		//channel	= 0:all
	VECTOR3 Pos;
	WORD	wRadius;
	WORD	ItemID;
	DWORD	dwDropRatio;	//item drop ratio
//	BYTE	bBoss;			//鞘夸茄啊?
};


struct MSG_FAME : public MSGBASE
{
	FAMETYPE Fame;
};


struct MSG_LOGIN_SYN : public MSGBASE
{
	DWORD AuthKey;
	char id[MAX_NAME_LENGTH+1];
	char pw[MAX_NAME_LENGTH+1];
	char Version[16];
};


struct MSG_LOGIN_ACK : public MSGBASE
{
	char agentip[16];
	WORD agentport;
	DWORD userIdx;
	BYTE cbUserLevel;
};

struct MOVE_ONETARGETPOS : public MSGBASE
{
	DWORD			dwMoverID;
	COMPRESSEDPOS	sPos;
	COMPRESSEDPOS	tPos;

	void SetStartPos( VECTOR3 * pos )
	{
		sPos.Compress(pos);
	}
	void SetTargetPos( VECTOR3* pos )
	{
		tPos.Compress( pos );
	}
	void GetStartPos( VECTOR3 * pos )
	{
		sPos.Decompress( pos );
	}
	void GetTargetInfo(MOVE_INFO * pMoveInfo)
	{
		pMoveInfo->SetCurTargetPosIdx(0);
		pMoveInfo->SetMaxTargetPosIdx(1);
		tPos.Decompress(pMoveInfo->GetTargetPosition(0));
	}
	int GetSize()
	{
		return sizeof(MOVE_ONETARGETPOS);
	}
};

⌨️ 快捷键说明

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