Apache Helo Vehicle Beta Test!

  • Two Factor Authentication is now available on BeyondUnreal Forums. To configure it, visit your Profile and look for the "Two Step Verification" option on the left side. We can send codes via email (may be slower) or you can set up any TOTP Authenticator app on your phone (Authy, Google Authenticator, etc) to deliver codes. It is highly recommended that you configure this to keep your account safe.

Wulff

Bola Gun fun anyone?
May 25, 2004
613
0
0
Netherlands
Eyegore said:
Care to eloborate?

F3 my boy, kill some and press F3. What damtype relates to is how your kills are credited, simply said, you kill someone in a tank, the menu(F3) says you killed someone with a tank, or you killed someone with a rocketlauncher, the menu(F3) shows you killed someone with the rocketlauncher.
 

Eyegore

=================
Sep 4, 2001
293
0
0
53
Hanover
Why so it does -- I hardly ever look at that so I never thought to check that out:)

Thanks for the tip - when the next version is released, that'll definately be on the list!!!
 

Wulff

Bola Gun fun anyone?
May 25, 2004
613
0
0
Netherlands
Eyegore said:
Why so it does -- I hardly ever look at that so I never thought to check that out:)

Thanks for the tip - when the next version is released, that'll definately be on the list!!!

You also need to change some stuff with the RocketProj too, smaller drawscale, plus a greater speed. :D
 

Eyegore

=================
Sep 4, 2001
293
0
0
53
Hanover
Yeah, looks like I need to reiterate that I'm not a coder:) I can do a little, but I'd rather spend the time modelling. McCann really helped me out a lot, but I don't want to impose for anymore help with this model - I know everybody here is pretty busy and it'd be a good experience for me to figure out. I have put the tracer issue in the known bugs and am trying to work out a solution for that (though that may never come...)

I also fixed the damtype problem. Now when you make kills you get proper Atakapa credit:)

Right now I'm really struggling to get a frickin hudoverlay to display my cockpit mesh in the first person...to no avail. I can't tell what the heck is going on with that; I have spent about 12 hours on that alone and still have no overlay. According to my logs, I'm spawning the mesh, but I can't see it. Anyway, I'll try for a few more then either ask someone to do it, or just forget about it for now and come back to it later...

At anyrate, the overlay is about the last thing I'm going to work on for this model, then I really have to work on something else - I'd really like to learn to paint the cool metal skins - but I have no idea how they do that...
 

Wulff

Bola Gun fun anyone?
May 25, 2004
613
0
0
Netherlands
Eyegore said:
Yeah, looks like I need to reiterate that I'm not a coder:) I can do a little, but I'd rather spend the time modelling. McCann really helped me out a lot, but I don't want to impose for anymore help with this model - I know everybody here is pretty busy and it'd be a good experience for me to figure out. I have put the tracer issue in the known bugs and am trying to work out a solution for that (though that may never come...)

In case you forgot, I also did that part of the code, a bit of a bodged up job, I must confess, here's a solution, smaller, and faster, that should probably make sure you'll never see the primary projectile again, just overwrite it, and recompile.. *whistles*

Code:
//=============================================================================
// rocket.
//=============================================================================
class RocketProj extends Projectile;

var bool bRing,bHitWater,bWaterStart;
var int NumExtraRockets;
var	xEmitter SmokeTrail;
var Effects Corona;
var byte FlockIndex;
var RocketProj Flock[2];

var() float	FlockRadius;
var() float	FlockStiffness;
var() float FlockMaxForce;
var() float	FlockCurlForce;
var bool bCurl;
var vector Dir;

replication
{
    reliable if ( bNetInitial && (Role == ROLE_Authority) )
        FlockIndex, bCurl;
}

simulated function Destroyed()
{
	if ( SmokeTrail != None )
		SmokeTrail.mRegen = False;
	if ( Corona != None )
		Corona.Destroy();
	Super.Destroyed();
}

simulated function PostBeginPlay()
{
	if ( Level.NetMode != NM_DedicatedServer)
	{
		SmokeTrail = Spawn(class'RocketTrailSmoke',self);
		Corona = Spawn(class'RocketCorona',self);
	}

	Dir = vector(Rotation);
	Velocity = speed * Dir;
	if (PhysicsVolume.bWaterVolume)
	{
		bHitWater = True;
		Velocity=0.6*Velocity;
	}
	Super.PostBeginPlay();
}

simulated function PostNetBeginPlay()
{
	local RocketProj R;
	local int i;
	local PlayerController PC;

	Super.PostNetBeginPlay();

	if ( FlockIndex != 0 )
	{
	    SetTimer(0.1, true);

	    // look for other rockets
	    if ( Flock[1] == None )
	    {
			ForEach DynamicActors(class'RocketProj',R)
				if ( R.FlockIndex == FlockIndex )
				{
					Flock[i] = R;
					if ( R.Flock[0] == None )
						R.Flock[0] = self;
					else if ( R.Flock[0] != self )
						R.Flock[1] = self;
					i++;
					if ( i == 2 )
						break;
				}
		}
	}
    if ( Level.NetMode == NM_DedicatedServer )
		return;
	if ( Level.bDropDetail || (Level.DetailMode == DM_Low) )
	{
		bDynamicLight = false;
		LightType = LT_None;
	}
	else
	{
		PC = Level.GetLocalPlayerController();
		if ( (Instigator != None) && (PC == Instigator.Controller) )
			return;
		if ( (PC == None) || (PC.ViewTarget == None) || (VSize(PC.ViewTarget.Location - Location) > 3000) )
		{
			bDynamicLight = false;
			LightType = LT_None;
		}
	}
}

simulated function Landed( vector HitNormal )
{
	Explode(Location,HitNormal);
}

simulated function ProcessTouch (Actor Other, Vector HitLocation)
{
	if ( (Other != instigator) && (!Other.IsA('Projectile') || Other.bProjTarget) )
		Explode(HitLocation, vector(rotation)*-1 );
}

function BlowUp(vector HitLocation)
{
	HurtRadius(Damage, DamageRadius, MyDamageType, MomentumTransfer, HitLocation );
	MakeNoise(1.0);
}

simulated function Explode(vector HitLocation, vector HitNormal)
{
	local PlayerController PC;

	PlaySound(sound'WeaponSounds.BExplosion3',,2.5*TransientSoundVolume);
    if ( EffectIsRelevant(Location,false) )
    {
    	Spawn(class'NewExplosionA',,,HitLocation + HitNormal*20,rotator(HitNormal));
    	PC = Level.GetLocalPlayerController();
		if ( (PC.ViewTarget != None) && VSize(PC.ViewTarget.Location - Location) < 5000 )
	        Spawn(class'ExplosionCrap',,, HitLocation + HitNormal*20, rotator(HitNormal));
//		if ( (ExplosionDecal != None) && (Level.NetMode != NM_DedicatedServer) )
//			Spawn(ExplosionDecal,self,,Location, rotator(-HitNormal));
    }

	BlowUp(HitLocation);
	Destroy();
}

simulated function Timer()
{
    local vector ForceDir, CurlDir;
    local float ForceMag;
    local int i;

	Velocity =  Default.Speed * Normal(Dir * 0.5 * Default.Speed + Velocity);

	// Work out force between flock to add madness
	for(i=0; i<2; i++)
	{
		if(Flock[i] == None)
			continue;

		// Attract if distance between rockets is over 2*FlockRadius, repulse if below.
		ForceDir = Flock[i].Location - Location;
		ForceMag = FlockStiffness * ( (2 * FlockRadius) - VSize(ForceDir) );
		Acceleration = Normal(ForceDir) * Min(ForceMag, FlockMaxForce);

		// Vector 'curl'
		CurlDir = Flock[i].Velocity Cross ForceDir;
		if ( bCurl == Flock[i].bCurl )
			Acceleration += Normal(CurlDir) * FlockCurlForce;
		else
			Acceleration -= Normal(CurlDir) * FlockCurlForce;
	}
}

defaultproperties
{
     FlockRadius=12.000000
     FlockStiffness=-40.000000
     FlockMaxForce=600.000000
     FlockCurlForce=450.000000
     Speed=500000.000000
     MaxSpeed=500000.000000
     Damage=90.000000
     MomentumTransfer=50000.000000
     MyDamageType=XWeapons.DamTypeRocket
     ExplosionDecal=XEffects.RocketMark
     LightType=LT_Steady
     LightEffect=LE_QuadraticNonIncidence
     LightHue=28
     LightBrightness=255.000000
     LightRadius=5.000000
     DrawType=DT_StaticMesh
     StaticMesh=WeaponStaticMesh.RocketProj
     CullDistance=7500.000000
     bDynamicLight=True
     AmbientSound=WeaponSounds.RocketLauncher.RocketLauncherProjectile
     LifeSpan=8.000000
     AmbientGlow=96
     FluidSurfaceShootStrengthMod=10.000000
     SoundVolume=255
     SoundRadius=100.000000
     bFixedRotationDir=True
     RotationRate=(Roll=50000)
     DesiredRotation=(Roll=30000)
     ForceType=FT_Constant
     ForceRadius=100.000000
     DrawScale=0.00000001
     ForceScale=5.000000
}
 

Eyegore

=================
Sep 4, 2001
293
0
0
53
Hanover
Thanks - I really wasn't expecting anything to happen. I'm just glad people like it enough to even bother to play with it.