/// <summary> /// 返回战斗信息 /// </summary> /// <param name="result">接受消息</param> /// <returns>返回战斗信息</returns> public BatteInfo returnBatteInfo(byte[] result) { BatteInfo battleInfo = new BatteInfo(); battleInfo.ReadByBytes(result); Console.WriteLine("battleInfo:dic:{0},attack:{1},dirc:{2}", battleInfo.dir, battleInfo.attack, battleInfo.dirc); return(battleInfo); }
/// <summary> /// 发送战斗指令 /// </summary> /// <param name="battleInfo">战斗指令</param> public void SendMsgAskBattleInfo(BatteInfo battleInfo) { int request = CommandParam.BATTLE_REQUEST; try { byte[] sender = battleInfo.WriteAsBytes(CommandParam.BATTLE_REQUEST); streamToServer.Write(sender, 0, sender.Length); Console.WriteLine("Send:{0} is success", request); } catch (Exception ex) { Console.WriteLine(ex.Message); return; } }
/// <summary> /// 处理接受的数据 /// </summary> /// <param name="buffer">接受的数据</param> public void doDealMsg(byte[] buffer) { IAsyncResult ar; ByteBuffer temp = new ByteBuffer(buffer); int reply = temp.ReadInt(); switch (reply) { case CommandParam.LOGIN_SUCCESS_REPLY: //登陆成功 del_UserInfo = new ReturnUserInfoDelegate(returnInfos.returnUserInfo); ar = del_UserInfo.BeginInvoke(buffer, null, null); userInfo = del_UserInfo.EndInvoke(ar); if (LoginEvent != null) { LoginEvent(userInfo); } break; case CommandParam.LOGIN_FAIL_REPLY: //登陆失败 userInfo = null; if (LoginEvent != null) { LoginEvent(userInfo); } Console.WriteLine("用户不存在"); break; case CommandParam.LOADING_SUCCESS_REPLY: //载入成功 del_UserAndReviewInfo = new ReturnUserAndReviewInfoDelegate(returnInfos.returnUserAndReviewInfo); ar = del_UserAndReviewInfo.BeginInvoke(buffer, null, null); userAndReviewInfo = del_UserAndReviewInfo.EndInvoke(ar); if (LoadEvent != null) { LoadEvent(userAndReviewInfo); } break; case CommandParam.UPDATE_FAIL_REPLY: //更新失败 del_IsUpdate = new ReturnIsUpdate(returnInfos.returnIsUpdate); ar = del_IsUpdate.BeginInvoke(buffer, null, null); IsUpdate = del_IsUpdate.EndInvoke(ar); break; case CommandParam.MATCH_SUCCESS_REPLY: //匹配成功 del_IsMatch = new ReturnIsMatch(returnInfos.returnIsMatchInfo); ar = del_IsMatch.BeginInvoke(buffer, null, null); IsMatch = del_IsMatch.EndInvoke(ar); if (MatchEvent != null) { MatchEvent(IsMatch); } break; case CommandParam.MATCH_FAIL_REPLY: //匹配失败 del_IsMatch = new ReturnIsMatch(returnInfos.returnIsMatchInfo); ar = del_IsMatch.BeginInvoke(buffer, null, null); IsMatch = del_IsMatch.EndInvoke(ar); if (MatchEvent != null) { MatchEvent(IsMatch); } break; case CommandParam.BATTLE_REPLY: //战斗回应 del_BattleInfo = new ReturnBattleInfo(returnInfos.returnBatteInfo); ar = del_BattleInfo.BeginInvoke(buffer, null, null); battleInfo = del_BattleInfo.EndInvoke(ar); if (BattleEvent != null) { BattleEvent(battleInfo); } break; default: del_IsOnline = new ReturnIsOnline(returnInfos.returnIsOnline); ar = del_IsOnline.BeginInvoke(buffer, null, null); IsOnline = del_IsOnline.EndInvoke(ar); break; } }