Okay, I am already done making updated version of MPCrashSite1 from ronald's conversion, I got rid of most bsp bugs and homs there, since he added some geometry like got rid of the mover platforms that are not there at harder difficulties (at the molten section before pipe entrance) and instead made them solid additive brushes, but that change also made the map more bsp unstable at least in HOMs.
I added back the proper UpakHealths too, making them fall out on the floor like in original and also made it fixed for online play so they will fall down too and not appear to be stuck in air (although that was just clientside bug online).
However....there is one issue, the healths will not respawn, because of the basechange and bump functions. I don't know why that is, don't ask me...but they don't respawn, any idea what really conflicts with the respawn in there?
The original code is following:
I added back the proper UpakHealths too, making them fall out on the floor like in original and also made it fixed for online play so they will fall down too and not appear to be stuck in air (although that was just clientside bug online).
However....there is one issue, the healths will not respawn, because of the basechange and bump functions. I don't know why that is, don't ask me...but they don't respawn, any idea what really conflicts with the respawn in there?
The original code is following:
Code:
function Bump( actor Other )
{
local float speed, oldZ;
if( ( Other != None && !Other.IsA( 'Pawn' ) ) )
{
oldZ = Velocity.Z;
speed = VSize(Other.Velocity);
Velocity = Other.Velocity * FMin(120.0, 20 + speed)/speed;
if ( Physics == PHYS_None ) {
Velocity.Z = 25;
}
else
Velocity.Z = oldZ;
SetPhysics(PHYS_Falling);
}
}
singular function BaseChange()
{
local float decorMass, decorMass2;
decormass= FMax(1, Mass);
if( Velocity.Z < -500 )
TakeDamage( (1-Velocity.Z/30),Instigator,Location,vect(0,0,0) , 'crushed');
if( (base == None) && (Physics == PHYS_None) )
SetPhysics(PHYS_Falling);
else if( (Pawn(base) != None) && (Pawn(Base).CarriedDecoration != self) )
{
Base.TakeDamage( (1-Velocity.Z/400)* decormass/Base.Mass,Instigator,Location,0.5 * Velocity , 'crushed');
Velocity.Z = 100;
if (FRand() < 0.5)
Velocity.X += 70;
else
Velocity.Y += 70;
SetPhysics(PHYS_Falling);
}
else if( Decoration(Base)!=None && Velocity.Z<-500 )
{
decorMass2 = FMax(Decoration(Base).Mass, 1);
Base.TakeDamage((1 - decorMass/decorMass2 * Velocity.Z/30), Instigator, Location, 0.2 * Velocity, 'stomped');
Velocity.Z = 100;
if (FRand() < 0.5)
Velocity.X += 70;
else
Velocity.Y += 70;
SetPhysics(PHYS_Falling);
}
else
{
SetPhysics( PHYS_Falling );
instigator = None;
}
}
Last edited: