Example #1
0
 public override void SendPacket(ServerPacket packet)
 {
     if (Client != null)
     {
         packet.AddParameter(Client.PeerId.ToByteArray(), ClientParameterCode.PeerId);
         ServerPeer.SendEvent(new EventData(packet.Code, packet.Parameters), new SendParameters());
     }
 }
Example #2
0
        public static void SendEvent(CellRoom room)
        {
            EventData eventData = new EventData((byte)EventCode.GameEnter,
                                                new Dictionary <byte, object>());

            foreach (CellRoom.ActorInfo roomActor in room.actorList)
            {
                Actor      actor = ServerApp.instance.actorManager.GetActorFromMemberID(roomActor.memberID);
                ServerPeer peer  = ServerApp.instance.actorManager.TryGetPeer(actor.guid);

                peer.SendEvent(eventData, new SendParameters());
            }
        }
Example #3
0
        public static void SendEvent(CellRoom room)
        {
            // Get actor list from room.
            List <CellRoom.ActorInfo> actorList = room.actorList;
            // conversion roomActorList
            List <RoomActorData> roomActorList = new List <RoomActorData>();

            for (int i = 0; i < actorList.Count; i++)
            {
                RoomActorData actorData = new RoomActorData();
                actorData.memberID = actorList[i].memberID;
                actorData.isReady  = actorList[i].isReady;
                roomActorList.Add(actorData);
            }

            // Create transfer data
            RoomInfoData roomData = new RoomInfoData();

            roomData.serial    = room.SerialNum;
            roomData.actorList = roomActorList;

            // Serialize roominfodata.
            byte[]       roomInfoDataByte = ProtoBufTool.Serialize(roomData);
            RoomInfoData testData         = ProtoBufTool.Deserialize <RoomInfoData>(roomInfoDataByte);

            ServerApp.Logger.Info(testData.serial);

            // push data to actors
            for (int i = 0; i < actorList.Count; i++)
            {
                // get peer
                Actor      actor = ServerApp.instance.actorManager.GetActorFromMemberID(actorList[i].memberID);
                ServerPeer peer  = ServerApp.instance.actorManager.TryGetPeer(actor.guid);

                // generate event data.
                var eventDict = new Dictionary <byte, object>();
                eventDict.Add((byte)ParameterCode.RoomInfoData, roomInfoDataByte);

                EventData eventData = new EventData((byte)EventCode.RoomUpdate);
                eventData.Parameters = eventDict;

                peer.SendEvent(eventData, new SendParameters());
            }
        }