Cogito, ergo sum
User:Wormbo/OnslaughtSpecials
Contents
- 1 General usage considerations
- 2 Credits
- 3 Class descriptions
- 3.1 ACTION_DamagePowerNode
- 3.2 ACTION_IfNodeShielded
- 3.3 ACTION_IfSidesSwapped
- 3.4 ForcedDirVolume
- 3.5 NodeWeaponLocker
- 3.6 ONSCountdownNode
- 3.7 ONSPowerCoreSpecial
- 3.8 ONSPowerlinkOfficialSetupSupplement
- 3.9 ONSPowerNodeSpecial
- 3.9.1 Property group 'CountdownAnnouncements'
- 3.9.2 Property group 'CountdownEvents'
- 3.9.3 Property group 'ONSPowerNodeSpecial'
- 3.9.3.1 bCatchLinkBeamEnd
- 3.9.3.2 bNodeBeamAlwaysUpright
- 3.9.3.3 bSphereBlocksPlayers
- 3.9.3.4 bUntriggerActivationEvent
- 3.9.3.5 ForcedCloseActors
- 3.9.3.6 ForcedCloseActorTags
- 3.9.3.7 IsolatedDamagePerSec
- 3.9.3.8 LinkHealMultiplier
- 3.9.3.9 NodeHealth
- 3.9.3.10 ShieldedHealingPerSec
- 3.9.3.11 SphereHeight
- 3.10 ONSWithTranslocator
- 3.11 TriggeredWeaponBase
- 3.12 xTeamMaterialSwitch
- 3.13 xTeamMonitor
- 3.14 Structs
The Onslaught Specials package contains some improved versions of Onslaught-specific actors. Below is a list of placeable actors and their new properties.
See this thread at the Omnip)o(tentS Forums for download and an example map.
General usage considerations
I recommend embedding the package in your map via the command load file=OnslaughtSpecials2.u package=myLevel
at the UnrealEd console. Make sure it is not yet loaded when you use that command.
For consistency you should use ONSPowerCoreSpecial and ONSPowerNodeSpecial for either all or none of your power cores and nodes. The other classes have been generalized as much as possible, so they will also work correctly without the special power cores/nodes.
Credits
Thanks go out to:
- Crusha K. Rool who started to create a bunch of useful mapping tools and not only inspired me to create this package, but also forwarded useful feedback from testers.
- iwanpompier who wrote the DirectionalNode, a power node class that works correctly even if not placed upright.
Class descriptions
ACTION_DamagePowerNode
Object >> ScriptedAction >> ACTION_DamagePowerNode (custom) |
- Package:
- OnslaughtSpecials
Damages a power node or core directly, even if it is protected or belongs to the instigator's team.
bAttackNotification
Type: bool
Whether to generate the regular attack notifications. (radar map, announcement)
Default value: True
DamageAmount
Type: int
How much health to remove from the node or core.
Default value: 100
NodeTag
Type: name
The node/core Tag name. Only the first matching node or core is damaged.
ACTION_IfNodeShielded
Object >> ScriptedAction >> ACTION_IfNodeShielded (custom) |
- Package:
- OnslaughtSpecials
Enters the following section only if the specified node is shielded.
NodeTag
Type: name
The node/core Tag name. Only the first matching node or core is checked.
ACTION_IfSidesSwapped
Object >> ScriptedAction >> ACTION_IfSidesSwapped (custom) |
- Package:
- OnslaughtSpecials
Enters the following section only if sides are switched on an Onslaught map.
bSidesSwitched
Type: bool
Whether the section should be executed when sides are swapped or when they are not.
Default value: True
ForcedDirVolume
Object >> Actor >> Brush >> PhysicsVolume >> ForcedDirVolume (custom) |
A simple port of the UT3 ForcedDirVolume. Since it doesn't support blocking other types of actors it is suggested to combine it with a BlockingVolume (or HitScanBlockingVolume) with bClassBlocker set to True and BlockedClasses containing UnrealPawn, PlayerController and Projectile (or at least TranslocatorBeacon) and whatever else mustn't enter that area.
bDenyExit
Type: bool
If set, drivers will not be able to exit the vehicle while it is affected by the volume.
bDontBlockRedeemers
Type: bool
If set, guided Redeemer missiles are allowed to pass through the volume unaffected. (default: False)
TypeToForce
Type: class<ONSVehicle>
The vehicle class to affect. Vehicles of this class or any subclass will be pushed by the volume. Set to None
to disable effects on vehicles. (default: ONSVehicle)
VehiclePushDir
Type: vector
The push direction. Unfortunately there's no way to visualize this in the editor.
Alternatively you can set this to zero and modify Movement->Rotation instead. This will rotate the entire volume, but if you set Advanced->bDirectional=True you get an arrow at the volume's origin that points in the push direction.
VehiclePushMag
Type: float
How much to push vehicles and Redeemer missiles. (default: 4000.0)
NodeWeaponLocker
Object >> Actor >> Pickup >> WeaponLocker >> NodeWeaponLocker (custom) |
- Package:
- OnslaughtSpecials
A special version of the weapon locker that only provides weapons to players of the team owning the closest power node or core. You can add it to the ForcedCloseActors of an ONSPowerNodeSpecial or ONSPowerCoreSpecial to forcibly associate it with that particular node or core even if it's actually closer to another node or core.
bNeutralIfNodeDisabled
Type: bool
If set, the NodeWeaponLocker behaves like a regular weapon locker if the closest power node is disabled.
ONSCountdownNode
Actor >> NavigationPoint >> JumpDest >> JumpSpot >> GameObjective >> DestroyableObjective >> ONSPowerCore >> ONSPowerNode >> ONSPowerNodeNeutral >> ONSPowerNodeSpecial >> ONSCountdownNode (custom) |
- Package:
- OnslaughtSpecials
Countdown functionality was merged into ONSPowerNodeSpecial. The countdown node class only still exists for compatibility reasons and can no longer be placed in UnrealEd.
ONSPowerCoreSpecial
Object >> Actor >> NavigationPoint >> JumpDest >> JumpSpot >> GameObjective >> DestroyableObjective >> ONSPowerCore >> ONSPowerCoreSpecial (custom) |
- Package:
- OnslaughtSpecials
A standard Onslaught power core with a few additional features. Custom node names can be set via GameObjective -> ObjectiveName.
bCoreBeamAlwaysUpright
Type: bool
If the power core itself isn't upright (i.e. Rotation.Pitch/Roll changed), should its sky beam be?
CoreHealth
Type: int
How much health the core initially has. (default: 4500)
ForcedCloseActors
A list of actor names that should be associated with this core and not any other core or node. Any PlayerStart, ONSVehicleFactory, ONSStationaryWeaponPawn, ONSTeleportPad and xTeamBanner with a matching name or Tag will be affected.
ONSPowerlinkOfficialSetupSupplement
- Package:
- OnslaughtSpecials2
Specifies additional information about an official link setup for the map.
ActivatedActors
Modifiers: edfindable
Actors that should be activated in this link setup.
ActivatedGroups
Actor groups that should be activated in this link setup.
CloseActorsOverrides
Type: array<TCloseActorsOverride>
Override settings for forced close actors.
DeactivatedActors
Modifiers: edfindable
Actors that should be deactivated in this link setup.
DeactivatedGroups
Actor groups that should be deactivated in this link setup.
PowernodeSettings
Type: array<TPowernodeSettings>
Additional information about nodes in this link setup.
SetupName
Type: string
The link setup name these options apply to.
ONSPowerNodeSpecial
Object >> Actor >> NavigationPoint >> JumpDest >> JumpSpot >> GameObjective >> DestroyableObjective >> ONSPowerCore >> ONSPowerNode >> ONSPowerNodeNeutral >> ONSPowerNodeSpecial (custom) |
- Package:
- OnslaughtSpecials
This is a modified Onslaught power node with several additional features.
Property group 'CountdownAnnouncements'
BuiltAnnouncements
Type: array<TAnnouncement>
Announcement to play when the node has finished construction.
Default value, index 0:
Member | Value |
---|---|
AnnouncementSound | Sound'A_StatusAnnouncer_RedControlsTheCountdownNode' |
AnnouncementText | "Red Controls the Countdown Node!" |
Default value, index 1:
Member | Value |
---|---|
AnnouncementSound | Sound'A_StatusAnnouncer_BlueControlsTheCountdownNode' |
AnnouncementText | "Blue Controls the Countdown Node!" |
DestroyedAnnouncements
Type: array<TAnnouncement>
Announcement to play when the node was destroyed before the countdown completed.
Default value:
Member | Value |
---|---|
AnnouncementSound | Sound'A_StatusAnnouncer_CountdownNodeDestroyed' |
AnnouncementText | "Countdown Node Destroyed" |
HalfTimeAnnouncements
Type: array<TAnnouncement>
Announcement to play when half of the node's countdown time has passed.
SuccessAnnouncements
Type: array<TAnnouncement>
Announcement to play when the countdown has completed.
Default value, index 0:
Member | Value |
---|---|
AnnouncementText | "Red Countdown Node Completed!" |
Default value, index 1:
Member | Value |
---|---|
AnnouncementText | "Blue Countdown Node Completed!" |
TenSecondsLeftAnnouncements
Type: array<TAnnouncement>
Announcement to play when only ten seconds of the countdown time are left.
Property group 'CountdownEvents'
BlueCompletedEvent
Type: name
Event to trigger when the blue team completes the countdown.
RedCompletedEvent
Type: name
Event to trigger when the red team completes the countdown.
Property group 'ONSPowerNodeSpecial'
bCatchLinkBeamEnd
Type: bool
Whether to hold on to a link beam, similar to players and vehicles.
Default value: True
bNodeBeamAlwaysUpright
Type: bool
If the node is not upright, should its skybeam be?
bSphereBlocksPlayers
Type: bool
Whether players are blocked by the rotating energy sphere above an active node.
Default value: True
bUntriggerActivationEvent
Type: bool
Whether the construction event should be untriggered when the node is destroyed.
Default value: True
ForcedCloseActors
Modifiers: edfindable
A list of vehicle factories, turrets, playerstarts, teleporter pads, team banners, node weapon lockers and other compatible actors, that should be considered closest to this node even if other nodes are actually closer. (You should use only special nodes/cores for this feature to work properly.)
ForcedCloseActorTags
Matching actors are added to the ForcedCloseActors list.
IsolatedDamagePerSec
Type: int
How much damage this node takes while it's isolated.
Default value: 30
LinkHealMultiplier
Type: float
Multiplier for linkgun healing.
Default value: 1.0
NodeHealth
Type: int
The node's health.
Default value: 2000
ShieldedHealingPerSec
Type: int
The node will regenerate this many hitpoints per second while it is shielded.
SphereHeight
Type: float
How high above the node should the energy sphere be?
Default value: 370.0
ONSWithTranslocator
- Package:
- OnslaughtSpecials2
Forcibly enables the Translocator in this map. Can be disabled for specific link setups via link setup supplements. It is recommended to use the Translocator as replacement for vehicles, not in addition to them.
bEnabled
Type: bool
Whether Translocator is enabled by default.
Default value: True
TriggeredWeaponBase
Object >> Actor >> xPickUpBase >> xWeaponBase >> TriggeredWeaponBase (custom) |
- Package:
- OnslaughtSpecials2
A weapon pickup base that only spawns a weapon when triggered.
Properties
bShouldRespawn
Type: bool
Should the weapon respawn automatically after being picked up? If not, the pickup base deactivates automatically after the weapon was picked up.
States
TriggerControl
Triggering activates the weapon base, untriggering or reset deactivates it.
TriggerToggle
Triggering activates the weapon base, triggering again or reset deactivates it.
TriggerTurnOn
Triggering activates the weapon base, reset deactivates it.
xTeamMaterialSwitch
Object >> Actor >> Decoration >> xTeamBanner >> xTeamMaterialSwitch (custom) |
- Package:
- OnslaughtSpecials
Creates a MaterialSwitch with 4 materials and picks a material based on who owns the associated node or core.
MaterialSwitch
Type: MaterialSwitch
The MaterialSwitch to assign the various materials to. Whenever you create or duplicate a xTeamMaterialSwitch actor, a new MaterialSwitch object will be created to prevent conflicts with other xTeamMaterialSwitchs. The default MaterialSwitch contains 4 materials (0: red, 1: blue, 2: neutral, 3: disabled).
TeamSymbolCombiners
Type: Combiner
Array size: 2
Combiners to assign the owning team's symbol to. (index 0: red, index 1: blue) The symbol texture will be assigned to Material2 of the corresponding Combiner when a team owns the node. It will not be removed again if the node is destroyed or taken by another team.
xTeamMonitor
Object >> Actor >> Decoration >> xTeamBanner >> xTeamMonitor (custom) |
- Package:
- OnslaughtSpecials
An Onslaught-compatible version of the xMonitor.
BlueTeamShader
Type: Material
Material to use as Skins[2] while the blue team owns the node.
DisabledShader
Type: Material
Material to use as Skins[2] while the node is disabled.
NeutralShader
Type: Material
Material to use as Skins[2] while no team owns the node.
RedTeamShader
Type: Material
Material to use as Skins[2] while the red team owns the node.
TeamSymbolCombiners
Type: Combiner
Array size: 2
Combiners to assign the owning team's symbol to. (index 0: red, index 1: blue) The symbol texture will be assigned to Material2 of the corresponding Combiner when a team owns the node. It will not be removed again if the node is destroyed or taken by another team.
Structs
TAnnouncement
Describes an announcement for a countdown node.
- Sound AnnouncementSound
- An announcement sound to play.
- name AnnouncementName
- Name of an announcement to play. This will be ignored if an announcement sound is set.
- string AnnouncementText
- A localized text to display on the HUD as part of the announcement.
TCloseActorsOverride
Close actors override for a single actor in the map.
- Actor Actor
- The actor to associate with a different node or core.
- ONSPowerCore ClosestNode
- The node or core to associate the actor with.
Only works with special cores and nodes, including countdown nodes.
TPowernodeSettings
Information about a single power node.
- ONSPowerNodeSpecial Node
- The power node to apply these settings to.
- ONSPowerCore OwnerCore
- The power core of the team initially owning this node.
(This doesn't receive any further checks, so you could create isolated nodes that will die soon after the match started.)
- bool bIsStandalone
- Whether the node should stay active even if it's not connected to the main
power network. If this is applied to a networked node, the node can always be captured and attacked by both teams and will power other connected nodes even without a direct link from any power core.
- bool bNeverShielded
- Whether the node can always be attacked by the enemy team.
- bool bNotShieldedIfIsolated
- Whether the node becomes attackable when it gets isolated.
- bool bKeepVehiclesWhenDestroyed
- Whether nearby vehicles should stay around if the node is destroyed.
- byte MinPlayerCount
- The minimum player count required to activate this power node.
The node will be disabled and potentially removed from the network if less players are in the game.
- bool bCountdownDamagesEnemyCore
- AI hint that a successful countdown will damage the enemy team's power core.
- name RedCompletedEvent
- Event to trigger when the red team completes the countdown.
- name BlueCompletedEvent
- Event to trigger when the blue team completes the countdown.
- byte CountdownTime
- How long the node must be held for the countdown to complete.
- bool bStopCountdownIfIsolated
- Should the countdown stop if the node is isolated while not standalone?
- array<ONSPowerNodeSpecial.TAnnouncement> BuiltAnnouncements
- Announcement to play when the node has finished construction.
- array<ONSPowerNodeSpecial.TAnnouncement> HalfTimeAnnouncements
- Announcement to play when half of the node's countdown time has passed.
- array<ONSPowerNodeSpecial.TAnnouncement> TenSecondsLeftAnnouncements
- Announcement to play when only ten seconds of the countdown time are left.
- array<ONSPowerNodeSpecial.TAnnouncement> SuccessAnnouncements
- Announcement to play when the countdown has completed.
- array<ONSPowerNodeSpecial.TAnnouncement> DestroyedAnnouncements
- Announcement to play when the node was destroyed before the countdown completed.
- Pages using duplicate arguments in template calls
- Custom UT2004-specific classes
- Subclasses of ScriptedAction (UT2004)
- Subclasses of PhysicsVolume (UT2004)
- Subclasses of WeaponLocker (UT2004)
- Subclasses of ONSPowerNodeSpecial (UT2004)
- Subclasses of ONSPowerCore (UT2004)
- Subclasses of Actor (UT2004)
- Subclasses of ONSPowerNodeNeutral (UT2004)
- Subclasses of Info (UT2004)
- Subclasses of xWeaponBase (UT2004)
- Subclasses of xTeamBanner (UT2004)
- Mapping tools