| Home Page | Recent Changes

RandomSpawnPoint

UT :: Actor (UT) >> NavigationPoint (UT) >> RandomSpawnPoint (custom)

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!


Category Custom Class

Category Class (UT)

The Unreal Engine Documentation Site

Wiki Community

Topic Categories

Recent Changes

Offline Wiki

Unreal Engine

Console Commands

Terminology

FAQs

Help Desk

Mapping Topics

Mapping Lessons

UnrealEd Interface

UnrealScript Topics

UnrealScript Lessons

Making Mods

Class Tree

Modeling Topics

Chongqing Page

Log In