📄 commonstruct.h
字号:
void AddTeamMember(DWORD id)
{
for(int n=0;n<MAX_MUNPAFIELD_MEMBERNUM;++n)
{
if(TeamMember[n].MemberID == 0)
{
TeamMember[n].MemberID = id;
break;
}
}
}
};
struct MSG_BATTLESETTING_SYN_MUNPAFIELD : public BATTLE_INFO_BASE
{
MUNPAFIELD_TEAMINFO TeamInfo[2];
};
//---------------------------------------------------------------------------------------
// Murim Field
struct MURIMFIELD_TEAMINFO
{
BYTE TotalKill;
BYTE TotalDied;
BATTLE_TEAMMEMBER_INFO TeamMember[MAX_MURIMFIELD_MEMBERNUM];
BATTLE_TEAMMEMBER_INFO* FindMember(DWORD id)
{
for(int n=0;n<MAX_MURIMFIELD_MEMBERNUM;++n)
{
if(TeamMember[n].MemberID == id)
return &TeamMember[n];
}
return NULL;
}
void AddTeamMember(DWORD id)
{
for(int n=0;n<MAX_MURIMFIELD_MEMBERNUM;++n)
{
if(TeamMember[n].MemberID == 0)
{
TeamMember[n].MemberID = id;
break;
}
}
}
};
struct MURIMFIELD_BATTLE_INFO
{
WORD wMurimBattleKind; // 公覆 措傈 霸烙 辆幅
WORD wMurimBattleReward; // 公覆 措傈 焊惑
};
struct MSG_BATTLESETTING_SYN_MURIMFIELD : public BATTLE_INFO_BASE
{
MURIMFIELD_BATTLE_INFO MurimBattleInfo;
MURIMFIELD_TEAMINFO TeamInfo[3];
};
//---------------------------------------------------------------------------------------
#define MAX_BATTLE_INFO_LENGTH 2048
struct MSG_BATTLE_INFO : public MSGBASE
{
BYTE BattleKind;
char info[MAX_BATTLE_INFO_LENGTH];
WORD msglen;
int GetMsgLength()
{
return sizeof(MSGBASE) + msglen + sizeof(BYTE);
}
};
struct MSG_BATTLE_TEAMMEMBER_ADDDELETE : public MSGBASE
{
BATTLE_TEAMMEMBER_INFO Member;
BYTE Team;
};
//==============
//For VimuStreet
struct MSG_BATTLE_VIMU_CREATESTAGE : public MSGBASE
{
DWORD dwBattleID;
VECTOR3 vPosStage; //捞巴 临捞磊. 酒贰肺 官操磊.
// COMPRESSEDPOS vPosStage
};
//===============
struct MSG_MONEY : public MSGBASE
{
MONEYTYPE dwTotalMoney; // 傈眉 陛咀
BYTE bFlag; // MsgFlag
};
//////////////////
//---for MURIM NET
struct MNPLAYER_BASEINFO
{
DWORD dwObjectID;
WORD wRankPoint;
char strPlayerName[MAX_NAME_LENGTH];
LEVELTYPE Level;
char strNick[MAX_NAME_LENGTH];
WORD wPlayCount;
WORD wWin;
WORD wLose;
char strMunpa[MAX_NAME_LENGTH];
char cbPositionInMunpa;
char cbTeam;
};
struct MSG_MNPLAYER_BASEINFO : public MSGBASE
{
MNPLAYER_BASEINFO Info;
};
struct MSG_MNPLAYER_BASEINFOLIST : public MSGBASE
{
DWORD dwTotalPlayerNum;
MNPLAYER_BASEINFO PlayerInfo[MAXPLAYER_IN_CHANNEL];
WORD GetMsgLength()
{
return sizeof(MSG_MNPLAYER_BASEINFOLIST)
- sizeof(MNPLAYER_BASEINFO)*(MAXPLAYER_IN_CHANNEL - dwTotalPlayerNum);
}
};
struct CHANNEL_BASEINFO
{
DWORD dwChannelIndex;
char strChannelTitle[MAX_CHANNELTITLE_LENGTH];
char cbChannelKind;
WORD wMaxPlayer;
WORD wPlayerNum;
};
struct MSG_CHANNEL_BASEINFO : public MSGBASE
{
CHANNEL_BASEINFO Info;
};
struct MSG_CHANNEL_BASEINFOLIST : public MSGBASE
{
DWORD dwTotalChannelNum;
CHANNEL_BASEINFO ChannelInfo[MAXCHANNEL_IN_MURIMNET];
WORD GetMsgLength()
{
return sizeof(MSG_CHANNEL_BASEINFOLIST)
- sizeof(CHANNEL_BASEINFO)*(MAXCHANNEL_IN_MURIMNET - dwTotalChannelNum);
}
};
struct PLAYROOM_BASEINFO
{
DWORD dwPlayRoomIndex;
char strPlayRoomTitle[MAX_PLAYROOMTITLE_LENGTH];
char cbPlayRoomKind;
WORD wMaxObserver;
WORD wMaxPlayerPerTeam;
MONEYTYPE MoneyForPlay;
WORD wPlayerNum;
char cbStart;
MAPTYPE wMapNum;
};
struct MSG_PLAYROOM_BASEINFO : public MSGBASE
{
PLAYROOM_BASEINFO Info;
};
struct MSG_PLAYROOM_BASEINFOLIST : public MSGBASE
{
DWORD dwTotalPlayRoomNum;
PLAYROOM_BASEINFO PlayRoomInfo[MAXPLAYROOM_IN_MURIMNET];
WORD GetMsgLength()
{
return sizeof(MSG_PLAYROOM_BASEINFOLIST)
- sizeof(PLAYROOM_BASEINFO)*(MAXPLAYROOM_IN_MURIMNET - dwTotalPlayRoomNum);
}
};
struct MSG_MNTEAMCHANGE : public MSGBASE
{
DWORD dwMoverID;
BYTE cbFromTeam;
BYTE cbToTeam;
};
//---规沥焊 (to Murim Server)
struct MSPLAYER_INFO
{
DWORD dwObjectID;
BYTE cbTeam;
};
struct MSG_MNPLAYROOM_INFO : public MSGBASE
{
int nIndex;
int nGameKind;
int nTotalPlayerNum;
MAPTYPE wMapNum;
MSPLAYER_INFO PlayerInfo[100];
WORD GetMsgLength()
{
return sizeof(MSG_MNPLAYROOM_INFO) - sizeof(MSPLAYER_INFO)*(100 - nTotalPlayerNum);
}
};
struct WANTEDINFO
{
WANTEDTYPE WantedIDX;
MONEYTYPE TotalPrize;
DWORD WantedChrIDX;
char WantedChrName[MAX_NAME_LENGTH+1];
DWORD RegistChrIDX;
};
struct WANTEDINFO_LOAD
{
WANTEDINFO m_WantedInfo[MAX_QUERY_RESULT];
int count;
};
struct SEND_WANTEDINFO_TO_SERVER : public MSGBASE
{
WANTEDINFO Info;
};
struct WANTEDLIST
{
WANTEDTYPE WantedIDX;
DWORD WantedChrID;
char WantedName[MAX_NAME_LENGTH+1];
char RegistDate[11];
};
struct SEND_WANTEDLIST_TO_CLIENT : public MSGBASE
{
WANTEDLIST List;
};
struct SEND_WANTEDLIST : public MSGBASE
{
WORD WantedIdx; // himself
WANTEDLIST List[MAX_WANTED_NUM];
};
struct SEND_WANTED_NOTCOMPLETE : public MSGBASE
{
WANTEDTYPE WantedIDX;
char CompleterName[MAX_NAME_LENGTH+1];
BYTE type;
};
struct SEND_WANTED_ORDER_SYN : public MSGBASE
{
WORD page;
BYTE type;
};
struct WANTNPCLIST
{
WANTEDTYPE WantedIDX;
char WantedName[MAX_NAME_LENGTH+1];
MONEYTYPE Prize;
BYTE VolunteerNum;
};
struct SEND_WANTNPCLIST : public MSGBASE
{
WANTNPCLIST WantNpcList[WANTUNIT_PER_PAGE];
WORD TotalPage;
};
//----------------------------------
// RaMa ( 04.07.12 )
#pragma pack(1)
typedef DWORD QSTATETYPE;
#define MAX_BIT ((sizeof(QSTATETYPE))*(8))
typedef struct stTime{
QSTATETYPE value;
stTime():value(0) {}
void SetTime(DWORD time) { value = time; }
void SetTime(DWORD year, DWORD month, DWORD day, DWORD hour, DWORD minute, DWORD second)
{
QSTATETYPE ch=0;
ch = year;
value = (value | (ch<<28));
ch = month;
value = (value | (ch<<24));
ch = day;
value = (value | (ch<<18));
ch = hour;
value = (value | (ch<<12));
ch = minute;
value = (value | (ch<<6));
ch = second;
value = (value | ch);
}
//
DWORD GetYear() { return value>>28; }
DWORD GetMonth() { DWORD msk = value<<4; return msk>>28; }
DWORD GetDay() { DWORD msk = value<<8; return msk>>26; }
DWORD GetHour() { DWORD msk = value<<14; return msk>>26; }
DWORD GetMinute() { DWORD msk = value<<20; return msk>>26; }
DWORD GetSecond() { DWORD msk = value<<26; return msk>>26; }
} stTIME;
#define YEARTOSECOND 31536000
#define DAYTOSECOND 86400
#define HOURTOSECOND 3600
#define MINUTETOSECOND 60
struct stPlayTime {
DWORD value;
stPlayTime::stPlayTime()
{
value = 0;
}
void GetTime(int& Year, int& Day, int& Hour, int& Minute, int& Second)
{
int mv = 0;
Year = value/YEARTOSECOND;
mv = value%YEARTOSECOND;
Day = mv/DAYTOSECOND;
mv = mv%DAYTOSECOND;
Hour = mv/HOURTOSECOND;
mv = mv%HOURTOSECOND;
Minute = mv/MINUTETOSECOND;
Second = mv%MINUTETOSECOND;
}
};
// LBS 04.01.06----------------------------------
typedef struct tagField{
DWORD b0:1;
DWORD b1:1;
DWORD b2:1;
DWORD b3:1;
DWORD b4:1;
DWORD b5:1;
DWORD b6:1;
DWORD b7:1;
DWORD b8:1;
DWORD b9:1;
DWORD b10:1;
DWORD b11:1;
DWORD b12:1;
DWORD b13:1;
DWORD b14:1;
DWORD b15:1;
DWORD b16:1;
DWORD b17:1;
DWORD b18:1;
DWORD b19:1;
DWORD b20:1;
DWORD b21:1;
DWORD b22:1;
DWORD b23:1;
DWORD b24:1;
DWORD b25:1;
DWORD b26:1;
DWORD b27:1;
DWORD b28:1;
DWORD b29:1;
DWORD b30:1;
DWORD b31:1;
} stFIELD, *pFIELD;
typedef union tagQuestFlag{
QSTATETYPE value;
stFIELD flag;
tagQuestFlag():value(0) {}
void SetField(BYTE bit, BOOL bSetZero=FALSE) // nBit狼 蜡瓤 箭磊绰 DWORD牢版快1 ~ 32 捞促
{
if( bit < 1 || bit > MAX_BIT ) return;
QSTATETYPE ch;
bSetZero ? ch=1 : ch=0;
value = (value | (ch<<(MAX_BIT- bit)));
}
BOOL IsSet(BYTE bit)
{
// 静饭扁 蔼甸绢坷绰 版快 泅犁 利侩登菌促绊 舅赴促.
if( bit < 1 || bit > MAX_BIT ) return TRUE;
QSTATETYPE ch = 1;
return (value & (ch<<(MAX_BIT-bit)))? TRUE:FALSE;
}
} QFLAG, *pQFLAG;
struct QBASE
{
WORD QuestIdx;
QSTATETYPE state;
};
struct QMBASE
{
WORD QuestIdx;
QFLAG state;
DWORD EndParam;
DWORD Time;
};
struct QSUBASE
{
WORD QuestIdx;
WORD SubQuestIdx;
QSTATETYPE state;
QSTATETYPE time;
};
struct QITEMBASE
{
DWORD ItemIdx;
WORD Count;
WORD QuestIdx;
};
struct SEND_QUEST_IDX_SIMPLE : public MSGBASE
{
DWORD MainQuestIdx;
};
struct SEND_QUEST_IDX : public MSGBASE
{
WORD MainQuestIdx;
WORD SubQuestIdx;
DWORD dwFlag;
DWORD dwData;
DWORD dwTime;
};
struct SEND_QUESTITEM_IDX : public MSGBASE
{
DWORD dwItemIdx;
DWORD dwItemNum;
};
struct SEND_QUEST_TOTALINFO : public MSGBASE
{
int GetSize() {
return (sizeof(SEND_QUEST_TOTALINFO) - sizeof(QBASE)*(50 - wCount));
}
WORD wCount;
QBASE QuestList[50];
};
struct SEND_MAINQUEST_DATA : public MSGBASE
{
int GetSize() {
return (sizeof(SEND_MAINQUEST_DATA) - sizeof(QMBASE)*(100 - wCount));
}
WORD wCount;
QMBASE QuestList[100];
};
struct SEND_SUBQUEST_DATA : public MSGBASE
{
int GetSize() {
return (sizeof(SEND_SUBQUEST_DATA) -sizeof(QSUBASE)*(100-wCount));
}
WORD wCount;
QSUBASE QuestList[100];
};
struct SEND_SUBQUEST_UPDATE : public MSGBASE
{
WORD wQuestIdx;
WORD wSubQuestIdx;
DWORD dwMaxCount;
DWORD dwData;
DWORD dwTime;
};
struct SEND_QUESTITEM : public MSGBASE
{
int GetSize() {
return (sizeof(SEND_QUESTITEM)-sizeof(QITEMBASE)*(100-wCount));
}
WORD wCount;
QITEMBASE ItemList[100];
};
struct QUESTINFO {
DWORD m_dwIdx; // Quest idx
QFLAG m_flag; // Quest State Value
};
struct JOURNALINFO
{
DWORD Index;
BYTE Kind;
DWORD Param;
DWORD Param_2; // SubQuestIndex
DWORD Param_3; // Quest 矫累牢瘤 肯丰牢瘤
BYTE bSaved;
char ParamName[MAX_NAME_LENGTH+1];
char RegDate[11];
};
struct SEND_JOURNALLIST : public MSGBASE
{
WORD wCount;
JOURNALINFO m_Info[MAX_JOURNAL_ITEM];
int GetSize() {
return (sizeof(SEND_JOURNALLIST)-sizeof(JOURNALINFO)*(MAX_JOURNAL_ITEM-wCount));
}
};
struct SEND_JOURNALINFO : public MSGBASE
{
JOURNALINFO m_Info;
};
struct SEND_JOURNAL_DWORD : public MSGBASE
{
DWORD Param;
};
// PartyIcon
struct MoveCoord
{
WORD posX;
WORD posZ;
MoveCoord::MoveCoord()
{
posX = posZ = 0;
}
};
struct PARTYICON_MOVEINFO
{
DWORD dwMoverID;
BYTE tgCount;
WORD KyungGongIdx;
BYTE MoveState;
MoveCoord cPos;
MoveCoord tgPos[MAX_CHARTARGETPOSBUF_SIZE];
PARTYICON_MOVEINFO::PARTYICON_MOVEINFO()
{
dwMoverID = 0;
tgCount = 0;
KyungGongIdx = 0;
MoveState = 0;
memset(&cPos, 0, sizeof(MoveCoord));
memset(tgPos, 0, sizeof(MoveCoord)*MAX_CHARTARGETPOSBUF_SIZE);
}
int GetSize()
{
return sizeof(PARTYICON_MOVEINFO)-sizeof(MoveCoord)*(MAX_CHA
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -