📄 commonstruct.h
字号:
struct MOVE_ONETARGETPOS_FROMSERVER : public MSGBASE
{
COMPRESSEDPOS sPos;
COMPRESSEDPOS tPos;
void SetStartPos( VECTOR3 * pos )
{
sPos.Compress(pos);
}
void GetStartPos( VECTOR3 * pos )
{
sPos.Decompress( pos );
}
void SetTargetPos( VECTOR3* pos )
{
tPos.Compress( pos );
}
void GetTargetInfo(MOVE_INFO * pMoveInfo)
{
pMoveInfo->SetCurTargetPosIdx(0);
pMoveInfo->SetMaxTargetPosIdx(1);
tPos.Decompress(pMoveInfo->GetTargetPosition(0));
}
int GetSize()
{
return sizeof(MOVE_ONETARGETPOS_FROMSERVER);
}
};
struct MOVE_TARGETPOS : public MSGBASE
{
DWORD dwMoverID;
COMPRESSEDPOS spos;
COMPRESSEDTARGETPOS tpos;
void Init()
{
tpos.Init();
}
void SetStartPos(VECTOR3 * pos)
{
spos.Compress(pos);
}
void AddTargetPos(VECTOR3 * pos)
{
tpos.AddTargetPos(pos);
}
void GetStartPos(VECTOR3 * pos)
{
spos.Decompress(pos);
}
void GetTargetInfo(MOVE_INFO * pMoveInfo)
{
pMoveInfo->SetCurTargetPosIdx(0);//CurTargetPositionIdx = 0;
pMoveInfo->SetMaxTargetPosIdx(tpos.PosNum);//pMoveInfo->MaxTargetPositionIdx = tpos.PosNum;
ASSERT( tpos.PosNum <= MAX_CHARTARGETPOSBUF_SIZE );
for(int i = 0 ; i < tpos.PosNum ; ++i)
tpos.pos[i].Decompress(pMoveInfo->GetTargetPosition(i));//&pMoveInfo->TargetPositions[i]);
}
int GetSize()
{
return sizeof(MOVE_TARGETPOS) - tpos.GetSurplusSize();
}
};
struct MOVE_POS : public MSGBASE
{
DWORD dwMoverID;
COMPRESSEDPOS cpos;
};
struct MOVE_POS_USER : public MSGBASE
{
char Name[MAX_NAME_LENGTH+1];
COMPRESSEDPOS cpos;
};
struct MSG_WHERE_INFO : public MSGBASE
{
WORD wMapNum; //甘锅龋
BYTE bChannel; //盲澄锅龋
COMPRESSEDPOS cpos; //困摹
};
struct BASEOBJECT_INFO
{
BASEOBJECT_INFO()
{
BattleID = 0;
BattleTeam = 0;
}
DWORD dwObjectID;
DWORD dwUserID;
char ObjectName[MAX_NAME_LENGTH+1];
DWORD BattleID;
BYTE BattleTeam;
BYTE ObjectState;
};
struct CHARACTER_TOTALINFO
{
DWORD Life; // 积疙仿 //?
DWORD MaxLife; // 弥措 积疙仿 //?
DWORD Shield; // 龋脚碍扁 //?
DWORD MaxShield; // 弥措 龋脚碍扁 //?
BYTE Gender; // 己喊
BYTE FaceType; // 倔奔锅龋
BYTE HairType; // 赣府葛剧 锅龋
WORD WearedItemIdx[eWearedItem_Max]; // 馒侩茄 酒捞牌甸狼 辆幅
BYTE Stage; // 版瘤
LEVELTYPE Level; // 饭骇 //?
MAPTYPE CurMapNum; // 泅犁甘 //?
MAPTYPE LoginMapNum; // 肺弊牢甘 //?
bool bPeace; // 傈/乞拳葛靛 FALSE 搁 傈捧 TRUE 搁 乞拳 //?
WORD MapChangePoint_Index; // 甘傈券矫 荤侩 //?
WORD LoginPoint_Index; // 肺弊牢矫 荤侩 //?
DWORD MunpaID; // 巩颇 牢郸胶
BYTE PositionInMunpa; // 巩颇 流困
bool bVisible; // 墨皋扼 葛靛甫 困茄 函荐
bool bPKMode; //PK葛靛 咯何
FAMETYPE BadFame; //厩疙(PK荐摹)
float Height; // 虐
float Width; // 眉拜
};
struct SEND_MONSTER_TOTALINFO : public MSGBASE
{
BASEOBJECT_INFO BaseObjectInfo;
MONSTER_TOTALINFO TotalInfo;
SEND_MOVEINFO MoveInfo;
BYTE bLogin;
CAddableInfoList AddableInfo;
WORD GetMsgLength() { return sizeof(SEND_MONSTER_TOTALINFO) - sizeof(CAddableInfoList) + AddableInfo.GetInfoLength(); }
};
struct SEND_NPC_TOTALINFO : public MSGBASE
{
BASEOBJECT_INFO BaseObjectInfo;
NPC_TOTALINFO TotalInfo;
SEND_MOVEINFO MoveInfo;
float Angle;
BYTE bLogin;
CAddableInfoList AddableInfo;
WORD GetMsgLength() { return sizeof(SEND_NPC_TOTALINFO) - sizeof(CAddableInfoList) + AddableInfo.GetInfoLength(); }
};
struct SEND_CHARACTER_TOTALINFO : public MSGBASE
{
BASEOBJECT_INFO BaseObjectInfo;
CHARACTER_TOTALINFO TotalInfo;
SEND_MOVEINFO MoveInfo;
BYTE bLogin;
CAddableInfoList AddableInfo;
WORD GetMsgLength() { return sizeof(SEND_CHARACTER_TOTALINFO) - sizeof(CAddableInfoList) + AddableInfo.GetInfoLength(); }
};
struct ABILITY_TOTALINFO
{
char AbilityDataArray[eAGK_Max][MAX_ABILITY_NUM_PER_GROUP+1];
char AbilityQuickPositionArray[eAGK_Max][MAX_ABILITY_NUM_PER_GROUP+1];
};
struct SEND_HERO_TOTALINFO : public MSGBASE
{
BASEOBJECT_INFO BaseObjectInfo;
CHARACTER_TOTALINFO ChrTotalInfo;
HERO_TOTALINFO HeroTotalInfo;
SEND_MOVEINFO SendMoveInfo;
DWORD UniqueIDinAgent;
MUGONG_TOTALINFO MugongTotalInfo;
ABILITY_TOTALINFO AbilityInfo;
ITEM_TOTALINFO ItemTotalInfo;
WORD OptionNum;
ITEM_OPTION_INFO OptionInfo[MAX_ITEM_OPTION_NUM];
WORD GetMsgLength()
{
return sizeof(SEND_HERO_TOTALINFO) - (MAX_ITEM_OPTION_NUM - OptionNum)*sizeof(ITEM_OPTION_INFO);
}
void InitOptionInfo()
{
OptionNum = 0;
}
void AddOptionInfo(ITEM_OPTION_INFO * pInfo)
{
memcpy(&OptionInfo[OptionNum], pInfo, sizeof(ITEM_OPTION_INFO));
++OptionNum;
}
};
struct SEND_CHARSELECT_INFO : public MSGBASE
{
#ifdef _CRYPTCHECK_
HselInit eninit;
HselInit deinit;
#endif
int CharNum;
WORD StandingArrayNum[MAX_CHARACTER_NUM]; // pjs 纳腐磐狼 困摹 鉴辑 [5/22/2003]
BASEOBJECT_INFO BaseObjectInfo[MAX_CHARACTER_NUM];
CHARACTER_TOTALINFO ChrTotalInfo[MAX_CHARACTER_NUM];
};
/*
struct SEND_CHARMAKE_INFO : public MSGBASE
{
DWORD UserID;
char Name[MAX_NAME_LENGTH+1];
BYTE Job;
BYTE FaceType;
BYTE HeadType;
MAPTYPE Map;
BYTE Gender;
char Name[MAX_NAME_LENGTH+1]; // 某腐磐 捞抚
DWORD UserID;
BYTE JobType;
BYTE SexType;
BYTE BodyType;
BYTE HairType;
BYTE FaceType;
BYTE StartArea;
BOOL bDuplCheck;
};
*/
struct MSG_NAME : public MSGBASE
{
char Name[MAX_NAME_LENGTH+1];
};
struct MSG_NAME2 : public MSGBASE
{
char str1[MAX_NAME_LENGTH+1];
char str2[MAX_NAME_LENGTH+1];
};
struct MSG_NAME_DWORD : public MSGBASE
{
char Name[MAX_NAME_LENGTH+1];
DWORD dwData;
};
struct MSG_NAME_WORD : public MSGBASE
{
char Name[MAX_NAME_LENGTH+1];
WORD wData;
};
struct MSG_NAME_DWORD2 : public MSGBASE
{
char Name[MAX_NAME_LENGTH+1];
DWORD dwData1;
DWORD dwData2;
};
//蒲 单捞磐 苞访 ////////////////////////////////////////////////
struct SEND_PACKED_DATA : public MSGBASE
{
WORD wRealDataSize;
WORD wReceiverNum;
char Data[MAX_PACKEDDATA_SIZE];
};
struct SEND_PACKED_TOMAPSERVER_DATA : public MSGBASE
{
MAPTYPE ToMapNum;
WORD wRealDataSize;
char Data[MAX_PACKEDDATA_SIZE];
WORD GetMsgLength()
{
return sizeof(SEND_PACKED_TOMAPSERVER_DATA) - MAX_PACKEDDATA_SIZE + wRealDataSize;
}
};
// 酒捞袍 包访 匙飘焢 皋矫瘤 ////////////////////////////////////
struct MSG_ITEM : public MSGBASE
{
ITEMBASE ItemInfo;
};
//货肺 累诀
struct ITEMOBTAINARRAY : public MSGBASE
{
ITEMOBTAINARRAY()
{
ItemNum = 0;
}
void Init( BYTE cg, BYTE pt, DWORD dwID )
{
Category = cg;
Protocol = pt;
dwObjectID = dwID;
}
void AddItem( DWORD DBIdx, WORD ItemIdx, DURTYPE Durability, POSTYPE bPosition, POSTYPE QuickPosition )
{
ItemInfo[ItemNum].dwDBIdx = DBIdx;
ItemInfo[ItemNum].wIconIdx = ItemIdx;
ItemInfo[ItemNum].Durability = Durability;
ItemInfo[ItemNum].Position = bPosition;
ItemInfo[ItemNum].QuickPosition = QuickPosition;
ItemNum++;
}
void AddItem( WORD idx, ITEMBASE * item)
{
memcpy( &ItemInfo[idx], item, sizeof( ITEMBASE ) );
ItemNum++;
}
ITEMBASE * GetItem( WORD idx ) { return &ItemInfo[idx]; }
int GetSize()
{
return ( sizeof( ITEMOBTAINARRAY ) - ( sizeof( ITEMBASE ) * ( SLOT_INVENTORY_NUM - ItemNum ) ) );
}
void Clear()
{
memset( this, 0, sizeof( ITEMOBTAINARRAY ) );
ItemNum = 0;
}
BYTE ItemNum;
WORD wObtainCount;
ITEMBASE ItemInfo[SLOT_INVENTORY_NUM];
};
typedef void (*DBResult)(void * pPlayer, WORD ArrayID);
struct ITEMOBTAINARRAYINFO
{
WORD wObtainArrayID;
DBResult CallBack;
DWORD dwFurnisherIdx;
WORD wType;
ITEMOBTAINARRAY ItemArray;
};
struct MSG_ITEM_ERROR : public MSGBASE
{
int ECode;
};
struct MSG_ITEM_MOVE_SYN : public MSGBASE
{
POSTYPE FromPos;
WORD wFromItemIdx;
POSTYPE ToPos;
WORD wToItemIdx;
};
struct MSG_ITEM_MOVE_ACK : public MSG_ITEM_MOVE_SYN
{
};
struct MSG_ITEM_COMBINE_SYN : public MSGBASE
{
WORD wItemIdx;
POSTYPE FromPos;
POSTYPE ToPos;
DURTYPE FromDur;
DURTYPE ToDur;
};
struct MSG_ITEM_COMBINE_ACK : public MSG_ITEM_COMBINE_SYN
{
};
struct MSG_ITEM_DIVIDE_SYN : public MSGBASE
{
WORD wItemIdx;
POSTYPE FromPos;
POSTYPE ToPos;
DURTYPE FromDur;
DURTYPE ToDur;
};
struct MSG_ITEM_DISCARD_SYN : public MSGBASE
{
POSTYPE TargetPos;
WORD wItemIdx;
WORD ItemNum;
};
struct MSG_ITEM_DISCARD_ACK : public MSG_ITEM_DISCARD_SYN
{
};
struct MSG_ITEM_BUY_SYN : public MSGBASE
{
WORD wBuyItemIdx;
WORD BuyItemNum;
DWORD dwDealerIdx;
};
struct MSG_ITEM_SELL_SYN : public MSGBASE
{
POSTYPE TargetPos;
WORD wSellItemIdx;
WORD SellItemNum;
DWORD dwDealerIdx;
};
struct MSG_ITEM_SELL_ACK : public MSG_ITEM_SELL_SYN
{
};
struct MSG_ITEM_UPGRADE_SYN : public MSGBASE
{
POSTYPE ItemPos;
WORD wItemIdx;
POSTYPE MaterialItemPos;
WORD wMaterialItemIdx;
};
struct MSG_ITEM_UPGRADE_ACK : public MSG_ITEM_UPGRADE_SYN
{
};
struct MATERIAL_ARRAY
{
WORD wItemIdx;
POSTYPE ItemPos;
DURTYPE Dur;
};
struct MSG_ITEM_MIX_SYN : public MSGBASE
{
WORD wBasicItemIdx;
POSTYPE BasicItemPos;
WORD wResultItemIdx;
POSTYPE ResultIndex;
WORD wMaterialNum;
MATERIAL_ARRAY Material[MAX_MIX_MATERIAL];
void Init()
{
wMaterialNum = 0;
}
void AddMaterial(WORD wItemIdx, POSTYPE ItemPos, DURTYPE Dur)
{
Material[wMaterialNum].wItemIdx = wItemIdx;
Material[wMaterialNum].ItemPos = ItemPos;
Material[wMaterialNum++].Dur = Dur;
}
int GetSize()
{
return sizeof(MSG_ITEM_MIX_SYN) - (MAX_MIX_MATERIAL - wMaterialNum)*sizeof(MATERIAL_ARRAY);
}
};
struct MSG_ITEM_MIX_ACK : public MSG_ITEM_MIX_SYN
{
};
struct MSG_ITEM_USE_SYN : public MSGBASE
{
POSTYPE TargetPos;
WORD wItemIdx;
};
struct MSG_ITEM_USE_ACK : public MSG_ITEM_USE_SYN
{
};
/// 酒捞袍 可记 沥焊 //////////////////////////////////
struct ITEM_JEWEL_POS
{
WORD wItemIdx;
POSTYPE pos;
};
struct ITEM_JEWEL_POS_EX
{
WORD wItemIdx;
POSTYPE pos;
DURTYPE Dur;
};
struct MSG_ITEM_DISSOLVE_SYN : public MSGBASE
{
WORD wTargetItemIdx;
POSTYPE TargetPos;
WORD wOptionIdx;
};
struct MSG_ITEM_REINFORCE_SYN : public MSGBASE
{
void Init( BYTE cg, BYTE pt, DWORD dwID )
{
Category = cg;
Protocol = pt;
dwObjectID = dwID;
wJewelUnit = 0;
}
void AddJewelInfo(WORD JewelItemIdx, POSTYPE Pos, DURTYPE Dur )
{
JewelWhich[wJewelUnit].wItemIdx = JewelItemIdx;
JewelWhich[wJewelUnit].pos = Pos;
JewelWhich[wJewelUnit].Dur = Dur;
++wJewelUnit;
}
int GetSize()
{
return sizeof(MSG_ITEM_REINFORCE_SYN) - (MAX_ITEM_OPTION_NUM - wJewelUnit)*sizeof(ITEM_JEWEL_POS_EX);
}
WORD wTargetItemIdx;
POSTYPE TargetPos;
WORD wJewelUnit;
ITEM_JEWEL_POS_EX JewelWhich[MAX_ITEM_OPTION_NUM];
};
struct MSG_ITEM_REINFORCE_ACK : public MSGBASE
{
WORD wTargetItemIdx;
POSTYPE TargetPos;
ITEM_OPTION_INFO OptionInfo;
};
///////////////////////////////////////////////////////
// 窜绵芒
struct MSG_QUICK_ADD_SYN : public MSGBASE
{
POSTYPE QuickPos;
POSTYPE SrcPos;
WORD SrcItemIdx;
POSTYPE OldSrcPos;
WORD OldSrcItemIdx;
};
struct MSG_QUICK_ADD_ACK : public MSG_QUICK_ADD_SYN
{
};
struct MSG_QUICK_REM_SYN : public MSGBASE
{
POSTYPE SrcPos;
POSTYPE SrcItemIdx;
};
struct MSG_QUICK_REM_ACK : public MSG_QUICK_REM_SYN
{
};
struct MSG_QUICK_MOVE_SYN : public MSGBASE
{
POSTYPE FromSrcPos;
WORD wFromSrcItemIdx;
POSTYPE FromQuickPos;
POSTYPE ToSrcPos;
WORD wToSrcItemIdx;
POSTYPE ToQuickPos;
};
struct MSG_QUICK_MOVE_ACK : public MSG_QUICK_MOVE_SYN
{
};
struct MSG_QUICK_ERROR : public MSGBASE
{
int ECode;
};
//////////// 公傍 包访 匙飘焢 皋矫瘤 /////////////////////////////
//-------------- 公傍(胶懦) 捞悼 (in 公傍芒) ---------------------
struct MSG_MUGONG_MOVE_SYN : public MSGBASE
{
POSTYPE FromPos;
POSTYPE ToPos;
};
struct MSG_MUGONG_MOVE_ACK : public MSG_MUGONG_MOVE_SYN
{
};
struct MSG_MUGONG_REM_SYN : public MSGBASE
{
WORD wMugongIdx;
POSTYPE TargetPos;
};
struct MSG_MUGONG_REM_ACK : public MSG_MUGONG_REM_SYN
{
};
struct MSG_MUGONG_ADD_ACK : public MSGBASE
{
MUGONGBASE MugongBase;
};
/*
struct MSG_MUGONG_ADD_NACK : public MSGBASE
{
};
struct MSG_MUGONG_MOVEINFO : public MSGBASE
{
DWORD dwMugongDBIdx;
POSTYPE wToPosition;
POSTYPE wFromPosition;
};
struct MSG_MUGONG_DELINFO : public MSGBASE
{
DWORD dwMugongDBIdx;
POSTYPE wPosition;
};
struct MSG_MUGONG_ADDINVDEL_SYN : public MSGBASE
{
BYTE bMugongType; // 0,1,2
DWORD dwItemDBIdx; // 酒捞袍 db index
POSTYPE wItemPosition; // 酒捞袍 pos
};
struct MSG_MUGONG_ADDINVDEL_ACK : public MSGBASE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -