Cogito, ergo sum

Legacy:SpecialEvent

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search
UT :: Actor >> Triggers (UT) >> SpecialEvent

Replaced in UT2003 by the ScriptedTrigger.

The SpecialEvent actor is a sort of mixed bag of odds and ends. It is essentially a triggerable actor, but what it actually does on being triggered depends on the Object -> InitialState property has been set to.

Rather than list properties, it's probably simpler to list the different states, and for each state which properties are actually relevant.

State PlayerPath[edit]

From the script: Sends the player on a spline path through the level.

These spline paths are created using the InterpolationPoint Actors. Take CityIntro for example.

(experimental layout)

SpecialEvent Events -> Tag 'intro'
Object -> InitialState PlayerPath
Trigger Events -> Event 'intro'

There is one SpecialEvent with these options:

  • Events:
    • Event: Path
    • Tag: Intro
  • Object:
    • InitialState: PlayerPath

Now to activate this Cinematic Sequence. There is need of a regular trigger, placed right at the position where the player spawns. This trigger has the following settings:

  • Events:
    • Event: Intro

That should do it ;)

State PlayAmbientSoundEffect[edit]

This causes the player to emit the ambient sound given in SpecialEvent's AmbientSound until player's AmbientSound property is reset to None. The value of SpecialEvent's Sound is ignored in this case.

State PlayersPlaySoundEffect[edit]

From the script: Play a sound.

This state can be used when you want to play sound effects which you want to be heard by all players.

Note: The sounds played here might cut off player speech.

State PlaySoundEffect[edit]

From the script: Play a sound.

A sound is played at the location of the SpecialEvent.

State KillInstigator[edit]

From the script: Kill the instigator who caused this event.

This kills the pawn that triggers it. This is useful for producing custom death messages at particular spots on a map where using a Zone with kill settings is inconvenient. Set the following properties:

  • DamageType = SpecialDamage
  • DamageString = %o was hacked. %k (for example)

The string is parsed somewhere else in the code – following the chain of code to that point is one of UnrealScript's famous wild goose chases.

  •  %o is the player who is being killed
  •  %k is the killer – in this case, this is nobody so the %k token will removed from the string with no replacement.

For some arcane reason, the %k is essential. If you omit it, it will not work. See Message Placeholder for more on this.

DamageString is not used, if the SpecialEvent is triggered by a Dispatcher.

State DamageInstigator[edit]

From the script: Damage the instigator who caused this event.

This causes the player who triggers it a certain amount of damage. Note that this amount seems to change according to bot skill, and that setting a custom death message should the player be killed by taking this damage does not seem to be possible.

(Also note that the Damage property can be set to a negative number, thus causing the player to be healed by the SpecialEvent. This acts as normal health does, and will not allow a player's health to be increased above 100.)

Prize of 100 guineas to a mapper who can make this (the death message) work... with proof! ;-)

Darthlore: I solved it just by bashing at for five miniutes on a level i am working on :) at first i had tryed using %o and had read above about %k being nessary but ended up with messages like

"%o killed himself trying to jump over the labyrinth wall !! %k"

"Bob killed himself trying to jump over the labyrinth wall !! Bob"

since the victim did kill him self

which of course doesn't look right and no matter what way you try to reright it it still does not look right using the players name twice in the message

I tried using double %o but got no message

then tried double %k and got

"%k killed himself trying to jump over the labyrinth wall !! %k"

"Bob killed himself trying to jump over the labyrinth wall !! %k"

so i got rid of the end %k to get my message

Also DamageType=SpecialDamage

Copy and paste this in to your level

Begin Map
Begin Actor Class=SpecialEvent Name=SpecialEvent0
    Damage=25
    DamageType=SpecialDamage
    DamageString="%k killed himself trying to jump over the labyrinth wall !!"
    bDynamicLight=True
    InitialState=DamageInstigator
    Level=LevelInfo'MyLevel.LevelInfo0'
    Tag=Wall
    Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=513,ZoneNumber=5)
    Location=(X=-128.000000,Y=-128.000000,Z=0.000000)
    OldLocation=(X=-128.000000,Y=-128.000000,Z=0.000000)
    bSelected=True
    Name=SpecialEvent0
End Actor
Begin Actor Class=Trigger Name=Trigger0
    bDynamicLight=True
    Level=LevelInfo'MyLevel.LevelInfo0'
    Tag=Trigger
    Event=Wall
    Region=(Zone=LevelInfo'MyLevel.LevelInfo0',iLeaf=513,ZoneNumber=5)
    Location=(X=128.000000,Y=128.000000,Z=0.000000)
    OldLocation=(X=128.000000,Y=128.000000,Z=0.000000)
    bSelected=True
    CollisionHeight=128.000000
    Name=Trigger0
End Actor
End Map

Category:Legacy Refactor Me

State DisplayMessage[edit]

From the script: Just display the message.

This can be set to either display to all players or just the player who instigated the event.

Related Topics[edit]