I search for solutions in this order: Past Code, Unreal Source, Wiki, BUF, groups.yahoo, google, screaming at monitor. – RegularX
Legacy:RandomSpawnPoint
From Unreal Wiki, The Unreal Engine Documentation Site
This spawnpoint is used in conjunction with the RandomCreatureFactory
//=============================================================================
// RandomSpawnpoint.
// Used by RandomCreatureFactories for spawning monsters
// Created by Naked Monster, updated by Timmypowergammer.
//=============================================================================
class RandomSpawnPoint extends SpawnPoint;
var ThingFactory factory;
function bool Create()
{
local pawn newcreature;
local RandomCreatureFactory pawnFactory;
local pawn creature;
local actor temp, A;
local rotator newRot;
if ( factory.bCovert && PlayerCanSeeMe() ) //make sure no player can see this
return false;
temp = Spawn(factory.prototype);
if (temp == None)
return false;
newRot = rot(0,0,0);
newRot.yaw = rotation.yaw;
temp.SetRotation(newRot);
temp.event = factory.tag;
temp.tag = factory.itemtag;
newcreature = pawn(temp);
if( Event != '' )
foreach AllActors( class 'Actor', A, Event )
A.Trigger( Self, Instigator );
if ( factory.bFalling )
temp.SetPhysics(PHYS_Falling);
if (newcreature == None)
return true;
pawnFactory = RandomCreatureFactory(factory);
if (pawnFactory == None)
{
log("Error - use creature factory to spawn pawns");
return true;
}
if (ScriptedPawn(newcreature) != None)
{
ScriptedPawn(newcreature).Orders = pawnFactory.Orders;
ScriptedPawn(newcreature).OrderTag = pawnFactory.OrderTag;
ScriptedPawn(newcreature).SetEnemy(pawnFactory.enemy);
ScriptedPawn(newcreature).Alarmtag = pawnFactory.AlarmTag;
ScriptedPawn(newcreature).SetOwner(pawnFactory);
}
else
newcreature.enemy = pawnFactory.enemy;
if (newcreature.enemy != None)
newcreature.lastseenpos = newcreature.enemy.location;
newcreature.SetMovementPhysics();
if ( newcreature.Physics == PHYS_Walking)
newcreature.SetPhysics(PHYS_Falling);
return true;
}
Naked_Monster: It's working now!
