ArenaWalls

Simple plugin to remove walls, mainly for arena servers.

Total Downloads: 183 - First Release: Apr 10, 2017 - Last Update: May 19, 2017

5/5, 1 like
  1. Code:
            void OnEntityBuilt(Planner plan, GameObject go)
            {
                BaseEntity entity = go.ToBaseEntity();            if (entity.name.Contains("high"))
                {
                    timer.Once(removeTime, () =>
                    {
                        entity.Kill(); // <<<<
                    });
                }
            }
    Running a kill here after a timer could produce NRE's when there are no NULL checks after the timer and the object was before removed or in any other way destroyed.
    Or it could produce at least LogWarnings, when the object in not NULL but already destroyed.
    >>>>
    Code:
    // BaseNetworkable
    public void Kill(BaseNetworkable.DestroyMode mode = BaseNetworkable.DestroyMode.None)
    {
        if (this.IsDestroyed)
        {
            Debug.LogWarning("Calling kill - but already IsDestroyed!? " + this);
            return;
        }
        Interface.CallHook("OnEntityKill", new object[]
        {
            this
        });
        base.gameObject.BroadcastOnParentDestroying();
        this.Term(mode);
        this.DoEntityDestroy();
        this.EntityDestroy();
    }
     
  2. Kappa, could you add a permission to make certain players or staff members exempt please! - Without authentication levels
     
  3. Yes, and thanks Fuji.
     
  4. @Kappasaurus
    Are you still developing this as i'm interested, does it still work?

    Edit: I'm dumb i mistaken the plugin as something else..
     
    Last edited by a moderator: May 18, 2017
  5. Kappasaurus updated ArenaWalls with a new update entry:

    1.0.1

     
  6. Will this work is ZoneManager has Undestr enabled?
     
  7. Probably, I don't know how Zone Manager intercepts it though.
     
  8. It works :) nevermind hehe
     
  9. Is there a way to have them remove after the person who placed them dies? as in for for a "combattag" style event where the round resets after death etc?
     
  10. at System.Collections.Generic.Dictionary`2[System.String,System.Boolean].get_Item (System.String key) [0x00000] in <filename unknown>:0
    at Oxide.Plugins.ArenaWalls.OnEntityBuilt (.Planner plan, UnityEngine.GameObject go) [0x00000] in <filename unknown>:0
    at Oxide.Plugins.ArenaWalls.DirectCallHook (System.String name, System.Object& ret, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Plugins.CSharpPlugin.InvokeMethod (HookMethod method, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Core.Plugins.CSPlugin.OnCallHook (System.String name, System.Object[] args) [0x00000] in <filename unknown>:0
    at Oxide.Core.Plugins.Plugin.CallHook (System.String hook, System.Object[] args) [0x00000] in <filename unknown>:0

    everytime anyone places a wall
     
  11. getting this error when placing wall

    Failed to call hook 'OnEntityBuilt' on plugin 'ArenaWalls v1.0.1' (KeyNotFoundException: The given key was not present in the dictionary.) at System.Collections.Generic.Dictionary`2[System.String,System.Boolean].get_Item (System.String key) [0x00000] in :0 at Oxide.Plugins.ArenaWalls.OnEntityBuilt (.Planner plan, UnityEngine.GameObject go) [0x00000] in :0 at Oxide.Plugins.ArenaWalls.DirectCallHook (System.String name, System.Object& ret, System.Object[] args) [0x00000] in :0 at Oxide.Plugins.CSharpPlugin.InvokeMethod (Oxide.Core.Plugins.HookMethod method, System.Object[] args) [0x00000] in :0 at Oxide.Core.Plugins.CSPlugin.OnCallHook (System.String name, System.Object[] args) [0x00000] in :0 at Oxide.Core.Plugins.Plugin.CallHook (System.String hook, System.Object[] args) [0x00000] in :0
     
  12. Failed to call hook 'OnEntityBuilt' on plugin 'ArenaWalls v1.0.1' (KeyNotFoundException: The given key was not present in the dictionary.)

    Dont work
     
  13. i get this error when i put a wall

    Failed to call hook 'OnEntityBuilt' on plugin 'ArenaWalls v1.0.1' (KeyNotFoundException: The given key was not present in the dictionary.) at System.Collections.Generic.Dictionary`2[TKey,TValue].get_Item (TKey key) [0x0001e] in <e1a80661d61443feb3dbdaac88eeb776>:0 at Oxide.Plugins.ArenaWalls.OnEntityBuilt (Planner plan, UnityEngine.GameObject go) [0x00023] in <fdba6956b04944efbeea1f688e0dd9dd>:0 at Oxide.Plugins.ArenaWalls.DirectCallHook (System.String name, System.Object& ret, System.Object[] args) [0x00182] in <fdba6956b04944efbeea1f688e0dd9dd>:0 at Oxide.Plugins.CSharpPlugin.InvokeMethod (Oxide.Core.Plugins.HookMethod method, System.Object[] args) [0x00079] in <9affce1cd15c4ec183941adef8db1722>:0 at Oxide.Core.Plugins.CSPlugin.OnCallHook (System.String name, System.Object[] args) [0x000d8] in <4452f821def6406d834e4149849fe7ea>:0 at Oxide.Core.Plugins.Plugin.CallHook (System.String hook, System.Object[] args) [0x00060] in <4452f821def6406d834e4149849fe7ea>:0