...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...
Short of creating a special Titan for a map, is there a workaround for this?
Switching Titans' projectiles...
- 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...
http://unreal-games.livejournal.com/
Smilies · viewtopic.php?f=8&t=13758medor wrote:Replace Skaarj with EvilGrins
- sektor2111
- Godlike
- Posts: 6403
- Joined: Sun May 09, 2010 6:15 pm
- Location: On the roof.
Re: Switching Titans' projectiles...
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);
}
}
...........
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' );
}
}