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

📄 gamemir.h

📁 是一个基于热血战国协议的网络游戏。现在脱机客户端先放出来给大家研究
💻 H
📖 第 1 页 / 共 2 页
字号:

	/////////////////////////////////////////////////////////////////////////////
	//3.登录游戏

	/////////////////////////////////////////////////////////////////////////////
	//4.基本行动

	/////////////////////////////////////////////////////////////////////////////
	//5.战斗行动

	/////////////////////////////////////////////////////////////////////////////
	//6.角色状态

	/////////////////////////////////////////////////////////////////////////////
	//7.物品道具

	/////////////////////////////////////////////////////////////////////////////
	//8.魔法技能

	/////////////////////////////////////////////////////////////////////////////
	//9.商人功能

	/////////////////////////////////////////////////////////////////////////////
	//10.仓库功能

	/////////////////////////////////////////////////////////////////////////////
	//11.交易功能

	/////////////////////////////////////////////////////////////////////////////
	//12.组队功能

	/////////////////////////////////////////////////////////////////////////////
	//13.帮会功能
	//接收--
	//void SendGuildHome(void);

	/////////////////////////////////////////////////////////////////////////////
	//14.聊天功能

	/////////////////////////////////////////////////////////////////////////////
	//15.地图相关

	/////////////////////////////////////////////////////////////////////////////
	//16.其他协议

private: // 游戏消息处理
	DECLARE_MM_ENTRY(SM_PASSOK_SELECTSERVER); // 开始_选择服务器    
	DECLARE_MM_ENTRY(SM_PASSWD_FAIL);         // 开始_密码_失败
	DECLARE_MM_ENTRY(SM_SELECTSERVER_OK);     // 开始_选择服务器_成功
	DECLARE_MM_ENTRY(SM_QUERYCHR);            // 开始_分析角色
	DECLARE_MM_ENTRY(SM_STARTPLAY);           // 开始_开始游戏
	DECLARE_MM_ENTRY(SM_SENDNOTICE);          // 开始_游戏公告

	DECLARE_MM_ENTRY(SM_SYSMESSAGE);          // 消息_系统信息
	DECLARE_MM_ENTRY(SM_WHISPER);             // 消息_私聊频道
	DECLARE_MM_ENTRY(SM_HEAR);                // 消息_聊天频道
	DECLARE_MM_ENTRY(SM_GUILDMESSAGE);        // 消息_行会聊天
	DECLARE_MM_ENTRY(SM_TURN);                // 走路_转动方向
	DECLARE_MM_ENTRY(SM_WALK);                // 走路_走路
	DECLARE_MM_ENTRY(SM_RUN);                 // 走路_跑步
	DECLARE_MM_ENTRY(SM_DISAPPEAR);           // 人物_actor消失
	DECLARE_MM_ENTRY(SM_ABILITY);             // 人物_角色属性
	DECLARE_MM_ENTRY(SM_NEWMAP);              // 地图_新地图
	DECLARE_MM_ENTRY(SM_LOGON);               // 开始_登录游戏
	DECLARE_MM_ENTRY(SM_HIT);                 // 攻击_攻击
	DECLARE_MM_ENTRY(SM_BACKSTEP);            // 走路_后退
	DECLARE_MM_ENTRY(SM_MERCHANTSAY);         // 商人_商人说话
	DECLARE_MM_ENTRY(SM_HEAVYHIT);            // 攻击_HEAVY
	DECLARE_MM_ENTRY(SM_POWERHIT);            // 攻击_POWER
	DECLARE_MM_ENTRY(SM_LONGHIT);             // 攻击_LONG
	DECLARE_MM_ENTRY(SM_WIDEHIT);             // 攻击_WIDE
	DECLARE_MM_ENTRY(SM_FIREHIT);             // 攻击_FIRE
	DECLARE_MM_ENTRY(SM_BIGHIT);              // 攻击_BIG
	DECLARE_MM_ENTRY(SM_USERNAME);            // 人物_用户名字
	DECLARE_MM_ENTRY(SM_WINEXP);              // 人物_得到经验
	DECLARE_MM_ENTRY(SM_MAPDESCRIPTION);      // 地图_地图种类
	DECLARE_MM_ENTRY(SM_BAGITEMS);            // 道具_背包道具数量
	DECLARE_MM_ENTRY(SM_SENDUSEITEMS);        // 道具_发送用户所有道具
	DECLARE_MM_ENTRY(SM_CLEAROBJECTS);        // 地图_准备切换地图 删除所有对象
	DECLARE_MM_ENTRY(SM_CHANGEMAP);           // 地图_加载地图
	DECLARE_MM_ENTRY(SM_HEALTHSPELLCHANGED);  // 人物_修改_生命
	DECLARE_MM_ENTRY(SM_NOWDEATH);            // 人物_现在死掉
	DECLARE_MM_ENTRY(SM_DEATH);               // 人物_死掉
	DECLARE_MM_ENTRY(SM_SENDMYMAGIC);         // 人物_发送我的魔法
	DECLARE_MM_ENTRY(SM_STRUCK);              // 攻击_被攻击
	DECLARE_MM_ENTRY(SM_DURACHANGE);          // 人物_修改_耐久度
	DECLARE_MM_ENTRY(SM_ADDITEM);             // 道具_增加道具
	DECLARE_MM_ENTRY(SM_FEATURECHANGED);      // 人物_修改_外貌
	DECLARE_MM_ENTRY(SM_CHANGELIGHT);         // 修改_灯光
	DECLARE_MM_ENTRY(SM_AREASTATE);           // 地区状态
	DECLARE_MM_ENTRY(SM_GOLDCHANGED);         // 人物_修改_金币
	DECLARE_MM_ENTRY(SM_READMINIMAP_OK);      // 地图_读小地图_成功
	DECLARE_MM_ENTRY(SM_READMINIMAP_FAIL);    // 地图_读小地图_失败
	DECLARE_MM_ENTRY(SM_ALIVE);               // 人物_生
	DECLARE_MM_ENTRY(SM_EAT_OK);              // 道具_吃药_成功
	DECLARE_MM_ENTRY(SM_EAT_FAIL);            // 道具_吃药_失败
	DECLARE_MM_ENTRY(SM_ITEMSHOW);            // 道具_道具显示
	DECLARE_MM_ENTRY(SM_ITEMHIDE);            // 道具_道具隐藏
	DECLARE_MM_ENTRY(SM_SENDGOODSLIST);       // 商人_发送商品列表
	DECLARE_MM_ENTRY(SM_MERCHANTDLGCLOSE);    // 商人_商人对话框关闭
	DECLARE_MM_ENTRY(SM_BUYITEM_SUCCESS);     // 道具_买道具_成功
	DECLARE_MM_ENTRY(SM_WEIGHTCHANGED);       // 人物_修改_重量
	DECLARE_MM_ENTRY(SM_SENDDETAILGOODSLIST); // 商人_发送商品列表_详情
	DECLARE_MM_ENTRY(SM_BUYITEM_FAIL);        // 道具_买道具_失败

	DECLARE_MM_ENTRY(SM_CHANGENAMECOLOR);     // 
	DECLARE_MM_ENTRY(SM_CHARSTATUSCHANGED);   // 
	DECLARE_MM_ENTRY(SM_SHOWEVENT);           // 
	DECLARE_MM_ENTRY(SM_HIDEEVENT);           // 
	DECLARE_MM_ENTRY(SM_DAYCHANGING);         // 
	DECLARE_MM_ENTRY(SM_CHECK_CLIENTVALID);   // 
	DECLARE_MM_ENTRY(SM_SUBABILITY);          //
	DECLARE_MM_ENTRY(SM_ADJUST_BONUS);        //

	// 函数
public:
	explicit CGameMir(CZhanGuoClientDlg& wnd);
	virtual ~CGameMir();

	virtual void Login(const std::string& ServerAddress, const std::string& ServerName, UINT ServerPort, 
		               const std::string& Account, const std::string& Password);

	int GetAttackMode( void );
	void ChangeAttackMode(int mode);

	void InitUI(void);
	void ShowSetting(void);

	itActor FindActor(DWORD id);            //找角色         
	itDropedItem FindDropedItem(DWORD id);  //找地面道具   
	itClientItem FindItem(DWORD id);        //找装备         

	bool EatItem(DWORD idx,const char* name);           //吃药水
	void TakeOnItem(DWORD idx, WORD pos);               //穿上装备
	void ClickNPC(DWORD idx){SendMsg(CM_CLICKNPC,idx);} //点击NPC

	void OnHpChange(shaker_utility::CEvent&);  //生命值修改
	void OnMpChange(shaker_utility::CEvent&);  //魔法值修改
/*
	bool isConnect(void)              { return(m_hSocket!=INVALID_SOCKET); }          //是否连接   
	bool isInGame(void)               { return((m_GameStage==GS_GAME)&&isConnect());} //是否游戏中   
	bool isOverEnd(itActor itor)      { return(itor==m_ActorList.end());   }          //是否玩家
	bool isOverEnd(itClientMagic itor){ return(itor==m_Magics.end());      }          //是否魔法   
	bool isOverEnd(itDropedItem itor) { return(itor==m_DropedItems.end()); }          //是否掉下道具 

	const sActorList& GetActorList(){return m_ActorList;} //得到玩家
	//得到装备
	const _TCLIENTITEM &GetUseItem(int pos){if((pos>0)&&(pos<MAX_USE_ITEMS))return(m_UseItems[pos]);return(m_UseItems[0]);}
	const _TMYSELF& GetSelfInfo(){return(m_Self);}        //得到角色信息
*/
public: //原来是private,现在我改位public 2007-07-18
	bool CanMove(int x, int y);                //可以移动
	bool CanWalk(const POINT& pnt, int dir);   //可以走
	bool CanRun(const POINT& pnt, int dir);    //可以跑
	bool CanEat(){return(m_EatingItem==0);};   //可以吃

private:
	void InitData(void);                              //初始化游戏数据
	virtual void OnConnect(int nErrorCode);           //连接游戏
	virtual void OnMessage(MMSG& , char* );//处理游戏数据包
	virtual void OnResult(const char *);              //返回结果

	itActor NewActor(DWORD id, WORD x, WORD y, WORD dir, DWORD feature, DWORD state, const char* name );//增加玩家
	void AddItem(_TCLIENTITEM item);  //增加道具
	itClientMagic FindMagic(LPCTSTR); //查找魔法

	virtual int fnEncode6BitBufA(unsigned char *pszSrc, char *pszDest, int nSrcLen, int nDestLen);//游戏数据包解密函数
	virtual int fnDecode6BitBufA(const char *pszSrc, char *pszDest, int nDestLen);                //游戏数据包加密函数

public:
	CZhanGuoClientDlg& m_FrameWnd;
	_TMYSELF         m_Self;         //角色信息
	sClientItemList  m_BagItems;     //道具列表
	sClientMagicList m_Magics;       //魔法列表
	sDropedItemList  m_DropedItems;  //地面道具列表
	sActorList       m_ActorList;    //玩家列表

	//CGameAction     m_Action;      //游戏行动
/*
	// 变量
public:
	CGameData       m_DataManager; //游戏数据管理
	CGameMap        m_Map;         //游戏地图
	CGameSet        m_Sets;        //游戏设置

	CGameAutoFight& m_AutoFight;   //游戏战斗
	//CSettingManager m_SettingMgr;//游戏设置
	CScriptEngine m_ScriptEngine;  //游戏脚本



	shaker_utility::CEvent m_EventHpChange;
	shaker_utility::CEvent m_EventMpChange;
    
*/
private:
	std::string m_ServerName;    //服务器名称
	std::string m_ServerAddress; //服务器地址
	std::string m_Account;       //游戏帐号
	std::string m_Password;      //游戏密码
	std::string m_SID;           //==
	std::string m_CharName;	     //角色名字

	
//	CTalkToNpcDlg m_MerchantDlg;   //谈话对话框
//	CDialogSetting m_SettingDialog;//设置对话框

	_TCLIENTITEM m_UseItems[MAX_USE_ITEMS];//装备列表

	eGameStage m_GameStage;//游戏阶段

	DWORD m_HpProtectTime;         //生命值保护时间
	DWORD m_MpProtectTime;         //魔法值保护时间
	DWORD m_EatingItem;            //吃药水
	UINT m_ServerPort;             //服务器端口
	long m_AreaStateValue;         //==
	int m_CurrentAttackMode;       //当前攻击模式
	int	m_NeededAttackMode;        //需要的攻击模式	
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -