Пример #1
0
 private void OnC2SreadyBattle(Socket socket, C2SBattleCommand msg)
 {
     mReadyBattlePlayerList.Add(msg.PlayerId);
     if (mReadyBattlePlayerList.Count == 2)
     {
         S2CStartBattle data = new S2CStartBattle();
         data.PlayerIdList.AddRange(mPlayerIDList.ToArray());
         SocketServer.Instance.BroadcastMessage(ServiceNo.S2CstartBattle, data);
     }
 }
Пример #2
0
        private void OnC2SenterRoom(Socket socket, C2SBattleCommand msg)
        {
            id++;
            mPlayerIDList.Add(id);

            S2CEnterRoom data = new S2CEnterRoom();

            data.PlayerId = id;
            SocketServer.Instance.SendMessage(ServiceNo.S2CenterRoom, data, socket);
        }
Пример #3
0
        private void OnC2SbattleCommand(Socket socket, C2SBattleCommand msg)
        {
            S2CBattleCommand data = new S2CBattleCommand();

            data.TurnId   = msg.TurnId;
            data.PlayerId = msg.PlayerId;
            data.Commands.AddRange(msg.Commands);
            Console.WriteLine(msg.PlayerId);
            SocketServer.Instance.BroadcastMessage(ServiceNo.S2CbattleCommand, data);
        }
Пример #4
0
        public void SendCommand(int curTurn)
        {
            if (mCommandTurn == curTurn)
            {
                return;
            }
            mCommandTurn = curTurn + 2;

            //封装消息发送给别人
            C2SBattleCommand packageData = new C2SBattleCommand();

            packageData.TurnId   = mCommandTurn;
            packageData.PlayerId = BattleManager.Instance.mPlayerID;
            if (mPendingCommandList.Count == 0)
            {
                NullCommand commandData = new NullCommand();
                mPendingCommandList.Add(commandData);
            }

            for (int i = 0; i < mPendingCommandList.Count; i++)
            {
                BattleCommand commandData = new BattleCommand();
                commandData.Type = mPendingCommandList[i].mCommandType;
                commandData.Data = ByteString.CopyFrom(Command.Serialize(mPendingCommandList[i]));
                packageData.Commands.Add(commandData);
            }
            NetworkManager.Instance.SendData(ServiceNo.C2SbattleCommand, packageData);

            //加入本地对应的回合
            TurnData data;

            if (mTurnDataDic.TryGetValue(mCommandTurn, out data))
            {
                data.AddCommand(BattleManager.Instance.mPlayerID, mPendingCommandList);
            }

            mPendingCommandList.Clear();
        }