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
  1. 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!
     
  2. I understand all your questions. Many players on my server are having their loot stolen by naked people, and would like to be able to kill all the players approaching their helicopters or tanks. And conversely some people prefer not to take risks with a pvp zone.

    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
  3. CatMeat updated DynamicPVP with a new update entry:

    1.1.0

     
  4. CatMeat updated DynamicPVP with a new update entry:

    1.1.1

     
  5. 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
  6. 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 :)
     
  7. Grab the new version 1.1.2 and see if it helps.
     
  8. Seems to have so far. Thanks so much.
     
  9. You should exclude personal drops from creating zones to prevent abuse.
     
  10. Doing so is much more programming and tracking intensive than this plugin was intended for. Sorry, but DynamicPVP cannot fit all needs. I do believe that FancyDrop can lock called airdrops to the caller... i think. Maybe try that.
     
  11. 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.
     
  12. @CatMeat That's not the abuse aspect I was referring to, it's the whole "throwing signals" to generate your own pvp zone.
     
  13. Have you actually investigated what is involved in tracking that sort of thing and figuring out which supply drop was an event and which one wasn't?
    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?
     
  14. @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.
     
  15. I take it and choose to leave it.. as I mentioned here:
    Makes no difference who threw it or for what purpose, the same response still applies...
    I need to consider NOTHING. I provide a game modification that does exactly what it says it does. If you want it to do more than I choose... that is your choice. Feel free to modify it. I'm not being mean or anything, just stating fact. I will recap to make it clear:

    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.
     
  16. @CatMeat You should pick another profession if you cannot handle feedback.
     
  17. I think I handle it quite well. I think you cannot handle my response to your feedback.
     
  18. CatMeat updated DynamicPVP with a new update entry:

    1.2.0

     
  19. 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
  20. Got it... It was there in my pre-release, but some how disappeared.
     
    Last edited by a moderator: Jan 24, 2018