/// <summary> /// Method to tell us if a player can interact with the lord to do certain tasks /// </summary> /// <param name="player">The player object</param> /// <param name="keep">The area object</param> /// <param name="type">The type of interaction</param> /// <returns></returns> public static bool IsAllowedToInteract(GamePlayer player, AbstractGameKeep keep, eInteractType type) { if (player.Client.Account.PrivLevel > 1) return true; if (player.Realm != keep.Realm) return false; if (player.Guild == null) return false; if (keep.InCombat) { log.DebugFormat("KEEPWARNING: {0} attempted to {1} {2} while in combat.", player.Name, type, keep.Name); return false; } switch (type) { case eInteractType.Claim: { if (keep.Guild != null) return false; foreach (AbstractGameKeep k in GameServer.KeepManager.GetAllKeeps()) { if (k.Guild == player.Guild) return false; } if (player.Group == null) return false; if (player.Group.Leader != player) return false; if (player.Group.MemberCount < ServerProperties.Properties.CLAIM_NUM) return false; if (!player.GuildRank.Claim) return false; break; } case eInteractType.Release: { if (keep.Guild == null) return false; if (keep.Guild != player.Guild) return false; if (!player.GuildRank.Claim) return false; break; } case eInteractType.ChangeLevel: { if (keep.Guild == null) return false; if (keep.Guild != player.Guild) return false; if (!player.GuildRank.Claim) return false; break; } } return true; }
/// <summary> /// Method to tell us if a player can interact with the lord to do certain tasks /// </summary> /// <param name="player">The player object</param> /// <param name="keep">The area object</param> /// <param name="type">The type of interaction</param> /// <returns></returns> public static bool IsAllowedToInteract(GamePlayer player, AbstractGameKeep keep, eInteractType type) { if (player.Client.Account.PrivLevel > 1) { return(true); } if (player.Realm != keep.Realm) { return(false); } if (player.Guild == null) { return(false); } if (keep.InCombat) { log.DebugFormat("KEEPWARNING: {0} attempted to {1} {2} while in combat.", player.Name, type, keep.Name); return(false); } switch (type) { case eInteractType.Claim: { if (keep.Guild != null) { return(false); } foreach (AbstractGameKeep k in GameServer.KeepManager.GetAllKeeps()) { if (k.Guild == player.Guild) { return(false); } } if (player.Group == null) { return(false); } if (player.Group.Leader != player) { return(false); } if (player.Group.MemberCount < ServerProperties.Properties.CLAIM_NUM) { return(false); } if (!player.GuildRank.Claim) { return(false); } break; } case eInteractType.Release: { if (keep.Guild == null) { return(false); } if (keep.Guild != player.Guild) { return(false); } if (!player.GuildRank.Claim) { return(false); } break; } case eInteractType.ChangeLevel: { if (keep.Guild == null) { return(false); } if (keep.Guild != player.Guild) { return(false); } if (!player.GuildRank.Claim) { return(false); } break; } } return(true); }