Need help with making a script

Discussions about Coding and Scripting
Post Reply
new to u script
Posts: 1
Joined: Sat Jul 02, 2016 1:09 am

Need help with making a script

Post by new to u script »

Hello,

I want to make a Pick Up Item, something similar as the SpeedRelic or the Xpickup DoubleSpeed.

This item should be placeable in the unreal editor as a TournamentPickup actor.

What it should do when picked up:
- Change movespeed values
- Leave a trail behind

I want this item to be configurable in the editor with a few (8 if correct) variables:
- Time lenght before the effects end (Example: -1=infinite, 200=200 seconds - To put in a own value)
- A choice between Trail colors (Example: Red, Blue, Yellow, Green or Mix - A choice between a few options)
- Changing the movement stats values (Example: Aircontrol = 0.80, JumpZ=1.5 - To put in a own value)

I'm new to Uscripting, this is what i got now:

Main script:

Code: Select all

class mpSpeedRelic expands TournamentPickup;

state Activated
{
	// Alt player movement stats

	        Pawn(Owner).AirControl = 0.65;
        	Pawn(Owner).JumpZ *= 1.0;
        	Pawn(Owner).GroundSpeed *= 1.5;
        	Pawn(Owner).WaterSpeed *= 1.5;
        	Pawn(Owner).AirSpeed *= 1.5;
        	Pawn(Owner).Acceleration *= 1.5;

var(mpSpeedRelic) mpSpeedTrailColor

{
	GetAxes(Pawn(Owner).Rotation, X, Y, Z);
	FXLoc1 = Pawn(Owner).Location - (Pawn(Owner).CollisionHeight-8)*Z + (Pawn(Owner).CollisionRadius-9)*Y;
	FXLoc2 = Pawn(Owner).Location - (Pawn(Owner).CollisionHeight-8)*Z - (Pawn(Owner).CollisionRadius-9)*Y;
				
	if (mpSpeedTrailColor=1)
	{
	Spawn(Class'mpSpeedFX',,, FXLoc1);
	Spawn(Class'mpSpeedFX',,, FXLoc2);
	}
	else if (mpSpeedTrailColor=2)
	{
	Spawn(Class'mpSpeedFXRed',,, FXLoc1);
	Spawn(Class'mpSpeedFXRed',,, FXLoc2);
	}
	else if (mpSpeedTrailColor=3)
	{
	Spawn(Class'mpSpeedFXBlue',,, FXLoc1);
	Spawn(Class'mpSpeedFXBlue',,, FXLoc2);
	}
	else if (mpSpeedTrailColor=4)
	{
	Spawn(Class'mpSpeedFXGreen',,, FXLoc1);
	Spawn(Class'mpSpeedFXGreen',,, FXLoc2);
	}
	else (mpSpeedTrailColor=5)
	{
	Spawn(Class'mpSpeedFXMix',,, FXLoc1);
	Spawn(Class'mpSpeedFXMix',,, FXLoc2);
Main color script (Yellow)

Code: Select all

class mpSpeedFX expands Effects;

//Effect textures
#exec TEXTURE IMPORT NAME=SpdPartY01 FILE=EFFECTS\SpdPartY01.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartY02 FILE=EFFECTS\SpdPartY02.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartY03 FILE=EFFECTS\SpdPartY03.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartY04 FILE=EFFECTS\SpdPartY04.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartY05 FILE=EFFECTS\SpdPartY05.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartY06 FILE=EFFECTS\SpdPartY06.bmp GROUP=Effects FLAGS=2

var() texture RandParticle[6];

simulated function PostBeginPlay()
{
	Texture = RandParticle[Min(Rand(6),5)];
	Velocity = vect(0,0,32);
}

simulated function Tick(float DeltaTime)
{
	if (LifeSpan > 0.5)
		ScaleGlow = (0.7 - LifeSpan) * Default.ScaleGlow / 0.2;
	else
		ScaleGlow = LifeSpan * Default.ScaleGlow / 0.5;
}

defaultproperties
{
	DrawType=DT_Sprite
	Texture=SpdPartY01
	Physics=PHYS_Projectile
	RemoteRole=ROLE_SimulatedProxy
	DrawScale=1.000000
	ScaleGlow=1.500000
	Style=STY_Translucent
	LifeSpan=0.700000
	RandParticle(0)=SpdPartY01
	RandParticle(1)=SpdPartY02
	RandParticle(2)=SpdPartY03
	RandParticle(3)=SpdPartY04
	RandParticle(4)=SpdPartY05
	RandParticle(5)=SpdPartY06
}
Red color script:

Code: Select all

class mpSpeedFXRed expands mpSpeedFX;

//Effect textures
#exec TEXTURE IMPORT NAME=SpdPartR01 FILE=EFFECTS\SpdPartR01.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartR02 FILE=EFFECTS\SpdPartR02.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartR03 FILE=EFFECTS\SpdPartR03.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartR04 FILE=EFFECTS\SpdPartR04.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartR05 FILE=EFFECTS\SpdPartR05.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartR06 FILE=EFFECTS\SpdPartR06.bmp GROUP=Effects FLAGS=2

defaultproperties
{
	Texture=SpdPartR01
	RandParticle(0)=SpdPartR01
	RandParticle(1)=SpdPartR02
	RandParticle(2)=SpdPartR03
	RandParticle(3)=SpdPartR04
	RandParticle(4)=SpdPartR05
	RandParticle(5)=SpdPartR06
}
Mix color script:

Code: Select all

class mpSpeedFXMix expands mpSpeedFX;

//Effect textures
#exec TEXTURE IMPORT NAME=SpdPartB01 FILE=EFFECTS\SpdPartB01.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartB02 FILE=EFFECTS\SpdPartB02.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartB03 FILE=EFFECTS\SpdPartB03.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartB04 FILE=EFFECTS\SpdPartB04.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartB05 FILE=EFFECTS\SpdPartB05.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartB06 FILE=EFFECTS\SpdPartB06.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartR01 FILE=EFFECTS\SpdPartR01.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartR02 FILE=EFFECTS\SpdPartR02.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartR03 FILE=EFFECTS\SpdPartR03.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartR04 FILE=EFFECTS\SpdPartR04.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartR05 FILE=EFFECTS\SpdPartR05.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartR06 FILE=EFFECTS\SpdPartR06.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartG01 FILE=EFFECTS\SpdPartG01.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartG02 FILE=EFFECTS\SpdPartG02.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartG03 FILE=EFFECTS\SpdPartG03.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartG04 FILE=EFFECTS\SpdPartG04.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartG05 FILE=EFFECTS\SpdPartG05.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartG06 FILE=EFFECTS\SpdPartG06.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartY01 FILE=EFFECTS\SpdPartY01.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartY02 FILE=EFFECTS\SpdPartY02.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartY03 FILE=EFFECTS\SpdPartY03.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartY04 FILE=EFFECTS\SpdPartY04.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartY05 FILE=EFFECTS\SpdPartY05.bmp GROUP=Effects FLAGS=2
#exec TEXTURE IMPORT NAME=SpdPartY06 FILE=EFFECTS\SpdPartY06.bmp GROUP=Effects FLAGS=2

defaultproperties
{
	Texture=SpdPartB01
	RandParticle(0)=SpdPartB01
	RandParticle(1)=SpdPartG01
	RandParticle(2)=SpdPartR01
	RandParticle(3)=SpdPartY01
	RandParticle(4)=SpdPartB02
	RandParticle(5)=SpdPartG02
	RandParticle(6)=SpdPartR02
	RandParticle(7)=SpdPartY02
	RandParticle(8)=SpdPartB03
	RandParticle(9)=SpdPartG03
	RandParticle(10)=SpdPartR03
	RandParticle(11)=SpdPartY03
	RandParticle(12)=SpdPartB04
	RandParticle(13)=SpdPartG04
	RandParticle(14)=SpdPartR04
	RandParticle(15)=SpdPartY04
	RandParticle(16)=SpdPartB05
	RandParticle(17)=SpdPartG05
	RandParticle(18)=SpdPartR05
	RandParticle(19)=SpdPartY05
	RandParticle(20)=SpdPartB06
	RandParticle(21)=SpdPartG06
	RandParticle(22)=SpdPartR06
	RandParticle(23)=SpdPartY06
}
I guess I went in many wrong directions. I'm not planning to get really experienced at Uscripting, so it would be great if someone is able to make this for me. :)
Nice to see people are still active with stuff like this.
MrLoathsome
Inhuman
Posts: 958
Joined: Wed Mar 31, 2010 9:02 pm
Personal rank: I am quite rank.
Location: MrLoathsome fell out of the world!

Re: Need help with making a script

Post by MrLoathsome »

Just took a quick glance at that, and it looks like you have a good start.

I think the casts to Pawn(Owner) in your FXLoc1 and FXLoc2 lines are unnecessary.
Owner should have Location and Collision values.

Same with the stuff in the // Alt player movement stats
section there in your state.
That should be in a BeginState() function in your state there to compile and maybe work.
If Owner is not a Pawn, something has gone horribly wrong. :loool:
blarg
Post Reply