Lua WeaponDefs: Difference between revisions

From Spring
Jump to navigationJump to search
Knorke (talk | contribs)
WeaponDefNames, works same as Lua_UnitDefs
mNo edit summary
Line 14: Line 14:
</code>
</code>


==naming==
==Naming==
If a unit named "tank" has a weapon named "gun", the resulting <code>name</code> will be "tank_gun" and you can get this weaponDefID like:
If a unit named "tank" has a weapon named "gun", the resulting <code>name</code> will be "tank_gun" and you can get this weaponDefID like:


<code>local gunID = WeaponDefNames["tank_gun"].id</code>
<code>local gunID = WeaponDefNames["tank_gun"].id</code>


==exampe==
==Example==
Here an example of a weapon table:
In key = value format, where WeaponDefs[weaponDefID].key==value, with subtables at the end.
 
<code><pre>
  '''WeaponDefs['''3''']["customParams"] = {
    accuracy = 0,
      ...
    avoidFeature = false,
    } <span class=note>Key-names written must be lowercase and</span><span class=warning> Values can only be strings.</span>
    avoidFriendly = true,
  '''WeaponDefs['''3''']["accuracy"]''' = 0,
    avoidNeutral = false,
  '''WeaponDefs['''3''']["areaOfEffect"]''' = 128,
    beamTTL = 0,
  '''WeaponDefs['''3''']["avoidFriendly"]''' = false,
    beamburst = false,
  '''WeaponDefs['''3''']["avoidFeature"]''' = false,
    beamtime = 0.10000000149012,
  '''WeaponDefs['''3''']["avoidNeutral"]''' = false,
    bouncerebound = 1,
  '''WeaponDefs['''3''']["beamburst"]''' = false,
    canAttackGround = true,
  '''WeaponDefs['''3''']["beamtime"]''' = 1,
    cegTag = "",
  '''WeaponDefs['''3''']["bouncerebound"]''' = 1,
    collisionSize = 0.050000000745058,
  '''WeaponDefs['''3''']["cameraShake"]''' = 1.5,
    coverageRange = 0,
  '''WeaponDefs['''3''']["canAttackGround"]''' = true,
    craterAreaOfEffect = 0,
  '''WeaponDefs['''3''']["cegTag"]''' = "",
    cylinderTargeting = 1,
  '''WeaponDefs['''3''']["collisionSize"]''' = 0.050000000745058,
    cylinderTargetting = 1,
  '''WeaponDefs['''3''']["coreThickness"]''' = 0.25,
    damageAreaOfEffect = 6,
  '''WeaponDefs['''3''']["coverageRange"]''' = 0,
    dance = 0,
  '''WeaponDefs['''3''']["cylinderTargetting"]''' = 0,
    description = "J7Laser",
  '''WeaponDefs['''3''']["damages"]''' = {
    duration = 0.050000000745058,
      '''[1]''' = 420,
    dynDamageExp = 0,
      '''[2]''' = 420,
    dynDamageInverted = false,
      '''[3]''' = 420,
    dynDamageMin = 0,
      '''[4]''' = 420,
    dynDamageRange = 0,
      ...
    edgeEffectiveness = 0.99000000953674,
      -> '''[ [[Lua_ConstGame#Categories|armorType]] ]''' = number damage,
    energyCost = 0,
 
    explosionSpeed = 3.233583688736,
      '''["paralyzeDamageTime"]''' = 0,
    exteriorShield = false,
      '''["impulseBoost"]''' = 0.12300000339746,
    fireStarter = 0.69999998807907,
      '''["impulseFactor"]''' = 0.12300000339746,
    flightTime = 0,
      '''["craterBoost"]''' = 0,
    gravityAffected = false,
      '''["craterMult"]''' = 0,
     groundbounce = false,
     }
    groundslip = 1,
  '''WeaponDefs['''3''']["dance"]''' = 0,
    heightBoostFactor = -1,
  '''WeaponDefs['''3''']["description"]''' = "CruiserDepthCharge",
    heightMod = 1,
  '''WeaponDefs['''3''']["dropped"]''' = false,
    highTrajectory = 2,
  '''WeaponDefs['''3''']["duration"]''' = 0.050000000745058,
    id = 220,
  '''WeaponDefs['''3''']["edgeEffectiveness"]''' = 0.80000001192093,
    impactOnly = true,
  '''WeaponDefs['''3''']["energyCost"]''' = 0,
    intensity = 0.89999997615814,
  '''WeaponDefs['''3''']["explosionSpeed"]''' = 3.233583688736,
    interceptSolo = true,
  '''WeaponDefs['''3''']["exteriorShield"]''' = false,
    interceptedByShieldType = 2,
  '''WeaponDefs['''3''']["filename"]''' = "TorpedoLauncher",
    interceptor = 0,
  '''WeaponDefs['''3''']["fireSound"]''' = {
    isShield = false,
      '''[1]''' = {
    largeBeamLaser = false,
        '''["id"]''' = 8,
    laserHardStop = false,
        '''["name"]''' = "torpedo1.wav",
    leadBonus = 0,
        '''["volume"]''' = 14.491376876831,
     leadLimit = -1,
      }
    manualFire = false,
     }
    maxAngle = 0.95873802900314,
  '''WeaponDefs['''3''']["fireStarter"]''' = 0,
    metalCost = 0,
  '''WeaponDefs['''3''']["graphicsType"]''' = -16777216,
    minIntensity = 0,
  '''WeaponDefs['''3''']["gravityAffected"]''' = false,
    movingAccuracy = 0,
  '''WeaponDefs['''3''']["groundbounce"]''' = true,
    myGravity = 0,
  '''WeaponDefs['''3''']["groundslip"]''' = 1,
    name = "corcom_armcomlaser",
  '''WeaponDefs['''3''']["heightBoostFactor"]''' = -1,
    noAutoTarget = false,
  '''WeaponDefs['''3''']["heightMod"]''' = 0.20000000298023,
    noEnemyCollide = false,
  '''WeaponDefs['''3''']["highTrajectory"]''' = 1,
    noExplode = false,
  '''WeaponDefs['''3''']["hitSound"]''' = {
    noFeatureCollide = false,
      '''[1]''' = {
    noFriendlyCollide = false,
        '''["id"]''' = 9,
    noGroundCollide = false,
        '''["name"]''' = "xplodep2.wav",
     noNeutralCollide = false,
        '''["volume"]''' = 28.982753753662,
    noSelfDamage = true,
      }
    numbounce = -1,
     }
    onlyForward = false,
  '''WeaponDefs['''3''']["id"]''' = 3,
    paralyzer = false,
  '''WeaponDefs['''3''']["impactOnly"]''' = false,
    predictBoost = 0,
  '''WeaponDefs['''3''']["intensity"]''' = 0.89999997615814,
    projectiles = 1,
  '''WeaponDefs['''3''']["interceptedByShieldType"]''' = 0,
    projectilespeed = 30.000001907349,
  '''WeaponDefs['''3''']["interceptor"]''' = 0,
    proximityPriority = 1,
  '''WeaponDefs['''3''']["isShield"]''' = false,
    range = 300,
  '''WeaponDefs['''3''']["largeBeamLaser"]''' = false,
    reload = 0.40000000596046,
  '''WeaponDefs['''3''']["laserFlareSize"]''' = 15,
    salvoDelay = 0.10000000149012,
  '''WeaponDefs['''3''']["leadLimit"]''' = 1,
    salvoSize = 1,
  '''WeaponDefs['''3''']["leadBonus"]''' = 1,
    selfExplode = false,
  '''WeaponDefs['''3''']["manualFire"]''' = false,
    shieldAlpha = 0.20000000298023,
  '''WeaponDefs['''3''']["maxAngle"]''' = 180,
    shieldBadColorB = 0.5,
  '''WeaponDefs['''3''']["maxVelocity"]''' = 200,
    shieldBadColorG = 0.5,
  '''WeaponDefs['''3''']["metalCost"]''' = 0,
    shieldBadColorR = 1,
  '''WeaponDefs['''3''']["minIntensity"]''' = 0,
    shieldEnergyUse = 0,
  '''WeaponDefs['''3''']["movingAccuracy"]''' = 0,
    shieldForce = 0,
  '''WeaponDefs['''3''']["name"]''' = "advdepthcharge",
    shieldGoodColorB = 1,
  '''WeaponDefs['''3''']["noAutoTarget"]''' = false,
    shieldGoodColorG = 0.5,
  '''WeaponDefs['''3''']["noExplode"]''' = false,
    shieldGoodColorR = 0.5,
  '''WeaponDefs['''3''']["noFeatureCollide"]''' = false,
    shieldInterceptType = 0,
  '''WeaponDefs['''3''']["noFriendlyCollide"]''' = true,
    shieldMaxSpeed = 0,
  '''WeaponDefs['''3''']["noNeutralCollide"]''' = false,
    shieldPower = 0,
  '''WeaponDefs['''3''']["noSelfDamage"]''' = true,
    shieldPowerRegen = 0,
  '''WeaponDefs['''3''']["numbounce"]''' = 1,
    shieldPowerRegenEnergy = 0,
  '''WeaponDefs['''3''']["onlyForward"]''' = true,
    shieldRadius = 0,
  '''WeaponDefs['''3''']["onlyTargetCategories"]''' = {
    shieldRechargeDelay = 0,
      '''["antiflame"]''' = false,
    shieldRepulser = false,
      '''["vtol"]''' = false,
    size = 2.1875,
      '''["notland"]''' = false,
    sizeGrowth = 0.5,
      '''["fort"]''' = false,
    smartShield = false,
      '''["special"]''' = false,
    soundTrigger = true,
      '''["notair"]''' = false,
    sprayAngle = 0,
      '''["kbot"]''' = false,
    startvelocity = 0.0099999997764826,
      '''["antiemg"]''' = false,
    stockpile = false,
      '''["commander"]''' = false,
    stockpileTime = 30,
      '''["jam"]''' = false,
    sweepFire = false,
      '''["tport"]''' = false,
    targetBorder = 0,
      '''["constr"]''' = false,
    targetMoveError = 0.050000000745058,
      '''["strategic"]''' = false,
    targetable = 0,
      '''["kamikaze"]''' = false,
    tdfId = 0,
      '''["minelayer"]''' = false,
    tracks = false,
      '''["hover"]''' = false,
    trajectoryHeight = 0,
      '''["noweapon"]''' = false,
    turnRate = 0,
      '''["plant"]''' = false,
    turret = true,
      '''["ship"]''' = false,
    type = "BeamLaser",
      '''["antilaser"]''' = false,
    uptime = 0,
      '''["phib"]''' = false,
    visibleShield = false,
      '''["mine"]''' = false,
    visibleShieldHitFrames = 0,
      '''["notstructure"]''' = false,
    visibleShieldRepulse = false,
      '''["tank"]''' = false,
    waterWeapon = false,
      '''["mobile"]''' = false,
    waterbounce = false,
      '''["underwater"]''' = false,
    weaponAcceleration = 0,
      '''["antigator"]''' = false,
    wobble = 0,
      '''["notship"]''' = false,
    customParams = {},
      '''["all"]''' = false,
    damages = {
      '''["notsub"]''' = false,
        craterBoost = 0,
      '''["weapon"]''' = false,
        ...
     }
    },
  '''WeaponDefs['''3''']["paralyzer"]''' = false,
     fireSound = {
  '''WeaponDefs['''3''']["predictBoost"]''' = 1,
        [1] = {
  '''WeaponDefs['''3''']["projectiles"]''' = 1,
            id = 36,
  '''WeaponDefs['''3''']["projectilespeed"]''' = 6.6666665077209,
            name = "lasrfir1",
  '''WeaponDefs['''3''']["proximityPriority"]''' = 1.0,
            volume = 6.1237244606018,
  '''WeaponDefs['''3''']["range"]''' = 500,
        },
  '''WeaponDefs['''3''']["reload"]''' = 6,
        ...
  '''WeaponDefs['''3''']["restTime"]''' = 0,
    },
  '''WeaponDefs['''3''']["salvoDelay"]''' = 0.10000000149012,
    hitSound = {
  '''WeaponDefs['''3''']["salvoSize"]''' = 1,
        [1] = {
  '''WeaponDefs['''3''']["selfExplode"]''' = true,
            id = -1,
  '''WeaponDefs['''3''']["shieldAlpha"]''' = 0.20000000298023,
            name = "",
  '''WeaponDefs['''3''']["shieldBadColorB"]''' = 0.5,
            volume = 6.1237244606018,
  '''WeaponDefs['''3''']["shieldBadColorG"]''' = 0.5,
        },
  '''WeaponDefs['''3''']["shieldBadColorR"]''' = 1,
        ...
  '''WeaponDefs['''3''']["shieldEnergyUse"]''' = 0,
    },
  '''WeaponDefs['''3''']["shieldForce"]''' = 0,
    visuals = {
  '''WeaponDefs['''3''']["shieldGoodColorB"]''' = 1,
        alphaDecay = 1,
  '''WeaponDefs['''3''']["shieldGoodColorG"]''' = 0.5,
        alwaysVisible = false,
  '''WeaponDefs['''3''']["shieldGoodColorR"]''' = 0.5,
        beamDecay = 1,
  '''WeaponDefs['''3''']["shieldInterceptType"]''' = 0,
        beamWeapon = false,
  '''WeaponDefs['''3''']["shieldMaxSpeed"]''' = 0,
        color2B = 1,
  '''WeaponDefs['''3''']["shieldPower"]''' = 0,
        color2G = 1,
  '''WeaponDefs['''3''']["shieldPowerRegen"]''' = 0,
        color2R = 1,
  '''WeaponDefs['''3''']["shieldPowerRegenEnergy"]''' = 0,
        colorB = 0,
  '''WeaponDefs['''3''']["shieldRadius"]''' = 0,
        colorG = 0,
  '''WeaponDefs['''3''']["shieldRechargeDelay"]''' = 0,
        colorR = 1,
  '''WeaponDefs['''3''']["shieldRepulser"]''' = false,
        coreThickness = 0.10000000149012,
  '''WeaponDefs['''3''']["size"]''' = 3.0499999523163,
        laserFlareSize = 7,
  '''WeaponDefs['''3''']["sizeGrowth"]''' = 0.20000000298023,
        modelName = "",
  '''WeaponDefs['''3''']["smartShield"]''' = false,
        noGap = true,
  '''WeaponDefs['''3''']["soundTrigger"]''' = false,
        pulseSpeed = 1,
  '''WeaponDefs['''3''']["sprayAngle"]''' = 0,
        scrollSpeed = 5,
  '''WeaponDefs['''3''']["startvelocity"]''' = 3.6666667461395,
        separation = 1,
  '''WeaponDefs['''3''']["stockpile"]''' = false,
        sizeDecay = 0,
  '''WeaponDefs['''3''']["stockpileTime"]''' = 0,
        smokeTrail = false,
  '''WeaponDefs['''3''']["supplyCost"]''' = 0,
        stages = 5,
  '''WeaponDefs['''3''']["sweepFire"]''' = false,
        thickness = 2,
  '''WeaponDefs['''3''']["targetBorder"]''' = 0,
        tileLength = 200,
  '''WeaponDefs['''3''']["targetMoveError"]''' = 0,
    },
  '''WeaponDefs['''3''']["targetable"]''' = 0,
</pre></code>
  '''WeaponDefs['''3''']["tdfId"]''' = 0,
  '''WeaponDefs['''3''']["thickness"]''' = 2,
  '''WeaponDefs['''3''']["tracks"]''' = true,
  '''WeaponDefs['''3''']["trajectoryHeight"]''' = 0,
  '''WeaponDefs['''3''']["turnRate"]''' = 0.031319729983807,
  '''WeaponDefs['''3''']["turret"]''' = false,
  '''WeaponDefs['''3''']["type"]''' = "TorpedoLauncher",
  '''WeaponDefs['''3''']["uptime"]''' = 10,
  '''WeaponDefs['''3''']["visibleShield"]''' = false,
  '''WeaponDefs['''3''']["visibleShieldHitFrames"]''' = 0,
  '''WeaponDefs['''3''']["visibleShieldRepulse"]''' = false,
  '''WeaponDefs['''3''']["visuals"]''' = {
      '''["alphaDecay"]''' = 1,
      '''["alwaysVisible"]''' = false,
      '''["beamWeapon"]''' = false,
      '''["beamTTL"]''' = 1,
      '''["beamDecay"]''' = 1,
      '''["colorR"]''' = 1,
      '''["colorB"]''' = 0,
      '''["colorG"]''' = 0,
      '''["color2R"]''' = 1,
      '''["color2B"]''' = 1,
      '''["color2G"]''' = 1,
      '''["hardStop"]''' = false,
      '''["modelName"]''' = "DEPTHCHARGE",
      '''["noGap"]''' = 1,
      '''["pulseSpeed"]''' = 1,
      '''["scrollSpeed"]''' = 5,
      '''["separation"]''' = 1,
      '''["sizeDecay"]''' = 0,
      '''["smokeTrail"]''' = false,
      '''["stages"]''' = 5,
      '''["tileLength"]''' = 200,
    }
  '''WeaponDefs['''3''']["waterbounce"]''' = true,
  '''WeaponDefs['''3''']["waterWeapon"]''' = true,
  '''WeaponDefs['''3''']["weaponAcceleration"]''' = 0.016666667535901,
  '''WeaponDefs['''3''']["wobble"]''' = 0,


[[category: Lua]]
[[category: Lua]]

Revision as of 12:08, 12 August 2015

Development < Lua Scripting < Lua WeaponDefs

The WeaponDefs[] table holds all information about the weapons used in a game.

Works the same way as Lua_UnitDefs except the tables are called WeaponDefs[] and WeaponDefNames[]

Note: Its entries are metatables, so you can't use the pairs() iterator on them, use this instead:

 for id,weaponDef in pairs(WeaponDefs) do
   for name,param in weaponDef:pairs() do
     Spring.Echo(name,param)
   end
 end

Naming

If a unit named "tank" has a weapon named "gun", the resulting name will be "tank_gun" and you can get this weaponDefID like:

local gunID = WeaponDefNames["tank_gun"].id

Example

In key = value format, where WeaponDefs[weaponDefID].key==value, with subtables at the end.

    accuracy = 0,
    avoidFeature = false,
    avoidFriendly = true,
    avoidNeutral = false,
    beamTTL = 0,
    beamburst = false,
    beamtime = 0.10000000149012,
    bouncerebound = 1,
    canAttackGround = true,
    cegTag = "",
    collisionSize = 0.050000000745058,
    coverageRange = 0,
    craterAreaOfEffect = 0,
    cylinderTargeting = 1,
    cylinderTargetting = 1,
    damageAreaOfEffect = 6,
    dance = 0,
    description = "J7Laser",
    duration = 0.050000000745058,
    dynDamageExp = 0,
    dynDamageInverted = false,
    dynDamageMin = 0,
    dynDamageRange = 0,
    edgeEffectiveness = 0.99000000953674,
    energyCost = 0,
    explosionSpeed = 3.233583688736,
    exteriorShield = false,
    fireStarter = 0.69999998807907,
    flightTime = 0,
    gravityAffected = false,
    groundbounce = false,
    groundslip = 1,
    heightBoostFactor = -1,
    heightMod = 1,
    highTrajectory = 2,
    id = 220,
    impactOnly = true,
    intensity = 0.89999997615814,
    interceptSolo = true,
    interceptedByShieldType = 2,
    interceptor = 0,
    isShield = false,
    largeBeamLaser = false,
    laserHardStop = false,
    leadBonus = 0,
    leadLimit = -1,
    manualFire = false,
    maxAngle = 0.95873802900314,
    metalCost = 0,
    minIntensity = 0,
    movingAccuracy = 0,
    myGravity = 0,
    name = "corcom_armcomlaser",
    noAutoTarget = false,
    noEnemyCollide = false,
    noExplode = false,
    noFeatureCollide = false,
    noFriendlyCollide = false,
    noGroundCollide = false,
    noNeutralCollide = false,
    noSelfDamage = true,
    numbounce = -1,
    onlyForward = false,
    paralyzer = false,
    predictBoost = 0,
    projectiles = 1,
    projectilespeed = 30.000001907349,
    proximityPriority = 1,
    range = 300,
    reload = 0.40000000596046,
    salvoDelay = 0.10000000149012,
    salvoSize = 1,
    selfExplode = false,
    shieldAlpha = 0.20000000298023,
    shieldBadColorB = 0.5,
    shieldBadColorG = 0.5,
    shieldBadColorR = 1,
    shieldEnergyUse = 0,
    shieldForce = 0,
    shieldGoodColorB = 1,
    shieldGoodColorG = 0.5,
    shieldGoodColorR = 0.5,
    shieldInterceptType = 0,
    shieldMaxSpeed = 0,
    shieldPower = 0,
    shieldPowerRegen = 0,
    shieldPowerRegenEnergy = 0,
    shieldRadius = 0,
    shieldRechargeDelay = 0,
    shieldRepulser = false,
    size = 2.1875,
    sizeGrowth = 0.5,
    smartShield = false,
    soundTrigger = true,
    sprayAngle = 0,
    startvelocity = 0.0099999997764826,
    stockpile = false,
    stockpileTime = 30,
    sweepFire = false,
    targetBorder = 0,
    targetMoveError = 0.050000000745058,
    targetable = 0,
    tdfId = 0,
    tracks = false,
    trajectoryHeight = 0,
    turnRate = 0,
    turret = true,
    type = "BeamLaser",
    uptime = 0,
    visibleShield = false,
    visibleShieldHitFrames = 0,
    visibleShieldRepulse = false,
    waterWeapon = false,
    waterbounce = false,
    weaponAcceleration = 0,
    wobble = 0,
    customParams = {},
    damages = {
        craterBoost = 0,
        ...
    },
    fireSound = {
        [1] = {
            id = 36,
            name = "lasrfir1",
            volume = 6.1237244606018,
        },
        ...
    },
    hitSound = {
        [1] = {
            id = -1,
            name = "",
            volume = 6.1237244606018,
        },
        ...
    },
    visuals = {
        alphaDecay = 1,
        alwaysVisible = false,
        beamDecay = 1,
        beamWeapon = false,
        color2B = 1,
        color2G = 1,
        color2R = 1,
        colorB = 0,
        colorG = 0,
        colorR = 1,
        coreThickness = 0.10000000149012,
        laserFlareSize = 7,
        modelName = "",
        noGap = true,
        pulseSpeed = 1,
        scrollSpeed = 5,
        separation = 1,
        sizeDecay = 0,
        smokeTrail = false,
        stages = 5,
        thickness = 2,
        tileLength = 200,
    },