⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mcgnet.h

📁 国外网游源码....除工具源码缺少之外,其余程序都全...至于,什么游戏,因为国内还没有,所以找不到测试
💻 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 + -