I don't need to test my programs. I have an error-correcting modem.

Legacy:VitalOverdose/VecLava

From Unreal Wiki, The Unreal Engine Documentation Site
< Legacy:VitalOverdose
Revision as of 04:50, 28 April 2006 by Tarquin (Talk | contribs) (explain please)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
UT2004 :: Actor >> brush >> volume >> PhysicsVolume >> LavaVolume Package:(custom)LavaVolume.
class VecLava extends LavaVolume;
 
struct                        Timerecord
{
var OnsVehicle                TheVec;
var float                     TheTime;
};var Array< Timerecord >     TimeRecords;
 
var() float                   TimeTillBurn;
var() float                   Timerfrequency;
var() class<emitter>          FlameEffectClass< SEMI >
 
 function touch(actor other)
 {
 if (other.IsA('OnsVehicle'))
    {
    TimeRecords.insert(0,1);
    TimeRecords[0].TheVec   = OnsVehicle(other);
    TimeRecords[0].TheTime  = TimeTillBurn;
    if (TimeRecords.length == 1)
        SetTimer(0.25,false);
    }
 super.touch(other);
 }
 
 simulated function Timer()
 {
 Local int     counter;
 local VecLava FoundVecLava;
 local emitter SpawnedEmitter;
 
 for ( counter=0 ; counter< TimeRecords.length ; counter++)
     {
     foreach radiusactors(class'VecLava' , FoundVecLava , TimeRecords[counter].TheVec.default.collisionradius*1.5 , TimeRecords[counter].TheVec.location)
                         {
                         TimeRecords[counter].TheTime += 0.25;
                         if (TimeRecords[counter].TheTime == 0)
                            {
                             while(SpawnedEmitter == none)
                                   SpawnedEmitter = Spawn(FlameEffectClass , self ,, TimeRecords[counter].TheVec.Location , TimeRecords[counter].TheVec.Rotation);
                             SpawnedEmitter.setbase(TimeRecords[counter].TheVec);
                             break;
                            }
                         }
     if (FoundVecLava == none)
        {
        TimeRecords[counter].TheTime -= 0.25;
        if (TimeRecords[counter].TheTime == 3)
            TimeRecords.remove(counter , 1);
        }
     }
 if (TimeRecords.length != 0)
     SetTimer(timerfrequency,false);
 }
 
defaultproperties
{
     TimeTillBurn=5.000000
     FlameEffectClass=Class'OnslaughtFull.ONSAutoBomberDeathFlames'
}

Tarquin: Please could you explain what this script is for and how it works?