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);
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
}
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
}
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
}
Nice to see people are still active with stuff like this.