Jump to content

HunterZ

Member
  • Posts

    177
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by HunterZ

  1. Version 1.2.0

    284 downloads

    Introduction Automatically manages PVP zones for player bases, legacy shelters and tugboats. Features Manages its own Zone Manager zones and maps them as True PVE exclusion zones (Re)creates zones on plugin load and cleans them up on unload Provides tool cupboard based zones: Configurable creation & deletion delays Automatic resizing to always encompass the base as building blocks are added/destroyed, with configurable delay Configurable minimum total base and per-building-block buffer sizes Provides legacy shelter based zones: Configurable zone size Provides tugboat based zones: Configurable zone size Zone moves with the tugboat Optional support for visible zone spheres: Configurable sphere darkness Option to globally network tugboats to prevent spheres from disappearing Optional support for language file based zone creation/deletion and entry/exit notifications Configurable PVP expiration delay on player exit from zones Compatibility Hard dependency on Zone Manager for creating zones. Should work with various PVE plugins - tested with TruePVE and SimplePVE. Configuration Default configuration: { "Zone creation delay in seconds (excludes tugboat)": 60.0, "Zone creation delay notifications (owner only, excludes tugboat)": true, "Zone deletion delay in seconds": 300.0, "Zone deletion delay notifications (all players in zone)": true, "Zone creation/deletion notification prefix": "[PBPZ] ", "Zone exit PvP delay in seconds (0 for none)": 5.0, "Zone sphere darkness (0 to disable, maximum 10)": 0, "Zone entry/exit ZoneManager messages": true, "Zone TruePVE mappings ruleset name": "exclude", "Building settings": { "Building update check delay in seconds": 5.0, "Building zone overall minimum radius": 16.0, "Building zone per-block minimum radius": 16.0 }, "Shelter settings": { "Shelter zone radius": 8.0 }, "Tugboat settings": { "Tugboat force global rendering on/off when spheres enabled (null=skip)": null, "Tugboat force enable buoyancy when forcing global rendering": false, "Tugboat zone radius": 32.0 } } NOTE: The tugboat rendering options should be left at defaults. The options are provided for the case that you are running other plugins that force global networking/rendering for tugboats, which can cause spheres to disappear when a tugboat comes back into client render range.This plugin will automatically attempt to synchronize tugboat sphere networking with each tugboat's networking type when (re)creating the spheres. Developer API Supported API calls: bool IsUsingExcludePlayer() Returns whether True PVE 2.2.3+ ExcludePlayer() PVP delay API is being used. string OnPlayerBasePvpDelayQuery(ulong playerID) Provides the ability to query whether a player has an active PVP delay Returns the triggering zone ID if the referenced player has an active PVP delay Returns an empty string If no PVP delay is active Hooks: void OnPlayerBasePvpDelayStart(ulong playerID, string zoneID) Called when PVP exit delay is applied to a player as a result of their exiting a base zone playerID is the ID of the triggering player zoneID is the Zone Manager zone ID whose exit triggered the delay void OnPlayerBasePvpDelayStop(ulong playerID, string zoneID) Called when PVP exit delay expires from a player playerID is the ID of the triggering player zoneID is the Zone Manager zone ID whose exit triggered the delay Zone Manager / PVE Plugin Integration Zone Manager zones are maintained for all bases, and are mapped to the configured True PVE ruleset (`exclude` by default). This will cause True PVE to treat them as vanilla areas by default, allowing for PVP to take place. Zone names are broken into categories in case you want other plugins to recognize them separately: `PlayerBasePVP:building` for building block bases `PlayerBasePVP:shelter` for legacy wood shelters `PlayerBasePVP:tugboat` for tugboats Developer note: Zone IDs are `PlayerBasePVP:` followed by a unique identifier. Background Player Base PVP Zones is meant for hybrid PVP servers that want to allow online raiding. It is meant to complement Dynamic PVP which only provides zones for monuments and events. Zone Manager is a hard requirement in order to implement moving zones for tugboats, as it doesn't officially support this feature. A PVE mod is required to make this useful. I only tested with True PVE for various reasons. Credits Thanks to the following folks for making this plugin possible: bmgjet (help with / code for tugboat sphere issues) CatMeat & Arainrr (moving Zone Manager zones code examples in Dynamic PVP) Karuza (help with unique entity identifiers & tugboat sphere issues) Kulltero (help with TC/building relationship) WhiteThunder (help with tugboat sphere issues) AFKBank and Mooselips whose bases I took screenshots of on my server during testing
    Free
  2. HunterZ

    AgileZones

    As someone who has a need for this plugin but hasn't pulled the trigger yet, this has me hesitating to purchase it. I did some experiments and found a method for calculating a 3D bounding box for a base that contains all of its building blocks, and then using that to derive a center and a radius. I think I may have to strike out on my own here, even though I'm not super experienced at Rust modding yet.
  3. HunterZ

    Raidable Bases

    Nivex: Thanks for all your help! My total overhaul of Zone PVx Info has been released here as Super PVx Info, and uses your latest hooks. Edit: I guess it's still in review.
  4. HunterZ

    AgileZones

    I'm looking at adding AgileZones to the mix to create PvP zones around player bases. Does it play nice with DynamicPVP, RaidableBases, and RoadBradley? Background: I run a hybrid PvP/PvE casual server with RaidableBases and RoadBradley that currently runs on the honor system. Player bases, mid/high tier monuments, train tunnels, world events, and plugin events are all PvP, but low tier monuments and the rest of the map are PvE. I'm working on setting up plugin-based enforcement, and have ZoneManager + TruePVE + DynamicPVP + a work-in-progress extensive overhaul of Zone PVx Info (adds support for recognizing train tunnels, sky dungeons, safe zones, TruePVE/NextGenPVE exclusion zone mappings, Zone Manager pvpgod/pvegod zones, etc.). This is all working fairly well, but DynamicPVP lacks support for TC-based PvP zones. AgileZones seems like the obvious solution here. P.S. I ditched ZoneManagerAutoZones for DynamicPVP because everything about the latter is better. I also ditched ZoneDomes because (1) it doesn't clean up after itself if you reload it, resulting in duplicate domes, and (2) DynamicPVP and RaidableBases create (and clean up on reload) their own domes anyway.
  5. HunterZ

    Raidable Bases

    Yes, I think so: Looks like there's a hook for delay start, delay reset/restart/extend, and expired/end Hopefully there's a lower chance of weird corner cases since this is all being handled in `SetPVPDelay()` Non-conflicting signature for OnPlayerPvpDelayStart hook of same name in Abandoned Bases Question: How does the config option "PVP Delay Between Zone Hopping Persists After Despawn" fit in here? Hopefully I get an OnPlayerPvpDelayExpired hook call either way, but it will be more immediate if that config setting is false? Or am I completely misunderstanding its purpose?
  6. HunterZ

    Raidable Bases

    I'm trying to overhaul a PvE/PvP status GUI plugin that wants to track whether the player is in a PVP delay state. `OnPlayerPvpDelayEntry` is what it was using, but it sounds like I should just assume PVP delay starts on `OnPlayerExitedRaidableBase` instead? What if the hook gets called because the player died and respawned? It might be good to have an explicit hook that gets called whenever you (re)set the PVP delay timer, just to avoid ambiguity. Also, are you seeing the same thing with `OnPlayerPvpDelayExpired` never getting called when the player is in a base when it despawns, regardless of "PVP Delay Between Zone Hopping Persists After Despawn"?
  7. HunterZ

    Raidable Bases

    Experiencing some odd quirks in relation to PVP delays: `OnPlayerPvpDelayEntry` hook always gets called in entry to Raidable Base, even if it's a PVP base. This might be okay, except that trying to use this to trigger execution of `RaidableBases.Call("HasPVPDelay", somePlayer.userID.Get())` from my plugin results in false negatives because the PVP delay isn't actually in effect until the player leaves the base. `OnPlayerPvpDelayExpired` hook never gets called on base despawn. The "PVP Delay Between Zone Hopping Persists After Despawn" config setting doesn't seem to accomplish anything. In general, it seems like the coupling between RB's internal PVP delay states and when it calls hooks to notify other plugins might benefit from some tightening. For now, I'm still setting my internal PVP delay state on `OnPlayerPvpDelayEntry` and clearing it on `OnPlayerPvpDelayExpired` - but also calling `HasPVPDelay` whenever I get a `OnPlayerExitedRaidableBase` or `OnRaidableBaseEnded` hook, to check if the rug got pulled out from under me.
  8. HunterZ

    Road Bradley

    My server is configured for a single normal Bradley to exist, and to respawn 2700 +/- 900 seconds after being killed. Unfortunately it seems to often respawn more quickly than that - including almost instantly after the first kill of this month's force wipe. This seems to be because `OnServerInitialized()` starts a forever-repeating timer that causes a new Bradley to respawn every 10-15 minutes from server start, regardless of whatever else might be configured. Changing this `Timer.Every()` call to a `Timer.Once()` call fixes it, but it would be nice to get an official fix so that I don't have to keep remembering to reapply it on every update.
  9. HunterZ

    Raidable Bases

    I just noticed that if a player dies within a RaidableBases PvP base event area and then respawns on the beach, `OnPlayerExitedRaidableBase()` doesn't get called. Do you have any suggestions on how a plugin should detect that they have respawned outside of the event area?
  10. HunterZ

    Abandoned Bases

    Thanks, you're a legend! Forgot to ask - can you also share the parameters/signature for `OnAbandonedBaseEnded`? This addon is checking *all* players on the server when that gets called, and I want to apply a distance-based filter like I did for `OnRaidableBaseEnded`.
  11. HunterZ

    Abandoned Bases

    Hello nivex! I'm overhauling a PvP/PvE mode UI plugin that has support for some of Abandoned Bases' hooks. I own Raidable Bases but not Abandoned Bases, so I can't get the answer to this myself by checking the code: Does Abandoned Bases call a hook on start of PvP delay, the way Raidable Bases calls "OnPlayerPvpDelayEntry"? If so, can you share enough of the signature for me to write a handler with a BasePlayer parameter? Thanks!
  12. HunterZ

    Raidable Bases

    Could be a red herring, as I added some code to check if `procotol` ends up null, and it doesn't. I only own your Tier 3 base pack, but here are the ones that are missing the protocol section: raideasy1.json raideasy10.json raideasy4.json raideasy5.json raideasy6.json raideasy7.json raideasy8.json raideasy9.json raidexpert1.json raidexpert10.json raidexpert2.json raidexpert3.json raidexpert4.json raidexpert5.json raidexpert6.json raidexpert7.json raidexpert8.json raidexpert9.json raidhard1.json raidhard10.json raidhard2.json raidhard3.json raidhard4.json raidhard5.json raidhard6.json raidhard7.json raidhard8.json raidhard9.json raidmed1.json raidmed10.json raidmed2.json raidmed3.json raidmed4.json raidmed5.json raidmed6.json raidmed7.json raidmed8.json raidmed9.json raidnightmare10.json raidnightmare3.json raidnightmare4.json raidnightmare5.json raidnightmare6.json raidnightmare7.json raidnightmare8.json raidnightmare9.json
  13. HunterZ

    Raidable Bases

    My bad, not sure why I wasn't finding it. I'm now caught up to also experiencing the CopyPaste error with Carbon. Here is the line in CopyPaste that it's complaining about: var isItemReplace = !protocol.ContainsKey("items"); I guess RB ends up passing a null protocol dictionary? Edit: If it matters, it looks like only my custom bases, plus 4 of the bases I'm using from your Tier 3 pack have protocol data.
  14. HunterZ

    Raidable Bases

    RB seems to have not migrated some of the config settings, like events - they're just completely missing from the JSON. I think I'll try starting over with a fresh config and then manually merge my desired settings back in. This has happened previously, so not unexpected (I even backed up my config just in case lol).
  15. HunterZ

    Road Bradley

    FYI the new traveling vendor only spawns on maps of size 4000 or greater. ThePitereq might want to think about adapting Road Bradley to a mod that calculates good routes and spawns traveling vendors on smaller maps
  16. You can also just hit a base with a bullet or melee attack to get a status banner if it's being protected.
  17. HunterZ

    Road Bradley

    Thanks! Follow-ups: 1. Your response to the Scarecrows question seems to have got cut off. 8. Does that mean "Scientist Options - Amount Of Scientists To Spawn (might not spawn all of them)" is really a number of waves, and the number of scientists per wave is determined by base game logic? Just trying to understand what exactly turning that knob does so that I can figure out the best setting for my server. Another thing: 9. My players suggested it might be nice if each Road Bradley could jump/respawn to a different route if not taken for too long. I suspect this would be nontrivial because you'd have to maintain timers for each spawned Bradley, but thought I should pass it along.
  18. HunterZ

    Road Bradley

    Just bought this, and I have a couple questions/comments: 1. I'd like this to attack scarecrows (halloween zombies) as I have those enabled on my server, but "Targeting - Target NPC" seems to accomplish nothing? 2. If I try to open a different route in the route editor when one is already open, I get an exception in the server console, and the route editor UI turns blank but stays open until I log out and back in. 3. The Bradley health bar that appears never seems to disappear. Is this intentional? Seems like it should go away if no damage is dealt after some amount of time, or if the player ends up a certain distance away. 4. If I disable "Tank Route - Use longest path", it doesn't seem to spawn at all. My players are asking for more variation in spawning, so I was hoping there was a way to make it pick randomly from one of the >30 auto-generated paths? I think I somewhat understand now: There are basically 3 modes: Use longest path, use automatic path list, use explicit path list - possibly with some overlaps? Might be nice to have "use M longest paths" or "use top N% longest paths". Also might be nice to be able to prefer paths near high-tier monuments. For now I'll just manually tune this on a per-map basis probably. 5. Why did Bradley respawn after only 7 minutes when I set `"Spawns - Respawn Time (in seconds)": 3150,` and `"Spawns - Respawn Time Randomize Value (goes +value and -value from option above)": 450,`? Could it be that a repeating timer in `OnServerInitialized()` is running in parallel to the config-driven one? Edit: Yep, commenting that out seems to have fixed it - I'm just not sure if it will break online player count requirements for spawning. It might be worth considering consolidating respawn alarms into a single member variable, so that the alarm state can be queried, (re)set, cleaned up on plugin unload, etc. 6. The respawned Bradley got stuck on the wreckage of the destroyed one, but I'm not getting any stuck notices after several minutes. 7. I noticed that with "use all default routes" it was picking some very short ones. I tried setting a 100 checkpoint minimum, and it narrowed things down - but when I viewed them in the route editor, some of them have checkpoint numbers starting at 116 or so; seems like a possible bug? Edit: It seems it's because there are checkpoints going in each direction, so probably not a bug. 8. When I set "Scientist Options - Amount Of Scientists To Spawn (might not spawn all of them)" to 5, I get over a dozen scientists. What's that about? Edit: If it matters, I'm running with Carbon and PopUpAPI.
  19. HunterZ

    Raidable Bases

    I've noticed that Raidable Bases consistently pushes plastic chairs off of zip lines onto the ground when configured to eject deployables. I was told that it excludes non-player deployables, but this is clearly not the case.
  20. HunterZ

    Update Checker

    I think you misunderstand: Your code is using local time, because it's calling `DateTime.Now`. This returns local time: https://learn.microsoft.com/en-us/dotnet/api/system.datetime.now?view=net-8.0#system-datetime-now If your intention is for UpdateChecker to use UTC, then your code needs to be changed to instead call `DateTime.UtcNow`: https://learn.microsoft.com/en-us/dotnet/api/system.datetime.utcnow?view=net-8.0
  21. HunterZ

    Update Checker

    FYI, the time offset stuff doesn't really work as intended. It seems this mod uses `DateTime.Now`, which returns server local time. If UTC is intended as the time basis in this plugin, then `DateTime.UtcNow` should be used instead for getting current UTC time.
  22. HunterZ

    Update Checker

    Upgraded from 4.1.7 to 4.1.13, and it now just writes a timestamp to the log and discord instead of saying "all plugins up to date" - is this expected?
  23. Heads up: Carbon is making an API change that breaks ORP. If a fix isn't out yet, here's guidance from the author of Carbon:
  24. HunterZ

    Raidable Bases

    You mean you can't see the times? This is due to Facepunch changes. Facepunch may have a fix coming.
  25. Compared old and new versions, and it looks like the `#endif` at the end of the file got lost. It should be safe to just add that back manually for now.
1.9m

Downloads

Total number of downloads.

9.1k

Customers

Total customers served.

133.1k

Files Sold

Total number of files sold.

2.8m

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.