Main Page » Scorched3D v40.1


Version 40.1 Accessory Primivites & Their Attributes

Note: This page is still a work in progress and is still lacking many descriptions.

Contents

Basic Accessory Syntax

All accessories will follow this basic format:

<accessory>

  <accessoryaction type="..."> (any primitive)
     <attribute>value</attribute> (attribute accepting a value)
     <attribute/> (optional on/off type attribute)
  </accessoryaction>

</accessory>

Remember, optional attributes are not required. So you only have to put those in your accessory if you desire that particular effect.

Accessory Head Attributes

These are attributes that are common to ALL accessories. It does not matter whether the accessory is an item, a weapon or a shield. Some of these attributes such as cost/icon/bundlesize are optional, but only when the maximumnumber is set to 0 and the accessory is not purchasable or usable by the player directly.

<accessory>

   <name>string</name>
             The name of the accessory, as shown to the
             user and also how it is referred to in other
             accessories like WeaponReference.
             ie: When a tank is killed, the message will read "Player x killed by "Accessory"
   <armslevel>int</armslevel>
             used to determine weapon availability and reward
             - KillReward = PlayerHealth * Armslevel * MoneyPerKillPoint
             - HealthReward = PlayerHealth * Armslevel * MoneyPerHitPoint
             - lower value = larger weapon with lower reward
             - higher value = smaller weapon with higher reward
             - can adjust availability on server with StartArmsLevel & EndArmsLevel
   <nomuzzleflash/>
             Weapon will not create a muzzle flash if this is supplied
   <description>string</description>
             The contents of this attribute are displayed in the game.
   <icon>string</icon>
             Location and name of the icon to display in buy menus/windows.
   <activationsound>string</activationsound>
             Sound that is played when the accessory is used/shot.
   <bundlesize>int</bundlesize>
             The amount of the accessory you buy per purchase.
   <aionly>bool</aionly>
             true = available only to AI (bots), false = available to anyone.
   <maximumnumber>int</maximumnumber>
             The maximum number of this object that can be purchased.
             Set to 0 to have it not appear in the store and to make the accessory
             unavailable as a selectable weapon to the user.
   <startingnumber>int</startingnumber>
             The number of this weapon players will start with.
             For infinite weapons, set to -1.
   <cost>int</cost>
             The buying price of the accessory. (Also see bundlesize) 
   <modelscale>float</modelscale>
             The scale of the model. 1 = 100%, 0.5 - 50%, etc
   <model>Model ID</model>
             The model that will appear in the weapon window at lower left
             - Defaults to the projectile defined for the user's tank if omitted
             - The model can be set explicitely by setting
               the model tag like <model type="x">filename</model>, where
               type can be ASE or MilkShape, depending on the format,
               and "filename" is the relative path to the model file
   <positionselection>string</positionselection>
             The type of position select to be used:
             - fuel: Player can select a postion based on a limited range
               dependant on the amount of fuel in inventory.
             - limit: Player can select a postion based on a limited range
               dependant on the positionselectionlimit value.
             - generic: Player can select any position
   <positionselectionlimit>int</positionselectionlimit>
             The maximum distance of position selection from the current position.
   <group>string</group>
             Accessory group the item falls into (weapon, defense, fuel, etc)
   <accessoryaction>AccessoryPart</accessoryaction>
             Specifies what happens when this accessory is invoked.
             Can be any of the accessory primitives.

</accessory>

Items

Items include autodefense, batteries, fuel and parachutes. Remember each of these will need to have all the accessory head attributes mentioned above as well.


AutoDefense

Auto defense can be used to activate shields and parachutes during the end of the buying phase instead of a t the beginning of their turn. This is mainly useful in sequential games where you would have to wait until your turn to activate your defenses.

<accessoryaction type="AutoDefense"> </accessoryaction>

Batteries

Batteries are used to regenerate the player's power or health.

<accessoryaction type="Battery"> </accessoryaction>

Fuel/Move

Changed for v40.1 WeaponMoveTank is used to move/relocate an object about the landscape. The maximum slope on which and object can move by type "fuel" is limited on the server by the MaxClimbingDistance setting in server.xml.

<accessoryaction type="WeaponMoveTank">

   <steptime>float</steptime>
           Used to determine rate at which the player moves.
           Lower = faster movement (default = 0.05)
   <usefuel>bool</usefuel>
           "true"= use fuel from inventory, "false"= Don't.
   <maximumrange>int</maximumrange>
           maximum distance the player can move per turn

</accessoryaction>

Parachutes

Parachutes protect the player from falling damage. You can configure how fast an object using them will fall.

<accessoryaction type="Parachute">

   <slowforce>
       <A>float</A>
       <B>float</B>
       <C>float</C>
   </slowforce>
           The force to apply against a falling object in x,y,z coordinates.

</accessoryaction>

Shields

Shields protect the player by absorbing damage and deflecting shots in a variety of ways. They can have different colors, sizes and damage absorption capabilities.

Square Shields

As of version 40.1, Scorched 3D supports square (cubicle) shaped shields in addition to the classic round (spherical) shields. To use them, replace the word "Round" with "Square" in the shield's definition. Remember, however, that square shields cannot use the glow effect or the halfshield effect. Square shields also do not use the old radius tag to determine size, they have their own specific size definition: (<size><a>#</a><b>#</b><c>#</c></size>).

Shield

Normal shields protect the player by simply absorbing the damage. All of the attributes of the normal shield apply to all of the other shield types as well.

<accessoryaction type="ShieldRound">

   <removepower>float</removepower>
           Base damage done to shield in a projectile collision.
           This is also adjustable in the projectile by <shieldhurtfactor> in WeaponProjectile
   <penetration>float</penetration>
           How much damage makes it through to the shield
   <power>float</power>
           The amount of damage the shield can absorb.
   <radius>float</radius>
           The distance from the tank to the edge of the shield
  <collisionsound>string</collisionsound>
           Sound to play when a weapon collides with the shield.
   <color>
      <r>float</r>
      <g>float</g>
      <b>float</b>
   </color>
           The color of the shield in RGB.
           0,0,0 = black, 1,0,0 =  red, 1,1,1 = white, etc
   <halfshield>bool</halfshield>
           true = Hero in a half-shield (only the top half is shielded)
   <laserproof>bool</laserproof>
           true/false, whether or not lasers go through the shield.
   <movementproof>bool</movementproof>
           Whether or not other players can move through the shield.
   <glow>bool</glow>
           Whether or not the shield has the glowing halo effect

</accessoryaction>

ShieldMag

Mag shields protect the player by 'pushing' away projectiles that travel above the player in addition to absorbing damage like regular shields. All the attributes that apply to regular shields apply to mag shields as well.

<accessoryaction type="ShieldRoundMag">

   <removepower>float</removepower>
           Base damage done to shield in a projectile collision.
           This is also adjustable in the projectile by <shieldhurtfactor> in WeaponProjectile
   <penetration>float</penetration>
           How much damage makes it through to the shield
   <power>float</power>
           The amount of damage the shield can absorb.
   <radius>float</radius>
           The distance from the tank to the edge of the shield
  <collisionsound>string</collisionsound>
           Sound to play when a weapon collides with the shield.
   <color>
      <r>float</r>
      <g>float</g>
      <b>float</b>
   </color>
           The color of the shield in RGB.
           0,0,0 = black, 1,0,0 =  red, 1,1,1 = white, etc
   <halfshield>bool</halfshield>
           true = Hero in a half-shield (only the top half is shielded)
   <laserproof>bool</laserproof>
           true/false, whether or not lasers go through the shield.
   <movementproof>bool</movementproof>
           Whether or not other players can move through the shield.
   <glow>bool</glow>
           Whether or not the shield has the glowing halo effect
   <deflectpower>float</deflectpower>
           Intensity of the projectile deflection.

</accessoryaction>

ShieldReflective

Reflective or force shields protect the player by reflecting direct hits in addition to absorbing damage like regular shields. All the attributes that apply to regular shields apply to force shields as well.

<accessoryaction type="ShieldRoundReflective">

   <removepower>float</removepower>
           Base damage done to shield in a projectile collision.
           This is also adjustable in the projectile by <shieldhurtfactor> in WeaponProjectile
   <penetration>float</penetration>
           How much damage makes it through to the shield
   <power>float</power>
           The amount of damage the shield can absorb.
   <radius>float</radius>
           The distance from the tank to the edge of the shield
  <collisionsound>string</collisionsound>
           Sound to play when a weapon collides with the shield.
   <color>
      <r>float</r>
      <g>float</g>
      <b>float</b>
   </color>
           The color of the shield in RGB.
           0,0,0 = black, 1,0,0 =  red, 1,1,1 = white, etc
   <halfshield>bool</halfshield>
           true = Hero in a half-shield (only the top half is shielded)
   <laserproof>bool</laserproof>
           true/false, whether or not lasers go through the shield.
   <movementproof>bool</movementproof>
           Whether or not other players can move through the shield.
   <glow>bool</glow>
           Whether or not the shield has the glowing halo effect
   <deflectfactor>float</deflectfactor>
           Intensity of the projectile deflection.

</accessoryaction>

Weapons

Keep in mind that any time you see "Weapon..." below, that means that another primitive would then follow here. And, as with all the accessories, you will need to have all the proper accessory head attributes at the beginning of the weapon before the <accessoryaction> tag. Also, each section of a weapon (each primitive) can have its own armslevel. You can use this to adjust reward levels for different parts of a weapon. This allows you to have a higher armslevel in the accessory head and bring the weapon into the game earlier using StartArmsLevel and EndArmsLevel but still maintain a lower reward for kills made with the weapon. Just look through the default and Apocalypse accessories.xml files that come with the game for plenty of examples.

WeaponAddTarget

Used to add targets to the landscape. Targets can have shields and parachutes and a set amount of life. They can be made to do different things when destroyed or burnt.

<accessoryaction type="WeaponAddTarget">

   <armslevel>int</armslevel>
   <name>string</name>
             name of the object, leave blank for no name
   <model>modelname</model>
             location/filename of the model to use
   <modelburnt>modelname</modelburnt>(optional)
             model to use when object is hit with napalm
   <modelscale>float</modelscale> (optional)
             How large to scale the model, higher = larger
   <modelrotation>float</modelrotation> (optional)
           The 2d angle to rotate the model to.
   <modelrotationsnap>float</modelrotationsnap> (optional)
           The rotation of the model is snapped to n x float, 
           where float is an angle in degrees. ie: 90 will force the 
           model to be rotated to the angle specified above in 
           <modelrotation> + float x (random), forcing the model to
           face one of four directions. Setting this to 1 will yield a 
           random rotation (model could be any angle, at intervals of
           1 degree of rotation)
   <border>float</border>(optional)
             prevents models from being placed within area specified
             default = 0 = disabled, negative = sets to model's size
   <size>Vector</size>(optional)
             scale model in specific directions?
   <driveovertodestroy>bool</driveovertodestroy>(optional)
             whether or not you can drive over the object to destroy it
             default = false, you cannot drive over it to destory it
   <removeaction>string</removeaction>(optional)
             accessory to fire when the object is destroyed
   <burnaction>string</burnaction>(optional)
             accessory to fire when the object is burnt with napalm
   <life>float</life>(optional)
             amount of health the object will have
   <shield>string</shield>(optional)
             name of the shield the object will have, default=none
   <parachute>string</parachute>(optional)
             paracbute type the object will use, default=none
   <boundingsphere>bool</boundingsphere>(optional)
             default = true, use bounding sphere for collisions
             if set to false, target will use its bounding box for collisions instead

</accessoryaction>

WeaponAimedOver

Aims a number of the next primitive at nearby targets. Projectiles shot with this primitive are aimed upward somewhat and will travel toward the target in a parabolic arc.

<accessoryaction type="WeaponAimedOver">

   <armslevel>int</armslevel>
   <nowarheads>int</nowarheads>
             number of instances of the next primitive to create
   <maxaimdistance>float</maxaimdistance>
             weapon will aim at targets within this distance
   <percentagemiss>float</percentagemiss>
             chance a projectile will miss (higher = less accurate)
   <inaccuracy>float</inaccuracy>
             amount of weapon innaccuracy (higher = less accurate)
   <aimedweapon>Weapon</aimedweapon>
             Can be any of the weapon accessories

</accessoryaction>

WeaponAimedUnder

Aims a number of the next primitive at nearby tanks. The weapons are shot straight at the tanks and are always shot with the same amount of power.

<accessoryaction type="WeaponAimedUnder">

   <armslevel>int</armslevel>
   <nowarheads>int</nowarheads>
             number of instances of the next primitive to create
   <maxaimdistance>float</maxaimdistance>
             weapon will aim at targets within this distance
   <percentagemiss>float</percentagemiss>
             chance the projectiles will miss (higher = less accurate)
   <inaccuracy>float</inaccuracy>
             amount of weapon innaccuracy (higher = less accurate)
   <moveunderground>bool</moveunderground> (optional)
             Whether or not to move weapon position underground
   <aimedweapon>Weapon</aimedweapon>
             Can be any of the weapon accessories

</accessoryaction>

WeaponAnimation

Used to generate a few of the hard-coded animation effects like the laser beam death or the small blue ring that flashes when you die.

<accessoryaction type="WeaponAnimation">

   <armslevel>int</armslevel>
   <data>string</data>
             sound that is played when running the animation
   <animation>string</animation>
             can be ExplosionLaserBeamRenderer or ExplosionRingRenderer

</accessoryaction>

WeaponCenterPosition

Moves the weapons position to the center of the landscape at a specified height.

<accessoryaction type="WeaponCenterPosition">

   <armslevel>int</armslevel>
   <height>float</height>
             altitude to move position to, 0 = landscape height
   <nextaction>Weapon</nextaction>
             Can be any of the weapon accessories

</accessoryaction>

WeaponDelay

Delays for a specific amount of time before performing the next action.

<accessoryaction type="WeaponDelay">

   <armslevel>int</armslevel>
   <delay>float</delay>
             Amount of time in seconds to delay before performing the following action
   <delayedweapon>Weapon</delayedweapon>
             Can be any of the weapon accessories

</accessoryaction>

WeaponExplosion

Creates an explosion of the given size. Explosions can be used for creating or removing earth, damaging tanks, creating particles and debris and various other effects.

<accessoryaction type="WeaponExplosion">

   <armslevel>int</armslevel>
   <size>float</size>
             radius of the explosion, in world units
   <hurtamount>float</hurtamount>
             how much damage the explosion will do, 1 = 100 pts
   <deform>Explosion::DeformType</deform>
             determines how the explosion effects the landscape
             types available are up, down and none
   <multicolor/> (optional)
             makes the explosion a random color
   <explosionshake>float</explosionshake> (optional)
             amount to shake the screen, default is 0
   <onlyhurtshield>bool</onlyhurtshield> (optional)
             explosion will only do damage to shields, default is false
   <nocreatedebris/> (optional)
             explosion will not create debris or dirt splash
   <nocreatesplash/> (optional)
             explosion will not splash if it hits water
   <createmushroomamount>float</createmushroomamount> (optional)
             amount of mushroom clouds to make, default is 0 (none)
   <nowindaffected/> (optional)
             explosion particles will not be affected by wind
   <noluminance/> (optional)
             explosion will not light up
   <animate>bool</animate> (optional)
             cycles explosion particle textures through textureset as it decays
   <minlife>float</minlife> (optional)
             minimum lifespan for the explosion particles, default is 0.5
   <maxlife>float</maxlife> (optional)
             maximum lifespan for the explosion particles, default is 1.0
   <deformtexture>string</deformtexture> (optional)
             custom decal to apply to the ground, instead of landscape default
   <explosiontexture>string</explosiontexture> (optional)
             texture to use for the explosion particles, contained in textureset.xml
   <explosionsound>string</explosionsound> (optional)
             sound to play when the explosion goes off, none for no sound

</accessoryaction>

WeaponGiveAccessory

Gives a specified number of the specified accessory to the player. It can also be used to take away a specified amount of that accessory if you supply a negative number.

<accessoryaction type="WeaponGiveAccessory">

   <armslevel>int</armslevel>
   <giveaccessory>string</giveaccessory>
             Name of the accessory to give
             The accessory being given MUST COME BEFORE this one
   <number>int</number>
             Amount of this accessory to give to the player

</accessoryaction>

WeaponGiveLife

Gives a specified amount of life (health) to the player. It can also be used to reduce the player's health.

<accessoryaction type="WeaponGiveLife">

   <armslevel>int</armslevel>
   <life>float</life>
             Amount of life to give to the player
   <exceedmax>bool</exceedmax>
             If true, player can exceed their maximum health

</accessoryaction>

WeaponGiveLives

Gives a specified number of lives to the player, used to ressurect the player after death.

<accessoryaction type="WeaponGiveLives">

   <armslevel>int</armslevel>
   <lives>int</lives>
             Number of lives to give to the player

</accessoryaction>

WeaponGiveMoney

Gives a specified amount of money to the player, can also be used to reduce the amount of money a player has.

<accessoryaction type="WeaponGiveMoney">

   <armslevel>int</armslevel>
   <money>int</money>
             Amount of money to give to the player

</accessoryaction>

WeaponGivePower

Sets the player's maximum shot power to the specified amount.

<accessoryaction type="WeaponGivePower">

   <armslevel>int</armslevel>
   <power>float</power>
             What to set the player's max shot power to

</accessoryaction>

WeaponGiveScore

Gives a specified amount of score points to the player. It can also be used to take score away from the player for doing something they shouldn't do.

<accessoryaction type="WeaponGiveScore">

   <armslevel>int</armslevel>
   <score>int</score>
             Amount of points to give to (or take away from) the player

</accessoryaction>

WeaponGiveWin

Used to award the round win to the player or team that triggers the event.

<accessoryaction type="WeaponGiveWin">

   <armslevel>int</armslevel>
   <objective>string</objective>
             Message that is displayed when the round win is awarded
   <winningteam>int</winningteam>
             team that gets the win, 1 = red, 2 = blue, etc

</accessoryaction>

WeaponInvokeWeapon

This primitive calls another pre-defined weapon 'X'. If a person is killed by this weapon it would say killed by weapon X. The kill money etc would be calculated from X's attributes.

<accessoryaction type="WeaponInvokeWeapon">

   <armslevel>int</armslevel>
   <invoke>string</invoke>
             Name of the accessory to give
             The accessory being invoked MUST COME BEFORE this one

</accessoryaction>

WeaponLaser

Shoots a laser beam in the direction currently being aimed at.

<accessoryaction type="WeaponLaser">

   <armslevel>int</armslevel>
   <minimumhurt>float</minimumhurt>
             minimum damage the laser will do (@ 1000 power)
   <maximumhurt>float</maximumhurt>
             maximimum distance the laser can travel (@ 1000 power)
   <hurtradius>float</hurtradius>
             radius within which tanks will take damage from the laser
   <minimumdistance>float</minimumdistance>
             minimum distance the laser can travel (@ 0 power)
   <maximumdistance>float</maximumdistance>
             maximimum distance the laser can travel (@ 1000 power)
   <totaltime>float</totaltime>
             total length of time the laser is visible, in seconds
   <color> Determines the color of the laser beam
       <a>0 to 1</a> amount of red
       <b>0 to 1</b> amount of green
       <c>0 to 1</c> amount of blue
   </color>

</accessoryaction>

WeaponLeapFrog

Causes the next primitive to be shot at the same angle of inclination that it came in at and with a given change in velocity. So if it was coming down at an angle of 60 degrees, it will be shot at 60 degrees toward the direction it was traveling before it hit.

<accessoryaction type="WeaponLeapFrog">

   <armslevel>int</armslevel>
   <bounce>float</bounce>
             amount to change the velocity by (newvelocity = velocity * bounce)
             1 = 100%, 5 = 50%, 2 = 200%, etc
   <collisionaction>Weapon</collisionaction>
             Can be any one of the weapon accessories.

</accessoryaction>

WeaponLightning

Creates a bolt of lightning with the specified properties.

<accessoryaction type="WeaponLightning">

   <armslevel>int</armslevel>
   <conelength>float</conelength>
             length of the lightning bolt
   <seglength>float</seglength>
             length of each segment of the bolt
   <segvar>float</segvar>
             max length variance of each segment? not sure
   <size>float</size>
             width of the lightning segments
   <sizevar>float</sizevar>
             amount the width can vary?  not sure
   <minsize>float</minsize>
             minimum width of the bolt?  not sure
   <splitprob>float</splitprob>
             probability that the bolt will fork into multiple segments
   <splitvar>float</splitvar>
             not sure
   <deathprob>float</deathprob>
             probability that the bolt will stop at a given segment
   <derivangle>float</derivangle>
             amount the angle of the bolt can change per segment?  not sure
   <anglevar>float</anglevar>
             not sure
   <totaltime>float</totaltime>
             total life time of the lightning particles, in seconds
   <seghurt>float</seghurt>
             amount of damage done to tanks per segment
   <seghurtradius>float</seghurtradius>
             radius within which segments will do damage
   <sound>string</sound>
             sound to play for this bolt, none = no sound

</accessoryaction>

WeaponMirv

Splits up into a number of weapons fanned out from the current position in the direction it is aimed. MIRVs can be configured to spread out vertically, horizontally, or both.

<accessoryaction type="WeaponMirv">

   <armslevel>int</armslevel>
   <nowarheads>int</nowarheads>
             number of instances of the next primitive to create
   <hspreaddist>float</hspreaddist>
             amount the mirv will fan out horizontally
             unlike vspread, projectiles fan out randomly within this max value
   <vspreaddist>float</vspreaddist>
             amount the mirv will fan out vertically
   <aimedweapon>Weapon</aimedweapon>
             Can be any one of the weapon accessories.

</accessoryaction>

WeaponMoveTank

Moves the players tank to the current position. The player will gradually move across the landscape at a configurable speed. This primitive can configured to use the accessory as 'fuel' so that the range is limited by the amount of that item the player has. If the item is not used as fuel, the maximumrange is always whatever the current max range is defined as.

<accessoryaction type="WeaponMoveTank">

   <armslevel>int</armslevel>
   <steptime>float</steptime> (optional)
           Used to determine rate at which the player moves.
           Lower = faster movement (default = 0.05)
   <usefuel>bool</usefuel> (optional)
           "true"= use fuel from inventory, "false"= Don't.
   <maximumrange>int</maximumrange> (optional)
           maximum distance the player can move per turn

</accessoryaction>

WeaponMulti

Used to fire off multiple sets of primitives from the same point in time and space. It is a necessity if you want to do more than one thing at a time.

<accessoryaction type="WeaponMulti">

 <subweapon1 type="Weapon..."> (any weapon accessory)
    ...
 </subweapon1>
 <subweapon2 type="Weapon..."> (any weapon accessory)
    ...
 </subweapon2>
 <subweapon...> (optional, can keep going if necessary)
    ...
 </subweapon...>

</accessoryaction>

WeaponNapalm

Flows and burns downhill over a given time for a given amount of damage.

<accessoryaction type="WeaponNapalm">

   <armslevel>int</armslevel>
   <napalmtime>float</napalmtime>
             time in seconds to burn and flow down hill
   <napalmheight>float</napalmheight>
             height of the flames
   <steptime>float</steptime>
             time in seconds between movements downhill
   <hurtsteptime>float</hurtsteptime>
             time in seconds between updates of the player health?
   <hurtpersecond>float</hurtpersecond>
             amount of damage napalm does per second
   <numberstreams>int</numberstreams>
             number of napalm streams to create at the start point
   <effectradius>int</effectradius>
             radius within which the napalm will damage opponents
   <napalmsound>string</napalmsound>
             sound to play when the napalm goes off, none = no sound
   <napalmtexture>string</napalmtexture>
             animation texture to use, contained in textureset.xml
   <allowunderwater>bool</allowunderwater>
             whether or not this napalm can travel under water
   <noluminance/> (optional)
             napalm will not appear luminant
   <deformtexture>string</deformtexture> (optional)
             texture that is used when scorching the ground
   <groundscorchper>float</groundscorchper> (optional)
             time to wait between ground scorches (default = 0.8)
   <nosmoke>bool</nosmoke> (optional)
             if true, the napalm will not generate smoke
   <noobjectdamage>bool</noobjectdamage> (optional)
             if true, the weapon will not damage landscape objects

</accessoryaction>

WeaponNull

Does nothing. It can be useful if you want to prematurely 'cap off' a weapon before you are totally finished with it so you can test it out. For instance, you have just wrote a really long and complex weapon that ends up shooting some projectiles. You have a really complex explosion in mind, but haven't wrote it yet. You can just use a WeaponNull on the projectile's collisionactions to test the weapon out before you are finished making the explosions.

<accessoryaction type="WeaponNull">

   <armslevel>int</armslevel>

</accessoryaction>

WeaponProjectile

Makes a projectile of a given size and shape that collides with the ground or other targets.

<accessoryaction type="WeaponProjectile">

   <armslevel>int</armslevel> (optional)
   <under>bool</under> (optional)
             *
   <spinspeed>float</spinspeed> (optional)
             *
   <projectilescale>float</projectilescale> (optional)
             *
   <projectilemodel>ModelID</projectilemodel> (optional)
             *
   <smokelife>float</smokelife> (optional)
             *
   <flamelife>float</flamelife> (optional)
             *
   <flamestartsize>float</flamestartsize> (optional)
             *
   <flameendsize>float</flameendsize> (optional)
             *
   <smokestartsize>float</smokestartsize> (optional)
             *
   <smokeendsize>float</smokeendsize> (optional)
             *
   <flamestartcolor1>Vector</flamestartcolor1> (optional)
             *
   <flamestartcolor2>Vector</flamestartcolor2> (optional)
             *
   <flameendcolor1>Vector</flameendcolor1> (optional)
             *
   <flameendcolor2>Vector</flameendcolor2> (optional)
             *
   <showshotpath>bool</showshotpath> (optional)
             *
   <showendpoint>bool</showendpoint> (optional)
             *
   <apexcollision>bool</apexcollision> (optional)
             *
   <apexnodud>bool</apexnodud> (optional)
             *
   <timedcollision>float</timedcollision> (optional)
             *
   <timeddud>bool</timeddud> (optional)
             *
   <nocreatesmoke>XMLNode</nocreatesmoke> (optional)
             *
   <nocreateflame>XMLNode</nocreateflame> (optional)
             *
   <enginesound>string</enginesound> (optional)
             *
   <flaretype>int</flaretype> (optional)
             *
   <shieldhurtfactor>float</shieldhurtfactor> (optional)
             *
   <windfactor>float</windfactor> (optional)
             *
   <collisionaction>Weapon</collisionaction>
             *

</accessoryaction>

WeaponRandomChoice

Used to randomly choose between different segments of code.

<accessoryaction type="WeaponRandomChoice">

   <armslevel>int</armslevel>
   <weaponchoice1>
       <armslevel>int</armslevel>
       <weight>int</weight>
       <weapon>Weapon</weapon>
   </weaponchoice1>
   <weaponchoice2>
       <armslevel>int</armslevel>
       <weight>int</weight>
       <weapon>Weapon</weapon>
   </weaponchoice2>
   <weaponchoice...>
       ...
   </weaponchoice...>

</accessoryaction>

WeaponRedirect

Used to re-aim projectiles and other weapons either relative to their current direction or to a specific angle.

<accessoryaction type="WeaponRedirect">

   <armslevel>int</armslevel>
   <hredirect>float</hredirect>
             *
   <habs>bool</habs>
             *
   <vredirect>float</vredirect>
             *
   <vabs>bool</vabs>
             *
   <nextaction>Weapon</nextaction>
             *

</accessoryaction>

WeaponReference

Used in Weapon 'Y' to fire off a predefined weapon 'X' contained elsewhere in the xml. If a person is killed by weapon Y, it would say killed by weapon Y. The kill money etc would be calculated from Y's attributes. Weapon X MUST COME BEFORE Weapon Y.

<accessoryaction type="WeaponReference">

   <armslevel>int</armslevel>
   <weapon>Weapon</weapon>
             *

</accessoryaction>

WeaponRepeat

Performs the given xml a specified number of times with a specified delay in between.

<accessoryaction type="WeaponRepeat">

   <armslevel>int</armslevel>
   <repeatweapon>Weapon</repeatweapon>
             *
   <repeat>int</repeat>
             *
   <delay>float</delay>
             *

</accessoryaction>

WeaponRoller

Creates a number of rolling warheads which roll downhill and go off when they collide with a tank or time out.

<accessoryaction type="WeaponRoller">

   <armslevel>int</armslevel>
   <numberrollers>int</numberrollers>
             *
   <time>float</time>
             *
   <shieldhurtfactor>float</shieldhurtfactor>
             *
   <windfactor>float</windfactor>
             *
   <rollermodel>ModelID</rollermodel>
             *
   <collisionaction>Weapon</collisionaction>
             *

</accessoryaction>

WeaponScatterDirection

Changes the direction to a specific direction with a random offset.

<accessoryaction type="WeaponScatterDirection">

   <armslevel>int</armslevel>
   <direction>Vector</direction>
             *
   <directionoffset>Vector</directionoffset>
             *
   <aimedweapon>Weapon</aimedweapon>
             *

</accessoryaction>

WeaponScatterPosition

Randomly offsets the current position by a percentage of the landscape size.

<accessoryaction type="WeaponScatterPosition">

   <armslevel>int</armslevel>
   <landonly>bool</landonly>
             *
   <landheight>bool</landheight>
             *
   <scatterpercentage>float</scatterpercentage>
             *
   <aimedweapon>Weapon</aimedweapon>
             *

</accessoryaction>

WeaponSelectPosition

Allows the player to select the position where the weapon will be placed. There are various types of position selection available that can be defined in the accessory's header area.

<accessoryaction type="WeaponSelectPosition">

   <armslevel>int</armslevel>
   <aimedweapon>Weapon</aimedweapon>
             *

</accessoryaction>

WeaponSkyFlash

Used to illuminate the sky for lightning.

<accessoryaction type="WeaponSkyFlash">

   <armslevel>int</armslevel>

</accessoryaction>

WeaponSound

Plays the specified sound with the given properties.

<accessoryaction type="WeaponSound">

   <armslevel>int</armslevel>
   <sound>string</sound>
             *
   <gain>float</gain>
             *
   <rolloff>float</rolloff>
             *
   <referencedistance>float</referencedistance>
             *
   <relative>bool</relative>
             *

</accessoryaction>

WeaponTankPosition

Moves the next action to the player's current position.

<accessoryaction type="WeaponTankPosition">

   <armslevel>int</armslevel>
   <aimedweapon>Weapon</aimedweapon>
             *
   <sightpos>bool</sightpos>
             *

</accessoryaction>

WeaponTankVelocity

Sets the next action's velocity to the player's current shot velocitiy.

<accessoryaction type="WeaponTankVelocity">

   <armslevel>int</armslevel>
   <aimedweapon>Weapon</aimedweapon>
             *

</accessoryaction>

WeaponTeamAction

Used to trigger different events based on which team the player is on. Team0 is the event that occurs when no teams are in play. You can define different events for all 4 teams.

<accessoryaction type="WeaponTeamAction">

   <armslevel>int</armslevel>
   <team0 type="Weapon...">
      ...
   </team0>
   <team1 type="Weapon...">
      ...
   </team1>
   ...

</accessory>

WeaponTeleport

Teleports the user to the weapons current position on the landscape.

<accessoryaction type="WeaponTeleport">

   <armslevel>int</armslevel>
   <delay>float</delay>
             *
   <sound>string</sound>
             *
   <groundonly>bool</groundonly>
             *

</accessoryaction>

WeaponTranslate

Moves the projectile or other weapon to a further point along the current axis at a specified distance.

<accessoryaction type="WeaponTranslate">

   <armslevel>int</armslevel>
   <translatedist>float</translatedist>
             *
   <nextaction>Weapon</nextaction>
             *

</accessoryaction>

WeaponTypeAction

Used to trigger different events based on which tank type the player is using. Below, "none" and "tanktype1" refer to tank types you have defined in your mod's tanktypes.xml file. You can define events for every tanktype you have in the mod.

<accessoryaction type="WeaponTypeAction">

   <armslevel>int</armslevel>
   <none type="Weapon...">
   </none>
   <tanktype1 type="Weapon...">
   </tanktype1>
   ...

</accessory>

WeaponVelocity

Changes the velocity of the current weapon either relative to its current velocity or to a pre-defined velocity.

<accessoryaction type="WeaponVelocity">

   <armslevel>int</armslevel>
   <velocitychange>float</velocitychange>
             *
   <abs>bool</abs>
             *
   <aimedweapon>Weapon</aimedweapon>
             *

</accessoryaction>

Donate to Scorched3D Get it from CNET Download.com! 5 Stars