/// <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); }
/// <summary> /// Validates a pk target for the player. /// </summary> /// <param name="target">The target.</param> /// <returns>The status of the validation. (0 = success)</returns> public int ValidPkTarget(Models.Entities.Player target) { if (Player.Map.MapType == Database.Models.DbMap.DbMapType.NoPK) { return(1); } switch (Player.PKMode) { case Enums.PKMode.PK: return(0); case Enums.PKMode.Capture: return(target.ContainsStatusFlag(Enums.StatusFlag.BlueName) ? 0 : 2); case Enums.PKMode.Team: { if (Player.Team != null && target.Team != null) { if (Player.Team.GetMembers().Contains(target)) { return(3); } } if (Player.Guild != null && target.Guild != null) { if (Player.Guild.Id == target.Guild.Id) { return(4); } if (Player.Guild.IsAllie(target.Guild)) { return(5); } } return(0); } default: return(6); } }