?? 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 + -