📄 define.h
字号:
#ifndef _DEFINE_H
#define _DEFINE_H
#define MAX_USER 3000
#define MAX_ID_SIZE 20
#define MAX_PW_SIZE 12
#define MAX_ITEM 28
////////////////////////////////////////////////////////////
// Socket Define
////////////////////////////////////////////////////////////
#define SOCKET_BUFF_SIZE (1024*8)
#define MAX_PACKET_SIZE (1024*2)
#define PACKET_START1 0XAA
#define PACKET_START2 0X55
#define PACKET_END1 0X55
#define PACKET_END2 0XAA
//#define PROTOCOL_VER 0X01
// status
#define STATE_CONNECTED 0X01
#define STATE_DISCONNECTED 0X02
#define STATE_GAMESTART 0x03
/////////////////////////////////////////////////////
// ITEM_SLOT DEFINE
#define RIGHTEAR 0
#define HEAD 1
#define LEFTEAR 2
#define NECK 3
#define BREAST 4
#define SHOULDER 5
#define RIGHTHAND 6
#define WAIST 7
#define LEFTHAND 8
#define RIGHTRING 9
#define LEG 10
#define LEFTRING 11
#define GLOVE 12
#define FOOT 13
/////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
typedef union{
short int i;
BYTE b[2];
} MYSHORT;
typedef union{
int i;
BYTE b[4];
} MYINT;
typedef union{
DWORD w;
BYTE b[4];
} MYDWORD;
// DEFINE MACRO PART...
#define BufInc(x) (x)++;(x) %= SOCKET_BUF_SIZE;
// DEFINE Shared Memory Queue Flag
#define E 0x00
#define R 0x01
#define W 0x02
#define WR 0x03
// DEFINE Shared Memory Queue Return VALUE
#define SMQ_BROKEN 10000
#define SMQ_FULL 10001
#define SMQ_EMPTY 10002
#define SMQ_PKTSIZEOVER 10003
#define SMQ_WRITING 10004
#define SMQ_READING 10005
// DEFINE Shared Memory Costumizing
#define MAX_PKTSIZE 512
#define MAX_COUNT 4096
#define SMQ_LOGGERSEND "KNIGHT_SEND"
#define SMQ_LOGGERRECV "KNIGHT_RECV"
// Packet Define...
#define WIZ_LOGIN 0x01 // Account Login
#define WIZ_NEW_CHAR 0x02 // Create Character DB
#define WIZ_DEL_CHAR 0x03 // Delete Character DB
#define WIZ_SEL_CHAR 0x04 // Select Character
#define WIZ_SEL_NATION 0x05 // Select Nation
#define WIZ_ALLCHAR_INFO_REQ 0x0C // Account All Character Info Request
#define WIZ_LOGOUT 0x0F // Request Logout
#define WIZ_DATASAVE 0x37 // User GameData DB Save Request
#define WIZ_KNIGHTS_PROCESS 0x3C // Knights Related Packet..
#define WIZ_CLAN_PROCESS 0x4E // Clans Related Packet..
#define WIZ_LOGIN_INFO 0x50 // define for DBAgent Communication
#define WIZ_KICKOUT 0x51 // Account ID forbid duplicate connection
#define WIZ_BATTLE_EVENT 0x57 // Battle Event Result
#define DB_COUPON_EVENT 0x10 // coupon event
#define CHECK_COUPON_EVENT 0x01
#define UPDATE_COUPON_EVENT 0x02
////////////////////////////////////////////////////////////////
// Knights Packet sub define
////////////////////////////////////////////////////////////////
#define KNIGHTS_CREATE 0x11 // 积己
#define KNIGHTS_JOIN 0x12 // 啊涝
#define KNIGHTS_WITHDRAW 0x13 // 呕硼
#define KNIGHTS_REMOVE 0x14 // 糕滚 昏力
#define KNIGHTS_DESTROY 0x15 // 磺俺扁
#define KNIGHTS_ADMIT 0x16 // 糕滚 啊涝 倾啊
#define KNIGHTS_REJECT 0x17 // 糕滚 啊涝 芭例
#define KNIGHTS_PUNISH 0x18 // 糕滚 隆拌
#define KNIGHTS_CHIEF 0x19 // 窜厘 烙疙
#define KNIGHTS_VICECHIEF 0x1A // 何窜厘 烙疙
#define KNIGHTS_OFFICER 0x1B // 厘背烙疙
#define KNIGHTS_ALLLIST_REQ 0x1C // 府胶飘甫 10俺 窜困肺 Page 夸没
#define KNIGHTS_MEMBER_REQ 0x1D // 葛电 糕滚 夸没
#define KNIGHTS_CURRENT_REQ 0x1E // 泅犁 立加 府胶飘
#define KNIGHTS_STASH 0x1F // 扁荤窜 芒绊
#define KNIGHTS_MODIFY_FAME 0x20 // 糕滚狼 流困 函版.. 秦寸 糕滚俊霸 埃促
#define KNIGHTS_JOIN_REQ 0x21 // 秦寸糕滚俊霸 啊涝夸没阑 茄促
#define KNIGHTS_LIST_REQ 0x22 // 扁荤窜 府胶飘甫 夸没 ( index 八祸 )
////////////////////////////////////////////////////////////////
// Clan Packet sub define
////////////////////////////////////////////////////////////////
#define CLAN_CREATE 0x01
#define CLAN_JOIN 0x02
////////////////////////////////////////////////////////////////
// Update User Data type define
////////////////////////////////////////////////////////////////
#define UPDATE_LOGOUT 0x01
#define UPDATE_ALL_SAVE 0x02
#define UPDATE_PACKET_SAVE 0x03
// Reply packet define...
#define SEND_ME 0x01
#define SEND_REGION 0x02
#define SEND_ALL 0x03
#define SLOT_MAX 14 // 馒侩 酒袍 MAX
#define HAVE_MAX 28 // 家蜡 酒袍 MAX (牢亥配府芒)
#define ITEMCOUNT_MAX 9999 // 家葛 酒捞袍 家蜡 茄拌蔼
#define WAREHOUSE_MAX 196 // 芒绊 酒捞袍 MAX
/////////////////////////////////////////////////////////////////////////////////
// Structure Define
/////////////////////////////////////////////////////////////////////////////////
struct _ITEM_DATA
{
int nNum; // item 锅龋
short sDuration; // item 郴备仿
short sCount; // item 肮荐 or item 绵汗 加己俊 秦寸 蔼
__int64 nSerialNum; // item serial code
};
struct _ITEM_TABLE
{
int m_iNum; // item num
char m_strName[50]; // item Name
BYTE m_bKind; // item 辆幅
BYTE m_bSlot; // 厘馒困摹
BYTE m_bRace; // 荤侩 啊瓷茄 辆练
BYTE m_bClass; // 荤侩 啊瓷茄 Class
short m_sDamage; // 弥措 鸥拜摹
short m_sDelay; // 傍拜矫埃
short m_sRange; // 裹困(蜡瓤芭府)
short m_sWeight; // 公霸
short m_sDuration; // 郴备己
int m_iBuyPrice; // 蜡历啊 荤绰啊拜
int m_iSellPrice; // 蜡历啊 颇绰啊拜
short m_sAc; // 规绢仿
BYTE m_bCountable; // 俺荐 俺充 酒捞袍
int m_iEffect1; // 概流 捞棋飘1
int m_iEffect2; // 概流 捞棋飘2
BYTE m_bReqLevel; // 夸备 饭骇
BYTE m_bReqRank; // 夸备 累困
BYTE m_bReqTitle; // 夸备 瘤困
BYTE m_bReqStr; // 夸备 塞
BYTE m_bReqSta; // 夸备 眉仿
BYTE m_bReqDex; // 夸备 刮酶
BYTE m_bReqIntel; // 夸备 瘤瓷
BYTE m_bReqCha; // 夸备 概仿
BYTE m_bSellingGroup; // 惑牢 秒鞭 拱前
BYTE m_ItemType; // 概流酒捞袍 肚绰 饭绢酒捞袍
short m_sHitrate; // 鸥拜伏
short m_sEvarate; // 雀乔啦
short m_sDaggerAc; // 规绢仿1
short m_sSwordAc; // 规绢仿2
short m_sMaceAc; // 规绢仿3
short m_sAxeAc; // 规绢仿4
short m_sSpearAc; // 规绢仿5
short m_sBowAc; // 规绢仿6
BYTE m_bFireDamage; // 阂 加己
BYTE m_bIceDamage; // 趁扁 加己
BYTE m_bLightningDamage; // 傈拜 加己
BYTE m_bPoisonDamage; // 刀 加己
BYTE m_bHPDrain; // HP 软荐
BYTE m_bMPDamage; // MP 鸥拜
BYTE m_bMPDrain; // MP 软荐
BYTE m_bMirrorDamage; // 馆荤 鸥拜
BYTE m_bDroprate; // 靛酚 厚啦
BYTE m_bStrB; // 塞 焊呈胶
BYTE m_bStaB; // 眉仿 焊呈胶
BYTE m_bDexB; // 刮酶己 焊呈胶
BYTE m_bIntelB; // 瘤瓷 焊呈胶
BYTE m_bChaB; // 概仿 焊呈胶
short m_MaxHpB; // MaxHP add
short m_MaxMpB; // MaxMP add
BYTE m_bFireR; // 阂 付过 历亲仿
BYTE m_bColdR; // 倔澜 付过 历亲仿
BYTE m_bLightningR; // 傈扁 付过 历亲仿
BYTE m_bMagicR; // 扁鸥 付过 历亲仿
BYTE m_bPoisonR; // 刀 付过 历亲仿
BYTE m_bCurseR; // 历林 付过 历亲仿
};
struct _USER_DATA
{
char m_id[MAX_ID_SIZE+1]; // 蜡历 ID
char m_Accountid[MAX_ID_SIZE+1]; // 拌沥 ID
BYTE m_bZone; // 泅犁 Zone
float m_curx; // 泅犁 X 谅钎
float m_curz; // 泅犁 Z 谅钎
float m_cury; // 泅犁 Y 谅钎
BYTE m_bNation; // 家加惫啊
BYTE m_bRace; // 辆练
short m_sClass; // 流诀
BYTE m_bHairColor; // 己喊
BYTE m_bRank; // 累困
BYTE m_bTitle; // 瘤困
BYTE m_bLevel; // 饭骇
int m_iExp; // 版氰摹
int m_iLoyalty; // 肺凯萍
BYTE m_bFace; // 辆背
BYTE m_bCity; // 家加档矫
short m_bKnights; // 家加 扁荤窜
//short m_sClan; // 家加 Clan
BYTE m_bFame; // 疙己
short m_sHp; // HP
short m_sMp; // MP
short m_sSp; // SP
BYTE m_bStr; // 塞
BYTE m_bSta; // 积疙仿
BYTE m_bDex; // 傍拜, 雀乔啦
BYTE m_bIntel; // 瘤驱(?), 某腐磐 付过仿 搬沥
BYTE m_bCha; // 付过 己傍伏, 拱扒 啊拜 搬沥(?)
BYTE m_bAuthority; // 蜡历 鼻茄
BYTE m_bPoints; // 焊呈胶 器牢飘
int m_iGold; // 某腐捞 瘤囱 捣(21撅)
short m_sBind; // Saved Bind Point
int m_iBank; // 芒绊狼 捣(21撅)
BYTE m_bstrSkill[9]; // 流诀喊 胶懦
_ITEM_DATA m_sItemArray[HAVE_MAX+SLOT_MAX]; // 42*8 bytes
_ITEM_DATA m_sWarehouseArray[WAREHOUSE_MAX]; // 芒绊 酒捞袍 196*8 bytes
BYTE m_bLogout; // 肺弊酒眶 敲贰弊
BYTE m_bWarehouse; // 芒绊 芭贰 沁菌唱?
DWORD m_dwTime; // 敲饭捞鸥烙...
};
//////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
//
// Global Function Define
//
inline void GetString(char* tBuf, char* sBuf, int len, int& index)
{
memcpy(tBuf, sBuf+index, len);
index += len;
};
inline BYTE GetByte(char* sBuf, int& index)
{
int t_index = index;
index++;
return (BYTE)(*(sBuf+t_index));
};
inline int GetShort(char* sBuf, int& index)
{
index += 2;
return *(short*)(sBuf+index-2);
};
inline DWORD GetDWORD(char* sBuf, int& index)
{
index += 4;
return *(DWORD*)(sBuf+index-4);
};
inline float Getfloat(char* sBuf, int& index)
{
index += 4;
return *(float*)(sBuf+index-4);
};
inline __int64 GetInt64(char* sBuf, int& index)
{
index += 8;
return *(__int64*)(sBuf+index-8);
};
inline void SetString(char* tBuf, char* sBuf, int len, int& index)
{
memcpy(tBuf+index, sBuf, len);
index += len;
};
inline void SetByte(char* tBuf, BYTE sByte, int& index)
{
*(tBuf+index) = (char)sByte;
index++;
};
inline void SetShort(char* tBuf, int sShort, int& index)
{
short temp = (short)sShort;
CopyMemory( tBuf+index, &temp, 2);
index += 2;
};
inline void SetDWORD(char* tBuf, DWORD sDWORD, int& index)
{
CopyMemory( tBuf+index, &sDWORD, 4);
index += 4;
};
inline void Setfloat ( char* tBuf, float sFloat, int& index )
{
CopyMemory( tBuf+index, &sFloat, 4);
index += 4;
};
inline void SetInt64 ( char* tBuf, __int64 nInt64, int& index )
{
CopyMemory( tBuf+index, &nInt64, 8);
index += 8;
};
// sungyong 2001.11.06
inline int GetVarString(TCHAR* tBuf, TCHAR* sBuf, int nSize, int& index)
{
int nLen = 0;
if(nSize == sizeof(BYTE)) nLen = GetByte(sBuf, index);
else nLen = GetShort(sBuf, index);
GetString(tBuf, sBuf, nLen, index);
*(tBuf + nLen) = 0;
return nLen;
};
inline void SetVarString(TCHAR *tBuf, TCHAR* sBuf, int len, int &index)
{
*(tBuf+index) = (BYTE)len;
index ++;
CopyMemory(tBuf+index, sBuf, len);
index += len;
};
// ~sungyong 2001.11.06
inline int ParseSpace( char* tBuf, char* sBuf)
{
int i = 0, index = 0;
BOOL flag = FALSE;
while(sBuf[index] == ' ' || sBuf[index] == '\t')index++;
while(sBuf[index] !=' ' && sBuf[index] !='\t' && sBuf[index] !=(BYTE) 0){
tBuf[i++] = sBuf[index++];
flag = TRUE;
}
tBuf[i] = 0;
while(sBuf[index] == ' ' || sBuf[index] == '\t')index++;
if(!flag) return 0;
return index;
};
inline CString GetProgPath()
{
char Buf[256], Path[256];
char drive[_MAX_DRIVE], dir[_MAX_DIR], fname[_MAX_FNAME], ext[_MAX_EXT];
::GetModuleFileName(AfxGetApp()->m_hInstance, Buf, 256);
_splitpath(Buf,drive,dir,fname,ext);
strcpy(Path, drive);
strcat(Path, dir);
CString _Path = Path;
return _Path;
};
inline void LogFileWrite( LPCTSTR logstr )
{
CString ProgPath, LogFileName;
CFile file;
int loglength;
ProgPath = GetProgPath();
loglength = strlen( logstr );
LogFileName.Format("%s\\Aujard.log", ProgPath);
file.Open( LogFileName, CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite );
file.SeekToEnd();
file.Write(logstr, loglength);
file.Close();
};
inline int DisplayErrorMsg(SQLHANDLE hstmt)
{
SQLCHAR SqlState[6], Msg[1024];
SQLINTEGER NativeError;
SQLSMALLINT i, MsgLen;
SQLRETURN rc2;
char logstr[512];
memset( logstr, NULL, 512 );
i = 1;
while ((rc2 = SQLGetDiagRec(SQL_HANDLE_STMT, hstmt, i, SqlState, &NativeError, Msg, sizeof(Msg), &MsgLen)) != SQL_NO_DATA)
{
sprintf( logstr, "*** %s, %d, %s, %d ***\r\n", SqlState,NativeError,Msg,MsgLen );
LogFileWrite( logstr );
i++;
}
if( strcmp((char *)SqlState, "08S01") == 0 )
return -1;
else
return 0;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -