C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using System;
using System.Collections.Generic;
using System.Globalization;
using Oxide.Core.Plugins;
using UnityEngine;
using Newtonsoft.Json;
namespace Oxide.Plugins
{
[Info("Zone Manager Auto Zones", "FastBurst", "1.4.0")]
[Description("Adds zones and domes to monuments automatically.")]
public class ZoneManagerAutoZones : RustPlugin
{
[PluginReference] Plugin ZoneManager, ZoneDomes, TruePVE, NextGenPVE;
#region Vars
BasePlayer player;
#endregion
#region Oxide Hooks
void OnServerInitialized()
{
PopulateZoneLocations();
}
#endregion
#region Functions
private void PopulateZoneLocations()
{
ConfigData.LocationOptions.Monument config = configData.Location.Monuments;
MonumentInfo[] monuments = UnityEngine.Object.FindObjectsOfType<MonumentInfo>();
int miningoutpost = 0, lighthouse = 0, gasstation = 0, supermarket = 0, compound = 0;
for (int i = 0; i < monuments.Length; i++)
{
MonumentInfo monument = monuments[i];
if (monument.name.Contains("harbor_1", CompareOptions.IgnoreCase))
{
string friendlyname = "Large " + monument.displayPhrase.english;
string ID = "harbor_1";
if (config.HarborLarge.Enabled)
{
string[] messages = new string[8];
messages[0] = "name";
messages[1] = friendlyname;
messages[2] = "enter_message";
messages[3] = configData.Location.Monuments.HarborLarge.EnterMessage;
messages[4] = "leave_message";
messages[5] = configData.Location.Monuments.HarborLarge.LeaveMessage;
messages[6] = "radius";
messages[7] = Convert.ToInt32(configData.Location.Monuments.HarborLarge.Radius).ToString();
ZoneManager?.CallHook("CreateOrUpdateZone", ID, messages, monument.transform.position);
if (configData.Location.Monuments.HarborLarge.ZoneFlags != null)
foreach (var flag in configData.Location.Monuments.HarborLarge.ZoneFlags)
ZoneManager?.CallHook("AddFlag", ID, flag);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.HarborLarge.TruePVERules);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.HarborLarge.NextGenPVERules);
if (configData.ZoneOption.UseZoneDomes)
{
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
ZoneDomes?.CallHook("AddNewDome", player, ID);
}
}
else
{
ZoneManager?.CallHook("EraseZone", ID);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("RemoveMapping", ID);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("RemoveMapping", ID);
if (configData.ZoneOption.UseZoneDomes)
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
}
continue;
}
if (monument.name.Contains("harbor_2", CompareOptions.IgnoreCase))
{
string friendlyname = "Small " + monument.displayPhrase.english;
string ID = "harbor_2";
if (config.HarborSmall.Enabled)
{
string[] messages = new string[8];
messages[0] = "name";
messages[1] = friendlyname;
messages[2] = "enter_message";
messages[3] = configData.Location.Monuments.HarborSmall.EnterMessage;
messages[4] = "leave_message";
messages[5] = configData.Location.Monuments.HarborSmall.LeaveMessage;
messages[6] = "radius";
messages[7] = Convert.ToInt32(configData.Location.Monuments.HarborSmall.Radius).ToString();
ZoneManager?.CallHook("CreateOrUpdateZone", ID, messages, monument.transform.position);
if (configData.Location.Monuments.HarborSmall.ZoneFlags != null)
foreach (var flag in configData.Location.Monuments.HarborSmall.ZoneFlags)
ZoneManager?.CallHook("AddFlag", ID, flag);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.HarborSmall.TruePVERules);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.HarborSmall.NextGenPVERules);
if (configData.ZoneOption.UseZoneDomes)
{
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
ZoneDomes?.CallHook("AddNewDome", player, ID);
}
}
else
{
ZoneManager?.CallHook("EraseZone", ID);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("RemoveMapping", ID);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("RemoveMapping", ID);
if (configData.ZoneOption.UseZoneDomes)
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
}
continue;
}
if (monument.name.Contains("airfield_1", CompareOptions.IgnoreCase))
{
string friendlyname = monument.displayPhrase.english;
string ID = "airfield_1";
if (config.Airfield.Enabled)
{
string[] messages = new string[8];
messages[0] = "name";
messages[1] = friendlyname;
messages[2] = "enter_message";
messages[3] = configData.Location.Monuments.Airfield.EnterMessage;
messages[4] = "leave_message";
messages[5] = configData.Location.Monuments.Airfield.LeaveMessage;
messages[6] = "radius";
messages[7] = Convert.ToInt32(configData.Location.Monuments.Airfield.Radius).ToString();
ZoneManager?.CallHook("CreateOrUpdateZone", ID, messages, monument.transform.position);
if (configData.Location.Monuments.Airfield.ZoneFlags != null)
foreach (var flag in configData.Location.Monuments.Airfield.ZoneFlags)
ZoneManager?.CallHook("AddFlag", ID, flag);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.Airfield.TruePVERules);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.Airfield.NextGenPVERules);
if (configData.ZoneOption.UseZoneDomes)
{
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
ZoneDomes?.CallHook("AddNewDome", player, ID);
}
}
else
{
ZoneManager?.CallHook("EraseZone", ID);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("RemoveMapping", ID);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("RemoveMapping", ID);
if (configData.ZoneOption.UseZoneDomes)
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
}
continue;
}
if (monument.name.Contains("launch_site_1", CompareOptions.IgnoreCase))
{
string friendlyname = monument.displayPhrase.english;
string ID = "launch_site";
if (config.LaunchSite.Enabled)
{
string[] messages = new string[8];
messages[0] = "name";
messages[1] = friendlyname;
messages[2] = "enter_message";
messages[3] = configData.Location.Monuments.LaunchSite.EnterMessage;
messages[4] = "leave_message";
messages[5] = configData.Location.Monuments.LaunchSite.LeaveMessage;
messages[6] = "radius";
messages[7] = Convert.ToInt32(configData.Location.Monuments.LaunchSite.Radius).ToString();
ZoneManager?.CallHook("CreateOrUpdateZone", ID, messages, monument.transform.position);
if (configData.Location.Monuments.LaunchSite.ZoneFlags != null)
foreach (var flag in configData.Location.Monuments.LaunchSite.ZoneFlags)
ZoneManager?.CallHook("AddFlag", ID, flag);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.LaunchSite.TruePVERules);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.LaunchSite.NextGenPVERules);
if (configData.ZoneOption.UseZoneDomes)
{
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
ZoneDomes?.CallHook("AddNewDome", player, ID);
}
}
else
{
ZoneManager?.CallHook("EraseZone", ID);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("RemoveMapping", ID);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("RemoveMapping", ID);
if (configData.ZoneOption.UseZoneDomes)
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
}
continue;
}
if (monument.name.Contains("oilrig_1", CompareOptions.IgnoreCase))
{
string friendlyname = monument.displayPhrase.english;
string ID = "oilrig_1";
if (config.LargeOilRig.Enabled)
{
string[] messages = new string[8];
messages[0] = "name";
messages[1] = friendlyname;
messages[2] = "enter_message";
messages[3] = configData.Location.Monuments.LargeOilRig.EnterMessage;
messages[4] = "leave_message";
messages[5] = configData.Location.Monuments.LargeOilRig.LeaveMessage;
messages[6] = "radius";
messages[7] = Convert.ToInt32(configData.Location.Monuments.LargeOilRig.Radius).ToString();
ZoneManager?.CallHook("CreateOrUpdateZone", ID, messages, monument.transform.position);
if (configData.Location.Monuments.LargeOilRig.ZoneFlags != null)
foreach (var flag in configData.Location.Monuments.LargeOilRig.ZoneFlags)
ZoneManager?.CallHook("AddFlag", ID, flag);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.LargeOilRig.TruePVERules);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.LargeOilRig.NextGenPVERules);
if (configData.ZoneOption.UseZoneDomes)
{
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
ZoneDomes?.CallHook("AddNewDome", player, ID);
}
}
else
{
ZoneManager?.CallHook("EraseZone", ID);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("RemoveMapping", ID);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("RemoveMapping", ID);
if (configData.ZoneOption.UseZoneDomes)
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
}
continue;
}
if (monument.name.Contains("oilrig_2", CompareOptions.IgnoreCase))
{
string friendlyname = "Small " + monument.displayPhrase.english;
string ID = "oilrig_2";
if (config.SmallOilRig.Enabled)
{
string[] messages = new string[8];
messages[0] = "name";
messages[1] = friendlyname;
messages[2] = "enter_message";
messages[3] = configData.Location.Monuments.SmallOilRig.EnterMessage;
messages[4] = "leave_message";
messages[5] = configData.Location.Monuments.SmallOilRig.LeaveMessage;
messages[6] = "radius";
messages[7] = Convert.ToInt32(configData.Location.Monuments.SmallOilRig.Radius).ToString();
ZoneManager?.CallHook("CreateOrUpdateZone", ID, messages, monument.transform.position);
if (configData.Location.Monuments.SmallOilRig.ZoneFlags != null)
foreach (var flag in configData.Location.Monuments.SmallOilRig.ZoneFlags)
ZoneManager?.CallHook("AddFlag", ID, flag);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.SmallOilRig.TruePVERules);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.SmallOilRig.NextGenPVERules);
if (configData.ZoneOption.UseZoneDomes)
{
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
ZoneDomes?.CallHook("AddNewDome", player, ID);
}
}
else
{
ZoneManager?.CallHook("EraseZone", ID);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("RemoveMapping", ID);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("RemoveMapping", ID);
if (configData.ZoneOption.UseZoneDomes)
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
}
continue;
}
if (monument.name.Contains("powerplant_1", CompareOptions.IgnoreCase))
{
string friendlyname = monument.displayPhrase.english;
string ID = "powerplant_1";
if (config.Powerplant.Enabled)
{
string[] messages = new string[8];
messages[0] = "name";
messages[1] = friendlyname;
messages[2] = "enter_message";
messages[3] = configData.Location.Monuments.Powerplant.EnterMessage;
messages[4] = "leave_message";
messages[5] = configData.Location.Monuments.Powerplant.LeaveMessage;
messages[6] = "radius";
messages[7] = Convert.ToInt32(configData.Location.Monuments.Powerplant.Radius).ToString();
ZoneManager?.CallHook("CreateOrUpdateZone", ID, messages, monument.transform.position);
if (configData.Location.Monuments.Powerplant.ZoneFlags != null)
foreach (var flag in configData.Location.Monuments.Powerplant.ZoneFlags)
ZoneManager?.CallHook("AddFlag", ID, flag);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.Powerplant.TruePVERules);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.Powerplant.NextGenPVERules);
if (configData.ZoneOption.UseZoneDomes)
{
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
ZoneDomes?.CallHook("AddNewDome", player, ID);
}
}
else
{
ZoneManager?.CallHook("EraseZone", ID);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("RemoveMapping", ID);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("RemoveMapping", ID);
if (configData.ZoneOption.UseZoneDomes)
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
}
continue;
}
if (monument.name.Contains("military_tunnel_1", CompareOptions.IgnoreCase))
{
string friendlyname = monument.displayPhrase.english;
string ID = "military_tunnel_1";
if (config.MilitaryTunnels.Enabled)
{
string[] messages = new string[8];
messages[0] = "name";
messages[1] = friendlyname;
messages[2] = "enter_message";
messages[3] = configData.Location.Monuments.MilitaryTunnels.EnterMessage;
messages[4] = "leave_message";
messages[5] = configData.Location.Monuments.MilitaryTunnels.LeaveMessage;
messages[6] = "radius";
messages[7] = Convert.ToInt32(configData.Location.Monuments.MilitaryTunnels.Radius).ToString();
ZoneManager?.CallHook("CreateOrUpdateZone", ID, messages, monument.transform.position);
if (configData.Location.Monuments.MilitaryTunnels.ZoneFlags != null)
foreach (var flag in configData.Location.Monuments.MilitaryTunnels.ZoneFlags)
ZoneManager?.CallHook("AddFlag", ID, flag);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.MilitaryTunnels.TruePVERules);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.MilitaryTunnels.NextGenPVERules);
if (configData.ZoneOption.UseZoneDomes)
{
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
ZoneDomes?.CallHook("AddNewDome", player, ID);
}
}
else
{
ZoneManager?.CallHook("EraseZone", ID);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("RemoveMapping", ID);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("RemoveMapping", ID);
if (configData.ZoneOption.UseZoneDomes)
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
}
continue;
}
if (monument.name.Contains("junkyard_1", CompareOptions.IgnoreCase))
{
string friendlyname = monument.displayPhrase.english;
string ID = "junkyard_1";
if (config.Junkyard.Enabled)
{
string[] messages = new string[8];
messages[0] = "name";
messages[1] = friendlyname;
messages[2] = "enter_message";
messages[3] = configData.Location.Monuments.Junkyard.EnterMessage;
messages[4] = "leave_message";
messages[5] = configData.Location.Monuments.Junkyard.LeaveMessage;
messages[6] = "radius";
messages[7] = Convert.ToInt32(configData.Location.Monuments.Junkyard.Radius).ToString();
ZoneManager?.CallHook("CreateOrUpdateZone", ID, messages, monument.transform.position);
if (configData.Location.Monuments.Junkyard.ZoneFlags != null)
foreach (var flag in configData.Location.Monuments.Junkyard.ZoneFlags)
ZoneManager?.CallHook("AddFlag", ID, flag);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.Junkyard.TruePVERules);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.Junkyard.NextGenPVERules);
if (configData.ZoneOption.UseZoneDomes)
{
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
ZoneDomes?.CallHook("AddNewDome", player, ID);
}
}
else
{
ZoneManager?.CallHook("EraseZone", ID);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("RemoveMapping", ID);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("RemoveMapping", ID);
if (configData.ZoneOption.UseZoneDomes)
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
}
continue;
}
if (monument.name.Contains("water_treatment_plant_1", CompareOptions.IgnoreCase))
{
string friendlyname = monument.displayPhrase.english;
string ID = "water_treatment_plant_1";
if (config.WaterTreatment.Enabled)
{
string[] messages = new string[8];
messages[0] = "name";
messages[1] = friendlyname;
messages[2] = "enter_message";
messages[3] = configData.Location.Monuments.WaterTreatment.EnterMessage;
messages[4] = "leave_message";
messages[5] = configData.Location.Monuments.WaterTreatment.LeaveMessage;
messages[6] = "radius";
messages[7] = Convert.ToInt32(configData.Location.Monuments.WaterTreatment.Radius).ToString();
ZoneManager?.CallHook("CreateOrUpdateZone", ID, messages, monument.transform.position);
if (configData.Location.Monuments.WaterTreatment.ZoneFlags != null)
foreach (var flag in configData.Location.Monuments.WaterTreatment.ZoneFlags)
ZoneManager?.CallHook("AddFlag", ID, flag);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.WaterTreatment.TruePVERules);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.WaterTreatment.NextGenPVERules);
if (configData.ZoneOption.UseZoneDomes)
{
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
ZoneDomes?.CallHook("AddNewDome", player, ID);
}
}
else
{
ZoneManager?.CallHook("EraseZone", ID);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("RemoveMapping", ID);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("RemoveMapping", ID);
if (configData.ZoneOption.UseZoneDomes)
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
}
continue;
}
if (monument.name.Contains("trainyard_1", CompareOptions.IgnoreCase))
{
string friendlyname = monument.displayPhrase.english;
string ID = "trainyard_1";
if (config.TrainYard.Enabled)
{
string[] messages = new string[8];
messages[0] = "name";
messages[1] = friendlyname;
messages[2] = "enter_message";
messages[3] = configData.Location.Monuments.TrainYard.EnterMessage;
messages[4] = "leave_message";
messages[5] = configData.Location.Monuments.TrainYard.LeaveMessage;
messages[6] = "radius";
messages[7] = Convert.ToInt32(configData.Location.Monuments.TrainYard.Radius).ToString();
ZoneManager?.CallHook("CreateOrUpdateZone", ID, messages, monument.transform.position);
if (configData.Location.Monuments.TrainYard.ZoneFlags != null)
foreach (var flag in configData.Location.Monuments.TrainYard.ZoneFlags)
ZoneManager?.CallHook("AddFlag", ID, flag);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.TrainYard.TruePVERules);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.TrainYard.NextGenPVERules);
if (configData.ZoneOption.UseZoneDomes)
{
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
ZoneDomes?.CallHook("AddNewDome", player, ID);
}
}
else
{
ZoneManager?.CallHook("EraseZone", ID);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("RemoveMapping", ID);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("RemoveMapping", ID);
if (configData.ZoneOption.UseZoneDomes)
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
}
continue;
}
if (monument.name.Contains("excavator", CompareOptions.IgnoreCase))
{
string friendlyname = monument.displayPhrase.english;
string ID = "excavator";
if (config.Excavator.Enabled)
{
string[] messages = new string[8];
messages[0] = "name";
messages[1] = friendlyname;
messages[2] = "enter_message";
messages[3] = configData.Location.Monuments.Excavator.EnterMessage;
messages[4] = "leave_message";
messages[5] = configData.Location.Monuments.Excavator.LeaveMessage;
messages[6] = "radius";
messages[7] = Convert.ToInt32(configData.Location.Monuments.Excavator.Radius).ToString();
ZoneManager?.CallHook("CreateOrUpdateZone", ID, messages, monument.transform.position);
if (configData.Location.Monuments.Excavator.ZoneFlags != null)
foreach (var flag in configData.Location.Monuments.Excavator.ZoneFlags)
ZoneManager?.CallHook("AddFlag", ID, flag);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.Excavator.TruePVERules);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.Excavator.NextGenPVERules);
if (configData.ZoneOption.UseZoneDomes)
{
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
ZoneDomes?.CallHook("AddNewDome", player, ID);
}
}
else
{
ZoneManager?.CallHook("EraseZone", ID);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("RemoveMapping", ID);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("RemoveMapping", ID);
if (configData.ZoneOption.UseZoneDomes)
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
}
continue;
}
if (monument.name.Contains("satellite_dish", CompareOptions.IgnoreCase))
{
string friendlyname = monument.displayPhrase.english;
string ID = "satellite_dish";
if (config.SatelliteDish.Enabled)
{
string[] messages = new string[8];
messages[0] = "name";
messages[1] = friendlyname;
messages[2] = "enter_message";
messages[3] = configData.Location.Monuments.SatelliteDish.EnterMessage;
messages[4] = "leave_message";
messages[5] = configData.Location.Monuments.SatelliteDish.LeaveMessage;
messages[6] = "radius";
messages[7] = Convert.ToInt32(configData.Location.Monuments.SatelliteDish.Radius).ToString();
ZoneManager?.CallHook("CreateOrUpdateZone", ID, messages, monument.transform.position);
if (configData.Location.Monuments.SatelliteDish.ZoneFlags != null)
foreach (var flag in configData.Location.Monuments.SatelliteDish.ZoneFlags)
ZoneManager?.CallHook("AddFlag", ID, flag);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.SatelliteDish.TruePVERules);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.SatelliteDish.NextGenPVERules);
if (configData.ZoneOption.UseZoneDomes)
{
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
ZoneDomes?.CallHook("AddNewDome", player, ID);
}
}
else
{
ZoneManager?.CallHook("EraseZone", ID);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("RemoveMapping", ID);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("RemoveMapping", ID);
if (configData.ZoneOption.UseZoneDomes)
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
}
continue;
}
if (monument.name.Contains("radtown_small_3", CompareOptions.IgnoreCase))
{
string friendlyname = monument.displayPhrase.english;
string ID = "radtown_small_3";
if (config.SewerBranch.Enabled)
{
string[] messages = new string[8];
messages[0] = "name";
messages[1] = friendlyname;
messages[2] = "enter_message";
messages[3] = configData.Location.Monuments.SewerBranch.EnterMessage;
messages[4] = "leave_message";
messages[5] = configData.Location.Monuments.SewerBranch.LeaveMessage;
messages[6] = "radius";
messages[7] = Convert.ToInt32(configData.Location.Monuments.SewerBranch.Radius).ToString();
ZoneManager?.CallHook("CreateOrUpdateZone", ID, messages, monument.transform.position);
if (configData.Location.Monuments.SewerBranch.ZoneFlags != null)
foreach (var flag in configData.Location.Monuments.SewerBranch.ZoneFlags)
ZoneManager?.CallHook("AddFlag", ID, flag);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.SewerBranch.TruePVERules);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.SewerBranch.NextGenPVERules);
if (configData.ZoneOption.UseZoneDomes)
{
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
ZoneDomes?.CallHook("AddNewDome", player, ID);
}
}
else
{
ZoneManager?.CallHook("EraseZone", ID);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("RemoveMapping", ID);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("RemoveMapping", ID);
if (configData.ZoneOption.UseZoneDomes)
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
}
continue;
}
if (monument.name.Contains("sphere_tank", CompareOptions.IgnoreCase))
{
string friendlyname = monument.displayPhrase.english;
string ID = "sphere_tank";
if (config.Dome.Enabled)
{
string[] messages = new string[8];
messages[0] = "name";
messages[1] = friendlyname;
messages[2] = "enter_message";
messages[3] = configData.Location.Monuments.Dome.EnterMessage;
messages[4] = "leave_message";
messages[5] = configData.Location.Monuments.Dome.LeaveMessage;
messages[6] = "radius";
messages[7] = Convert.ToInt32(configData.Location.Monuments.Dome.Radius).ToString();
ZoneManager?.CallHook("CreateOrUpdateZone", ID, messages, monument.transform.position);
if (configData.Location.Monuments.Dome.ZoneFlags != null)
foreach (var flag in configData.Location.Monuments.Dome.ZoneFlags)
ZoneManager?.CallHook("AddFlag", ID, flag);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.Dome.TruePVERules);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.Dome.NextGenPVERules);
if (configData.ZoneOption.UseZoneDomes)
{
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
ZoneDomes?.CallHook("AddNewDome", player, ID);
}
}
else
{
ZoneManager?.CallHook("EraseZone", ID);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("RemoveMapping", ID);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("RemoveMapping", ID);
if (configData.ZoneOption.UseZoneDomes)
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
}
continue;
}
if (monument.name.Contains("gas_station_1", CompareOptions.IgnoreCase) && gasstation == 0)
{
string friendlyname = monument.displayPhrase.english;
string ID = "gas_station_1";
if (config.GasStation1.Enabled)
{
string[] messages = new string[8];
messages[0] = "name";
messages[1] = friendlyname + " #1";
messages[2] = "enter_message";
messages[3] = configData.Location.Monuments.GasStation1.EnterMessage;
messages[4] = "leave_message";
messages[5] = configData.Location.Monuments.GasStation1.LeaveMessage;
messages[6] = "radius";
messages[7] = Convert.ToInt32(configData.Location.Monuments.GasStation1.Radius).ToString();
ZoneManager?.CallHook("CreateOrUpdateZone", ID, messages, monument.transform.position);
if (configData.Location.Monuments.GasStation1.ZoneFlags != null)
foreach (var flag in configData.Location.Monuments.GasStation1.ZoneFlags)
ZoneManager?.CallHook("AddFlag", ID, flag);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.GasStation1.TruePVERules);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.GasStation1.NextGenPVERules);
if (configData.ZoneOption.UseZoneDomes)
{
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
ZoneDomes?.CallHook("AddNewDome", player, ID);
}
}
else
{
ZoneManager?.CallHook("EraseZone", ID);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("RemoveMapping", ID);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("RemoveMapping", ID);
if (configData.ZoneOption.UseZoneDomes)
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
}
gasstation++;
continue;
}
if (monument.name.Contains("gas_station_1", CompareOptions.IgnoreCase) && gasstation == 1)
{
string friendlyname = monument.displayPhrase.english;
string ID = "gas_station_2";
if (config.GasStation2.Enabled)
{
string[] messages = new string[8];
messages[0] = "name";
messages[1] = friendlyname + " #2";
messages[2] = "enter_message";
messages[3] = configData.Location.Monuments.GasStation2.EnterMessage;
messages[4] = "leave_message";
messages[5] = configData.Location.Monuments.GasStation2.LeaveMessage;
messages[6] = "radius";
messages[7] = Convert.ToInt32(configData.Location.Monuments.GasStation2.Radius).ToString();
ZoneManager?.CallHook("CreateOrUpdateZone", ID, messages, monument.transform.position);
if (configData.Location.Monuments.GasStation2.ZoneFlags != null)
foreach (var flag in configData.Location.Monuments.GasStation2.ZoneFlags)
ZoneManager?.CallHook("AddFlag", ID, flag);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.GasStation2.TruePVERules);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.GasStation2.NextGenPVERules);
if (configData.ZoneOption.UseZoneDomes)
{
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
ZoneDomes?.CallHook("AddNewDome", player, ID);
}
}
else
{
ZoneManager?.CallHook("EraseZone", ID);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("RemoveMapping", ID);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("RemoveMapping", ID);
if (configData.ZoneOption.UseZoneDomes)
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
}
gasstation++;
continue;
}
if (monument.name.Contains("gas_station_1", CompareOptions.IgnoreCase) && gasstation == 2)
{
string friendlyname = monument.displayPhrase.english;
string ID = "gas_station_3";
if (config.GasStation3.Enabled)
{
string[] messages = new string[8];
messages[0] = "name";
messages[1] = friendlyname + " #3";
messages[2] = "enter_message";
messages[3] = configData.Location.Monuments.GasStation3.EnterMessage;
messages[4] = "leave_message";
messages[5] = configData.Location.Monuments.GasStation3.LeaveMessage;
messages[6] = "radius";
messages[7] = Convert.ToInt32(configData.Location.Monuments.GasStation3.Radius).ToString();
ZoneManager?.CallHook("CreateOrUpdateZone", ID, messages, monument.transform.position);
if (configData.Location.Monuments.GasStation3.ZoneFlags != null)
foreach (var flag in configData.Location.Monuments.GasStation3.ZoneFlags)
ZoneManager?.CallHook("AddFlag", ID, flag);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.GasStation3.TruePVERules);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("AddOrUpdateMapping", ID, configData.Location.Monuments.GasStation3.NextGenPVERules);
if (configData.ZoneOption.UseZoneDomes)
{
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
ZoneDomes?.CallHook("AddNewDome", player, ID);
}
}
else
{
ZoneManager?.CallHook("EraseZone", ID);
if (configData.ZoneOption.UseTruePVE)
TruePVE?.CallHook("RemoveMapping", ID);
else if (configData.ZoneOption.UseNextGenPVE)
NextGenPVE?.CallHook("RemoveMapping", ID);
if (configData.ZoneOption.UseZoneDomes)
ZoneDomes?.CallHook("RemoveExistingDome", player, ID);
// ... [Code preview truncated due to length. Full source in attached file] ...