unrealwiki:Sandbox

From Unreal Wiki, The Unreal Engine Documentation Site
Revision as of 16:24, 18 February 2012 by Evolution (talk | contribs)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Do not edit the area above the separator line, please.


Legacy:Actor Actor UE3:Actor (UT3) Project:Sandbox

<uscript> /** Override BeginFire so that it will enter the firing state right away. */ simulated function BeginFire(byte FireModeNum) {

// verify that our owning pawn isn't busy before calling Super.BeginFire(), which is where PendingFire is set if ( !IsFiringAllowed(FireModeNum) ) { return; } //`log(`location @ `showvar(IsTimerActive(nameof(DelayedFire)),DelayedFire Active));

Super.BeginFire(FireModeNum);

}


/**

* For tracehit weapons with no prefire delay, handles firing the weapon.
*/

simulated function InstantFire() { //`log(`location); CustomFire(); PerformInstantFire(); }

/**

* For weapons using projectiles, which have no prefire delay - fires the weapon.
*/

simulated function Projectile ProjectileFire() { //`log(`location); CustomFire(); return Super.ProjectileFire();

}

simulated function Delayed_CustomFire( byte FireModeNum );

/**

* Called on a timer (set in BeginFire()), this is called only for weapons which have a prefire delay.
*/

simulated function DelayedFire() { DelayedWeaponFire(0); }

/**

* Called on a timer (set in BeginFire()), this is called only for weapons which have a prefire delay.
*/

simulated function DelayedAltFire() { DelayedWeaponFire(1); }

simulated function DelayedWeaponFire( byte FireModeNum ) { //`log(`location); // restore our WeaponFireType, since we switched it to EWFT_Custom in BeginFire() WeaponFireTypes[FireModeNum] = default.WeaponFireTypes[FireModeNum]; if ( WeaponFireTypes[FireModeNum] == EWFT_InstantHit ) { // our own version of InstantFire() is only called for weapons that do not have a prefire // delay, so go directly to our parent class/state version PerformInstantFire(); } else if ( WeaponFireTypes[FireModeNum] == EWFT_Projectile ) { // our own version of ProjectileFire() is only called for weapons that do not have a prefire // delay, so go directly to our parent class/state version Super.ProjectileFire(); } else if ( WeaponFireTypes[FireModeNum] == EWFT_Custom ) { Delayed_CustomFire(FireModeNum); }

PrefireCachedStartTrace = vect(0,0,0); }

/**

* Utility function to allow me to inject some debugging code prior to passing control to our parent classes.
*/

protected simulated function PerformInstantFire() { Super.InstantFire(); }

</uscript>

Testing UScript highlighter... <uscript> class X extends Y within Z

   implements(I)
   nottransient;

`include(SomeFile.uci)


var(Group) interp struct Type {

 var() bool bCorrect;
 var array<class<Actor> > ActorClasses;

} VarName;

reliable client function CheckType(optional class<Actor> ActorClass) {

 local int i;
 for (i = 0; i < VarName.ActorClasses.Length; ++i) {
   if (ActorClass == None || ClassIsChildOf(VarName.ActorClasses[i], ActorClass)) {
     VarName.ActorClasses[i].static.StaticSaveConfig();
     continue;
   }
   VarName.ActorClasses.Remove(i--, 1);
 }
 VarName.bCorrect = True;

}

static function byte GetHash(int Value) {

 switch (Value) {
   case -1:
     return 0;
   case 0xCAFE:
     return 1
   default:
     return (Value >= 0 && Value < 10) ? class'Hasher'.default.Hash[Value] : (Value & 0xff);
 }

}

defaultproperties {

 VarName.Empty
 VarName[0] = {(
   bCorrect = True,
   ActorClasses.Add(class'ReplicationInfo')
 )}

} </uscript>