📄 mcgnet.h
字号:
// MCGNet.h: interface for the CMCGNet class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_MCGNET_H__D598D060_0B16_44DF_A37A_0A47CEAEBDDC__INCLUDED_)
#define AFX_MCGNET_H__D598D060_0B16_44DF_A37A_0A47CEAEBDDC__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define MAX_CONNECTION 3
#define MAX_PEER 16
#define UDP_PORT_BIND 10002 //努扼捞攫飘 UDP官牢靛 器飘
#define UDP_PORT_LOGIN 11002 //努扼捞攫飘 UDP官牢靛 器飘
// New Type Protocol
/*****************************************************
傍烹 橇肺配妮
/*****************************************************/
enum MAINOP{
M_MASTERSERVER,
M_LOBBYSERVER,
M_GAMESERVER,
M_PATCHSERVER,
MAX_SERVERTYPE,
M_CLIENT,
};
enum SUBOP{
S_HEARTBEAT=1024,
S_CLOSED,
S_AUTHOR,
S_VERIFY,
S_LOGIN,
S_OPEN,
S_USER_CNT,
S_AUTHOR_INFO,
S_CONFIG_ITEM,
S_CONFIG_ITEMLIST,
};
/*****************************************************
肺拿辑滚 橇肺配妮
/*****************************************************/
enum SUBOP_MASTERSERVER_LOBBYSERVER{
MSLS_USER_CONNECT,
MSLS_LOGIN_INFO,
MSLS_USER_INFO,
MSLS_GAMEZONE_INFO,
MSLS_PLAYER_INFO,
MSLS_GAME_END,
MSLS_GAME_OUT,
};
enum SUBOP_LOBBYSERVER_MASTERSERVER{
LSMS_USER_CONNECT = 20,
LSMS_LOGIN_INFO,
LSMS_USER_INFO,
LSMS_GAMEZONE_INFO,
LSMS_PLAYER_INFO,
LSMS_ITEM_BUY,
LSMS_ITEM_CREATE,
LSMS_ITEM_DELETE,
LSMS_ITEM_EQUIP,
};
enum SUBOP_MASTERSERVER_GAMESERVER{
MSGS_GAMEZONE_INFO = 40,
MSGS_PLAYER_INFO,
MSGS_RELAY_INFO,
MSGS_GAME_OUT,
};
enum SUBOP_GAMESERVER_MASTERSERVER{
GSMS_LOGIN_INFO = 60,
GSMS_GAMEZONE_INFO,
GSMS_GAMEZONE_OPEN_FULL,
GSMS_GAMEZONE_OPEN_FAIL,
GSMS_RELAY_INFO,
GSMS_GAME_END,
};
/*****************************************************
努扼捞攫飘 橇肺配妮
/*****************************************************/
enum SUBOP_MASTERSERVER_CLIENT{
MSC_VERIFY,
MSC_USER_INFO,
MSC_SERVER_LIST,
MSC_SERVER_INFO,
};
enum SUBOP_CLIENT_MASTERSERVER{
CMS_AUTHOR_CODE,
CMS_UDP_PING,
CMS_LOGIN_INFO,
CMS_SERVER_REFRESH,
CMS_SERVER_SELECT,
CMS_LOGIN_BACK,
};
enum SUBOP_LOBBYSERVER_CLIENT{
LSC_VERIFY,
LSC_USER_INFO,
LSC_CHANNEL_LIST,
LSC_LOBBY_IN,
LSC_LOBBY_OUT,
LSC_ROOM_LIST,
LSC_USER_LIST,
LSC_ROOM_IN,
LSC_ROOM_OUT,
LSC_ROOM_INFO,
LSC_MEMBER_LIST,
LSC_CHAT,
LSC_MAP_CHANGE,
LSC_BATTLE_CHANGE,
LSC_PLAYLIMIT_CHANGE,
LSC_PLAYTIME_CHANGE,
LSC_REPAIRCNT_CHANGE,
LSC_TEAM_CHANGE,
LSC_OTHER_INFO,
LSC_ITEM_BUY,
LSC_ITEM_DESTROY,
LSC_ITEM_PRESENT,
LSC_MECHANIC_BUY,
LSC_MECHANIC_SELL,
LSC_MECHANIC_REPAIR,
LSC_MECHANIC_DESTROY,
LSC_MECHANIC_EQUIP,
LSC_MECHANIC_INVEN,
LSC_INVITE_INFO,
LSC_INVITE_LIST,
LSC_INVITE_REQUEST,
LSC_INVITE_REJECT,
LSC_GAME_READY,
LSC_GAME_START,
LSC_GAME_END,
LSC_GAME_OUT,
LSC_CHANNEL_OUT,
};
enum SUBOP_CLIENT_LOBBYSERVER{
CLS_AUTHOR_CODE,
CLS_LOGIN_INFO,
CLS_CHANNEL_IN,
CLS_CHANNEL_REFRESH,
CLS_CHANNEL_SELECT,
CLS_LOBBY_IN,
CLS_LOBBY_OUT,
CLS_ROOM_REFRESH,
CLS_ROOM_CREATE,
CLS_ROOM_JOIN,
CLS_ROOM_QUICK,
CLS_ROOM_INVITE,
CLS_ROOM_IN,
CLS_ROOM_OUT,
CLS_ROOM_BLOCK,
CLS_CHAT,
CLS_MAP_SELECT,
CLS_BATTLE_SELECT,
CLS_PLAYLIMIT_SELECT,
CLS_PLAYTIME_SELECT,
CLS_REPAIRCNT_SELECT,
CLS_TEAM_SELECT,
CLS_OTHER_INFO,
CLS_ITEM_BUY,
CLS_ITEM_PRESENT,
CLS_MECHANIC_BUY,
CLS_MECHANIC_SELL,
CLS_MECHANIC_REPAIR,
CLS_MECHANIC_DESTROY,
CLS_MECHANIC_EQUIP,
CLS_MECHANIC_INVEN,
CLS_INVITE_INFO,
CLS_INVITE_REQUEST,
CLS_INVITE_REJECT,
CLS_GAME_READY,
CLS_CHANNEL_OUT,
CLS_FAILED_GAMEIN,
};
enum SUBOP_GAMESERVER_CLIENT{
GSC_VERIFY,
GSC_GAME_INFO,
GSC_PLAYER_LIST,
GSC_HOLEPUNCH_SEND_DUMMY,
GSC_HOLEPUNCH_SEND_PING,
GSC_HOLEPUNCH_RECV_DUMMY,
GSC_HOLEPUNCH_RECV_PING,
GSC_HOLEPUNCH_INFO, //圈戚莫阑 困茄 惑措规狼 林家沥焊
GSC_HOLEPUNCH_RECV_PEER, //惑措规捞 呈狼 歹固菩哦阑 罐疽促
GSC_HOLEPUNCH_RELAY, //圈戚莫 角菩窍咯 副饭捞辑滚 捞侩
GSC_RELAY_OK, //副饭捞辑滚甫 捞侩秦 乔绢埃狼 楷搬 己傍
GSC_GAME_START,
GSC_WEAPON_CHANGE,
GSC_MECHANIC_STATE,
GSC_MECHANIC_DESTROY,
GSC_MECHANIC_RESPAWN,
GSC_OBJECT_DESTROY,
GSC_ITEM_PICKUP,
GSC_ITEM_FREE,
GSC_CHAT,
GSC_RESULT_LIST,
GSC_BACKPACK_LAUNCHER,
GSC_FAILED_GAMEIN,
};
enum SUBOP_CLIENT_GAMESERVER{
CGS_AUTHOR_CODE,
CGS_LOGIN_INFO,
CGS_GAME_IN,
CGS_HOLEPUNCH_START,
CGS_HOLEPUNCH_SEND_DUMMY,
CGS_HOLEPUNCH_SEND_PING,
CGS_HOLEPUNCH_RECV_PEER, //唱绰 惑措规狼 歹固菩哦阑 罐疽促
CGS_HOLEPUNCH_OK, //唱绰 葛电 惑措客 歹固菩哦阑 罐疽促
CGS_HOLEPUNCH_FAILED,
CGS_RELAY_OK,
CGS_WEAPON_CHANGE,
CGS_MECHANIC_DAMAGE,
CGS_MECHANIC_DESTROY,
CGS_MECHANIC_RESPAWN,
CGS_OBJECT_DESTROY,
CGS_ITEM_PICKUP,
CGS_CHAT,
CGS_BACKPACK_LAUNCHER,
};
enum SUBOP_CLIENT_CLIENT{
CC_HOLEPUNCH_DUMMY,
CC_HOLEPUNCH_OK,
CC_MECHANIC_DAMAGE,
CC_MOVE_POS, // 货肺款 捞悼菩哦
CC_MOVE_STOP,
CC_FIRE_START,
CC_FIRE_STOP,
CC_HIT,
CC_CHAT,
CC_MOVE_BLOCK, //捞芭 鞘夸绝霸 夌澜
CC_LOOK_POS,
CC_RELOAD, // 傲 促 父靛绰霸 歹 唱篮淀
CC_SITDOWN, // 旧扁 (矫累且锭 焊晨)
CC_SITUP,
CC_SIGHTDOWN, // 炼霖 (矫累且锭 焊晨)
CC_SIGHTUP,
CC_JUMP,
CC_LAND,
};
enum ERROR_CODE{
ERR_DIFFERENT_AUTHORCODE=1, //牢刘内靛啊 促抚
ERR_DIFFERENT_VERSION, //滚傈捞 促抚
ERR_SERVICE_STOP, //辑厚胶 吝瘤吝捞促
ERR_DIFFERENT_ID, //拌沥阑 茫阑 荐 绝澜
ERR_DIFFERENT_PWD, //菩胶况靛 促抚
ERR_CONNECT_PRESENT, //吝汗立加
ERR_NOTUSER_GAMEINFO, //DB俊辑 蜡历 霸烙沥焊 佬绢坷扁 角菩
ERR_NOTUSER_ITEMINFO, //DB俊辑 蜡历 酒捞袍沥焊 佬绢坷扁 角菩
ERR_NOTUSER_MECHANICINFO, //DB俊辑 蜡历 皋墨葱沥焊 佬绢坷扁 角菩
ERR_CHANNEL_FULL, //盲澄俊 蜡历啊 菜瞒辑 阁甸绢皑
ERR_ROOM_CREATE, //规阑 歹捞惑 父甸荐 绝澜
ERR_ROOM_FULL, //规俊 歹捞惑 甸绢哎 荐 绝澜
ERR_ROOM_PWD, //菩胶况靛啊 崔扼 规俊 阁甸绢皑
ERR_ROOM_QUICK, //狞炼牢栏肺 甸绢哎 荐 乐绰 规捞 绝澜
ERR_GAME_READY, //评 技泼捞 登瘤 臼酒 霸烙阑 矫累且 荐 绝促(MODE_SURVIVAL->2疙捞惑, 弊 寇狼 葛靛绰 阿评 茄疙捞惑)
ERR_GAMESERVER_NOTFOUND, //霸烙辑滚甫 茫阑 荐 绝澜
ERR_GAMEZONE_CREATE_FULL, //摧囚乐绰 霸烙粮捞 绝绢 歹捞惑 货肺款 霸烙粮阑 凯 荐 绝澜
ERR_GAMEZONE_CREATE_FAIL, //单捞磐 坷幅肺 牢秦 霸烙粮 父甸扁 角菩
ERR_GAMEZONE_NOTFOUND, //抗距等 霸烙粮阑 阁茫疽澜
ERR_RELAYSERVER_NOTFOUND, //副饭捞辑滚甫 茫阑 荐 绝澜
ERR_GAME_END, //捞固 霸烙捞 场唱滚啡澜
ERR_USER_TIMEOUT, //规 柳涝 角菩(矫埃檬苞)
};
/*****************************************************
鸥涝沥狼
/*****************************************************/
enum LIST_TYPE
{
LIST_END, //府胶飘 场(府胶飘 凯芭唱 盎脚捞 场车澜)
LIST_ENUM, //府胶飘 凯芭(LIST_END啊 酒匆锭鳖瘤)
LIST_UPD, //府胶飘 盎脚(LIST_END啊 酒匆锭鳖瘤)
LIST_ADD, //府胶飘 眠啊
LIST_DEL, //府胶飘 昏力
};
enum CLASS_TYPE
{
CLASS_FIGHTER, //傈捧捍
CLASS_REPAIR, //沥厚捍
CLASS_OPERATER, //累傈捍
CLASS_ENGINEER, //傍捍
CLASS_GUNNER, //器捍
};
enum TEAM_TYPE
{
TEAM_NONE, //俺牢
TEAM_BLUE, //喉风评
TEAM_RED, //饭靛评
};
enum MODE_TYPE
{
MODE_NONE,
MODE_NORMAL,
MODE_CLAN,
MODE_SURVIVAL, //辑官捞国(俺牢)
MODE_DEATH, //评单胶概摹(评, 努罚)
MODE_FLAG, //标惯化扁(评, 努罚)
MODE_STRIKE, //痢飞傈(评, 努罚)
};
enum CHAT_TYPE{
CHAT_GM, //GM傍瘤
CHAT_ALL, //傈眉寐
CHAT_TEAM, //评寐
CHAT_CLAN, //努罚寐
CHAT_WHISPER, //庇富
CHAT_CHEAT, //摹飘虐角青
};
enum BUYITEM_OPTION{
BUYITEM_DAY, //1老
BUYITEM_WEEK, //7老
BUYITEM_MONTH, //30老
BUYITEM_YEAR, //365老
BUYITEM_UNLIMITED, //力茄绝澜
};
enum PARTS_TYPE
{
PARTS_CORE,
PARTS_HEAD,
PARTS_LEG,
PARTS_ARM,
PARTS_PACK,
PARTS_MAX,
};
enum WEAPON_TYPE
{
WEAPON_MAIN,
WEAPON_SUB,
WEAPON_BACK1,
WEAPON_BACK2,
WEAPON_BACK3,
WEAPON_MAX,
};
enum USE_TYPE
{
USE_UNLIMITED, //公力茄
USE_TIME, //矫埃力
USE_DUR, //郴备档
};
enum READY_STATE
{
READY_OFF, //霖厚 救凳
READY_ON, //霖厚肯丰
READY_PLAY, //敲饭捞吝
};
enum HOLEPUNCHING_STEP
{
HOLE_CLOSE, //圈戚莫 摧囚乐绰 惑怕
HOLE_SETTING, //圈戚莫 檬扁拳
HOLE_TRY, //圈戚莫 矫档
HOLE_SUCCESS, //圈戚莫 己傍
HOLE_FAILED, //圈戚莫 角菩, 副饭捞辑滚客狼 立加矫档(角力 立加窍绰扒 酒聪促)
HOLE_RELAY, //副饭捞辑滚客狼 技泼 己傍
};
enum ITEM_TYPE
{
ITEM_RIFLE, //家醚(迭醚, 历拜醚, 魂藕醚, 忽扼捞敲 - 楷荤阂啊)
ITEM_MACHINE, //扁包醚(磊悼家醚, 扁包窜醚, 赣脚扒 - 楷荤啊瓷)
ITEM_CANNON, //某惩
ITEM_PISTOL, //鼻醚
ITEM_SPECIAL, //漂荐公扁(楷阜藕, 荐幅藕, 固荤老 - 归蒲)
ITEM_ASSIST, //焊炼酒捞袍(藕芒, 档祸力, 胶挪, 碍拳酒捞袍)
ITEM_MECHANIC, //皋墨葱
ITEM_MAXTYPE,
ITEM_SPACE=100, //鸥涝喊 且寸傍埃(家醚:1~100, 扁包醚:101~200)
};
enum ATTACK_STYLE //酒捞袍砒惑狼 傍拜盒幅
{
ATTACK_MELEE, //辟芭府 鸥拜(归捍)
ATTACK_SHORTRANGE, //辟芭府 荤拜(鸡扒)
ATTACK_MIDDLERANGE, //吝芭府 荤拜(家醚, 磊悼家醚, 扁包醚)
ATTACK_LONGRANGE, //盔芭府 荤拜(历拜醚)
ATTACK_LAUNCH, //遏柯 饶 惯荤(固荤老, 蜡档藕)
ATTACK_THROW, //捧么(荐幅藕, 楷阜藕)
};
enum BULLET_STYLE //酒捞袍砒惑狼 醚舅盒幅
{
BULLET_NONE, //醚舅捞 绝促(归捍)
BULLET_THROUGH, //包烹屈(家醚, 磊悼家醚, 扁包醚, 历拜醚)
BULLET_SHOT, //魂藕屈(鸡扒)
BULLET_BOMB, //气惯屈(荐幅藕, 固荤老, 某惩)
BULLET_GUIDED, //蜡档屈(蜡档藕)
};
//盔啊 * BUYOPTION_MULTIPLE
enum BUYOPTION_MULTIPLE{
BUYOPTION_DAY = 1, //1老
BUYOPTION_WEEK = 5, //7老
BUYOPTION_MONTH = 20, //30老
BUYOPTION_YEAR = 200, //365老
BUYOPTION_UNLIMITED = 1, //力茄绝澜
};
void Connect(int sock_index, char *addr, unsigned short port, void *arg);
void Disconnect(int sock_index, bool normal, void *arg);
void msg_handler(int id, int msg, unsigned long err_code, char *packet, unsigned long *size, void *arg);
class CMCGNet : public CSingleton<CMCGNet>
{
public:
CMCGNet();
virtual ~CMCGNet();
BOOL Connect( char* szAddr, WORD nPort );
BOOL Disconnect();
BOOL IsConnected() { return m_bConnected; }
BOOL SendMsg( void * pIoc );
void ParseMsg(int id, int msg, unsigned long err_code, char *packet, unsigned long *size, void *arg);
void OnGameMsg(int id, int msg, unsigned long err_code, char *packet, unsigned long *size, void *arg);
public:
// short m_nMyIndex;
int g_sockindex[MAX_CONNECTION]; //阿阿辑滚俊 措茄 烹脚侩 家南牢郸胶
WORD g_udp_port[MAX_CONNECTION]; //阿阿辑滚俊 措茄 UDP烹脚侩 器飘
WORD g_tcp_port[MAX_CONNECTION]; //阿阿辑滚俊 措茄 TCP烹脚侩 器飘
//肺弊牢辑滚 酒捞乔绰 贸澜俊 橇肺弊伐俊辑 瘤沥秦霖 酒捞乔捞澮..
DWORD g_LobbyServer_IP; //肺厚辑滚 酒捞乔
DWORD g_GameServer_IP ; //霸烙辑滚 酒捞乔
short g_server_userindex[MAX_CONNECTION]; //阿阿辑滚俊辑 且寸罐篮 蜡历喊 牢郸胶
short g_SelectServerIndex; //急琶茄 辑滚 牢郸胶
short g_SelectChannelIndex; //急琶茄 盲澄 牢郸胶
char g_auth_code[33];
protected:
BOOL m_bConnected;
BYTE m_nConCount;
};
#define g_pNet CMCGNet::GetSingletonPtr()
#endif // !defined(AFX_MCGNET_H__D598D060_0B16_44DF_A37A_0A47CEAEBDDC__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -