Beispiel #1
0
        public static void ProcessGameChallengeDenyRequest(WorldClient Client)
        {
            if (!Client.IsGameAction(GameActionTypeEnum.BASIC_REQUEST))
            {
                Client.Send(new BasicNoOperationMessage());
                return;
            }

            if (!(Client.GetBaseRequest() is ChallengeFightRequest))
            {
                Client.Send(new BasicNoOperationMessage());
                return;
            }

            if (Client.GetBaseRequest().Declin())
            {
                var AttId = Client.GetBaseRequest().Requester.GetCharacter().ActorId;
                var DefId = Client.GetBaseRequest().Requested.GetCharacter().ActorId.ToString();

                var Message = new GameActionMessage((int)GameActionTypeEnum.CHALLENGE_DENY, AttId, DefId);

                Client.GetBaseRequest().Requester.Send(Message);
                Client.GetBaseRequest().Requested.Send(Message);

                Client.EndGameAction(GameActionTypeEnum.BASIC_REQUEST);
            }
        }
Beispiel #2
0
        public override bool Accept()
        {
            if (!base.Accept())
            {
                return(false);
            }

            var Message = new GameActionMessage((int)GameActionTypeEnum.CHALLENGE_ACCEPT, this.Requested.GetCharacter().ActorId, this.Requester.GetCharacter().ActorId.ToString());

            this.Requester.Send(Message);
            this.Requested.Send(Message);

            return(true);
        }
Beispiel #3
0
        public static void ProcessGameMapChallengeRequest(WorldClient Client, string Packet)
        {
            long TargetId = 0;

            if (!long.TryParse(Packet.Substring(5), out TargetId))
            {
                Client.Send(new BasicNoOperationMessage());
                return;
            }

            var Actor = Client.GetCharacter().GetMap().GetActor(TargetId);

            if (Actor == null || Actor.ActorType != GameActorTypeEnum.TYPE_CHARACTER)
            {
                Client.Send(new BasicNoOperationMessage());
                return;
            }

            var Target = (Actor as Player).GetClient();

            if (Target == null)
            {
                Client.Send(new BasicNoOperationMessage());
                return;
            }

            // Occupé ?
            if (!Target.CanGameAction(GameActionTypeEnum.BASIC_REQUEST) ||
                Target.GetCharacter().HasRestriction(RestrictionEnum.RESTRICTION_CANT_CHALLENGE) ||
                Client.GetCharacter().HasRestriction(RestrictionEnum.RESTRICTION_CANT_CHALLENGE))
            {
                Client.Send(new BasicNoOperationMessage());
                return;
            }

            var Request       = new ChallengeFightRequest(Client, Target);
            var RequestAction = new GameRequest(Client.GetCharacter(), Request);

            Client.SetBaseRequest(Request);
            Target.SetBaseRequest(Request);

            Client.AddGameAction(RequestAction);
            Target.AddGameAction(RequestAction);

            var Message = new GameActionMessage((int)GameActionTypeEnum.CHALLENGE_REQUEST, Client.GetCharacter().ActorId, TargetId.ToString());

            Client.GetCharacter().GetMap().SendToMap(Message);
        }