Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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;
            }
        }
Exemple #3
0
        /// <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;
            }
        }