Switching Titans' projectiles...

Tutorials and discussions about Mapping - Introduce your own ones!
Post Reply
User avatar
EvilGrins
Godlike
Posts: 9668
Joined: Thu Jun 30, 2011 8:12 pm
Personal rank: God of Fudge
Location: Palo Alto, CA
Contact:

Switching Titans' projectiles...

Post by EvilGrins »

...as I can't figure this out.

Initially I thought it would be cool to use monsters as projectiles, swapping the Queen's usual fire with pupae for example, but apparently that's not doable. Typically whenever you place a monster directly on a map you can alter what it shoots, and I do that all the time.

Monsters were not meant to be projectiles, I suppose.

Unfortunately, it doesn't appear to be something you can alter in Titans. Which is to say, they have the same edit field (under Combat) for that... but even if you switch that Titans continue to throw boulders. Which is annoying as Titans are immune to boulders thrown by other Titans.

This is an issue with UTDMT too...
Image

Short of creating a special Titan for a map, is there a workaround for this?
http://unreal-games.livejournal.com/
Image
medor wrote:Replace Skaarj with EvilGrins :mrgreen:
Smilies · viewtopic.php?f=8&t=13758
User avatar
sektor2111
Godlike
Posts: 6403
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Switching Titans' projectiles...

Post by sektor2111 »

EvilGrins wrote: Wed Jan 08, 2020 4:12 am This is an issue with UTDMT too...
With your UTDMT more exactly, I told for times that Titans have their problems and UTDMT it's a copy without actually to be wrapped and monster-ready even if is a monster after all - HARD-CODED non-configurable - I wish you luck with firing monsters or firing sounds or lights or whatever lousy things, playing as Mover etc, etc. As for damaging problem I read somewhere in a script that he tried harder to figure how to setup ReduceDamage in Team-Games when the problem it's in other location: PROJECTILE itself fired by Titan.

Code: Select all

.......
function SpawnRock()
{
	local Projectile Proj;
	local vector X,Y,Z, projStart;
	GetAxes(Rotation,X,Y,Z);
	
	MakeNoise(1.0);
	if (FRand() < 0.4)
	{
		projStart = Location + CollisionRadius * X + 0.4 * CollisionHeight * Z;
		Proj = spawn(class 'Boulder1' ,self,'',projStart,AdjustAim(1000, projStart, 400, false, true)); //AHAH, good luck with configuration
		if( Proj != None )
			Proj.SetPhysics(PHYS_Projectile);
		return;
	}
	
	projStart = Location + CollisionRadius * X + 0.4 * CollisionHeight * Z;
	Proj = spawn(class 'BigRock' ,self,'',projStart,AdjustAim(1000, projStart, 400, false, true)); //The same
	if( Proj != None )
		Proj.SetPhysics(PHYS_Projectile);

	projStart = Location + CollisionRadius * X -  40 * Y + 0.4 * CollisionHeight * Z;
	Proj = spawn(class 'BigRock' ,self,'',projStart,AdjustAim(1000, projStart, 400, true, true)); //The same
	if( Proj != None )
		Proj.SetPhysics(PHYS_Projectile);

	if (FRand() < 0.2 * skill)
	{
		projStart = Location + CollisionRadius * X + 40 * Y + 0.4 * CollisionHeight * Z;
		Proj = spawn(class 'BigRock' ,self,'',projStart,AdjustAim(1000, projStart, 2000, false, true)); //And... similar
		if( Proj != None )
			Proj.SetPhysics(PHYS_Projectile);
	}
}
...........
Here is code - NOTHING configurable
And the "awesome" rock:

Code: Select all

	function ProcessTouch (Actor Other, Vector HitLocation)
	{
		local int hitdamage;

		if ( Other == instigator )
			return;
		PlaySound(ImpactSound, SLOT_Interact, DrawScale/10);	

		if ( !Other.IsA('BigRock') && !Other.IsA('Titan') )
		{
			Hitdamage = Damage * 0.00002 * (DrawScale**3) * speed;
			if ( (HitDamage > 6) && (speed > 150) )
				Other.TakeDamage(hitdamage, instigator,HitLocation,
					(35000.0 * Normal(Velocity)), 'crushed' );
		}
	}
ALL, but ALL child BigRocks and Titans from any kind are EXCEPTED from taking damage.
Post Reply