I would vote for just making it automatic. I love the idea of the added risk of the loot. It would be perfect to see someone take out the tank and then get raided while waiting for the loot haha.
No risk, no reward!

DynamicPVP
Create temporary PVP zones around SupplyDrops, LockedCrates, APC and/or Heli
Total Downloads: 1,400 - First Release: Dec 18, 2017 - Last Update: Jul 16, 2018
- 5/5, 13 likes
-
Edit : And depending on the player's choice, a banner with a customizable message is displayed like a GUIAnnoucment.Last edited by a moderator: Jan 13, 2018 -
CatMeat updated DynamicPVP with a new update entry:
1.1.0
-
CatMeat updated DynamicPVP with a new update entry:
1.1.1
-
CatMeat updated DynamicPVP with a new update entry:
1.1.2
[DOUBLEPOST=1516052073][/DOUBLEPOST]Moral to this story... test longer... before release.
Long story... short. I made a mistake in the original release that did not take into account TerrainHeight. I was changing the spawn.position.y of 750 to an assumed landing.position.y of 0 .This actually put the zone reference at water level not terrain level. If this happened in a mountainous area,the zone was actually below the map. My apologies for the multiple updates today.Last edited by a moderator: Jan 15, 2018 -
Hey CatMeat, I sent you a PM on steam about DynamicPVP not initializing on server startup. Have you heard anything else about this from other users or just me? I have enabled Debug as you suggested, but it still didn't load on server restart. I didn't see anything in the Oxide log that would indicate, all In the Oxide Compiler file, all I see is:
DynamicPVP.cs(235,38): warning CS0168: The variable `ex' is declared but never used
DynamicPVP.cs(253,38): warning CS0168: The variable `ex' is declared but never used
And in the Oxide daily log, I see this:
[Warning] [DynamicPVP] 'ZoneManager' not found!
02:00 [Warning] [DynamicPVP] 'TruePVE' not found!
02:00 [Info] Loaded plugin DynamicPVP v1.0.2 by CatMeat
Then DynamicPVP does nothing until I type in console: o.reload DynamicPVP
That's when it starts doing it's normal thing again.
For now, I've added a TimedExecute command to reinitialize it 10 minutes after my server restarts, but that's a duct tape solution. Thoughts?
Thanks -
Grab the new version 1.1.2 and see if it helps.
-
-
You should exclude personal drops from creating zones to prevent abuse.
-
-
To be honest, I love the fact that ALL drops are included with this. The idea of adding spice and risk to a largely pve server makes this worth it. If people want to protect their drops, they can build a "drop tower" or wall in an area.
-
@CatMeat That's not the abuse aspect I was referring to, it's the whole "throwing signals" to generate your own pvp zone.
-
Feel free to change the code if you think its easy and worth the time.
Now I'm curious: How prolific are supply signals on your server? Do you spawn them in for players? Have you changed the loot tables? Just how many do you encounter? -
@CatMeat This is not a cockfight, I gave you feedback so take it or leave it. Since this is designed for a PvE server you'd need to consider the fact that signals can be used as a griefing tool.
Good luck. -
I choose NOT to include tracking of supply signals in any fashion or for any reason at this time. In so far as the future, if the adequate hooks are provided by FacePunch, through Oxide to allow me to do it effectively and efficiently, then I may change my mind. -
@CatMeat You should pick another profession if you cannot handle feedback.
-
I think I handle it quite well. I think you cannot handle my response to your feedback.
-
CatMeat updated DynamicPVP with a new update entry:
1.2.0
-
You add PVPforTank or Heli but you don't add the condition in your code
Code:#region OxideHooks void OnEntitySpawned(BaseNetworkable entity) { if (starting) return; if (DynZoneEnabled && entity is SupplyDrop && PVPforSupply) { var DynDrop = entity as SupplyDrop; if (DynDrop == null || DynDrop.IsDestroyed) return; var DynSpawnPosition = DynDrop.transform.position; DebugPrint("SupplyDrop spawned at " + DynSpawnPosition, false); var DynPosition = DynSpawnPosition; DynPosition.y = TerrainMeta.HeightMap.GetHeight(DynPosition); DebugPrint("SupplyDrop landing at " + DynPosition, false); if (IsProbablySupplySignal(DynPosition) && ignoreSupplySignals) DebugPrint("PVP zone creation skipped.", false); else CreateDynZone(DynPosition); } } void OnEntityDeath(BaseCombatEntity entity, HitInfo info) { if (starting) return; if (DynZoneEnabled) { if (entity is BaseHelicopter && PVPforHeli) { var DynHeli = entity as BaseHelicopter; if (DynHeli == null || DynHeli.IsDestroyed) return; var DynSpawnPosition = DynHeli.transform.position; var DynPosition = DynSpawnPosition; DynPosition.y = TerrainMeta.HeightMap.GetHeight(DynPosition); DebugPrint("PatrolHelicopter crash at " + DynPosition, false); CreateDynZone(DynPosition); } if (entity is BradleyAPC && PVPforTank) { var DynBradley = entity as BradleyAPC; if (DynBradley == null || DynBradley.IsDestroyed) return; var DynSpawnPosition = DynBradley.transform.position; var DynPosition = DynSpawnPosition; DynPosition.y = TerrainMeta.HeightMap.GetHeight(DynPosition); DebugPrint("BradleyAPC exploded at " + DynPosition, false); CreateDynZone(DynPosition); } } } #endregion
Last edited by a moderator: Jan 24, 2018 -
Got it... It was there in my pre-release, but some how disappeared.
Last edited by a moderator: Jan 24, 2018