cod5-sdk/deffiles/vehicleweapon.gdf

1085 lines
20 KiB
Plaintext

#name "vehicleweapon"
#dll "all" "weapon"
#target_dir "weapons/sp/" // target location 1 (single-player)
#target_dir "weapons/mp/" // target location 2 (multi-player)
#target_dir "xmodel/"
#target_dir ""
#target_dir "xanim/"
#file_ext "*"
#version 18
string "WEAPONFILE" configstringFileType
enum { "non-player", "mg", "rocketlauncher" } weaponClass
enum { "1: Single-Player", "2: Multi-Player" } targetFolder
enum { "bullet", "projectile", "bomb", "gas" } weaponType
enum { "none", "small", "medium", "large" } penetrateType
enum { "none", "bullet_small", "bullet_large", "bullet_ap", "shotgun", "grenade_bounce", "grenade_explode", "rocket_explode", "projectile_dud", "mortar_shell", "tank_shell" } impactType
enum { "primary" } inventoryType
string flameTableFirstPerson
string flameTableThirdPerson
string worldFlashEffect
string worldShellEjectEffect
string fireSound
string fireSoundPlayer
keyenum("rumble.gdf") fireRumble
int 100 1 1000 rechamberBoltTime
int 30 0 3000 damage
int 30 0 3000 minDamage
float 15000 1 15000 maxDamageRange
float 16000 1 16000 minDamageRange
float 750 1 10000 damageDuration
float 100 1 10000 damageInterval
int 30 0 1000 playerDamage
float 1600 0 8000 autoAimRange
float 3200 0 8000 aimAssistRange
float 3200 0 8000 aimAssistRangeAds
float 10 0 180 aimPadding
float 0 0 50 adsSpread
float 15000 0 15000 enemyCrosshairRange
float 1.0 0 10 locNone
float 1.0 0 10 locHelmet
float 1.0 0 10 locHead
float 1.0 0 10 locNeck
float 1.0 0 10 locTorsoUpper
float 1.0 0 10 locTorsoLower
float 1.0 0 10 locRightArmUpper
float 1.0 0 10 locRightArmLower
float 1.0 0 10 locRightHand
float 1.0 0 10 locLeftArmUpper
float 1.0 0 10 locLeftArmLower
float 1.0 0 10 locLeftHand
float 1.0 0 10 locRightLegUpper
float 1.0 0 10 locRightLegLower
float 1.0 0 10 locRightFoot
float 1.0 0 10 locLeftLegUpper
float 1.0 0 10 locLeftLegLower
float 1.0 0 10 locLeftFoot
float 1.0 0 10 locGun
float 0 -300 300 proneOfsF
float 0 -300 300 proneOfsR
float 0 -300 300 proneOfsU
float 0 -300 300 duckedOfsF
float 0 -300 300 duckedOfsR
float 0 -300 300 duckedOfsU
float 0.1 0.0 10.0 fireTime
// additional projectile weapon info
int 300 0 10000 explosionRadius
int 10 0 10000 explosionInnerDamage
int 10 0 10000 explosionOuterDamage
float 180 0 180 damageConeAngle
int 600 0 10000 projectileSpeed
int 0 0 10000 projectileSpeedUp
int 0 0 10000 projectileActivateDist
float 30 0 10000 projectileLifetime
float 0 0 10000 timeToAccelerate
float 0 0 10000 projectileCurvature
string projectileModel
enum { "grenade", "rocket", "molotov", "none" } projExplosionType
string projExplosionEffect
int 0 0 1 projExplosionEffectForceNormalUp
string projExplosionSound
string projDudEffect
string projDudSound
string projectileSound
int 0 0 1 armorPiercing
int 1 0 1 projImpactExplode
// additional projectile weapon info
string projTrailEffect
int 200 0 1000 projectileDLight
float 0.75 0 1 projectileRed
float 0.3 0 1 projectileGreen
float 0.0 0 1 projectileBlue
float 0.0 0 10 destabilizationRateTime
float 10 0.0 10000000 destabilizationCurvatureMax
int 30000 0 32000 destabilizeDistance
enum { "None", "Sidewinder", "Hellfire", "Javelin" } guidedMissileType
float 3000 0 1000000 maxSteeringAccel
int 360 1 720 maxHorTurnSpeed
int 360 1 720 maxVertTurnSpeed
float 0 0 5 horizViewJitter
float 0 0 5 vertViewJitter
string useHintString
enum { "None", "Pip-On-A-Stick", "Bouncing diamond" } activeReticleType
string reticleCenter
int 32 1 480 reticleCenterSize
float 0 0 100 adsDofStart
float 0 0 100 adsDofEnd
string killIcon
enum { "4:1", "1:1", "2:1" } killIconRatio
int 1 0 1 flipKillIcon
int 0 0 1 aimDownSight
float 65 1 160 adsZoomFov
float 0.1 0 10 adsTransInTime
float 0.1 0 10 adsTransOutTime
float 0.5 0 1 adsZoomInFrac
float 0.1 0 1 adsZoomOutFrac
vcontainer
{
scrollbox(targetFolder)
[
exec
{
width(300)
labelwidth(160)
}
]
scrollbox(weaponType)
[
exec
{
width(300)
labelwidth(160)
}
]
scrollbox(weaponClass)
[
exec
{
width(300)
labelwidth(160)
}
]
////////////////////////////////////////
// Aim Assist
////////////////////////////////////////
vcontainer
{
floatedit(autoAimRange, 1, 100)
[
exec
{
label("Auto Aim Range")
tooltip("(Console only.) The range in world units up to which entering ADS will lock-on to enemies. (1 world unit = 1 inch)")
}
]
hcontainer
{
floatedit(aimAssistRange, 1, 100)
[
exec
{
label("Aim Assist Range")
tooltip("(Console only.) The range in world units up to which the crosshair will stick to targets. (1 world unit = 1 inch)")
}
]
floatedit(aimAssistRangeAds, 1, 100)
[
exec
{
label("Aim Assist Range ADS")
tooltip("(Console only.) The range in world units up to which the crosshair will stick to targets in ADS. (1 world unit = 1 inch)")
width(260)
labelwidth(160)
}
]
}
}
[
exec
{
groupBox("Aim Assist (Console only)")
}
]
floatedit(aimPadding, 0.1, 0.2)
[
exec
{
label("Aim Padding")
tooltip("The direction of fire will turn away from the barrel direction towards the player's view by up to this amount (in degrees). Set to zero if you want the direction of fire to be exactly the direction of the barrel.")
width(280)
labelwidth(180)
}
]
floatedit(adsSpread, 0.1, 1)
[
exec
{
label("Spread")
tooltip("Size of bullet/projectile spread cone. Bullet/projectile will project randomly within the confines of the cone.")
width(280)
labelwidth(180)
}
]
floatedit(enemyCrosshairRange, 1, 100)
[
exec
{
label("Enemy Crosshair Range")
tooltip("The range in world units at which an enemy will change your crosshair color. (1 world unit = 1 inch)")
width(280)
labelwidth(180)
}
]
hcontainer
{
floatedit(proneOfsF, 0.1, 1)
[
exec
{
label("Offset Forward")
tooltip("The view will slide forward by this amount. (-ive for backward)")
}
]
floatedit(proneOfsR, 0.1, 1)
[
exec
{
label("Offset Right")
tooltip("The view will slide sideways by this amount. (-ive for backward)")
}
]
floatedit(proneOfsU, 0.1, 1)
[
exec
{
label("Offset Up")
tooltip("The view will slide upwards by this amount. (-ive for backward)")
}
]
}
hcontainer
{
floatedit(duckedOfsF, 0.1, 1)
[
exec
{
label("ADS Offset Forward")
tooltip("The view will slide forward by this amount. (-ive for backward)")
}
]
floatedit(duckedOfsR, 0.1, 1)
[
exec
{
label("ADS Offset Right")
tooltip("The view will slide sideways by this amount. (-ive for backward)")
}
]
floatedit(duckedOfsU, 0.1, 1)
[
exec
{
label("ADS Offset Up")
tooltip("The view will slide upwards by this amount. (-ive for backward)")
}
]
}
checkbox(armorPiercing)
[
exec
{
width(300)
labelwidth(160)
}
]
scrollbox(penetrateType)
[
exec
{
label("Penetration")
tooltip("Type of bullet penetration.")
}
]
scrollbox(impactType)
[
exec
{
width(300)
label("Impact type")
tooltip("The impact type, used to play impact effects based on surfacetype")
}
]
fileedit(worldFlashEffect)
[
exec
{
label("World Flash Effect")
reldir("share/raw/")
labelwidth(160)
}
]
fileedit(worldShellEjectEffect)
[
exec
{
label("World Shell Eject")
reldir("share/raw/")
width(500)
}
]
edit(fireSound)
[
exec
{
width(500)
labelwidth(160)
}
]
edit(fireSoundPlayer)
[
exec
{
tooltip("Fire sound used by player. If not defined, player will play normal 'Fire' that is used by the AI.")
width(400)
}
]
scrollbox(fireRumble)
[
exec
{
width(500)
labelwidth(160)
}
]
spinedit(maxHorTurnSpeed, 1, 10)
spinedit(maxVertTurnSpeed, 1, 10)
floatedit(horizViewJitter, 0.1, 1)
floatedit(vertViewJitter, 0.1, 1)
////////////////////////////////////////
// Damage
////////////////////////////////////////
vcontainer
{
hcontainer
{
spinedit(minDamage, 1, 10)
[
exec
{
label("Min Dmg")
tooltip("Damage per-bullet, applied beyond Min Dmg Range.")
}
]
floatedit(minDamageRange, 120, 8000)
[
exec
{
label("Min Dmg Range")
tooltip("Range in world units, beyond which the minimum damage is applied. (1 world unit = 1 inch)")
}
]
}
hcontainer
{
spinedit(damage, 1, 10)
[
exec
{
label("Max Dmg")
tooltip("Damage per-bullet, applied up to Max Dmg Range. Damage falls off linearly from Max Dmg Range until reaching Min Dmg at Min Dmg Range.")
}
]
floatedit(maxDamageRange, 120, 8000)
[
exec
{
label("Max Dmg Range")
tooltip("Range in world units, up to which the maximum damage is applied. (1 world unit = 1 inch)")
}
]
}
hcontainer
{
floatedit(damageDuration, 1, 10)
[
exec
{
label("Damage Duration")
tooltip("Duration to apply damage in ms for gas type weapons")
}
]
floatedit(damageInterval, 1, 10)
[
exec
{
label("Damage Interval")
tooltip("Frequency of damage over time in ms for gas type weapons")
}
]
}
hcontainer
{
spinedit(playerDamage, 1, 10)
[
exec
{
label("Damage to player")
tooltip("Damage done to player when hit by an AI")
}
]
}
}
[
exec
{
groupBox("Damage")
}
]
///////////////////////////////////////////////////
// Flamethrower Variables
///////////////////////////////////////////////////
vcontainer
{
edit(flameTableFirstPerson)
[
exec
{
label("1st Person Flame Table")
width(500)
}
]
edit(flameTableThirdPerson)
[
exec
{
label("3rd Person Flame Table")
width(500)
}
]
spinedit(rechamberBoltTime, 1, 100)
[
exec
{
label("MuzzleEffect Time")
tooltip("Time to wait in-between spawning a new MuzzleEffect")
}
]
}
[
exec
{
groupBox("Flamethrower")
}
]
////////////////////////////////////////
// Location Damage
////////////////////////////////////////
vcontainer
{
hcontainer
{
floatedit(locNone, 0.1, 0.2)
[
exec
{
label("None")
tooltip("Unrelated to weapon. Used for damage that's not location based, such as grenades or falling. Included here for completeness.")
}
]
floatedit(locHelmet, 0.1, 0.2)
[
exec
{
label("Helmet")
tooltip("Damage per-bullet multiplier.")
}
]
}
hcontainer
{
floatedit(locHead, 0.1, 0.2)
[
exec
{
label("Head")
tooltip("Damage per-bullet multiplier.")
}
]
floatedit(locNeck, 0.1, 0.2)
[
exec
{
label("Neck")
tooltip("Damage per-bullet multiplier.")
}
]
}
hcontainer
{
floatedit(locTorsoUpper, 0.1, 0.2)
[
exec
{
label("Upper Torso")
tooltip("Damage per-bullet multiplier.")
}
]
floatedit(locTorsoLower, 0.1, 0.2)
[
exec
{
label("Lower Torso")
tooltip("Damage per-bullet multiplier.")
}
]
}
hcontainer
{
floatedit(locLeftArmUpper, 0.1, 0.2)
[
exec
{
label("Left Upper Arm")
tooltip("Damage per-bullet multiplier.")
}
]
floatedit(locRightArmUpper, 0.1, 0.2)
[
exec
{
label("Right Upper Arm")
tooltip("Damage per-bullet multiplier.")
}
]
}
hcontainer
{
floatedit(locLeftArmLower, 0.1, 0.2)
[
exec
{
label("Left Lower Arm")
tooltip("Damage per-bullet multiplier.")
}
]
floatedit(locRightArmLower, 0.1, 0.2)
[
exec
{
label("Right Lower Arm")
tooltip("Damage per-bullet multiplier.")
}
]
}
hcontainer
{
floatedit(locLeftHand, 0.1, 0.2)
[
exec
{
label("Left Hand")
tooltip("Damage per-bullet multiplier.")
}
]
floatedit(locRightHand, 0.1, 0.2)
[
exec
{
label("Right Hand")
tooltip("Damage per-bullet multiplier.")
}
]
}
hcontainer
{
floatedit(locLeftLegUpper, 0.1, 0.2)
[
exec
{
label("Left Upper Leg")
tooltip("Damage per-bullet multiplier.")
}
]
floatedit(locRightLegUpper, 0.1, 0.2)
[
exec
{
label("Right Upper Leg")
tooltip("Damage per-bullet multiplier.")
}
]
}
hcontainer
{
floatedit(locLeftLegLower, 0.1, 0.2)
[
exec
{
label("Left Lower Leg")
tooltip("Damage per-bullet multiplier.")
}
]
floatedit(locRightLegLower, 0.1, 0.2)
[
exec
{
label("Right Lower Leg")
tooltip("Damage per-bullet multiplier.")
}
]
}
hcontainer
{
floatedit(locLeftFoot, 0.1, 0.2)
[
exec
{
label("Left Foot")
tooltip("Damage per-bullet multiplier.")
}
]
floatedit(locRightFoot, 0.1, 0.2)
[
exec
{
label("Right Foot")
tooltip("Damage per-bullet multiplier.")
}
]
}
floatedit(locGun, 0.1, 0.2)
[
exec
{
label("Gun")
tooltip("Damage per-bullet multiplier.")
}
]
}
[
exec
{
groupBox("Location Damage")
}
]
////////////////////////////////////////
// Reticle Settings
////////////////////////////////////////
vcontainer
{
fileedit(reticleCenter)
[
exec
{
label("Center Reticle")
tooltip("Center Reticle.")
reldir("pc/main/")
width(500)
}
]
spinedit(reticleCenterSize, 1, 2)
[
exec
{
label("Center Size")
tooltip("Center Size.")
}
]
scrollbox(activeReticleType)
[
exec
{
label("Active reticle")
width(300)
tooltip("Optional code-driven reticle animations")
}
]
}
[
exec
{
groupBox("Reticle Settings")
}
]
floatedit(fireTime, 0.05, 0.2)
[
exec
{
width(300)
labelwidth(160)
}
]
////////////////////////////////////////
// Projectile
////////////////////////////////////////
vcontainer
{
checkbox(projImpactExplode)
hcontainer
{
spinedit(explosionInnerDamage, 1, 10)
spinedit(explosionOuterDamage, 1, 10)
spinedit(explosionRadius, 10, 50)
}
hcontainer
{
spinedit(projectileSpeed, 10, 100)
spinedit(projectileSpeedUp, 10, 100)
spinedit(projectileActivateDist, 10, 100)
}
floatedit( projectileLifetime, 0.1, 1 )
[
exec
{
label("Lifetime")
tooltip("The time (in seconds) after which the missile will explode in the air, if it hasn't hit anything yet")
}
]
hcontainer
{
floatedit(timeToAccelerate, 0.1, 1)
[
exec
{
label("Time to accelerate")
tooltip("Time for the projectile to accelerate from zero to full speed.")
}
]
floatedit(projectileCurvature, 0.1, 1)
[
exec
{
label("Max flight curvature")
tooltip("The largest trajectory curvature allowed. The curvature is chosen randomly in this range.")
}
]
}
fileedit(projectileModel)
[
exec
{
reldir("pc/main/xmodel/")
}
]
hcontainer
{
scrollbox(projExplosionType)
checkbox(projExplosionEffectForceNormalUp)
[
exec
{
label("Force straight-up normal vector")
labelwidth(350)
width(400)
righttext()
}
]
}
fileedit(projExplosionEffect)
[
exec
{
reldir("share/raw/")
width(400)
}
]
fileedit(projDudEffect)
[
exec
{
reldir("share/raw/")
width(400)
}
]
edit(projExplosionSound)
edit(projDudSound)
edit(projectileSound)
[
exec
{
label("Projectile_sound")
width(500)
}
]
fileedit(projTrailEffect)
[
exec
{
reldir("share/raw/")
width(400)
}
]
spinedit(projectileDLight, 10, 100)
hcontainer
{
floatedit(projectileRed, 0.1, 0.1)
floatedit(projectileGreen, 0.1, 0.1)
floatedit(projectileBlue, 0.1, 0.1)
}
scrollbox(guidedMissileType)
[
exec
{
label("Missile guidance")
tooltip("Guided missile type")
}
]
floatedit(maxSteeringAccel, 1, 10 )
[
exec
{
visible( guidedMissileType != "None" )
label("Max steering accel")
tooltip("The maximum acceleration with which the guided missile can steer (inches / sec^2).")
}
]
}
[
exec
{
groupBox("Projectile")
}
]
hcontainer
{
spinedit(destabilizeDistance, 10, 100)
[
exec
{
label("Destabilize Distance")
tooltip("The distance the projectile goes before becoming unstable")
width(262)
labelwidth(187)
}
]
floatedit(destabilizationRateTime, 0.01, 0.1)
[
exec
{
label("Destabilize Rate (time)")
tooltip("The time between 'instability' course changes")
width(262)
labelwidth(187)
}
]
}
hcontainer
{
floatedit(destabilizationCurvatureMax, 0.01, 1)
[
exec
{
label("Destabilize Curvature Max")
tooltip("The maximum curvature in degrees per second")
width(262)
labelwidth(187)
}
]
}
edit(useHintString)
////////////////////////////////////////
// Depth of Field Settings
////////////////////////////////////////
vcontainer
{
hcontainer
{
checkbox(aimDownSight)
[
exec
{
label("ADS")
tooltip("Must be turned on for proper viewmodel appearance of a weapon that can be Aimed Down the Sight (ADS).")
righttext()
}
]
floatedit(adsZoomFov, 1, 5)
[
exec
{
label("Zoom FOV")
tooltip("Field of view when in ADS.")
}
]
}
hcontainer
{
floatedit(adsTransInTime, 0.05, 0.1)
[
exec
{
label("Trans In Time")
tooltip("Time it will take to switch from hipfire to ADS.")
}
]
floatedit(adsTransOutTime, 0.05, 0.1)
[
exec
{
label("Trans Out Time")
tooltip("Time it will take to switch from ADS to hipfire.")
}
]
}
hcontainer
{
floatedit(adsZoomInFrac, 0.05, 0.1)
[
exec
{
label("Zoom In Frac")
tooltip("Fraction of the hipfire-to-ADS transition time over which the FOV zoom-in effect happens.")
}
]
floatedit(adsZoomOutFrac, 0.05, 0.1)
[
exec
{
label("Zoom Out Frac")
tooltip("Fraction of the ADS-to-hipfire transition time over which the FOV zoom-out effect happens.")
}
]
}
hcontainer
{
floatedit(adsDofStart, 0.1, 0.5)
[
exec
{
label("ADS Start")
}
]
floatedit(adsDofEnd, 0.1, 0.5)
[
exec
{
label("ADS End")
}
]
}
}
[
exec
{
groupBox("Depth of Field Settings")
}
]
vcontainer
{
hcontainer
{
fileedit(killIcon)
[
exec
{
label("Kill Icon")
reldir("pc/main/")
width(500)
labelwidth(180)
}
]
scrollbox(killIconRatio)
[
exec
{
label(" Aspect:")
width(110)
labelwidth(60)
}
]
checkbox(flipKillIcon)
[
exec
{
label(" Flip:")
tooltip("Used for weapons that need to have their kill icon horizontally flipped before displaying. (For MP obituaries).")
lefttext()
width(65)
labelwidth(40)
}
]
}
}
[
exec
{
groupBox("User Interface")
}
]
}