I search for solutions in this order: Past Code, Unreal Source, Wiki, BUF, groups.yahoo, google, screaming at monitor. – RegularX
Legacy:Vitaloverdose/SFXUltraLight
From Unreal Wiki, The Unreal Engine Documentation Site
Revision as of 14:47, 8 December 2007 by 84-45-226-149.no-dns-yet.enta.net (Talk)
Overview[edit]
this custom emitter actor changes the weight of any ONSVehicle its attached to. + Boost and FX
class SFXUltralight Extends Emitter placeable; Var () bool bLockPlayersTo; Var () float LandedLockTime; Var () float TimerFrequency; var () float ultralightTime; Var (slide_in) float slidein; Var (slide_in) Float IncSteps; Var (slide_in) Sound UltralightMax_Snd; Var (slide_Out) float Slidout; Var (slide_Out) float DecSteps; Var (slide_Out) Sound UltralightDec_Snd; Var (OnCreation) bool bTagSuddenDeathFx; Var (OnCreation) Sound OnCreation_Sound; Var (OnCreation) Array< Class< Emitter > > OnCreation_FxPool; Var (suddenstop) sound SudenDeath_Sound; var (suddenstop) Array< Class< Emitter > > SudenDeath_FxPool; Var Bool bScanningTargetVec; Var Array< float > TimeKeeper; Var float Incamount; Var float DecAmount; Function PostBeginPlay() { if (( base == none )&&(!Owner.IsA('OnsVehicle'))) { Destroyed(); Return; } SetBase( Owner ); If ((!OnsVehicle(Owner).Driver.IsA('xBot')) && ( bLockPlayersTo == false )) Return; TimeKeeper.Length = 4; TimeKeeper[0] = slidein; TimeKeeper[1] = ultralightTime; TimeKeeper[2] = slidout; TimeKeeper[3] = OnsVehicle(Owner).KGetActorGravScale(); TogglelBotock(); SetTimer(TimerFrequency,True); } Function Timer() { if (vehicle(base).Driver == none) SuddenDeath() If (TimeKeeper[0] > 0 ) { TimeKeeper[0]-=TimerFrequency; if (TimeKeeper[0]<0.1) SetTimer( TimeKeeper[1],False ); Return; } if ( TimeKeeper[1] > 0 ) { TimeKeeper[1] = 0; SetTimer(TimerFrequency,True); Return; } if ( TimeKeeper[2] > 0 ) { TimeKeeper[2] -= TimerFrequency; if (TimeKeeper[2] < 0.1) Disable('Timer'); } } function SuddenDeath() { SpawnRND(SudenDeath_FxPool,bTagSuddenDeathFx); Disable('Timer'); TogglelBotock(); } Function SpawnRND(Array< Class< Emitter > > AvailableFx,Bool bTagFx) { Local int RNDPickedNumb; local Class< Emitter > RNDPickedEmitter; local Emitter SpawnedEmitter; if ( AvailableFx.Length!=0 ) { RNDPickedNumb = Rand( AvailableFx.Length ); RNDPickedEmitter = AvailableFx[RNDPickedNumb]; SpawnedEmitter = Spawn( RNDPickedEmitter , self ,, Owner.Location , Owner.Rotation ); if ( ( SpawnedEmitter == none ) && ( bTagFx == True) ) SpawnedEmitter.SetBase( Owner ); } } Function TogglelBotock() { If ( OnsVehicle(Owner).bDriverCannotLeaveVehicle == False ) { OnsVehicle(Owner).bDriverCannotLeaveVehicle = True; Return; } OnsVehicle(Owner).bDriverCannotLeaveVehicle = False; } Function Bool checkGrounded() { Local Int counter; for ( counter=0 ; counter < OnsVehicle(Owner).wheels.Length ; counter++ ) If ( OnsVehicle(Owner).Wheels[counter].bWheelOnGround == False ) return False; Return True; } defaultproperties { bNoDelete=False RemoteRole=ROLE_SimulatedProxy }
Related Topcs[edit]
More custom emitter scipts[edit]
- SFXVecTeleporting
- SFXPawnTeleporting
- SFXTriggering
- SFXBoosting
- SFXMonsterSpawning
- SFXHealing
- SFXSelfScaling
- SFXUltraLight
- InventoryFlare