예제 #1
0
        public static bool HandleDismiss(Models.Entities.Player player, Models.Packets.Team.TeamActionPacket packet)
        {
            if (player.Team == null)
            {
                return(true);
            }

            if (!player.Team.IsLeader(player))
            {
                return(true);
            }

            if (!player.Alive)
            {
                return(true);
            }

            player.RemoveStatusFlag(Enums.StatusFlag.TeamLeader);
            var members = player.Team.Delete();

            foreach (var member in members)
            {
                member.Team = null;
                member.ClientSocket.Send(packet);
            }

            return(true);
        }
예제 #2
0
        /// <summary>
        /// Handles the mount skill.
        /// </summary>
        /// <param name="player">The player.</param>
        /// <param name="spellPacket">The spell packet.</param>
        /// <returns>True if the skill was handled correctly.</returns>
        public static bool Handle(Models.Entities.Player player, Models.Packets.Spells.SpellPacket spellPacket)
        {
            if (player.Equipments.Get(Enums.ItemPosition.Steed, false) == null)
            {
                return(false);
            }

            if (player.ContainsStatusFlag(Enums.StatusFlag.Riding))
            {
                player.RemoveStatusFlag(Enums.StatusFlag.Riding);
            }
            else if (player.Stamina < 100)
            {
                return(false);
            }
            else
            {
                player.AddStatusFlag(Enums.StatusFlag.Riding);
            }

            player.ClientSocket.Send(new Models.Packets.Entities.SteedVigorPacket
            {
                Type   = 2,
                Amount = 9001
            });

            TargetFinalization.SkillFinalize(player, null, spellPacket, 0);

            return(true);
        }
예제 #3
0
        public static bool Handle(Models.Entities.Player player, Models.Packets.Client.DataExchangePacket packet)
        {
            player.RemoveStatusFlag(Enums.StatusFlag.Fly);

            return(true);
        }