Solved Helli debris spawn

Discussion in 'Rust Development' started by sami37, Dec 10, 2016.

  1. Hello,

    I am currently trying to create and spawn some helli debris from the prefab, but i can't get it spawning.
    I am using
    Code:
    var p = GameManager.server.CreateEntity("assets/prefabs/npc/patrol helicopter/damage_effect_debris.prefab", dropPos);
    p?.Spawn();
    
    but it said me it's not an entity, so i am trying to use CreatePrefab, but i can't get it spawned in my map.
    Anyone have a tips?

    Edit: i had try to use "servergibs_patrolhelicopter" with CreateEntity but won't spawn too
     
    Last edited by a moderator: Dec 10, 2016
  2. I tried a few different things... I mean, it's definitely servergibs_patrolhelicopter, but I couldn't make them spawn/show up
     
  3. If it helps, here's a list of anything involving a helicopter via prefab/entity.
    Code:
    [Oxide] 11:28 [Info] [Prefab Grabber] Listing prefabs with the name of: heli
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/bundled/prefabs/world/event_helicopter.prefab
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/content/properties/lootspawn/collections/heliloot.asset
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/content/properties/protection/helicopter_gib_protection.asset
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/content/properties/protection/helicopter_protection.asset
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/content/properties/protection/npcs/heli_protection.asset
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/content/sound/sounddefinitions/entities/helicopter/helicopter-alarm-loop.asset
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/content/sound/sounddefinitions/entities/helicopter/helicopter-engine-loop.asset
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/content/sound/sounddefinitions/entities/helicopter/helicopter-engine-loop-no-tail-rotor.asset
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/content/sound/sounddefinitions/entities/helicopter/helicopter-explosion.asset
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/content/sound/sounddefinitions/entities/helicopter/helicopter-m249-single.asset
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/content/sound/sounddefinitions/entities/helicopter/helicopter-machine-gun-single.asset
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/content/sound/sounddefinitions/entities/helicopter/helicopter-rocket-explosion.asset
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/content/sound/sounddefinitions/entities/helicopter/helicopter-rocket-fire-single.asset
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/content/sound/sounddefinitions/entities/helicopter/helicopter-rotors-loop.asset
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/content/sound/sounddefinitions/entities/helicopter/helicopter-rotor-wash.asset
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/content/sound/sounddefinitions/entities/helicopter/helicopter-tail-rotor-loop.asset
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/prefabs/npc/patrol helicopter/damage_effect_debris.prefab
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/prefabs/npc/patrol helicopter/effects/gun_fire.prefab
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/prefabs/npc/patrol helicopter/effects/gun_fire_small.prefab
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/prefabs/npc/patrol helicopter/effects/heli_explosion.prefab
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/prefabs/npc/patrol helicopter/effects/rocket_airburst_explosion.prefab
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/prefabs/npc/patrol helicopter/effects/rocket_airburst_groundeffect.prefab
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/prefabs/npc/patrol helicopter/effects/rocket_explosion.prefab
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/prefabs/npc/patrol helicopter/effects/rocket_fire.prefab
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/prefabs/npc/patrol helicopter/groundeffect.prefab
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/prefabs/npc/patrol helicopter/heli_crate.prefab
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/prefabs/npc/patrol helicopter/helibullet.prefab
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/prefabs/npc/patrol helicopter/patrol_helicopter.prefab
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/prefabs/npc/patrol helicopter/patrolhelicopter.prefab
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/prefabs/npc/patrol helicopter/rocket_heli.prefab
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/prefabs/npc/patrol helicopter/rocket_heli_airburst.prefab
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/prefabs/npc/patrol helicopter/rocket_heli_napalm.prefab
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/prefabs/npc/patrol helicopter/servergibs_patrolhelicopter.prefab
    [Oxide] 11:28 [Info] [Prefab Grabber] assets/prefabs/npc/patrol helicopter/test.prefab
     
  4. Thx i already noticed that, and it's definitely assets/prefabs/npc/patrol helicopter/servergibs_patrolhelicopter.prefab used while you kill patrol helicopter, but i can't get it spawning.

    @Wulf have you an idea?
     
  5. You need to create it by using the functions of the class "ServerGib".
    Best example is to have as look into "OnKilled" of the BaseHelicopter, where it uses "CreateGibs" based on the GameObjectRef "servergibs":
    Code:
    // BaseHelicopter
    public override void OnKilled(HitInfo info)
    {
        if (base.isClient)
        {
            return;
        }
        Effect.server.Run(this.explosionEffect.resourcePath, base.transform.position, Vector3.up, null, true);
        Vector3 vector = this.myAI.GetLastMoveDir() * this.myAI.GetMoveSpeed() * 0.75f;
        GameObject gibSource = this.servergibs.Get().GetComponent<ServerGib>()._gibSource;
        List<ServerGib> list = ServerGib.CreateGibs(this.servergibs.resourcePath, base.gameObject, gibSource, vector, 3f);
        for (int i = 0; i < 12 - this.maxCratesToSpawn; i++)
        {
            BaseEntity baseEntity = GameManager.server.CreateEntity(this.fireBall.resourcePath, base.transform.position, base.transform.rotation, true);
            if (baseEntity)
            {
                float min = 3f;
                float max = 10f;
                Vector3 onUnitSphere = UnityEngine.Random.onUnitSphere;
                baseEntity.transform.position = base.transform.position + new Vector3(0f, 1.5f, 0f) + onUnitSphere * UnityEngine.Random.Range(-4f, 4f);
                Collider component = baseEntity.GetComponent<Collider>();
                baseEntity.Spawn();
                baseEntity.SetVelocity(vector + onUnitSphere * UnityEngine.Random.Range(min, max));
                foreach (ServerGib current in list)
                {
                    Physics.IgnoreCollision(component, current.GetCollider(), true);
                }
            }
        }
        for (int j = 0; j < this.maxCratesToSpawn; j++)
        {
            Vector3 onUnitSphere2 = UnityEngine.Random.onUnitSphere;
            Vector3 pos = base.transform.position + new Vector3(0f, 1.5f, 0f) + onUnitSphere2 * UnityEngine.Random.Range(2f, 3f);
            BaseEntity baseEntity2 = GameManager.server.CreateEntity(this.crateToDrop.resourcePath, pos, Quaternion.LookRotation(onUnitSphere2), true);
            baseEntity2.Spawn();
            baseEntity2.Invoke("RemoveMe", 1800f);
            Collider component2 = baseEntity2.GetComponent<Collider>();
            Rigidbody rigidbody = baseEntity2.gameObject.AddComponent<Rigidbody>();
            rigidbody.useGravity = true;
            rigidbody.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic;
            rigidbody.mass = 2f;
            rigidbody.interpolation = RigidbodyInterpolation.Interpolate;
            rigidbody.velocity = vector + onUnitSphere2 * UnityEngine.Random.Range(1f, 3f);
            rigidbody.angularVelocity = Vector3Ex.Range(-1.75f, 1.75f);
            rigidbody.drag = 0.5f * (rigidbody.mass / 5f);
            rigidbody.angularDrag = 0.2f * (rigidbody.mass / 5f);
            FireBall fireBall = GameManager.server.CreateEntity(this.fireBall.resourcePath, baseEntity2.transform.position, default(Quaternion), true) as FireBall;
            if (fireBall)
            {
                fireBall.transform.position = baseEntity2.transform.position;
                fireBall.Spawn();
                fireBall.GetComponent<Rigidbody>().isKinematic = true;
                fireBall.GetComponent<Collider>().enabled = false;
                fireBall.transform.parent = baseEntity2.transform;
            }
            baseEntity2.SendMessage("SetLockingEnt", fireBall.gameObject, SendMessageOptions.DontRequireReceiver);
            foreach (ServerGib current2 in list)
            {
                Physics.IgnoreCollision(component2, current2.GetCollider(), true);
            }
        }
        base.OnKilled(info);
    }
    
     
  6. Albert Pluginstein



    :p