private void ViewAllAllies(Player player, string cmd, string[] guildArray) { // Get the Guild name to check alliances for var guildName = ""; if (PlayerHasNotenteredAGuildName(guildArray)) { guildName = PlayerExtensions.GetGuild(player).Name.ToLower(); } else { guildName = ConvertGuildNameToString(guildArray); } // Remove unneccessary [0] at start of string guildName = guildName.Replace("[0]", ""); var myAlliances = GetGuildList(guildName); if (myAlliances == null || myAlliances.Count < 1) { PrintToChat(player, "[FF0000]Alliance Organiser[FFFFFF] : [00FF00]" + Capitalise(guildName) + "[FFFFFF] is not currently in an alliance with another guild."); return; } PrintToChat(player, "[FF0000]Alliance Organiser[FFFFFF] : [FF00FF]" + Capitalise(guildName) + "[FFFFFF] is currently allied with the following guilds :"); foreach (var alliance in myAlliances) { PrintToChat(player, "[00FF00]" + alliance); } }
private bool GuildsAreAtWar(EntityDamageEvent damageEvent) { var player = damageEvent.Damage.DamageSource.Owner; var target = damageEvent.Entity.Owner; var playerGuild = PlayerExtensions.GetGuild(player).Name.ToLower(); var targetGuild = PlayerExtensions.GetGuild(target).Name.ToLower(); //PrintToChat(player, playerGuild.ToLower() + " " + targetGuild.ToLower()); //PrintToChat(player, "Number of wars = " + WarList.Count); ////PrintToChat(player, "First war in list = " + WarList[0][0] + " " + WarList[0][1] + " " + WarList[0][2]); foreach (var war in WarList) { PrintToChat(player, playerGuild.ToLower() + " " + targetGuild.ToLower() + " " + war[1].ToLower() + " " + war[2].ToLower()); if (war[2].ToLower() == playerGuild.ToLower() && war[1].ToLower() == targetGuild.ToLower()) { return(true); } if (war[1].ToLower() == playerGuild.ToLower() && war[2].ToLower() == targetGuild.ToLower()) { return(true); } } return(false); }
private void updatePlayersData() { foreach (Player player in getPlayersOnline()) { //new player PlayerInfos playerInfos = getDatasFromPlayer(player); if (playerInfos == null) { _PlayersInfos.Add( new PlayerInfos { playerId = player.Id, playerName = player.Name, guildName = PlayerExtensions.GetGuild(player).Name, } ); } else { //update player playerInfos.playerId = player.Id; playerInfos.playerName = player.Name; playerInfos.guildName = PlayerExtensions.GetGuild(player).Name; } SaveData(); } }
private void DenyAllyRequest(Player player, string cmd, string[] guildArray) { // Check the player has specified a guild to accept if (PlayerHasNotenteredAGuildName(guildArray)) { PrintToChat(player, "[FF0000]Alliance Organiser[FFFFFF] : To deny an alliance request, type [00FF00]/denyally [FF00FF]<guildname>."); return; } // Get the full guild name var guildName = ConvertGuildNameToString(guildArray); // Get my guild name var myGuild = PlayerExtensions.GetGuild(player).Name; // Remove unneccessary [0] at start of string myGuild = myGuild.Replace("[0]", ""); guildName = guildName.Replace("[0]", ""); // Check if the request is in there var allianceRequestNumber = AllianceRequestAlreadyExists(myGuild, guildName); if (allianceRequestNumber >= 0) { PrintToChat("[FF0000]Alliance Organiser[FFFFFF] : The alliance request with [00FF00]" + Capitalise(guildName) + "[FFFFFF] has been denied."); requestList.RemoveAt(allianceRequestNumber); return; } PrintToChat(player, "[FF0000]Alliance Organiser[FFFFFF] : There is no outstanding request with this guild to deny."); // Save Data SaveAllianceListData(); }
private void EndThisAlliance(Player player, string cmd, string[] guildArray) { // Check the player has specified an alliance to end if (PlayerHasNotenteredAGuildName(guildArray)) { PrintToChat(player, "[FF0000]Alliance Organiser[FFFFFF] : To end an alliance, type [00FF00]/endalliance [FF00FF]<guildname>."); return; } // Get the guild name var guildName = ConvertGuildNameToString(guildArray); // Get my own guild name var myGuild = PlayerExtensions.GetGuild(player).Name; // Remove unneccessary [0] at start of string myGuild = myGuild.Replace("[0]", ""); guildName = guildName.Replace("[0]", ""); // Check the alliance exists if (!AllianceAlreadyExists(myGuild, guildName)) { PrintToChat(player, "[FF0000]Alliance Organiser[FFFFFF] : You are not currently allied with this guild."); return; } // Report that the alliance is ending PrintToChat("[FF0000]Alliance Organiser [FF00FF](ALLIANCE ENDED!) [FFFFFF]: [00FF00]" + player.DisplayName + " [FFFFFF]from [00FF00]" + Capitalise(myGuild) + " [FFFFFF]has ended the Alliance with [00FF00]" + Capitalise(guildName) + "[FFFFFF]! They are no longer friends!"); // End the alliance RemoveAlliance(myGuild.ToLower(), guildName.ToLower()); // Save Data SaveAllianceListData(); }
private void ViewAllyRequestsForMyGuild(Player player, string cmd) { // Get players guild var myGuild = PlayerExtensions.GetGuild(player).Name; if (myGuild == null) { PrintToChat(player, "You don't appear to be in a guild!"); return; } // Check for Requests this player has made var myList = new Collection <string>(); foreach (var request in requestList) { if (request[0] == myGuild) { myList.Add(request[1]); } } if (myList.Count > 0) { PrintToChat(player, "[FF0000]Alliance Organiser[FFFFFF] : You have requested an alliance with the following guilds :"); foreach (var guild in myList) { PrintToChat(player, "[00FF00]" + guild); } } else { PrintToChat(player, "[FF0000]Alliance Organiser[FFFFFF] : You have not requested any alliances currently."); } // Check for requests that have been sent to this player myList = new Collection <string>(); foreach (var request in requestList) { if (request[1] == myGuild) { myList.Add(request[0]); } } if (myList.Count > 0) { PrintToChat(player, "[FF0000]Alliance Organiser[FFFFFF] : The following guilds have sent you an ally request :"); foreach (var guild in myList) { PrintToChat(player, "[00FF00]" + guild); } } else { PrintToChat(player, "[FF0000]Alliance Organiser[FFFFFF] : You have not had any alliance requests currently."); } }
bool TryingToAllySelf(Player player, Player invitedPlayer) { LoadLists(); if (PlayerExtensions.GetGuild(player) == PlayerExtensions.GetGuild(invitedPlayer)) { PrintToChat(player, string.Format(GetMessage("SelfAlly", player.Id.ToString()))); return(true); } return(false); }
private void AcceptAllyRequest(Player player, string cmd, string[] guildArray) { // Check the player has specified a guild to accept if (PlayerHasNotenteredAGuildName(guildArray)) { PrintToChat(player, "[FF0000]Alliance Organiser[FFFFFF] : To accept an alliance request, type [00FF00]/acceptally [FF00FF]<guildname>."); return; } // Convert guild array to string var guildName = ConvertGuildNameToString(guildArray); // Get my own guild name var myGuild = PlayerExtensions.GetGuild(player).Name; // Remove unneccessary [0] at start of string myGuild = myGuild.Replace("[0]", ""); guildName = guildName.Replace("[0]", ""); // Check if this invitation is in the request list var allianceRequestNumber = AllianceRequestAlreadyExists(myGuild, guildName); if (allianceRequestNumber == -1) { PrintToChat(player, "[FF0000]Alliance Organiser[FFFFFF] : There is no Alliance request for that guild to accept, my Lord."); return; } // Check if already in an alliance with this guild var allianceExists = AllianceAlreadyExists(myGuild, guildName); if (allianceExists) { PrintToChat(player, "[FF0000]Alliance Organiser[FFFFFF] : You are already allied with that guild, my Lord."); return; } // Broadcast an accept message PrintToChat("[FF0000]Alliance Organiser [FF00FF](NEW ALLIANCE) [FFFFFF]: [00FF00]" + Capitalise(myGuild) + " [FFFFFF]has formed a new Alliance with [00FF00]" + Capitalise(guildName) + "[FFFFFF]! May this friendship last through the ages!"); // Remove request from Request List requestList.RemoveAt(allianceRequestNumber); // Add new Alliance to the Alliance List AddGuildsToTheAllianceList(myGuild, guildName); // Save Data SaveAllianceListData(); }
private void GetAllPlayerEntitiesAndCompareToCrest() { LoadDefaultMessages(); Player ReportReceiver = null; string TrespassedGuildName = null; string TrespasserGuild = null; string ReportMessage = ""; List <Entity> _globalEntList = new List <Entity>(); _globalEntList = Entity.GetAll(); var crestScheme = SocialAPI.Get <CrestScheme>(); Entity TrespasserEntity = null; foreach (Entity ent in _globalEntList) { if (ent.IsPlayer && crestScheme.GetCrestAt(ent.Position) != null && crestScheme.GetCrestAt(ent.Position).GuildName.ToLower() != PlayerExtensions.GetGuild(ent.Owner).Name.ToLower()) { TrespassedGuildName = crestScheme.GetCrestAt(ent.Position).GuildName; TrespasserEntity = ent; TrespasserGuild = PlayerExtensions.GetGuild(ent.Owner).Name; time = Server.Instance.Time.DateCurrent.ToShortTimeString(); } } foreach (Player player in Server.AllPlayers) { if (PlayerExtensions.GetGuild(player).Name != TrespassedGuildName) { continue; } ReportReceiver = player; } if (ReportReceiver == null) { if (TrespasserGuild == null) { return; } _NightsWatchReports.Add(new string[] { TrespasserGuild, TrespassedGuildName, time.ToString() }); SaveWatchReports(); return; } ReportMessage = ReportMessage + string.Format(GetMessage("OnlineReport", ReportReceiver.Id.ToString()), TrespasserGuild); PrintToChat(ReportReceiver, ReportMessage); }
private void ConfirmTheBounty(Player player, Options selection, Dialogue dialogue, object contextData) { if (selection != Options.Yes) { PrintToChat(player, "[FF0000]Assassin's Guild[FFFFFF] : You have cancelled the bounty request."); return; } var playerName = player.Name; var guild = PlayerExtensions.GetGuild(player).Name; // Confirm the bounty in the list //var bountyDetails = new string[5]; foreach (var bounty in bountyList) { if (bounty[0] == playerName.ToLower() && bounty[4] != "active") { string resource = bounty[2]; string amountAsText = bounty[3]; string targetName = bounty[1]; // Make sure the player has enough resource for this! if (PlayerHasTheResources(player, resource, amountAsText) == false) { PrintToChat(player, "[FF0000]Assassin's Guild[FFFFFF] : You do not have the resources for this bounty in your inventory!"); return; } PrintToChat(player, "[FF0000]Assassin's Guild[FFFFFF] : Setting up bounty..."); // Remove the resource int removeAmount = Int32.Parse(bounty[3]); RemoveItemsFromInventory(player, bounty[2], removeAmount); bounty[4] = "active"; var message = "[FF0000]Assassin's Guild[FFFFFF] : [00FF00]" + playerName + "[FFFFFF] of [FF00FF]" + guild + "[FFFFFF] has set a bounty reward of [FF0000]" + amountAsText + " " + resource + "[FFFFFF] for the death of [00FF00]" + Capitalise(targetName) + "[FFFFFF]!"; PrintToChat(message); } } // Save the data. SaveBountyListData(); }
public static void Postfix(ItemDrop.ItemData __instance, ref float __result) { var player = PlayerExtensions.GetPlayerWithEquippedItem(__instance); var totalParryMod = 0f; ModifyWithLowHealth.Apply(player, MagicEffectType.ModifyParry, effect => { totalParryMod += MagicEffectsHelper.GetTotalActiveMagicEffectValue(player, __instance, effect, 0.01f); }); __result *= 1.0f + totalParryMod; if (player != null && player.m_leftItem == null && player.HasActiveMagicEffect(MagicEffectType.Duelist)) { __result += __instance.GetDamage().GetTotalDamage() / 2 * player.GetTotalActiveMagicEffectValue(MagicEffectType.Duelist, 0.01f); } __result = (float)Math.Round(__result, 1); }
bool IsAllianceLeader(Player player) { LoadLists(); var playerGuildOwnerId = PlayerExtensions.GetGuild(player).OwnerId; if (playerGuildOwnerId == 0) { return(false); } for (var i = 0; i < _AllianceList.Count; i++) { if (_AllianceList.ElementAt(i).MemberGuilds.Contains(SocialAPI.GetGroupId(player.Id)) && _AllianceList.ElementAt(i).Owner == player.Id) { return(true); } } return(false); }
private bool AtOwnBase(Player player) { var PlayerPosition = player.Entity.Position; var crestScheme = SocialAPI.Get <CrestScheme>(); if (crestScheme.GetCrestAt(PlayerPosition) == null) { return(false); } var crest = crestScheme.GetCrestAt(PlayerPosition); var playerGuild = PlayerExtensions.GetGuild(player).Name; var crestGuild = crest.GuildName; if (playerGuild == crestGuild) { return(true); } return(false); }
public static void Postfix(ItemDrop.ItemData __instance, ref float __result) { var player = PlayerExtensions.GetPlayerWithEquippedItem(__instance); // Apply this item's armor for just this item var totalArmorMod = __instance.GetMagicItem()?.GetTotalEffectValue(MagicEffectType.ModifyArmor, 0.01f) ?? 0f; // apply +armor from set bonuses globally if (player != null) { totalArmorMod += MagicEffectsHelper.GetTotalActiveSetEffectValue(player, MagicEffectType.ModifyArmor, 0.01f); } // Apply +armor (health critical) for all items ModifyWithLowHealth.ApplyOnlyForLowHealth(player, MagicEffectType.ModifyArmor, effect => { totalArmorMod += MagicEffectsHelper.GetTotalActiveMagicEffectValue(player, __instance, effect, 0.01f); }); __result *= 1.0f + totalArmorMod; }
private void ContinueWithRankList(Player player, Options selection, Dialogue dialogue, object contextData, int itemsPerPage, int currentItemCount) { if (selection != Options.Yes) { //Leave return; } if ((currentItemCount + itemsPerPage) > rankList.Count) { itemsPerPage = rankList.Count - currentItemCount; } var itemText = ""; var i = currentItemCount; foreach (var person in rankList) { string message = "[FFFFFF]" + Capitalise(person.Key) + " - (" + Capitalise(GetRank(person.Value)) + ")\n"; itemText = itemText + message; i++; if (i >= itemsPerPage + currentItemCount) { break; } } currentItemCount = currentItemCount + itemsPerPage; // Display the Next page if (currentItemCount < rankList.Count) { player.ShowConfirmPopup("Duke's Castle Rankings", itemText, "Next Page", "Exit", (options, dialogue1, data) => ContinueWithRankList(player, options, dialogue1, data, itemsPerPage, currentItemCount)); } else { PlayerExtensions.ShowPopup(player, "Duke's Castle Rankings", itemText, "Yes", (newselection, dialogue2, data) => DoNothing(player, newselection, dialogue2, data)); } }
private void EndSpecificWarOnServer(Player player, string cmd, string[] playerToEndWar) { if (!player.HasPermission("admin")) { PrintToChat(player, "Only an admin may end a guild war!!"); return; } var playerName = playerToEndWar[0]; if (playerToEndWar.Length > 1) { for (var i = 1; i < playerToEndWar.Length; i++) { playerName = string.Format(playerName + " {0}", playerToEndWar[i]); } } Player targetPlayer = Server.GetPlayerByName(playerName); if (targetPlayer == null) { PrintToChat(player, "That player is currently not on the server."); } var guildName = PlayerExtensions.GetGuild(targetPlayer).DisplayName; //PrintToChat(player, "Ending all wars for guild : [00FF00]" + guildName); // End all Wars for this guild for (var i = 0; i < WarList.Count; i++) { if (string.Compare(guildName.ToLower(), WarList[i][1].ToLower()) == 0 || string.Compare(guildName.ToLower(), WarList[i][2].ToLower()) == 0) { PrintToChat("[FF0000]Ending all Wars for :[00FF00]" + guildName); WarList.RemoveAt(i); i--; } } }
private void OnPlayerSpawn(PlayerFirstSpawnEvent e) { List <string[]> TempList = new List <string[]>(); LoadDefaultMessages(); var Message = ""; LoadWatchReports(); foreach (string[] report in _NightsWatchReports) { if (report[1] != (PlayerExtensions.GetGuild(e.Player).Name)) { TempList.Add(report); continue; } Message = string.Format(GetMessage("OfflineReport", e.Player.Id.ToString()), report[2], report[0]); PrintToChat(e.Player, Message); } _NightsWatchReports.Clear(); _NightsWatchReports.AddRange(TempList); SaveWatchReports(); }
private void getGuild(Player player, string cmd, string[] args) { // if we only want admins to be able to use /guildname // and the user does not have admin permissions, let user know then do nothing. if (adminOnly && !player.HasPermission("admin")) { PrintToChat(player, "Only an admin may check guild names!"); return; } // if the user has only typed /guildname // we want to tell them how to use the command if (args.Length < 1) { PrintToChat(player, "Usage: /guildname username"); return; } // if there is a name given after /guildname // print to the typer, the guildname for the given player if (args[0] != null) { // find the target player Player toGetGuild = Server.GetPlayerByName(args[0]); //if we can't find the target tell the user and stop their request. if (toGetGuild == null) { PrintToChat(player, "Player not found - are they online?"); return; } // otherwise we found the target player, so get their guild string playerguild = PlayerExtensions.GetGuild(toGetGuild).DisplayName; // and finally tell the user the player's guild PrintToChat(player, playerguild); } }
private void DeclareWarOnGuild(Player player, string cmd, string[] targetPlayerNameArray) { //if the player only types /delcarewar, show the instructions on what to do if (targetPlayerNameArray.Length < 1) { PrintToChat(player, "[FF0000]Declare War Instructions[FFFFFF] : Type /declarewar followed by the Player's name to declare war on that player's guild. THIS CANNOT BE UNDONE!"); return; } // Convert the player name string array to a string var targetPlayerName = targetPlayerNameArray[0]; if (targetPlayerNameArray.Length > 1) { for (var i = 1; i < targetPlayerNameArray.Length; i++) { targetPlayerName = string.Format(targetPlayerName + " {0}", targetPlayerNameArray[i]); } } // Find the chosen target player Player targetPlayer = Server.GetPlayerByName(targetPlayerName); //Check that this player can be found if (targetPlayer == null) { PrintToChat(player, "[FF0000]War Squire[FFFFFF] : That person is not available. Perhaps they exist only in your imagination my Lord?"); return; } // Check they are not trying to declare war on themselves if (string.Compare(targetPlayerName.ToLower(), player.DisplayName.ToLower()) == 0) { PrintToChat(player, "[FF0000]War Squire[FFFFFF] : You can't declare war upon thyself, my Lord! This is crazy talk!"); return; } // Get the player's guild if (PlayerExtensions.GetGuild(targetPlayer).DisplayName == null) { PrintToChat(player, "[FF0000]War Squire[FFFFFF] : My Lord, you have not yet formed a guild. You must do so before you can declare a war!"); return; } string playerGuild = PlayerExtensions.GetGuild(targetPlayer).Name.ToLower(); // Check they are not in the same guild string myGuild = PlayerExtensions.GetGuild(player).Name.ToLower(); // Remove unneccessary [0] at start of string playerGuild = playerGuild.Replace("[0]", ""); myGuild = myGuild.Replace("[0]", ""); if (string.Compare(playerGuild, myGuild) == 0) { PrintToChat(player, "[FF0000]War Squire[FFFFFF] : My Lord! That is your friend! A trusted Ally! You can't declare war on them! It would get... awkward...!"); return; } // Check that they aren't already in a war with this guild foreach (var war in WarList) { if ((string.Compare(myGuild, war[1]) == 0 && string.Compare(playerGuild, war[2]) == 0) || (string.Compare(myGuild, war[2]) == 0 && string.Compare(playerGuild, war[1]) == 0)) { PrintToChat(player, "[FF0000]War Squire[FFFFFF] : We are already at war with that guild, my Lord."); return; } } // Tell the World that war has been declared! string warText = player.DisplayName + "[FFFFFF] ([FF0000]Declaring War[FFFFFF]) : [00FF00]" + Capitalise(myGuild) + " [FFFFFF]has declared war on [00FF00]" + Capitalise(playerGuild) + "[FFFFFF]! They have [00FF00]" + WarPrepTimeHours + "[FFFFFF]hrs, [00FF00]" + WarPrepTimeMinutes + "[FFFFFF]mins and [00FF00]" + WarPrepTimeSeconds + "[FFFFFF]secs to prepare for war!"; PrintToChat(warText); // Begin the War! CommenceWar(myGuild + playerGuild, myGuild, playerGuild); // Save the data SaveWarListData(); }
bool HasPermission(Player player, string perm = null) { return(PlayerExtensions.HasPermission(player, perm)); }
public static void Postfix(ItemDrop.ItemData __instance, ref HitData.DamageTypes __result) { if (!__instance.IsMagic()) { return; } var magicItem = __instance.GetMagicItem(); var magicItemskillType = __instance.m_shared.m_skillType; var player = PlayerExtensions.GetPlayerWithEquippedItem(__instance); // Add damages first __result.m_blunt += MagicEffectsHelper.GetTotalActiveMagicEffectValue(player, magicItem, MagicEffectType.AddBluntDamage); __result.m_slash += MagicEffectsHelper.GetTotalActiveMagicEffectValue(player, magicItem, MagicEffectType.AddSlashingDamage); __result.m_pierce += MagicEffectsHelper.GetTotalActiveMagicEffectValue(player, magicItem, MagicEffectType.AddPiercingDamage); __result.m_fire += MagicEffectsHelper.GetTotalActiveMagicEffectValue(player, magicItem, MagicEffectType.AddFireDamage); __result.m_frost += MagicEffectsHelper.GetTotalActiveMagicEffectValue(player, magicItem, MagicEffectType.AddFrostDamage); __result.m_lightning += MagicEffectsHelper.GetTotalActiveMagicEffectValue(player, magicItem, MagicEffectType.AddLightningDamage); __result.m_poison += MagicEffectsHelper.GetTotalActiveMagicEffectValue(player, magicItem, MagicEffectType.AddPoisonDamage); __result.m_spirit += MagicEffectsHelper.GetTotalActiveMagicEffectValue(player, magicItem, MagicEffectType.AddSpiritDamage); if (magicItemskillType == Skills.SkillType.Axes) { __result.m_chop += MagicEffectsHelper.GetTotalActiveMagicEffectValue(player, magicItem, MagicEffectType.AddSlashingDamage); } else if (magicItemskillType == Skills.SkillType.Pickaxes) { __result.m_pickaxe += MagicEffectsHelper.GetTotalActiveMagicEffectValue(player, magicItem, MagicEffectType.AddPiercingDamage); } // Then modify if (MagicEffectsHelper.HasActiveMagicEffect(player, magicItem, MagicEffectType.ModifyPhysicalDamage)) { var totalDamageMod = MagicEffectsHelper.GetTotalActiveMagicEffectValue(player, magicItem, MagicEffectType.ModifyPhysicalDamage, 0.01f); var modifier = 1.0f + totalDamageMod; __result.m_blunt *= modifier; __result.m_slash *= modifier; __result.m_pierce *= modifier; __result.m_chop *= modifier; __result.m_pickaxe *= modifier; } if (MagicEffectsHelper.HasActiveMagicEffect(player, magicItem, MagicEffectType.ModifyElementalDamage)) { var totalDamageMod = MagicEffectsHelper.GetTotalActiveMagicEffectValue(player, magicItem, MagicEffectType.ModifyElementalDamage, 0.01f); var modifier = 1.0f + totalDamageMod; __result.m_fire *= modifier; __result.m_frost *= modifier; __result.m_lightning *= modifier; __result.m_poison *= modifier; __result.m_spirit *= modifier; } var damageMod = 0f; ModifyWithLowHealth.Apply(player, MagicEffectType.ModifyDamage, effect => { if (MagicEffectsHelper.HasActiveMagicEffect(player, magicItem, effect)) { damageMod += MagicEffectsHelper.GetTotalActiveMagicEffectValue(player, magicItem, effect, 0.01f); } }); __result.Modify(1.0f + damageMod); if (player != null && player.GetSEMan().HaveStatusEffect("BerserkerStatusEffect")) { var percentLife = player.GetHealthPercentage(); var berserkerMod = Mathf.Lerp(2.0f, 0.5f, percentLife); __result.Modify(1.0f + berserkerMod); } }
private void RequestAllianceWithPlayer(Player player, string cmd, string[] playerArray) { if (playerArray.Length < 1) { PrintToChat(player, "[FF0000]Alliance Organiser[FFFFFF] : To request an alliance, type [00FF00]/requestally [FF00FF]<player_name>."); return; } // Get players involved in the alliance var playerName = player.DisplayName; var targetPlayerName = playerArray[0]; if (playerArray.Length > 1) { for (var i = 1; i < playerArray.Length; i++) { targetPlayerName = string.Format(targetPlayerName + " {0}", playerArray[i]); } } // Find the chosen target player Player targetPlayer = Server.GetPlayerByName(targetPlayerName); //Check that this player can be found if (targetPlayer == null) { PrintToChat(player, "[FF0000]Alliance Organiser[FFFFFF] : That person is not currently awake."); return; } // Check they are not trying to ally with themselves if (string.Compare(targetPlayerName.ToLower(), player.DisplayName.ToLower()) == 0) { PrintToChat(player, "[FF0000]Alliance Organiser[FFFFFF] : Alliances with yourself? Are you in need of friends that much, my Lord?"); return; } // Get the player's guild if (PlayerExtensions.GetGuild(targetPlayer).DisplayName == null) { PrintToChat(player, "[FF0000]Alliance Organiser[FFFFFF] : It would appear you have no guild, my Lord! I don't know how that happened..."); return; } string playerGuild = PlayerExtensions.GetGuild(targetPlayer).Name; // Check they are not in the same guild string myGuild = PlayerExtensions.GetGuild(player).Name; // Remove unneccessary [0] at start of string playerGuild = playerGuild.Replace("[0]", ""); myGuild = myGuild.Replace("[0]", ""); if (string.Compare(playerGuild, myGuild) == 0) { PrintToChat(player, "[FF0000]Alliance Organiser[FFFFFF] : That person is already a part of your guild, my Lord. An alliance is somewhat unnecessary at this juncture..."); return; } //Check that the request hasn't already been sent. var allianceRequestNumber = AllianceRequestAlreadyExists(myGuild, playerGuild); if (allianceRequestNumber >= 0) { PrintToChat(player, "[FF0000]Alliance Organiser[FFFFFF] : There is already an outstanding ally request between these two guilds."); return; } // Check that you are not already allied if (allianceList.ContainsKey(myGuild.ToLower())) { var myAlliances = allianceList[myGuild.ToLower()]; foreach (var alliance in myAlliances) { if (alliance == playerGuild.ToLower()) { PrintToChat(player, "[FF0000]Alliance Organiser[FFFFFF] : You are already allied with this guild, my Lord."); return; } } } // Send Alliance Request PrintToChat("[FF0000]Alliance Organiser : [00FF00]" + Capitalise(playerName) + "[FFFFFF] from [00FF00]" + Capitalise(myGuild) + "[FFFFFF] is requesting a formal Alliance with [00FF00]" + Capitalise(playerGuild) + "[FFFFFF]."); PrintToChat("[FFFFFF]Type [00FF00]/acceptally [FF00FF]<guild_name> [FFFFFF]to accept the request or [00FF00]/denyally [FF00FF]<guild_name> [FFFFFF]to deny the request."); // Add request to the RequestAlliance list var requestDetails = new Collection <string>(); requestDetails.Add(myGuild); requestDetails.Add(playerGuild); requestList.Add(requestDetails); // Save Data SaveAllianceListData(); }
void SendInviteToPlayer(Player player, Options options, Dialogue dialogue1, object data) { LoadLists(); if (dialogue1.ValueMessage.IsNullEmptyOrWhite()) { PrintToChat(player, string.Format(GetMessage("NoArgument", player.Id.ToString()))); return; } Player invitedPlayer = Server.GetPlayerByName(dialogue1.ValueMessage); if (invitedPlayer == null) { PrintToChat(player, string.Format(GetMessage("PlayerOfflineOrUnavailable", player.Id.ToString()))); return; } ulong invitedPlayerGuildId = SocialAPI.GetGroupId(invitedPlayer.Id); if (invitedPlayerGuildId == 0) { PrintToChat(player, string.Format(GetMessage("GuildLess", player.Id.ToString()))); return; } if (!IsAllied(player.GetGuild())) { if (!IsAllied(invitedPlayer.GetGuild())) { if (_AllianceList.Count >= MaxAlliances) { PrintToChat(player, string.Format(GetMessage("MaxAlliancesReached", player.Id.ToString()), MaxAlliances.ToString())); return; } invitedPlayer.ShowConfirmPopup(string.Format(GetMessage("TitleInviteAlly", player.Id.ToString())), string.Format(GetMessage("TextSendInviteToPlayer", invitedPlayer.Id.ToString()), player.DisplayName.ToString()), string.Format(GetMessage("ACCEPTBUTTON")), string.Format(GetMessage("DECLINEBUTTON")), (selection, dialogue, data1) => MergeTwoGuildsToNewAlliance(player, invitedPlayer, selection, dialogue1, data)); return; } Player AllianceLeader = Server.GetPlayerById(AllianceLeaderId(invitedPlayer)); if (Server.AllPlayers.Contains(AllianceLeader)) { if (options == Options.OK) { if (TryingToAllySelf(player, invitedPlayer)) { return; } if (AllianceFull(invitedPlayer)) { PrintToChat(player, string.Format(GetMessage("MaxGuildsReached2", player.Id.ToString()))); PrintToChat(invitedPlayer, string.Format(GetMessage("MaxGuildsReached3", player.Id.ToString()), player.Name)); return; } AllianceLeader.ShowConfirmPopup(string.Format(GetMessage("TitleSendInviteToPlayerApplication", AllianceLeader.Id.ToString())), string.Format(GetMessage("TextSendInviteToPlayerApplication", AllianceLeader.Id.ToString()), player.DisplayName.ToString()), string.Format(GetMessage("ACCEPTBUTTON", AllianceLeader.Id.ToString())), string.Format(GetMessage("DECLINEBUTTON", AllianceLeader.Id.ToString())), (selection, dialogue, data1) => MergeAllyToPlayer(player, AllianceLeader, selection, dialogue1, data)); return; } PrintToChat(player, string.Format(GetMessage("CANCELLED", player.Id.ToString()))); return; } PrintToChat(player, string.Format(GetMessage("LeaderOffline", player.Id.ToString()))); } if (!IsAllied(invitedPlayer.GetGuild())) { if (AllianceFull(player)) { PrintToChat(player, string.Format(GetMessage("MaxGuildsReached1", player.Id.ToString()))); return; } if (!IsGuildOwner(invitedPlayer)) { ulong GuildOwnerId = PlayerExtensions.GetGuild(invitedPlayer).OwnerId; Player GuildOwner = Server.GetPlayerById(GuildOwnerId); if (Server.AllPlayers.Contains(GuildOwner)) { GuildOwner.ShowConfirmPopup(string.Format(GetMessage("TitleInviteAlly", GuildOwner.Id.ToString())), string.Format(GetMessage("TextSendInviteToPlayer", GuildOwner.Id.ToString()), player.DisplayName.ToString()), string.Format(GetMessage("ACCEPTBBUTTON", GuildOwner.Id.ToString())), string.Format(GetMessage("DECLINEBUTTON", GuildOwner.Id.ToString())), (selection, dialogue, data1) => MergePlayerToAlly(player, GuildOwner, selection, dialogue1, data)); return; } PrintToChat(player, ""); return; } if (!Server.AllPlayers.Contains(invitedPlayer)) { PrintToChat(player, string.Format(GetMessage("LeaderOffline2", player.Id.ToString()))); return; } invitedPlayer.ShowConfirmPopup(string.Format(GetMessage("TitleInviteAlly", invitedPlayer.Id.ToString())), string.Format(GetMessage("TextSendInviteToPlayer", invitedPlayer.Id.ToString()), player.DisplayName.ToString()), string.Format(GetMessage("ACCEPTBBUTTON", invitedPlayer.Id.ToString())), string.Format(GetMessage("DECLINEBUTTON", invitedPlayer.Id.ToString())), (selection, dialogue, data1) => MergePlayerToAlly(player, invitedPlayer, selection, dialogue1, data)); return; } if (CountMergingMembers(player, invitedPlayer) > MaxMembersPerAlliance) { PrintToChat(player, string.Format(GetMessage("AttemptMergeExceedSender", player.Id.ToString()))); PrintToChat(invitedPlayer, string.Format(GetMessage("AttemptMergeExceedReceiver", invitedPlayer.Id.ToString()))); return; } if (TryingToAllySelf(player, invitedPlayer)) { return; } if (TryingToAllyWithAlly(player, invitedPlayer)) { return; } if (!IsAllianceLeader(invitedPlayer)) { Player AllianceLeader = (Server.GetPlayerById(AllianceLeaderId(invitedPlayer))); if (!Server.AllPlayers.Contains(AllianceLeader)) { PrintToChat(player, string.Format(GetMessage("LeaderOffline", player.Id.ToString()))); return; } AllianceLeader.ShowConfirmPopup(string.Format(GetMessage("TitleMergeTwoAlliances", AllianceLeader.Id.ToString())), string.Format(GetMessage("TextMergeTwoAlliancesReceiver", AllianceLeader.Id.ToString()), player.DisplayName.ToString()), string.Format(GetMessage("ACCEPTBBUTTON", AllianceLeader.Id.ToString())), string.Format(GetMessage("DECLINEBUTTON", AllianceLeader.Id.ToString())), (selection, dialogue, data1) => MergeTwoAlliances(player, AllianceLeader, selection, dialogue1, data)); return; } if (!Server.AllPlayers.Contains(invitedPlayer)) { PrintToChat(player, string.Format(GetMessage("LeaderOffline", player.Id.ToString()))); return; } invitedPlayer.ShowConfirmPopup(string.Format(GetMessage("TitleMergeTwoAlliances", invitedPlayer.Id.ToString())), string.Format(GetMessage("TextMergeTwoAlliancesReceiver", invitedPlayer.Id.ToString()), player.DisplayName.ToString()), string.Format(GetMessage("ACCEPTBBUTTON", invitedPlayer.Id.ToString())), string.Format(GetMessage("DECLINEBUTTON", invitedPlayer.Id.ToString())), (selection, dialogue, data1) => MergeTwoAlliances(player, invitedPlayer, selection, dialogue1, data)); return; }
private void Popup2(Player player) { PlayerExtensions.ShowPopup(player, "Buttons?", "Do you want to press a button?", "Yes", (selection, dialogue, data) => HandlePopup(player, selection, dialogue, data)); }
private void UpdateGuildStatusForPlayer(Player player) { if (player == null) { return; } var playerName = player.Name.ToLower(); var thisGuild = PlayerExtensions.GetGuild(player); if (thisGuild == null) { return; } var guildName = PlayerExtensions.GetGuild(player).Name; if (guildInformation == null) { return; } foreach (var guild in guildInformation) { // Is the player in here? foreach (var playerFound in guild) { if (playerFound == playerName) { // Are they in the right guild if (guild[0] == guildName) { SaveGuildInfoData(); return; } //Otherwise remove them from this guild else { guild.Remove(playerFound); SaveGuildInfoData(); UpdateGuildStatusForPlayer(player); return; } } } } // We didn't find the player so add him. //Does his guild already exist? foreach (var guild in guildInformation) { foreach (var member in guild) { if (member == guildName) { guild.Add(playerName); SaveGuildInfoData(); return; } } } //No guild and no record so create one var newMemberList = new Collection <string>(); newMemberList.Add(guildName); newMemberList.Add(playerName); guildInformation.Add(newMemberList); SaveGuildInfoData(); //foreach(var a in guildInformation){ // foreach(var b in a){ // PrintToChat(b); // } //} }
protected override void DoRender(HtmlTextWriter output) { Database db = Sitecore.Context.Database; StringBuilder sbOut = new StringBuilder(); StringBuilder sbError = new StringBuilder(); //get the player long playerid = -1; //check to see if the guid is there if (long.TryParse(this.Attributes["player"], out playerid)) { //get player obj PlayerItem p = PlayerLibraryItem.GetPlayer(playerid); if (p != null) { //parse wmode WMode wmode = WMode.Window; try { wmode = (WMode)Enum.Parse(wmode.GetType(), this.Attributes["wmode"], true); }catch {} //get background color string bgcolor = this.Attributes["bgcolor"]; bgcolor = (string.IsNullOrEmpty(bgcolor)) ? "#ffffff" : bgcolor; if (!bgcolor.StartsWith("#")) { bgcolor = "#" + bgcolor; } string oparams = this.Attributes["oparams"]; Dictionary <string, string> objectParams = new Dictionary <string, string>(); if (!string.IsNullOrEmpty(oparams)) { string[] keys = oparams.Split(','); foreach (string k in keys) { string[] pair = k.Split('='); if (pair.Length > 0) { objectParams.Add(pair[0], pair[1]); } } } //parse autostart bool autostart = false; try { autostart = (this.Attributes["autostart"].Equals("true")) ? true : false; }catch {} //determine which embed code to display if (p.PlaylistType.Equals(PlayerPlaylistType.None)) { //get the video id long videoid = -1; if (long.TryParse(this.Attributes["video"], out videoid)) { //try parse the id and get the item VideoItem v = VideoLibraryItem.GetVideo(videoid); if (v != null) { sbOut.Append(p.GetEmbedCode(v, bgcolor, autostart, wmode)); } } } else if (p.PlaylistType.Equals(PlayerPlaylistType.VideoList)) { long videolist = -1; if (long.TryParse(this.Attributes["videolist"], out videolist)) { sbOut.Append(p.GetEmbedCode(videolist, bgcolor, autostart, wmode)); } } else if (p.PlaylistType.Equals(PlayerPlaylistType.ComboBox) || p.PlaylistType.Equals(PlayerPlaylistType.Tabbed)) { List <string> t = new List <string>(); //get both the lists and build a string list if (p.PlaylistType.Equals(PlayerPlaylistType.ComboBox)) { string combo = (this.Attributes["playlistcombo"] != null) ? this.Attributes["playlistcombo"] : ""; t.AddRange(combo.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)); } else if (p.PlaylistType.Equals(PlayerPlaylistType.Tabbed)) { string tabs = (this.Attributes["playlisttabs"] != null) ? this.Attributes["playlisttabs"] : ""; t.AddRange(tabs.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)); } //convert to a list of long List <long> playlists = new List <long>(); foreach (string s in t) { long temp = -1; if (long.TryParse(s, out temp)) { playlists.Add(temp); } } //get the embed code sbOut.Append(p.GetEmbedCode(playlists, bgcolor, autostart, wmode, PlayerExtensions.CreateEmbedID(), objectParams)); } //Notify the user if (sbOut.Length < 1) { sbError.AppendLine("Player playlist type wasn't selected."); } } else { sbError.AppendLine("Player doesn't exist in Sitecore."); } } else { sbError.AppendLine("Player value is not a long."); } //determine if it's an error or not if (sbError.Length > 0) { output.WriteLine("<div style=\"display:none;\">" + sbError.ToString() + "</div>"); } else { output.WriteLine(sbOut.ToString()); } }