logo
Main

Forums

Downloads

Unreal-Netiquette

Donate for Oldunreal:
Donate

borderline

Links to our wiki:
Wiki

Walkthrough

Links

Tutorials

Unreal Reference

Usermaps

borderline

Contact us:
Submit News
Page Index Toggle Pages: 1 [2]  Send TopicPrint
Hot Topic (More than 10 Replies) Test "Pathlogic" for me please. (Read 549 times)
medor
Senior Member
Betatester
****
Offline


Oldunreal member

Posts: 313
Joined: May 17th, 2009
Re: Test "Pathlogic" for me please.
Reply #15 - Jan 20th, 2013 at 12:33pm
Print Post  
  
Back to top
 
IP Logged
 
Qtit
Betatester
Offline


Oldunreal member

Posts: 138
Location: Hell
Joined: Dec 22nd, 2010
Gender: Male
Re: Test "Pathlogic" for me please.
Reply #16 - Jan 22nd, 2013 at 5:59pm
Print Post  
Okay, after 15 minutes of coding.

Path Node Gun:

Code
Select All
//=============================================================================
// PathNodeGun.
//=============================================================================
class PathNodeGun expands Weapon;

var int i;
var bool bSelecting;
var int CurrentClass;
var() Class <actor> DefinedClasses[32];

function float RateSelf( out int bUseAltMode )
{
	local float EnemyDist;

	if ( AmmoType.AmmoAmount <=0 )
		return -2;
	if ( Pawn(Owner).Enemy == None )
	{
		bUseAltMode = 0;
		return AIRating;
	}

	EnemyDist = VSize(Pawn(Owner).Enemy.Location - Owner.Location);
	bUseAltMode = int( 600 * FRand() > EnemyDist - 140 );
	return AIRating;
}

function PlayFiring()
{
	PlayAnim( 'FireOne', 0.6 );
}

function PlayAltFiring()
{
	PlayAnim( 'FireOne', 0.6 );
}

///////////////////////////////////////////////////////
state NormalFire
{
	function Projectile ProjectileFire(class<projectile> ProjClass, float ProjSpeed, bool bWarn)
	{
		local PathNodeGunNode Node;

		if(!bSelecting && DefinedClasses[CurrentClass] != none)
		{
			Node = spawn(class'PathNodeGunNode',,,owner.location,owner.rotation);
			Node.NO = i;
			Node.Placed(DefinedClasses[CurrentClass]);
			i++;
		}
	}

Begin:
	if(!bSelecting)
	{
		FinishAnim();
		PlayAnim('Still');
		Sleep(0.2);
	}
	else
	{
		CurrentClass --;
		if(CurrentClass <0)
			CurrentClass = 31;
		if(CurrentClass > 31)
			CurrentClass = 0;
		Sleep(0.1);
	}
	Finish();
}

///////////////////////////////////////////////////////////////
state AltFiring
{
	function Projectile ProjectileFire(class<projectile> ProjClass, float ProjSpeed, bool bWarn)
	{

	}

Begin:
	if(!bSelecting)
	{
		bSelecting = true;
		Sleep(0.2);
	}
	else
	{
		CurrentClass ++;
		if(CurrentClass <0)
			CurrentClass = 31;
		if(CurrentClass > 31)
			CurrentClass = 0;
		Sleep(0.1);
	}
	Finish();
}

///////////////////////////////////////////////////////////

function tick(float deltatime)
{
	if(bSelecting)
	{
		if(playerpawn(owner).bIsCrouching == true)
			bSelecting = false;
	}
}

simulated event RenderOverlays( canvas Canvas )
{
	local int s;
	super.RenderOverlays(canvas);

	canvas.Font = font'MedFont';
	canvas.DrawColor = MakeColor(255,255,255);

	canvas.SetPos(Canvas.clipX - 386, Canvas.clipY - 640 - 64 );
	canvas.DrawText("Left Click = PLACE ACTOR");
	canvas.SetPos(Canvas.clipX - 386, Canvas.clipY - 640 - 48 );
	canvas.DrawText("Right Click = SELECT MODE - LMB up, RMB down");
	canvas.SetPos(Canvas.clipX - 386, Canvas.clipY - 640 - 32 );
	canvas.DrawText("Crouch = PLACING MODE");

	canvas.SetPos(Canvas.clipX - 256, Canvas.clipY - 640 + (CurrentClass*12) );
	canvas.DrawTileClipped( texture'Editor.Bkgnd', 256, 12, 32, 32, 0, 0 );

	for(s=0;s<32;s++)
	{
		canvas.SetPos(Canvas.clipX - 256, Canvas.clipY - 640 + (s*12) );
		canvas.DrawText(s$ ": " $DefinedClasses[s]);
	}
}

function PlayIdleAnim()
{
	PlayAnim('Still');
}

function TweenDown()
{
	log("End Map");
	super.TweenDown();
}

function TweenSelect()
{
	TweenAnim('Select1',0.001);
}

function PlaySelect()
{
	log("Begin Map");

	super.PlaySelect();
}

defaultproperties
{
				DefinedClasses(0)=Class'Engine.PathNode'
				DefinedClasses(1)=Class'UnrealShare.Tree1'
				DefinedClasses(2)=Class'UnrealShare.Tree2'
				DefinedClasses(3)=Class'UnrealShare.Tree5'
				DefinedClasses(4)=Class'UnrealShare.Tree6'
				DefinedClasses(5)=Class'UnrealShare.Tree7'
				DefinedClasses(6)=Class'UnrealI.Table'
				DefinedClasses(7)=Class'UnrealShare.Chest'
				DefinedClasses(8)=Class'UnrealI.Chair'
				DefinedClasses(9)=Class'UnrealI.SkaarjTrooper'
				DefinedClasses(10)=Class'UnrealI.SkaarjGunner'
				DefinedClasses(11)=Class'UnrealI.SkaarjInfantry'
				DefinedClasses(12)=Class'UnrealI.SkaarjOfficer'
				DefinedClasses(13)=Class'UnrealI.SkaarjSniper'
				DefinedClasses(14)=Class'UnrealShare.SkaarjWarrior'
				DefinedClasses(15)=Class'UnrealI.SkaarjAssassin'
				DefinedClasses(16)=Class'UnrealI.SkaarjBerserker'
				DefinedClasses(17)=Class'UnrealI.SkaarjLord'
				DefinedClasses(18)=Class'UnrealShare.SkaarjScout'
				DefinedClasses(19)=Class'UnrealShare.Nali'
				DefinedClasses(20)=Class'UnrealI.Behemoth'
				DefinedClasses(21)=Class'UnrealShare.LesserBrute'
				DefinedClasses(22)=Class'UnrealShare.Brute'
				DefinedClasses(23)=Class'UnrealI.Titan'
				DefinedClasses(24)=Class'UnrealI.Mercenary'
				DefinedClasses(25)=Class'UnrealI.Krall'
				DefinedClasses(26)=Class'UnrealI.KrallElite'
				DefinedClasses(27)=Class'UnrealShare.Slith'
				AmmoName=Class'UnrealShare.StingerAmmo'
				PickupAmmoCount=2147483647
				bAltWarnTarget=True
				FiringSpeed=3.500000
				FireOffset=(X=12.000000,Y=-10.000000,Z=-15.000000)
				ProjectileClass=Class'UnrealShare.StingerProjectile'
				AltProjectileClass=Class'UnrealShare.StingerProjectile'
				MyDamageType="SHOT"
				shakemag=120.000000
				AIRating=0.400000
				RefireRate=0.800000
				FireSound=Sound'UnrealShare.Stinger.StingerFire'
				AltFireSound=Sound'UnrealShare.Stinger.StingerAltFire'
				SelectSound=Sound'UnrealShare.Stinger.StingerLoad'
				Misc1Sound=Sound'UnrealShare.Stinger.EndFire'
				DeathMessage="%o was perforated by %k's %w."
				AutoSwitchPriority=3
				InventoryGroup=3
				PickupMessage="You picked up the Stinger"
				ItemName="Stinger"
				PlayerViewOffset=(X=4.200000,Y=-3.000000,Z=-4.000000)
				PlayerViewMesh=LodMesh'UnrealShare.StingerM'
				PlayerViewScale=1.700000
				PickupViewMesh=LodMesh'UnrealShare.StingerPickup'
				ThirdPersonMesh=LodMesh'UnrealShare.Stinger3rd'
				PickupSound=Sound'UnrealShare.Pickups.WeaponPickup'
				Style=STY_Masked
				Texture=Texture'Engine.S_Pickup'
				Mesh=LodMesh'UnrealShare.StingerPickup'
				bNoSmooth=False
				MultiSkins(0)=Texture'Engine.S_Pickup'
				MultiSkins(1)=Texture'Engine.S_Pickup'
				MultiSkins(2)=Texture'Engine.S_Pickup'
				MultiSkins(3)=Texture'Engine.S_Pickup'
				SoundRadius=64
				SoundVolume=255
				CollisionRadius=27.000000
				CollisionHeight=8.000000
}
 



Code
Select All
//=============================================================================
// PathNodeGunNode.
//=============================================================================
class PathNodeGunNode expands Decoration;

var int NO;

function Placed(class <actor> DefinedClass)
{
	local string ClassStr, NameString;
	local int Lenght;
	local int DotPos;
	local vector TLoc;

	ClassStr = string(DefinedClass);
	Lenght = Len(ClassStr);
	DotPos = InStr(ClassStr, ".");

	NameString = Mid(ClassStr, DotPos+1);

	//log("	Begin Actor Class=PathNode Name=PathNode"$NO);
	//log("	Location=(X=" $(location.X-32)$ ",Y=" $(location.y-32)$ ",Z=" $(location.z-32)$ ")" );
	//log("	End Actor");

	log("	Begin Actor Class=" $NameString$ " Name=" $NameString$ NO);
	log("	Location=(X=" $(location.X-32)$ ",Y=" $(location.y-32)$ ",Z=" $(location.z-32)$ ")" );
	log("	Rotation=(Pitch=" $rotation.pitch$ ",Yaw=" $rotation.yaw$ ",Roll=" $rotation.roll$ ")" );
	log("	End Actor");

	Tloc.z = (DefinedClass.default.Collisionheight) - 48;

	Mesh = DefinedClass.default.Mesh;
	DrawType = DefinedClass.default.DrawType;
	Style = DefinedClass.default.Style ;
	DrawScale = DefinedClass.default.DrawScale;
	DrawType = DefinedClass.default.DrawType;
	setlocation(location + TLoc);
}

defaultproperties
{
				bStatic=False
				bStasis=False
				Style=STY_Masked
				Texture=Texture'Engine.S_Pickup'
}
 



Open a map, spawn a weapon (or place it in the editor) SELECT THE WEAPON (important), walk and shoot - path node will be spawned where you are. No, not really, a decoration will be spawned which writes the path node data.
DESELECT THE WEAPON (important), exit, access your log file:

Code
Select All
...
Log: Startup time: 2.729000 seconds
Warning: FIREWALL: Freed XP.SP2 Firewall Object
Log: Bird14 flew out of the world!
ScriptLog: Creating root window: UMenu.UMenuRootWindow
Log: 2833.0ms Loading: Package UWindowFonts
ScriptLog: Begin Map
ScriptLog: 	Begin Actor Class=PathNode Name=PathNode0
ScriptLog: 	Location=(X=3671.307129,Y=-6959.346191,Z=-1234.099976)
ScriptLog: 	End Actor
ScriptLog: 	Begin Actor Class=PathNode Name=PathNode1
ScriptLog: 	Location=(X=3812.278320,Y=-6946.039063,Z=-1234.099976)
ScriptLog: 	End Actor
ScriptLog: 	Begin Actor Class=PathNode Name=PathNode2
ScriptLog: 	Location=(X=3953.223145,Y=-6940.928711,Z=-1234.099976)
ScriptLog: 	End Actor
ScriptLog: 	Begin Actor Class=PathNode Name=PathNode3
...
...
...
ScriptLog: 	End Actor
ScriptLog: 	Begin Actor Class=PathNode Name=PathNode267
ScriptLog: 	Location=(X=-277.797699,Y=-11178.190430,Z=-2767.973877)
ScriptLog: 	End Actor
ScriptLog: 	Begin Actor Class=PathNode Name=PathNode268
ScriptLog: 	Location=(X=-305.309174,Y=-11322.550781,Z=-3436.411377)
ScriptLog: 	End Actor
ScriptLog: 	Begin Actor Class=PathNode Name=PathNode269
ScriptLog: 	Location=(X=-333.310211,Y=-11469.449219,Z=-4244.212891)
ScriptLog: 	End Actor
ScriptLog: 	Begin Actor Class=PathNode Name=PathNode270
ScriptLog: 	Location=(X=-360.612061,Y=-11611.978516,Z=-5140.097656)
ScriptLog: 	End Actor
ScriptLog: End Map
Log: appRequestExit(0) Closing by request: QUIT
Exit: Preparing to exit.
Log: Purging garbage
... 



Remove all the lines exept the ones between Begin Map and End Map, remove ScriptLog: with Find/Remove option in Notepad (whatever) so it looks like this:

Code
Select All
Begin Map
	Begin Actor Class=PathNode Name=PathNode0
	Location=(X=3671.307129,Y=-6959.346191,Z=-1234.099976)
	End Actor
	Begin Actor Class=PathNode Name=PathNode1
	Location=(X=3812.278320,Y=-6946.039063,Z=-1234.099976)
	End Actor
	Begin Actor Class=PathNode Name=PathNode2
	Location=(X=3953.223145,Y=-6940.928711,Z=-1234.099976)
	End Actor
	Begin Actor Class=PathNode Name=PathNode267
	Location=(X=-277.797699,Y=-11178.190430,Z=-2767.973877)
	End Actor
	Begin Actor Class=PathNode Name=PathNode268
	Location=(X=-305.309174,Y=-11322.550781,Z=-3436.411377)
	End Actor
	Begin Actor Class=PathNode Name=PathNode269
	Location=(X=-333.310211,Y=-11469.449219,Z=-4244.212891)
	End Actor
	Begin Actor Class=PathNode Name=PathNode270
	Location=(X=-360.612061,Y=-11611.978516,Z=-5140.097656)
	End Actor
End Map 



copy all, paste in the Editor.

Done.

I'll make a clipboard version later on.
« Last Edit: Jan 22nd, 2013 at 10:55pm by Qtit »  

Back to top
 
IP Logged
 
Qtit
Betatester
Offline


Oldunreal member

Posts: 138
Location: Hell
Joined: Dec 22nd, 2010
Gender: Male
Re: Test "Pathlogic" for me please.
Reply #17 - Jan 22nd, 2013 at 10:50pm
Print Post  
UPDATE

Now, there is a list of actors you can change in the editor after the gun is placed and spawn 32 different actors.
LMB - place an actor
RMB - selecting mode:
├→ LMB - up
└ → RMB - down
Crouch - Placing mode.

And here's the script:

Code
Select All
//=============================================================================
// PathNodeGun.
//=============================================================================
class PathNodeGun expands Weapon;

var int i;
var bool bSelecting;
var int CurrentClass;
var() Class <actor> DefinedClasses[32];

function float RateSelf( out int bUseAltMode )
{
	local float EnemyDist;

	if ( AmmoType.AmmoAmount <=0 )
		return -2;
	if ( Pawn(Owner).Enemy == None )
	{
		bUseAltMode = 0;
		return AIRating;
	}

	EnemyDist = VSize(Pawn(Owner).Enemy.Location - Owner.Location);
	bUseAltMode = int( 600 * FRand() > EnemyDist - 140 );
	return AIRating;
}

function PlayFiring()
{
	PlayAnim( 'FireOne', 0.6 );
}

function PlayAltFiring()
{
	PlayAnim( 'FireOne', 0.6 );
}

///////////////////////////////////////////////////////
state NormalFire
{
	function Projectile ProjectileFire(class<projectile> ProjClass, float ProjSpeed, bool bWarn)
	{
		local PathNodeGunNode Node;

		if(!bSelecting && DefinedClasses[CurrentClass] != none)
		{
			Node = spawn(class'PathNodeGunNode',,,owner.location,owner.rotation);
			Node.NO = i;
			Node.Placed(DefinedClasses[CurrentClass]);
			i++;
		}
	}

Begin:
	if(!bSelecting)
	{
		FinishAnim();
		PlayAnim('Still');
		Sleep(0.2);
	}
	else
	{
		CurrentClass --;
		if(CurrentClass <0)
			CurrentClass = 31;
		if(CurrentClass > 31)
			CurrentClass = 0;
		Sleep(0.1);
	}
	Finish();
}

///////////////////////////////////////////////////////////////
state AltFiring
{
	function Projectile ProjectileFire(class<projectile> ProjClass, float ProjSpeed, bool bWarn)
	{

	}

Begin:
	if(!bSelecting)
	{
		bSelecting = true;
		Sleep(0.2);
	}
	else
	{
		CurrentClass ++;
		if(CurrentClass <0)
			CurrentClass = 31;
		if(CurrentClass > 31)
			CurrentClass = 0;
		Sleep(0.1);
	}
	Finish();
}

///////////////////////////////////////////////////////////

function tick(float deltatime)
{
	if(bSelecting)
	{
		if(playerpawn(owner).bIsCrouching == true)
			bSelecting = false;
	}
}

simulated event RenderOverlays( canvas Canvas )
{
	local int s;
	super.RenderOverlays(canvas);

	canvas.Font = font'MedFont';
	canvas.DrawColor = MakeColor(255,255,255);

	canvas.SetPos(Canvas.clipX - 386, Canvas.clipY - 640 - 64 );
	canvas.DrawText("Left Click = PLACE ACTOR");
	canvas.SetPos(Canvas.clipX - 386, Canvas.clipY - 640 - 48 );
	canvas.DrawText("Right Click = SELECT MODE - LMB up, RMB down");
	canvas.SetPos(Canvas.clipX - 386, Canvas.clipY - 640 - 32 );
	canvas.DrawText("Crouch = PLACING MODE");

	canvas.SetPos(Canvas.clipX - 256, Canvas.clipY - 640 + (CurrentClass*12) );
	canvas.DrawTileClipped( texture'Editor.Bkgnd', 256, 12, 32, 32, 0, 0 );

	for(s=0;s<32;s++)
	{
		canvas.SetPos(Canvas.clipX - 256, Canvas.clipY - 640 + (s*12) );
		canvas.DrawText(s$ ": " $DefinedClasses[s]);
	}
}

function PlayIdleAnim()
{
	PlayAnim('Still');
}

function TweenDown()
{
	log("End Map");
	super.TweenDown();
}

function TweenSelect()
{
	TweenAnim('Select1',0.001);
}

function PlaySelect()
{
	log("Begin Map");

	super.PlaySelect();
}

defaultproperties
{
				DefinedClasses(0)=Class'Engine.PathNode'
				DefinedClasses(1)=Class'UnrealShare.Tree1'
				DefinedClasses(2)=Class'UnrealShare.Tree2'
				DefinedClasses(3)=Class'UnrealShare.Tree5'
				DefinedClasses(4)=Class'UnrealShare.Tree6'
				DefinedClasses(5)=Class'UnrealShare.Tree7'
				DefinedClasses(6)=Class'UnrealI.Table'
				DefinedClasses(7)=Class'UnrealShare.Chest'
				DefinedClasses(8)=Class'UnrealI.Chair'
				DefinedClasses(9)=Class'UnrealI.SkaarjTrooper'
				DefinedClasses(10)=Class'UnrealI.SkaarjGunner'
				DefinedClasses(11)=Class'UnrealI.SkaarjInfantry'
				DefinedClasses(12)=Class'UnrealI.SkaarjOfficer'
				DefinedClasses(13)=Class'UnrealI.SkaarjSniper'
				DefinedClasses(14)=Class'UnrealShare.SkaarjWarrior'
				DefinedClasses(15)=Class'UnrealI.SkaarjAssassin'
				DefinedClasses(16)=Class'UnrealI.SkaarjBerserker'
				DefinedClasses(17)=Class'UnrealI.SkaarjLord'
				DefinedClasses(18)=Class'UnrealShare.SkaarjScout'
				DefinedClasses(19)=Class'UnrealShare.Nali'
				DefinedClasses(20)=Class'UnrealI.Behemoth'
				DefinedClasses(21)=Class'UnrealShare.LesserBrute'
				DefinedClasses(22)=Class'UnrealShare.Brute'
				DefinedClasses(23)=Class'UnrealI.Titan'
				DefinedClasses(24)=Class'UnrealI.Mercenary'
				DefinedClasses(25)=Class'UnrealI.Krall'
				DefinedClasses(26)=Class'UnrealI.KrallElite'
				DefinedClasses(27)=Class'UnrealShare.Slith'
				AmmoName=Class'UnrealShare.StingerAmmo'
				PickupAmmoCount=2147483647
				bAltWarnTarget=True
				FiringSpeed=3.500000
				FireOffset=(X=12.000000,Y=-10.000000,Z=-15.000000)
				ProjectileClass=Class'UnrealShare.StingerProjectile'
				AltProjectileClass=Class'UnrealShare.StingerProjectile'
				MyDamageType="SHOT"
				shakemag=120.000000
				AIRating=0.400000
				RefireRate=0.800000
				FireSound=Sound'UnrealShare.Stinger.StingerFire'
				AltFireSound=Sound'UnrealShare.Stinger.StingerAltFire'
				SelectSound=Sound'UnrealShare.Stinger.StingerLoad'
				Misc1Sound=Sound'UnrealShare.Stinger.EndFire'
				DeathMessage="%o was perforated by %k's %w."
				AutoSwitchPriority=3
				InventoryGroup=3
				PickupMessage="You picked up the Stinger"
				ItemName="Stinger"
				PlayerViewOffset=(X=4.200000,Y=-3.000000,Z=-4.000000)
				PlayerViewMesh=LodMesh'UnrealShare.StingerM'
				PlayerViewScale=1.700000
				PickupViewMesh=LodMesh'UnrealShare.StingerPickup'
				ThirdPersonMesh=LodMesh'UnrealShare.Stinger3rd'
				PickupSound=Sound'UnrealShare.Pickups.WeaponPickup'
				Style=STY_Masked
				Texture=Texture'Engine.S_Pickup'
				Mesh=LodMesh'UnrealShare.StingerPickup'
				bNoSmooth=False
				MultiSkins(0)=Texture'Engine.S_Pickup'
				MultiSkins(1)=Texture'Engine.S_Pickup'
				MultiSkins(2)=Texture'Engine.S_Pickup'
				MultiSkins(3)=Texture'Engine.S_Pickup'
				SoundRadius=64
				SoundVolume=255
				CollisionRadius=27.000000
				CollisionHeight=8.000000
}
 



Code
Select All
//=============================================================================
// PathNodeGunNode.
//=============================================================================
class PathNodeGunNode expands Decoration;

var int NO;

function Placed(class <actor> DefinedClass)
{
	local string ClassStr, NameString;
	local int Lenght;
	local int DotPos;
	local vector TLoc;

	ClassStr = string(DefinedClass);
	Lenght = Len(ClassStr);
	DotPos = InStr(ClassStr, ".");

	NameString = Mid(ClassStr, DotPos+1);

	//log("	Begin Actor Class=PathNode Name=PathNode"$NO);
	//log("	Location=(X=" $(location.X-32)$ ",Y=" $(location.y-32)$ ",Z=" $(location.z-32)$ ")" );
	//log("	End Actor");

	log("	Begin Actor Class=" $NameString$ " Name=" $NameString$ NO);
	log("	Location=(X=" $(location.X-32)$ ",Y=" $(location.y-32)$ ",Z=" $(location.z-32)$ ")" );
	log("	Rotation=(Pitch=" $rotation.pitch$ ",Yaw=" $rotation.yaw$ ",Roll=" $rotation.roll$ ")" );
	log("	End Actor");

	Tloc.z = (DefinedClass.default.Collisionheight) - 48;

	Mesh = DefinedClass.default.Mesh;
	DrawType = DefinedClass.default.DrawType;
	Style = DefinedClass.default.Style ;
	DrawScale = DefinedClass.default.DrawScale;
	DrawType = DefinedClass.default.DrawType;
	setlocation(location + TLoc);
}

defaultproperties
{
				bStatic=False
				bStasis=False
				Style=STY_Masked
				Texture=Texture'Engine.S_Pickup'
}
 



Now when I think of it I might have used Unreal 227 specific function. I am not sure, gonna check it tomorrow as it is hellishly late already.

Cheers.
  

Back to top
 
IP Logged
 
BobIsUnreal
God Member
*****
Offline


gonna be dead soon, gg

Posts: 764
Joined: Apr 12th, 2010
Gender: Male
Re: Test "Pathlogic" for me please.
Reply #18 - Jan 23rd, 2013 at 12:12am
Print Post  
instead of doing begin actor and end actor , would it be possible to use a asci  llinebreak  or car return?
This is a interesting  method , since you could always delete the added actors in the editor later.

also easy to turn your outputed log brush code into a dynamically loaded mutator "patch" for adding  stuff serverside. since i have a script that reads brush code and outputs a mutator...
  

[REM_img]http://i.imgur.com/V3OSsDu.gif.disable[/img]http://i.imgur.com/JOu38Gs.gif
Back to top
IP Logged
 
Qtit
Betatester
Offline


Oldunreal member

Posts: 138
Location: Hell
Joined: Dec 22nd, 2010
Gender: Male
Re: Test "Pathlogic" for me please.
Reply #19 - Jan 24th, 2013 at 11:32am
Print Post  
As to replacing Begin Actor and End Actor - No idea, it's Unreal's way of writing the Clipboard and I am using it... And it seems to work just fine.
I'm not really good with online coding but I guess I can give it a try. I also am thinking about creating a Brushgun - you'd draw brush vertices in game, move edges and stuff and get the output code of the brush in the LOG file.

Anyway, back to PathNodeGun:

Unreal 227i version and Unreal Tournament version.

Now, you can edit properties for each class you have in your PathNodeGun.

Primary Fire - place an actor at the targeted location,
Secondary Fire - place an actor at the players location,
Crouch - browse through classes,
Walk - change settings.

You can:

Change rotation of a class to - no rotation, same as player, random, aligned to surface.
Fix Pitch, Roll or Yaw to zero.
Change the scale and randomize it.

WARNING: Don't change the scale of pawns as the script sets the Collision based on the scale - this is also done for pawns for begin play so their collision scale will be doubled.

Youtube video:
http://www.youtube.com/watch?v=dYT_Cp6xWCw

DOWNLOAD
  

Back to top
 
IP Logged
 
Qtit
Betatester
Offline


Oldunreal member

Posts: 138
Location: Hell
Joined: Dec 22nd, 2010
Gender: Male
Re: Test "Pathlogic" for me please.
Reply #20 - Jan 27th, 2013 at 8:49pm
Print Post  
LOL I've just made a gun which allows you to build... brushes. 227 only.
  

Back to top
 
IP Logged
 
Page Index Toggle Pages: 1 [2] 
Send TopicPrint
Bookmarks: del.icio.us Digg Facebook Google Google+ Linked in reddit StumbleUpon Twitter Yahoo