Jump to content
Message added by IIIaKa,

If you purchase any of my plugins that work with MonumentsWatcher, you'll receive MonumentsWatcher for free!
P.S. On every plugin page, there is a Bundle. The price is the same, but in addition, you will receive MonumentsWatcher.

Message added by IIIaKa,

For developers whose plugins are compatible with MonumentsWatcher, I can provide a permanent coupon with a 50% discount. This way, you can incorporate 50% of the MonumentsWatcher cost into your plugin's price and offer MonumentsWatcher as a complimentary gift.

11 Screenshots

  • 3.9k
  • 35
  • 47.84 kB
 Share

Works with

About Monuments Watcher

A plugin creating a trigger box around monuments to track entry and exit of players and entities from it.

The list of all monuments can be viewed in the localization.

Note: MonumentsWatcher is utilized as an API for other plugins. You won't obtain any functionality beyond displaying monument boundaries without an additional plugin.

 

Ji0XU4D.png

  • The ability to automatically generate boundaries for monuments;
  • The ability to automatically regenerate boundaries for monuments on wipe;
  • The ability to manually create boundaries for monuments;
  • The ability to track the entrance and exit of players and entities in a monument;
  • The ability to display boundaries.

 

n8420aH.png

  • monumentswatcher.admin - Provides the capability to recreate or display monument boundaries.

 

MOEpxmo.png

{
  "MonumentsWatcher command": "monument",
  "Use GameTip for messages?": true,
  "Is it worth recreating boundaries upon detecting a wipe?": true,
  "List of tracked types of monuments. Leave blank to track all": [
    "RadTown",
    "RadTownSmall"
  ],
  "Wipe ID": null,
  "Version": {
    "Major": 0,
    "Minor": 1,
    "Patch": 3
  }
}

 

The boundary settings for monuments are located in the file ".\oxide\data\MonumentsWatcher\MonumentsBounds.json".

Monument bounds example:

"airfield_1": {
      "Center": {
        "x": 335.881531,
        "y": 9.936,
        "z": 2096.53345
      },
      "CenterOffset": {
        "x": 0.0,
        "y": 15.0,
        "z": -25.0
      },
      "Size": {
        "x": 360.0,
        "y": 60.0,
        "z": 210.0
      },
      "Rotation": {
        "x": 0.0,
        "y": 44.06058,
        "z": 0.0
      }
    }

 

DxI83SK.png

EN:
{
  "MsgMonumentCreated": "Key {0} created at coordinates {1}. You need to specify the required data in the configuration file and reload the plugin.",
  "MsgMonumentRecreated": "The boundaries of the monuments have been successfully recreated!",
  "MsgMonumentCreateNoPosition": "You did not specify the position or specified it incorrectly!",
  "MsgMonumentKeyNotFound": "Key {0} not found!",
  "MsgMonumentNotFound": "{0} was not found!",
  "MsgMonumentShow": "{0} is located at coordinates: {1}",
  "MsgMonumentShowList": "Found and displayed {0} monuments with key {1}",
  "MsgMonumentShowNoPlayer": "Monument display works only for players!",
  "airfield_1": "Airfield",
  "airfield_1_station": "Airfield Station",
  "arctic_research_base_a": "Arctic Research Base",
  "arctic_research_base_a_station": "Arctic Station",
  "bandit_town": "Bandit Camp",
  "bandit_town_station": "Bandit Station",
  "compound": "Outpost",
  "compound_station": "Outpost Station",
  "desert_military_base_a": "Abandoned Military Base",
  "desert_military_base_a_station": "Dune Station",
  "desert_military_base_b": "Abandoned Military Base",
  "desert_military_base_b_station": "Dune Station",
  "desert_military_base_c": "Abandoned Military Base",
  "desert_military_base_c_station": "Dune Station",
  "desert_military_base_d": "Abandoned Military Base",
  "desert_military_base_d_station": "Dune Station",
  "excavator_1": "Giant Excavator Pit",
  "excavator_1_station": "Excavator Station",
  "ferry_terminal_1": "Ferry Terminal",
  "ferry_terminal_1_station": "Ferry Terminal Station",
  "fishing_village_a": "Large Fishing Village",
  "fishing_village_a_station": "Large Fishing Station",
  "fishing_village_b": "Fishing Village",
  "fishing_village_b_station": "Fishing Station",
  "fishing_village_c": "Fishing Village",
  "fishing_village_c_station": "Fishing Station",
  "gas_station_1": "Oxum's Gas Station",
  "harbor_1": "Large Harbor",
  "harbor_1_station": "Large Harbor Station",
  "harbor_2": "Small Harbor",
  "harbor_2_station": "Harbor Station",
  "junkyard_1": "Junkyard",
  "junkyard_1_station": "Junkyard Station",
  "launch_site_1": "Launch Site",
  "launch_site_1_station": "Launch Site Station",
  "lighthouse": "Lighthouse",
  "military_tunnel_1": "Military Tunnel",
  "military_tunnel_1_station": "Military Tunnel Station",
  "mining_quarry_a": "Sulfur Quarry",
  "mining_quarry_b": "Stone Quarry",
  "mining_quarry_c": "HQM Quarry",
  "nuclear_missile_silo": "Missile Silo",
  "nuclear_missile_silo_station": "Silo Station",
  "oilrigai": "Oil Rig",
  "oilrigai2": "Large Oil Rig",
  "powerplant_1": "Power Plant",
  "powerplant_1_station": "Power Plant Station",
  "radtown_small_3": "Sewer Branch",
  "radtown_small_3_station": "Sewer Branch Station",
  "satellite_dish": "Satellite Dish",
  "satellite_dish_station": "Satellite Station",
  "sphere_tank": "The Dome",
  "sphere_tank_station": "The Dome Station",
  "stables_a": "Ranch",
  "stables_a_station": "Ranch Station",
  "stables_b": "Large Barn",
  "stables_b_station": "Barn Station",
  "station-sn-0": "Tunnel Station",
  "station-sn-1": "Tunnel Station",
  "station-sn-2": "Tunnel Station",
  "station-sn-3": "Tunnel Station",
  "station-we-0": "Tunnel Station",
  "station-we-1": "Tunnel Station",
  "station-we-2": "Tunnel Station",
  "station-we-3": "Tunnel Station",
  "supermarket_1": "Abandoned Supermarket",
  "swamp_a": "Wild Swamp",
  "swamp_b": "Wild Swamp",
  "swamp_c": "Abandoned Cabins",
  "trainyard_1": "Train Yard",
  "trainyard_1_station": "Train Yard Station",
  "underwater_lab_a": "Underwater Lab",
  "underwater_lab_b": "Underwater Lab",
  "underwater_lab_c": "Underwater Lab",
  "underwater_lab_d": "Underwater Lab",
  "warehouse": "Mining Outpost",
  "water_treatment_plant_1": "Water Treatment Plant",
  "water_treatment_plant_1_station": "Water Treatment Station",
  "entrance_bunker_a": "Bunker Entrance",
  "entrance_bunker_b": "Bunker Entrance",
  "entrance_bunker_c": "Bunker Entrance",
  "entrance_bunker_d": "Bunker Entrance",
  "cave_small_easy": "Small Cave",
  "cave_small_medium": "Medium Cave",
  "cave_small_hard": "Medium Cave",
  "cave_medium_easy": "Medium Cave",
  "cave_medium_medium": "Medium Cave",
  "cave_medium_hard": "Medium Cave",
  "cave_large_medium": "Medium Cave",
  "cave_large_hard": "Medium Cave",
  "cave_large_sewers_hard": "Large Cave",
  "ice_lake_1": "Ice Lake",
  "ice_lake_2": "Ice Lake",
  "ice_lake_3": "Large Ice Lake",
  "ice_lake_4": "Small Ice Lake",
  "power_sub_small_1": "Substation",
  "power_sub_small_2": "Substation",
  "power_sub_big_1": "Large Substation",
  "power_sub_big_2": "Large Substation",
  "water_well_a": "Water Well",
  "water_well_b": "Water Well",
  "water_well_c": "Water Well",
  "water_well_d": "Water Well",
  "water_well_e": "Water Well"
}
RU:
{
  "MsgMonumentCreated": "Ключ {0} создан по координатам {1}. Вам необходимо в конфиг файле указать необходимые данные и перезагрузить плагин.",
  "MsgMonumentRecreated": "Границы монументов успешно пересозданы!",
  "MsgMonumentCreateNoPosition": "Вы не указали позицию, либо указали ее не правильно!",
  "MsgMonumentKeyNotFound": "Ключ {0} не найден!",
  "MsgMonumentNotFound": "{0} не найден!",
  "MsgMonumentShow": "{0} расположен по координатам: {1}",
  "MsgMonumentShowList": "Найдено и отображено {0} монументов с ключом {1}",
  "MsgMonumentShowNoPlayer": "Отображение монументов работает только для игроков!",
  "airfield_1": "Аэропорт",
  "airfield_1_station": "Станция Аэропорт",
  "arctic_research_base_a": "Арктическая база",
  "arctic_research_base_a_station": "Станция Арктическая",
  "bandit_town": "Лагерь бандитов",
  "bandit_town_station": "Станция бандитов",
  "compound": "Город",
  "compound_station": "Станция Город",
  "desert_military_base_a": "Заброшенная военная база",
  "desert_military_base_a_station": "Станция Дюна",
  "desert_military_base_b": "Заброшенная военная база",
  "desert_military_base_b_station": "Станция Дюна",
  "desert_military_base_c": "Заброшенная военная база",
  "desert_military_base_c_station": "Станция Дюна",
  "desert_military_base_d": "Заброшенная военная база",
  "desert_military_base_d_station": "Станция Дюна",
  "excavator_1": "Гигантский экскаватор",
  "excavator_1_station": "Станция Экскаваторная",
  "ferry_terminal_1": "Паромный терминал",
  "ferry_terminal_1_station": "Станция Паромщиков",
  "fishing_village_a": "Большая рыбацкая деревня",
  "fishing_village_a_station": "Станция Рыбаков",
  "fishing_village_b": "Рыбацкая деревня",
  "fishing_village_b_station": "Станция Рыбаков",
  "fishing_village_c": "Рыбацкая деревня",
  "fishing_village_c_station": "Станция Рыбаков",
  "gas_station_1": "Заправка",
  "harbor_1": "Большой порт",
  "harbor_1_station": "Станция Моряков",
  "harbor_2": "Порт",
  "harbor_2_station": "Станция Моряков",
  "junkyard_1": "Свалка",
  "junkyard_1_station": "Станция Мусорщиков",
  "launch_site_1": "Космодром",
  "launch_site_1_station": "Станция Космонавтов",
  "lighthouse": "Маяк",
  "military_tunnel_1": "Военные туннели",
  "military_tunnel_1_station": "Станция Туннельная",
  "mining_quarry_a": "Серный карьер",
  "mining_quarry_b": "Каменный карьер",
  "mining_quarry_c": "МВК карьер",
  "nuclear_missile_silo": "Ракетная пусковая шахта",
  "nuclear_missile_silo_station": "Станция Ракетная",
  "oilrigai": "Нефтяная вышка",
  "oilrigai2": "Большая нефтяная вышка",
  "powerplant_1": "Электростанция",
  "powerplant_1_station": "Станция Электриков",
  "radtown_small_3": "Канализационный отвод",
  "radtown_small_3_station": "Станция Отвод",
  "satellite_dish": "Спутниковая тарелка",
  "satellite_dish_station": "Станция Связистов",
  "sphere_tank": "Сфера",
  "sphere_tank_station": "Станция Сфера",
  "stables_a": "Ранчо",
  "stables_a_station": "Станция Ранчо",
  "stables_b": "Большой амбар",
  "stables_b_station": "Станция Амбарная",
  "station-sn-0": "Станция метро",
  "station-sn-1": "Станция метро",
  "station-sn-2": "Станция метро",
  "station-sn-3": "Станция метро",
  "station-we-0": "Станция метро",
  "station-we-1": "Станция метро",
  "station-we-2": "Станция метро",
  "station-we-3": "Станция метро",
  "supermarket_1": "Супермаркет",
  "swamp_a": "Болото",
  "swamp_b": "Болото",
  "swamp_c": "Заброшенные хижины",
  "trainyard_1": "Железнодорожное депо",
  "trainyard_1_station": "Станция Железнодорожников",
  "underwater_lab_a": "Подводная лаборатория",
  "underwater_lab_b": "Подводная лаборатория",
  "underwater_lab_c": "Подводная лаборатория",
  "underwater_lab_d": "Подводная лаборатория",
  "warehouse": "Склад",
  "water_treatment_plant_1": "Очистные сооружения",
  "water_treatment_plant_1_station": "Станция Очистная",
  "entrance_bunker_a": "Вход в бункер",
  "entrance_bunker_b": "Вход в бункер",
  "entrance_bunker_c": "Вход в бункер",
  "entrance_bunker_d": "Вход в бункер",
  "cave_small_easy": "Маленькая пещера",
  "cave_small_medium": "Средняя пещера",
  "cave_small_hard": "Средняя пещера",
  "cave_medium_easy": "Средняя пещера",
  "cave_medium_medium": "Средняя пещера",
  "cave_medium_hard": "Средняя пещера",
  "cave_large_medium": "Средняя пещера",
  "cave_large_hard": "Средняя пещера",
  "cave_large_sewers_hard": "Большая пещера",
  "ice_lake_1": "Замерзшее озеро",
  "ice_lake_2": "Замерзшее озеро",
  "ice_lake_3": "Большое замерзшее озеро",
  "ice_lake_4": "Маленькое замерзшее озеро",
  "power_sub_small_1": "Подстанция",
  "power_sub_small_2": "Подстанция",
  "power_sub_big_1": "Большая подстанция",
  "power_sub_big_2": "Большая подстанция",
  "water_well_a": "Колодец с водой",
  "water_well_b": "Колодец с водой",
  "water_well_c": "Колодец с водой",
  "water_well_d": "Колодец с водой",
  "water_well_e": "Колодец с водой"
}

 

OxWiTBA.png

  • recreateRecreating boundaries for all monuments.
  • show - Displaying monument boundaries by key or ID.

Example:

  • Display by monument key(Will display all monuments with such a key):
    • /monument show gas_station_1
  • Display by monument ID(Will display one monument with the specified ID):
    • /monument show gas_station_1_4

 

l9x1AEn.png

  • OnEnterMonument
    • void OnEnterMonument(string monumentID, BasePlayer player, string type)
      • Called when a BasePlayer enters any monument
    • void OnEnterMonument(string monumentID, BaseEntity entity, string type)
      • Called when a BaseEntity enters any monument
  • OnExitMonument
    • void OnExitMonument(string monumentID, BasePlayer player, string type, string reason)
      • Called when a BasePlayer exits any monument
    • void OnExitMonument(string monumentID, BaseEntity entity, string type, string reason)
      • Called when a BaseEntity exits any monument

 

void OnEnterMonument(string monumentID, BasePlayer player, string type)
{
  Puts($"{player.displayName} entered to {monumentID}({type})");
}

void OnEnterMonument(string monumentID, BaseEntity entity, string type)
{
  Puts($"Entity({entity.net.ID}) entered to {monumentID}({type})");
}

void OnExitMonument(string monumentID, BasePlayer player, string type, string reason)
{
  Puts($"{player.displayName} left from {monumentID}({type}). Reason: {reason}");
}

void OnExitMonument(string monumentID, BaseEntity entity, string type, string reason)
{
  Puts($"Entity({entity.net.ID}) left from {monumentID}({type}). Reason: {reason}");
}

 

bLFQCAu.png

There are 12 types of monuments:

  • SafeZone:
    • Bandit CampOutpostFishing Village, Ranch and Large Barn.
  • RadTown:
    • AirfieldArctic Research BaseAbandoned Military BaseGiant Excavator PitFerry TerminalHarborJunkyardLaunch Site;
    • Military TunnelMissile SiloPower PlantSewer BranchSatellite DishThe DomeTrain Yard, Water Treatment Plant.
  • RadTownWater:
    • Oil Rig and Underwater Lab.
  • RadTownSmall:
    • LighthouseOxum's Gas StationAbandoned Supermarket and Mining Outpost.
  • TunnelStation
  • MiningQuarry:
    • Sulfur QuarryStone Quarry and HQM Quarry.
  • BunkerEntrance
  • Cave
  • Swamp
  • IceLake
  • PowerSubstation
  • WaterWell

 

There are 15 methods:

GetMonumentDisplayName:

Used to retrieve the nice name of the monument, considering the player's language.

To call the GetMonumentDisplayName method, you need to pass 3 parameters. The first one is the monument ID as a string. The second one is a player ID as either a string or a ulong. You can provide 0 or empty string to get default(eng) language. The third one(optional) is the suffix display as a bool.

(string)MonumentsWatcher?.Call("GetMonumentDisplayName", monumentID, player.userID, true);
(string)MonumentsWatcher?.Call("GetMonumentDisplayName", monumentID, player.UserIDString, true);

 

GetMonumentType:

Used to retrieve the monument type.

To call the GetMonumentType method, you need to pass 1 parameter. It is the monument ID as a string.

(string)MonumentsWatcher?.Call("GetMonumentType", monumentID);

 

GetMonumentPosition:

Used to retrieve the position of the monument.

To call the GetMonumentPosition method, you need to pass 1 parameter. It is the monument ID as a string.

(Vector3)MonumentsWatcher?.Call("GetMonumentPosition", monumentID);

 

GetMonumentsList:

Used to retrieve an array of all available monuments.

(string[])MonumentsWatcher?.Call("GetMonumentsList");

 

GetMonumentsTypeDictionary:

Used to retrieve a dictionary of all available monuments with their types.

(Dictionary<string, string>)MonumentsWatcher?.Call("GetMonumentsTypeDictionary");

 

GetMonumentsByType:

Used to retrieve an array of all available monuments by type.

To call the GetMonumentsByType method, you need to pass 1 parameter. It is the monument type as a string.

(string[])MonumentsWatcher?.Call("GetMonumentsByType", "SafeZone");

 

GetMonumentPlayers:

Used to retrieve a list of players in the monument.

To call the GetMonumentPlayers method, you need to pass 1 parameter. It is the monument ID as a string.

(List<BasePlayer>)MonumentsWatcher?.Call("GetMonumentPlayers", monumentID);

 

GetMonumentEntities:

Used to retrieve a list of entities in the monument.

To call the GetMonumentEntities method, you need to pass 1 parameter. It is the monumentID as a string.

(List<BaseEntity>)MonumentsWatcher?.Call("GetMonumentEntities", monumentID);

 

GetPlayerMonument:

Used to retrieve the ID of the monument in which the player is located. If the player is not in any monument, an empty string will be returned.

To call the GetPlayerMonument method, you need to pass 1 parameter. It is a player ID as an ulong.

(string)MonumentsWatcher?.Call("GetPlayerMonument", player.userID);

 

GetEntityMonument:

Used to retrieve the ID of the monument in which the entity is located. If the entity is not in any monument, the string will be empty.

To call the GetEntityMonument method, you need to pass 1 parameter. It is an entity as a BaseEntity.

(string)MonumentsWatcher?.Call("GetEntityMonument", entity);

 

GetMonumentByPos:

Used to obtain the monument ID based on coordinates. If the monument is not found, the string will be empty.

To call the GetMonumentByPos method, you need to pass 1 parameter. It is a Vector3 position.

(string)MonumentsWatcher?.Call("GetMonumentByPos", pos);

 

IsPosInMonument:

Used to check if the specified position is within the monument.

To call the IsPosInMonument method, you need to pass 2 parameters. The first one is the monument ID as a string. The second one is a Vector3 position.

(bool)MonumentsWatcher?.Call("IsPosInMonument", monumentID, pos);

 

IsPlayerInMounument:

Used to check if the player is in the monument.

To call the IsPlayerInMounument method, you need to pass 2 parameters. The first one is the monument ID as a string. The second one is a player as a BasePlayer or player ID as a ulong.

(bool)MonumentsWatcher?.Call("IsPlayerInMounument", monumentID, player);
(bool)MonumentsWatcher?.Call("IsPlayerInMounument", monumentID, player.userID);

 

IsEntityInMounument:

Used to check if the entity is in the monument.

To call the IsEntityInMounument method, you need to pass 2 parameters. The first one is the monument ID as a string. The second one is a entity as a BaseEntity.

(bool)MonumentsWatcher?.Call("IsEntityInMounument", monumentID, entity);

 

ShowBounds:

Used to display the monument boundaries to the player.
Note: Since an Admin flag is required for rendering, players without it will be temporarily granted an Admin flag and promptly revoked.

To call the ShowBounds method, you need to pass 3 parameters. The first one is the monument ID as a string. The second one is a player as a BasePlayer. The third one(optional) is the display duration as a float.

MonumentsWatcher?.Call("ShowBounds", monumentID, player, 15f);

 

  • Love 1

IIIaKa's Collection

User Feedback

1.1m

Downloads

Total number of downloads.

5.6k

Customers

Total customers served.

80.7k

Files Sold

Total number of files sold.

1.6m

Payments Processed

Total payments processed.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.