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

Legacy:Sweavo/OnslaughtMuts

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search

Sweavo's Onslaught Muts

Project: Tractor Beam[edit]

Here's my TractorRaptor class, that replaces all the raptors in a map with an eerily similar vehicle but that has a tractor beam that can pick up other vehicles and move them around the map. Needs work, but I'd appreciate anyone downloading it and giving me any tips. If you are under cygwin then you should be able to build it with make run at the commandline.

Project: vehicle dibs[edit]

A mutator that holds onto the last vehicle you used indefinitely, so you can raptor up to some lofty place, snipe for a bit, then get back in it without it having been destroyed by the game engine while your back was turned.

So I figured out that ONSVehicles disappear by having their CheckReset() called. I'm not 100% sure what all those conditions are below, but if you can see the vehicle it seems you count as a collidingactor.

// in ONSVehicle
event CheckReset()
{
	local Pawn P;
 
	if ( bKeyVehicle && IsVehicleEmpty() )
	{
		Died(None, class'DamageType', Location);
		return;
	}
 
	if ( !IsVehicleEmpty() )
	{
	    	ResetTime = Level.TimeSeconds + 10;
    		return;
	}
 
	foreach CollidingActors(class 'Pawn', P, 2500.0)
	{
		if (P.Controller != none && P != self && P.GetTeamNum() == GetTeamNum() && FastTrace(P.Location + P.CollisionHeight * vect(0,0,1), Location + CollisionHeight * vect(0,0,1)))
		{
			ResetTime = Level.TimeSeconds + 10;
			return;
		}
	}
 
	//if factory is active, we want it to spawn new vehicle NOW
	if ( ParentFactory != None )
	{
		ParentFactory.VehicleDestroyed(self);
		ParentFactory.Timer();
		ParentFactory = None; //so doesn't call ParentFactory.VehicleDestroyed() again in Destroyed()
	}
 
	Destroy();
}

I'd like to somehow figure out a mutator that stops the last vehicle any player used from resetting. So I can fly the raptor up to a cliff, camp for a bit, and not turn around to find it gone. Without subclassing both player and vehicle, it's currently looking like it'll have to be done by polling: some piece of code on a timer constantly updates the ResetTime of the player's last vehicle to stop it timing out.

Found a bNeverReset in ONSVehicle. Wondering if I can make the mutator keep track on the client of what vehicle the local player has been getting in, and can set bNeverReset on vehicles the player gets in, and clear bNeverReset (and/or set the CheckReset timer) on the previous veh.

Not sure how to hook this one up but could you have the client write to the vehicle's bKeyVehicle and record a reference to that vehicle when you get in. If the reference were not empty, it would first re-instate the bKeyVehicle setting for that vehicle to allow the previous vehicle to be reset.

Project: AS Turrets for ONS[edit]

I love ONS-MassDestruction but it had a major flaw when there are only a few players: if you immediately jump in a cicada you can fly to the opposing base and jack their ion cannon before they've even got in it. I love to do this but never feel like I'm being fair! So I have the quest of getting the ion cannon to spawn with the right team set and teamlocked.

See Legacy:Sweavo/MutASTurretsInONS

Project: Bulldog2k4[edit]

SuperApe has done some smart work lashing up the Bulldog to work in 2k4. I'd like to try a different approach: creating a brand new ONSVehicle with the mesh of the Bulldog. Maybe this would be less buggy than the ModifiedBulldog. Or maybe it would just be too mush work and I'd never get round to it. Ho hum.