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

Legacy:Mod Ideas/DevTools

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

This is a growing collection of my own tools used to aid development of mods.

Current Features[edit]

  • Shows the display debug for any pawn if the crosshair is on top of it

Pieces Of Code[edit]

Display Debug fix![edit]

In my Interaction class:

function PostRender( canvas Canvas )
{
	local Actor p;
	local float a, b;
	local vector HitLocation, HitNormal;
 
	a = Canvas.CurYL;
	b = 0;
 
	mainTrace(HitLocation, HitNormal, p, 2048);
 
	if(Pawn(p) != none)
	{
	    p.DisplayDebug(Canvas, a, b);
	}
}

MainTrace():

(obviously it is declared inside the Interaction class)

// ===========================================================================
// mainTrace
//
// This function traces for known actors that are RIGHT in front of the camera (under the crosshair)
// ===========================================================================
function mainTrace(out vector HitLocation, out vector HitNormal, out Actor aThing, float fDistance)
{
	local vector StartTrace, EndTrace;
	local PlayerController PlayerOwner;
 
	// Log(self$": before assigning the playerOwner"); //DEBUG
	PlayerOwner = ViewportOwner.Actor;
	// Log(self$": after assigning the playerOwner"); //DEBUG
 
	// important: find the REAL rotation of the camera - X and Y
 
	// Log(self$": before trace"); // DEBUG
	// Perform a trace to find any colliding actors
	StartTrace = PlayerOwner.Pawn.Location;			// the beginning of the trace
	StartTrace.Z += PlayerOwner.Pawn.BaseEyeHeight;	// account for player's eye height
	// I call this the oblivion vector
	EndTrace = StartTrace + vector(PlayerOwner.Pawn.GetViewRotation()) * fDistance;
	// TODO: try fasttrace
	aThing = PlayerOwner.Pawn.Trace(HitLocation, HitNormal, EndTrace, StartTrace, true);
}

Suggestions[edit]

Please feel free to suggest any other features that could be included in this mod. Just try to stick to mutator functionality, so that it can be tested with other game types!


DevTools

by AlphaOne


Discussion[edit]

Foxpaw: Is the mainTrace function a function you wrote yourself or is it included in the base UT2003 packages. I've never seen it called elsewhere.

AlphaOne: Oops! Forgot to mention that Yes it is one of my own.

Daemonica: I noticed the Todo line, I wouldn't try as FastTrace will only return a True/False if the trace hits World Geometry. On a side note I'm trying to implement a similar function within a PlayerController class and having little to no success, even though the code is the same ;)