Can anyone make something or teach me how to make the ripper blades bounce forever? I'll feed you cookies if you help.
NumWallHits++;
SetTimer(0, False);
MakeNoise(0.3);
if ( NumWallHits > 5 )
Destroy();
Velocity -= 2 * ( Velocity dot HitNormal) * HitNormal;
SetRoll(Velocity);
SetTimer(0, False);
MakeNoise(0.3);
Velocity -= 2 * ( Velocity dot HitNormal) * HitNormal;
SetRoll(Velocity);
LifeSpan=6.000000
LifeSpan=6000000
function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
{
if ( Other.IsA('ripper') && !Other.IsA('MyRipper')) //Dont forget or you'll get an endless loop
{
ReplaceWith(Other, "MyPackage.MyRipper");
return false;
}
Return True; //Don't forget, or the map can't spawn the actor...
}
Originally posted by papapishu
You know, a LifeSpan of zero means forever, so that would be the ultimate.
Besides you spare your fingertips when you don't have to type in seven digits
You could build it right into a mutator very easy:
I pressume you know the basics...
Make a file for the weapon, subclassing the ripper and make the suggested changes, make a subclass of the ripperblade and make your ripper use it as it's projectile, then make a class subclassing Mutator and make a classic switcheroo:
Code:function bool CheckReplacement(Actor Other, out byte bSuperRelevant) { if ( Other.IsA('ripper') && !Other.IsA('MyRipper')) //Dont forget or you'll get an endless loop { ReplaceWith(Other, "MyPackage.MyRipper"); return false; } Return True; //Don't forget, or the map can't spawn the actor... }
If your ripper has the correct settings, this mutator will change all rippers into "MyRipper" that will bounce until the end of time...
Originally posted by papapishu
----Write code-----
class myripperarena expands Arena;
defaultproperties
{
WeaponName=myripper
AmmoName=Bladehopper
WeaponString="myripper.myripper"
AmmoString="botpack.bladehopper"
DefaultWeapon=Class'myripper.myripper'
}
class myripper extends ripper;
defaultproperties
{
ProjectileClass=Class'MyPackage.MyRipperBlade'
}
class MyRipperBlade extends Razor2;
defaultproperties
{
LifeSpan=0.000000
}
class MyRipperMUT extend Mutator; //Mutator is, well, a mutator...
function bool CheckReplacement(Actor Other, out byte bSuperRelevant) //The lovely "switch-stuff-if-you-find-it" function
{
If (Other.IsA('ripper') && !Other.IsA('MyRipper'))
{
ReplaceWith(Other,"MyPackage.MyRipper");
Return False;
}
Return True;
}
[Public]
Object=(Name=MyPackage.MyRipperMUT,Class=Class,MetaClass=Engine.Mutator,Description="Eternal Ripper, Makes the razorblades bounce till the end if time...")