| Home Page | Recent Changes

ControlPoint

UT :: Actor (UT) >> NavigationPoint (UT) >> ControlPoint

This type of actor is used as the most GameRelevant actor in the Domination gametype. There are various properties of ControlPoints that mappers can take advantage of.

Properties

PointName
This variable is used to define the name of the ControlPoint. For example, the ControlPoint names in DOM-Sesmar are "Blue Ankh", "Red Ankh", and "Hall of Pillars".
bSelfDisplayed
If a ControlPoint is used in a gametype other than Domination, then this is used to keep the point from being hidden. Even when the ControlPoint is not hidden, it will still have no functionality outside of a Domination gametype, but it will still change color and shape according to the team of the last player to touch it.
bScoreReady
If a ControlPoint is held by one team long enough, this flag is set and the player and team owning this ControlPoint get points added to their score.
ControlSound
When the ControlPoint is taken by another team, it makes this sound.
RedEvent, BlueEvent, GreenEvent, GoldEvent
When this ControlPoint is taken by a member of another team, it will trigger one of these events, according to which team just took the ControlPoint. (Doesn't work; explained below.)

Discussion

Ticalion I cant seem to get anything to happen with the RedEvent, BlueEvent, GreenEvent, GoldEvent properties, has anyone else had any luck in using this as a trigger??

Techno_JF: Why didn't I see this before? Look at the code for this actor, just at the end of the UpdateStatus function:

    if ( E != '' )
        foreach AllActors(class'Actor', A, E )
         Trigger(self, Controller);
}

Earlier in this function, E was set to be whichever of RedEvent, etc. applied, and then the mesh and lighting changed to reflect the team of the point's new controller. However, it's this last set of statements that doesn't work, because the ControlPoint is trying to trigger itself instead of another actor. For it to work properly, it should have been written like this:

    if ( E != '' )
        foreach AllActors(class'Actor', A, E )
         A.Trigger(self, Controller);
}

So somebody at Epic missed a letter and a period, and an entire mapping feature is never realized. Let this be a lesson to others who write code for the Unreal engine!

Related Topics


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