Example #1
0
        protected override bool OnHandleMessage(IMessage message, PhotonServerPeer serverPeer)
        {
            var para = new Dictionary <byte, object>()
            {
                { (byte)ClientParameterCode.PeerId, message.Parameters[(byte)ClientParameterCode.PeerId] },
                { (byte)ClientParameterCode.SubOperationCode, MessageSubCode.PullQueue },
            };

            var instance = Util.GetCPlayerInstance(Server, message);
            var fight    = instance.CurrentFight;
            var success  = _fightManager.LeaveQueue(instance);

            if (success)
            {
                instance.SendPacket(new PulledQueuesPacket(_fightManager));
                if (fight != null)
                {
                    var fightParticipants = new FightQueueParticipantsPacket(fight);
                    foreach (var player in fight.getPlayers.Values)
                    {
                        player.SendPacket(new PulledQueuesPacket(_fightManager));
                        player.SendPacket(fightParticipants);
                    }
                }
            }
            else
            {
                serverPeer.SendOperationResponse(new OperationResponse(message.Code)
                {
                    ReturnCode = (int)ErrorCode.OperationInvalid, DebugMessage = "Cannot leave this queue", Parameters = para
                }, new SendParameters());
            }
            return(true);
        }
Example #2
0
        public void CleanUp()
        {
            //abort attacks
            //remove created queues
            FightManager.LeaveQueue(this);

            //remove temp items
            //remove LFG
            //Stop some timers
            //stop crafting

            Target = null;

            //stop temp buffs
            //decay from server
            Decay();
            //unsummon pets
            //notify guild/friends of logoff
            //cancel trading
        }