コード例 #1
0
        public void AddExplosion(Vector3 position, MyExplosionTypeEnum explosionType, float damage, float radius, bool forceDebris, bool createDecals)
        {
            var msg = new MyEventAddExplosion();

            msg.CreateDecals  = createDecals;
            msg.ForceDebris   = forceDebris;
            msg.Damage        = damage;
            msg.Position      = position;
            msg.EntityId      = null;
            msg.ExplosionType = (byte)explosionType;
            msg.Radius        = radius;
            Peers.SendToAll(ref msg, NetDeliveryMethod.ReliableOrdered);
        }
コード例 #2
0
        public void AddExplosion(MyEntity entity, MyExplosionTypeEnum explosionType, float damage, float radius, bool forceDebris, bool createDecals, MyParticleEffectsIDEnum?particleIDOverride = null)
        {
            Debug.Assert(entity != null && entity.EntityId.HasValue);

            var msg = new MyEventAddExplosion();

            msg.Damage             = damage;
            msg.EntityId           = entity.EntityId.Value.NumericValue;
            msg.ExplosionType      = (byte)explosionType;
            msg.Radius             = radius;
            msg.ParticleIDOverride = (int?)particleIDOverride;
            msg.CreateDecals       = createDecals;
            msg.ForceDebris        = forceDebris;

            Peers.SendToAll(ref msg, NetDeliveryMethod.ReliableOrdered);
        }
コード例 #3
0
        void OnAddExplosion(ref MyEventAddExplosion msg)
        {
            if (!MyMwcEnums.IsValidValue(msg.ExplosionFlags))
            {
                Alert("Invalid explosion", msg.SenderEndpoint, msg.EventType);
                return;
            }

            MyEntity entity;

            if (msg.EntityId.HasValue && MyEntities.TryGetEntityById(msg.EntityId.Value.ToEntityId(), out entity))
            {
                MyScriptWrapper.AddExplosion(entity, (MyExplosionTypeEnum)msg.ExplosionType, msg.Damage, msg.Radius, msg.ForceDebris, msg.CreateDecals, (MyParticleEffectsIDEnum?)msg.ParticleIDOverride);
            }
            else if (msg.Position.HasValue)
            {
                MyScriptWrapper.AddExplosion(msg.Position.Value, (MyExplosionTypeEnum)msg.ExplosionType, msg.Radius, msg.Damage, msg.ForceDebris, msg.CreateDecals);
            }
            else
            {
                Alert("Invalid explosion", msg.SenderEndpoint, msg.EventType);
            }
        }