Controled Death - Scripts / Modifications

NBSpecials modifications

Tutorials

In the moment just two short Tutorials are available.
CRMSpecial (included in NBCRM.u)
CRM (included in NBSpecials.u)

Introduction

This package includes a lot of special scripts for the original Unreal™ engine. The single scripts / mods will be listed below ordered by category.

Brush.Mover

ControlRotatingMover
Build your own movers that players can control + they can fire any type of projectile! Control tanks, double AA-flakcannons or just some automatic cannons placed under the ceiling!
RotatingCamera
This mover can be used to guard some tunnels or else.
RotatingMover2
This mover rotates if the controler fires. So you can build some sort of gattling gun!

The original NBSpecials-Documentation:

NBSpecials.U

Additional Actor-Classes for Unreal™ version 2.24

Documentation was last updated 28th of march ‘99

Author: N.Bogenrieder (Beppo) E-Mail: nb_beppo@gmx.net

Included actors:

Brush

  • Mover
    • ControlRotatingMover

Decoration

  • SpecialCannon
  • SpecialControlCannon

Effects

  • AirStrike

Inventory

  • Pickup
    • SpecialBowyKnife
    • SpecialMine
      • FloatingMine
    • SpecialPickUpMine (MineBox)
    • ThrowIt
      • TIGrenade
  • Weapon
    • NoWeaponNoFire

Keypoint

  • AirStrikePoint

Projectile

  • Arrow
    • SpecialArrow
      • BowyKnife

 

All default settings (screenshots) at the end of this document !

 

ControlRotatingMover:

Define movers that can be controled by a player. For those ‘not editing experts’: select a mover class in the classes window and then transform your brush into a mover to make a non standard mover. These movers work also with so called slaves (bSlave = True).

  • ControlRotatingMover
    • ActivateMessage:

      Send this message if activated.

    • bControlPitch / Roll / Yaw:

      Define what part of the rotation could be controled by the player.

    • bReversePitch / Roll / Yaw:

      flip direction of control. Ex. Move up if player looks down aso.

    • max minPitch / Roll / Yaw:

      Limit the rotation by setting up this vars. If 0.0 is set up they will be ignored.

  • ControlWeapon
    • (Alt)Fire_ProjectileClass:

      Specify the projectile class used by fire and alternative fire.

    • (Alt)FireRate:

      Specify the firing rate (reloading time).

    • (Alt)FireSound:

      Specify the firing sound.

    • (Alt)ReloadSound:

      Specify the sound for reloading (cocking).

    • FirePositionOffset:

      Specify the correct offset (position) for spawning the projectiles. Look at the tanks cannon in DMDeathZone for a better understanding.

      ‘SpawningPosition’ = MoverLocation + vect(ViewRotation) * FirePositionOffset

  • Mover
    • NumKeys:

      ‘normal’ movers specify the amount of keys (keyframes) here. This mover actually has no keyframes. All rotating is done by manipulating the BaseRotation.

    • MoveTime:

      Just the time it will take to change the rotation (or the interpolation).

    • OtherTime:

      How fast will the mover ‘react’ on changes of the players viewdirection.

  • Object
    • InitialState:

      Don’t change it. PlayerControl is the state that’s used for the ControlRotatingMover.

      SpecialCannon:

      This cannon includes multiple parameters. It can be used as a full automatic cannon, for example.

    • Cannon
      • ...Sound:

        Set up the sounds to be used.

      • DeactivateDistance:

        Radius the cannon ‘works in’.

      • Drop:

        Setup correction for the spawned projectile.

      • Health:

        ... I think that’s pretty clear.

      • SampleTime:

        How long does it take to check all conditions again (SetTimer...).

      • TrackingRate:

        The ‘rotating speed’ of the cannon. How fast can it turn towards its target

    • SpecialCannon
      • ActivateIfDamagedMessage:

        Same as ActivateMessage... but this message will only be send if the cannon was damaged.

      • ActivateMessage:

        This message will be send to all players within the double radius of the deactivate distance if activated (cannon.DeactivateDistance). It will be send at all events to the player that has activated it.

      • AutoActivateMessage:

        Same as ActivateMessage... but this message will only be send in the auto mode.

      • bActivateIfDamaged:

        If the cannon was damaged (by shot or hit) the damage instigator will be targeted. If the cannon wasn’t activated before (by an event<-trigger) it will be activated after damaging.

      • bAutomatic:

        The cannon acts in auto mode. Read section 1. for a detailed explanation of that mode.

      • bDeactivateOutOfSight:

        The cannon deactivates itself if the actual target is out of sight.

      • bDontPlayActivateAnim:

        If activated the cannon don’t plays its activate animation (dropping some inches down). This only works if you specify a ‘starting animation’ under Display.AnimSequence = ‘Angle0’ for example. So you don’t have the ‘effect’ of a floating cannon cause you specify where it is ‘hanging’. But one little thing to remember. Cause the cannons location and thereby its ‘point of view’ lies some inches higher than the seen position in the editor its possible that the cannon ‘cannot see a thing’. So you have to change the ‘ceiling’ or ‘upper base’ to be ‘non solid’ at all. Look at the SpecialCannon hanging in the outside part of DMDeathZone for a better understanding.

      • bDontTrackInstigatorsIfIgnore:

        If bIgnoreInstigator or bIgnoreDamageInstigator is set, the actor that activated the cannon will not be targeted. Otherwise this would cause the cannon to ignore a valid target if the instigator is the momentarily target.

      • bIgnoreDamageInstigator:

        The actor that has activated the cannon by damaging it is ignored if targeted. Of course that’s only useful if the cannon acts in auto mode. Thereby it’s possible to use this cannon as a tactical variant in multiplayer levels cause without this switch you can only differ targets through classes and not single players.

      • bIgnoreDamageInstigatorTeam / bIgnoreInstigatorTeam:

        The (damage) instigators team will be ignored in team matches.

      • bIgnoreInstigator:

        Same as bIgnoreDamageInstigator... but just by activating the cannon by an event<-trigger.

      • bInitiallyActive:

        The cannon is initially active and doesn’t need to be activated by an event<-trigger. This is also only useful if the cannon is in auto mode. Notice that therefore no instigator is possible. So all valid targets will be shot automatically. This switch is build in to give you the possibility to include ‘real’ automatic cannons in your levels that can protect places against specified actors without needing to activate it.

      • DamagedByTargetType:

        Here you can select specific types of targets that can activate the cannon directly by damaging it (bActivateIfDamaged). Just valid targets will be shot. Possible selections:

        • TT_Player - all players are valid targets

        • TT_Pawn - all pawns (players and enemies) are valid targets

        • TT_Class - all actors of the specified DamagedByTypeClass are valid targets

        • TT_Any - all actors are valid targets

        Only if the damage instigator is of this class he will be selected as actual target.

      • DamagedByTypeClass:

        Here you can specify the target class if TT_Class is selected under DamagedByTargetType.

      • DeActivateMessage:

        This message will be send to all players within the double radius of the deactivate distance if the cannon is deactivated (cannon.DeactivateDistance).

      • DeactivateTargetHealth:

        If the health of the actual target drops under this value the cannon deactivates by itself. In auto mode the next target is automatically searched.

      • FireRate:

        How fast the cannon can shoot (reloading time).

      • InitiallyIgnoreTeam:

        If bInitiallyActive is set you can specify a team (Red,Blue...) that will be ignored in team matches.

      • MaxAutoTargets:

        Maximum amount of targets that the cannon will fight in auto mode. If this value is negative (-1) the cannon searches new valid targets until itself has been destroyed.

      • ProjectileClass:

        Here you can specify the projectile class if Proj_Class is selected under ProjectileType.

      • ProjectileType:

        Here you can select a specific type of projectile that will be used by the cannon. Thereby it’s possible to use every single projectile from the unreal engine. How about the Peacemaker Rockets or even some simple Arrows. Don’t forget to specify a projectile specific firing sound!

        • Proj_Default - the standard projectile (KrallBolt) will be used

        • Proj_Class - the under ProjectileClass specified projectile will be used

      • ReactivateHealth:

        If here and under ReactivateTime a value greater zero is set, the cannon cannot be destroyed. The value entered here will be the new health value after the cannon is reactivated.

      • ReactivateMode:

        If 0 = the cannon reactivates directly after the specified ReactivateTime.

        If 1 = the cannon can be reactivated after the ReactivateTime and switches into a ‘sleep mode’.

        Look at the outside cannon in DMDeathZone for a better understanding. After ‘destroying’ it, it switches into a sleep mode and can be reactivated by damaging it again.

        Just for info: it’s a – ok, I name it a – ‘tactical automatic cannon’ that activates if shot / damaged, ignores its instigator and ‘fire at will’ J so... look out if someone has activated it J but just shoot at it again and YOU are its instigator... so, do you need some further explainations???

      • ReactivateTime:

        If here and under ReactivateTime a value greater zero is set, the cannon cannot be destroyed. The cannon reactivates itself after this time has expired.

      • TargetType:

        Here you can select specific types of targets that can be targeted by the cannon. Just valid targets will be shot. Possible selections:

        • TT_Player - all players are valid targets

        • TT_Pawn - all pawns (players and enemies) are valid targets

        • TT_Class - all actors of the specified TargetTypeClass are valid targets

        • TT_Any - all actors are valid targets

        Only if the actual target is of this class it will be shot.

      • TargetTypeClass:

        Here you can specify the target class if TT_Class is selected under TargetType.

    • SpecialEvents
      • DeactivateTag:

        If this Tag is performed by any actor the cannon deactivates (ex. A trigger calls the event specified).

      • EventIfDestroyed:

        Send this Event to all actors within the level after the cannon was destroyed. That’ll be useful to trigger doors or other movers after the cannon was destroyed.

    • SpecialProjectile

        All entered values will be set in the used projectiles. It only works with projectiles that do not ignore these settings.

        1. Auto mode

          If bAutomatic is set to true the cannon stays in auto mode. The cannon will act like follows:

          If the cannon is activated in any kind of way (event<-trigger or damaging) it turns into auto mode. After activation the actual target will be fought like in normal mode until one of the cancel conditions (bDeactivateOutOfSight, DeactivateDistance, DeactivateHealth or the target is not of the specified TargetType aso.) comes true. Than the cannon searches another valid target within the DeactivateDistance radius. The selected target (actor) is always checked if it’s within the actual fighting range of the cannon and if it’s in the line of sight even if bDeactivateOutOfSight is not set. That’s included so that no actor is selected that’s not within vicinity cause else it’ll be possible to select a target that’s - in the moment - not ‘shootable’ and other nearby actors will never become valid. So the cannon reacts on every valid target after entering the DeactivateDistance radius.

          The cannon only is deactivated if the amount of selected targets reaches the value specified in MaxAutoTargets, or it has been destroyed. If MaxAutoTargets is set to a negative value the cannon stays into auto mode until it has been destroyed.

          Thereby you get a full automatic cannon like in Sin, Half Life or other known ego shooter games!

        2. Common notes:

          Targets will be selected by using the TargetType settings. In addition just shootable targets are valid (collision.bProjTarget = True). Cause you cannot shoot something that’ll not be hurt by projectiles. Ok, you can but its pretty useless!

        SpecialControlCannon:

        This cannon can be controled by a player or even pawns. Simply put a trigger in the near distance that activates the cannon. This cannon has the same functionality like the cannon known from Half-Life™.

      • Cannon
        • AltFireSound:

          Cause this cannon allows two types of projectiles you need a second firing sound.

        • ...

          All other parameters here are explained above under ‘SpecialCannon’:

      • SpecialControlCannon
        • ActivateMessage:

          This message will be send to the player that has activated it.

        • (Alt)Fire_ProjectileClass:

          Projectiles to be used if pressing the first / alternative fire button.

        • (Alt)FireRate:

          Firing rates of the two projectiles. Reload times.

        • (Alt)ReloadSound:

          If needed you can specify some reloading / cocking sounds.

        • bDestroyable:

          Can the cannon be destroyed?

        • bDontPlayActivateAnim:

          If activated the cannon don’t plays its activate animation (dropping some inches down). This only works if you specify a ‘starting animation’ under Display.AnimSequence = ‘Angle0’ for example. So you don’t have the ‘effect’ of a floating cannon cause you specify where it is ‘hanging’. Cause you control the cannon the location and ‘point of view’ is of no effect for firing (not to compare with the same parameter under the SpecialCannon). Look at the double cannons in DMDeathZone for a better understanding.

        • ProjectileType:

          Here you can select a specific type of projectile that will be used by the cannon.

          • Proj_Default - the standard projectile is used (CannonBolt)

          • Proj_Class - the projectiles from the ProjectileClasses are used

        AirStrike:

        After an amount of time all valid targets in the target zones will get bombed. The AirStrikePoints mark the target zones. Activated by trigger<-event. If the AirStrike is ‘turned on’ all valid targets within the target zones switch into the ‘BehindView’ to show them ‘Hey I’m in a target zone!’. Every valid target that enters a target zone while the AirStrike is within states ‘a_’ to ‘d_’ will switch into the BehindView mode and – of course – becomes a valid target! After the AlarmTime (state ‘a_’) has ended all valid targets that enter or are inside a target zone will stop moving... he he he got ya! J In addition the ‘outside’ camera starts rotating around the poor fellow.

      • AirStrike
        • x_...Time:

          Durations of the single AirStrike states.

          • Alarm - after this time has expired the AlarmSound ends and all targets within the target zones stop moving.

          • Look - Duration of the Look animation. All targets will look around.

          • ByeBye - Duration of the Bye-Bye animation. All targets wave a ‘good bye‘

          • Bombing - for this duration of time multiple explosions will be spawned around the targets. Afterwards a final explosion hits and kills the target.

          • EndAlarm - How long to play the EndAlarmSound.

          • Reactivate - How long does it take to reactivate the effect (‘pause mode’).

        • Play(End)AlarmSound:

          Specify an (end)alarm sound. It will be played as an ambient sound within the target zones.

        • ReactivateMessage:

          During the reactivate state (‘f_’) every player who tries to activate the AirStrike again will get this message. The remaining time until reactivation will be attached to the specified text (‘nn seconds’).

        SpecialBowyKnife:

        A useable throwing knife. If used a BowyKnife is thrown in the players view direction. Cause in DM games all weapons, pickups aso. will respawn after some time the thrown BowyKnife will be destroyed if falling to the ground. Otherwise you have dozens of BowyKnifes within some seconds... L

        SpecialMine:

        Just a mine with some parameters.

      • SpecialMine
        • Damage:

          The possible damage that the mine can produce. It also depends on the distance between actor and mine and on the specified size of the explosion. The mine will be activated by touch or an event.

        • DelayTime:

          Sets a delay time between activating and exploding (all values <= 0 are ignored and set to default).

        • IgnoreTeam:

          You can specify a team that will be ignored in team matches (Red,Blue...).

        • ReactivateTime:

          If a value greater zero is entered here the mine will respawn after this time has expired.

        • Size:

          Specifies the size of the explosion (all values <= 0 are ignored and set to default).

        • TouchType:

          Here you can select specific types of targets that can activate the mine if touched. Just valid targets will activate it. Possible selections:

          • TT_Player - all players are valid

          • TT_Pawn - all pawns (players and enemies) are valid

          • TT_Class - all actors of the specified TouchTypeClass are valid

          • TT_Any - all actors are valid (so even projectiles are valid !!!)

          Only if the touching actor is of this class the mine will explode.

        • TouchTypeClass:

          Here you can specify the class of actors that can activate the mine if TT_Class is selected under TouchType.

        FloatingMine:

        Just the floating version of the SpecialMine. A blue texture is used to ‘hide’ them underwater.

        SpecialPickUpMine:

        A useable minepack of the explained SpecialMine. If activated a mine will be thrown in front of the player.

      • MineBox
        • bFloatingMines:

          Select the type of mines inside the MinePack. Maybe not functioning in ‘not single player’ levels cause I have no replication info included... but the ‘normal’ mines are useful enough J

        • MineAmount:

          Number of mines included.

        ThrowIt:

        Just a base class for throwable items. Very simple to add some own subclasses. Just for info: the ‘throwing’ sound differs from the used player model (male,female,skaarj).

      • ThrowIt
        • Amount:

          How much included inside this package...

        TIGrenades:

        Subclass of ThrowIt which throws some grenades.

        NoWeaponNoFire:

        Defines a weapon with no firing and no 3D mesh at all. Used to replace the active weapon in a defined way. Used in SpecialControlCannon, ControlRotatingMover...

        AirStrikePoint:

        These points specify the target zones of an AirStrike effect. AirStrike and AirStrikePoints are combined by using the same tag name. If no valid target is inside the specified area the ‘bombing’ starts at this location. See the zAxisCorrection parameter for more details.

      • AirStrikePoint
        • Radius:

          Bombing radius around the AirStrikePoint. Target zone size. Sphere not just a plain!

        • TargetPawnClass:

          Specify the valid target pawn classes here.

        • zAxisCorrection:

          As said before if no one’s here the bombing starts at the location of the AirStrikePoint. If you want to bomb some areas not just on ground level you have to move the AirStrikePoint up on the zAxis (cause the radius defines a sphere and not just a plain). So bombing takes places ‘in the middle of nirvana’. To avoid this you can enter this zAxisCorrection for the bombing if ‘no one’s here’ J Look at the outside building with the elevator in DMDeathzone for a better understanding.

        SpecialArrow:

        An arrow that get stuck in its victim. The damage depends on the flown distance. The arrow moves and rotates with its victim. Wanna get spiked ??! Cool effect if hit right into your face... you see a knife from a really ‘own’ point of view... J So, ‘Klingon Honour Guard’ has just one little thingy that was worth to add to the standard Unreal engine (just the damage variant).

        BowyKnife (Projectile):

        Subclass of SpecialArrow. Instead of an arrow a rotating knife is spawned. If the BowyKnife hits the ground it transforms into a SpecialBowyKnife and can be picked up (only in single player modes... as said before, DM modes respawn pickups after some time, and so you have dozens of knifes after some time lying around. So every BowyKnife that hits the ground will be destroyed in DM modes).


        Copyright © 1999 by Beppo (N.Bogenrieder) All rights reserved.

        E-Mail: nb_beppo@gmx.net