I don't need to test my programs. I have an error-correcting modem.

Difference between revisions of "Legacy:SpecialEvent"

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search
m
m (State KillInstigator)
(One intermediate revision by one other user not shown)
Line 78: Line 78:
  
 
For some arcane reason, the %k is essential. If you omit it, it will not work. See [[Legacy:Message Placeholder|Message Placeholder]] for more on this.
 
For some arcane reason, the %k is essential. If you omit it, it will not work. See [[Legacy:Message Placeholder|Message Placeholder]] for more on this.
 +
 +
''DamageString'' is not used, if the SpecialEvent is triggered by a [[Legacy:Dispatcher|Dispatcher]].
  
 
==State DamageInstigator ==
 
==State DamageInstigator ==
Line 98: Line 100:
  
 
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
 
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
 
(u coulda tried something like bob killed himself by blah blah , haha u suck bob)
 
  
 
I tried using double %o but got no message
 
I tried using double %o but got no message
Line 115: Line 115:
 
Copy and paste this in to your level
 
Copy and paste this in to your level
  
 +
<uscript>
 
Begin Map
 
Begin Map
 
 
Begin Actor Class=SpecialEvent Name=SpecialEvent0
 
Begin Actor Class=SpecialEvent Name=SpecialEvent0
 
     Damage=25
 
     Damage=25
Line 130: Line 130:
 
     bSelected=True
 
     bSelected=True
 
     Name=SpecialEvent0
 
     Name=SpecialEvent0
 
 
End Actor
 
End Actor
 
 
Begin Actor Class=Trigger Name=Trigger0
 
Begin Actor Class=Trigger Name=Trigger0
 
     bDynamicLight=True
 
     bDynamicLight=True
Line 144: Line 142:
 
     CollisionHeight=128.000000
 
     CollisionHeight=128.000000
 
     Name=Trigger0
 
     Name=Trigger0
 
 
End Actor
 
End Actor
 +
End Map
 +
</uscript>
  
End Map
+
[[:Category:Legacy Refactor Me]]
  
 
==State DisplayMessage ==
 
==State DisplayMessage ==
Line 162: Line 161:
 
** [[Legacy:Lightning Storm|Lightning Storm]] tutorial
 
** [[Legacy:Lightning Storm|Lightning Storm]] tutorial
 
** [[Legacy:Landmines (UT)|Landmines (UT)]] tutorial
 
** [[Legacy:Landmines (UT)|Landmines (UT)]] tutorial
 +
[[Category:Legacy Refactor Me|{{PAGENAME}}]]

Revision as of 11:40, 11 January 2015

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

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

From the script: Place Ambient sound effect on player

This causes the player to emit an ambient sound until his AmbientSound property is reset to None.

State PlayersPlaySoundEffect

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

From the script: Play a sound.

A sound is played at the location of the SpecialEvent.

State KillInstigator

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

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

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