571 lines
10 KiB
Text
571 lines
10 KiB
Text
#name "turretweapon"
|
|
#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 24
|
|
|
|
// This tells the configstring converter what the file type identifier should be
|
|
string "WEAPONFILE" configstringFileType
|
|
|
|
// This uses the config string convert's multi-target folder
|
|
// mechanism to make the weapon either a single-player weapon
|
|
// or a multi-player weapon.
|
|
// The first character is used to specify which target folder to go in
|
|
enum { "1: Single-Player", "2: Multi-Player" } targetFolder
|
|
|
|
string "none" projectileTrail
|
|
|
|
enum { "turret" } weaponClass
|
|
enum { "bullet", "projectile" } weaponType
|
|
enum { "stand", "prone", "duck" } stance
|
|
enum { "none", "bullet_small", "bullet_large", "bullet_ap", "shotgun", "grenade_bounce", "grenade_explode", "rocket_explode", "projectile_dud" } impactType
|
|
enum { "none", "small", "medium", "large" } penetrateType
|
|
enum { "primary" } inventoryType
|
|
enum { "Full Auto", "Single Shot" } fireType
|
|
|
|
string adsOverlayShader
|
|
int 320 1 640 adsOverlayWidth
|
|
int 240 1 480 adsOverlayHeight
|
|
enum { "none", "Turret Scope" } adsOverlayInterface
|
|
|
|
int 1 0 1 projImpactExplode
|
|
int 600 0 10000 projectileSpeed
|
|
int 300 0 10000 explosionRadius
|
|
int 10 0 10000 explosionInnerDamage
|
|
int 10 0 10000 explosionOuterDamage
|
|
float 180 0 180 damageConeAngle
|
|
|
|
string script
|
|
|
|
int 30 0 1000 damage
|
|
int 30 0 1000 playerDamage
|
|
|
|
int 30 0 1000 minDamage
|
|
int 30 0 1000 minPlayerDamage
|
|
|
|
float 15000 1 15000 maxDamageRange
|
|
float 16000 1 16000 minDamageRange
|
|
|
|
float 1600 0 10000 enemyCrosshairRange
|
|
|
|
float 1600 0 8000 autoAimRange
|
|
float 3200 0 8000 aimAssistRange
|
|
float 3200 0 8000 aimAssistRangeAds
|
|
|
|
int 115 0 360 leftArc
|
|
int 115 0 360 rightArc
|
|
int 90 0 360 topArc
|
|
int 90 0 360 bottomArc
|
|
int 0 0 360 grabarc
|
|
float 1 0 1 accuracy
|
|
float 2 0 180 aiSpread
|
|
float 1 0 180 playerSpread
|
|
|
|
float 0.05 0.0 10.0 fireTime
|
|
int 20 0 180 animHorRotateInc
|
|
int 5 1 720 minHorTurnSpeed
|
|
int 5 1 720 minVertTurnSpeed
|
|
int 360 1 720 maxHorTurnSpeed
|
|
int 360 1 720 maxVertTurnSpeed
|
|
int 100 1 720 horTurnSpeed
|
|
int 100 1 720 vertTurnSpeed
|
|
float 0.3 0 60 pitchConvergenceTime
|
|
float 2 0 60 yawConvergenceTime
|
|
float 2 0 60 suppressionTime
|
|
float 0 0 1000000 maxRange
|
|
float 0.5 0 5 horizViewJitter
|
|
float 0.5 0 5 vertViewJitter
|
|
|
|
int 0 0 1 rifleBullet
|
|
int 0 0 1 armorPiercing
|
|
|
|
string fireSound
|
|
string fireSoundPlayer
|
|
string loopFireSound
|
|
string loopFireSoundPlayer
|
|
string stopFireSound
|
|
string stopFireSoundPlayer
|
|
|
|
string viewFlashEffect
|
|
string worldFlashEffect
|
|
|
|
string reticleCenter
|
|
int 32 1 480 reticleCenterSize
|
|
|
|
string idleAnim
|
|
string fireAnim
|
|
float 46 1 128 playerPositionDist
|
|
|
|
string hudIcon
|
|
string killIcon
|
|
enum { "4:1", "1:1", "2:1" } hudIconRatio
|
|
enum { "4:1", "1:1", "2:1" } killIconRatio
|
|
int 1 0 1 flipKillIcon
|
|
|
|
string useHintString
|
|
string dropHintString
|
|
|
|
keyenum("rumble.gdf") fireRumble
|
|
|
|
float 0 0 100 adsDofStart
|
|
float 0 0 100 adsDofEnd
|
|
|
|
vcontainer
|
|
{
|
|
scrollbox(targetFolder)
|
|
[
|
|
exec
|
|
{
|
|
width(300)
|
|
}
|
|
]
|
|
|
|
scrollbox(stance)
|
|
[
|
|
exec
|
|
{
|
|
width(300)
|
|
}
|
|
]
|
|
|
|
scrollbox(weaponType)
|
|
[
|
|
exec
|
|
{
|
|
width(300)
|
|
}
|
|
]
|
|
|
|
scrollbox(impactType)
|
|
[
|
|
exec
|
|
{
|
|
width(300)
|
|
label("Impact type")
|
|
tooltip("The impact type, used to play impact effects based on surfacetype")
|
|
}
|
|
]
|
|
|
|
scrollbox(penetrateType)
|
|
[
|
|
exec
|
|
{
|
|
label("Penetration")
|
|
tooltip("Type of bullet penetration.")
|
|
}
|
|
]
|
|
|
|
scrollbox(fireType)
|
|
[
|
|
exec
|
|
{
|
|
width(300)
|
|
label("Fire Type")
|
|
tooltip("Behavior of the weapon when the trigger is held down.")
|
|
}
|
|
]
|
|
|
|
////////////////////////////////////////
|
|
// 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)")
|
|
}
|
|
]
|
|
|
|
|
|
spinedit(damage, 1, 10)
|
|
[
|
|
exec
|
|
{
|
|
tooltip("The maximum amount of per-bullet damage done to anything other than the player at maxDamageRange.")
|
|
}
|
|
]
|
|
spinedit(playerDamage, 1, 10)
|
|
[
|
|
exec
|
|
{
|
|
tooltip("The maximum amount of per-bullet damage done only to the player at maxDamageRange.")
|
|
}
|
|
]
|
|
spinedit(minDamage, 1, 10)
|
|
[
|
|
exec
|
|
{
|
|
tooltip("The minimum amount of per-bullet damage done to anything other than the player at minDamageRange.")
|
|
}
|
|
]
|
|
spinedit(minPlayerDamage, 1, 10)
|
|
[
|
|
exec
|
|
{
|
|
tooltip("The minimum amount of per-bullet damage done only to the player at minDamageRange.")
|
|
}
|
|
]
|
|
|
|
floatedit(maxDamageRange, 120, 8000)
|
|
[
|
|
exec
|
|
{
|
|
tooltip("Distance specified in world units. 1 world unit = 1 inch.")
|
|
}
|
|
]
|
|
floatedit(minDamageRange, 120, 8000)
|
|
[
|
|
exec
|
|
{
|
|
tooltip("Distance specified in world units. 1 world unit = 1 inch.")
|
|
}
|
|
]
|
|
|
|
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)
|
|
}
|
|
]
|
|
|
|
spinedit(projectileSpeed, 10, 100)
|
|
spinedit(explosionRadius, 10, 50)
|
|
|
|
spinedit(explosionInnerDamage, 1, 10)
|
|
[
|
|
exec
|
|
{
|
|
width(300)
|
|
labelwidth(160)
|
|
}
|
|
]
|
|
|
|
spinedit(explosionOuterDamage, 1, 10)
|
|
[
|
|
exec
|
|
{
|
|
width(300)
|
|
labelwidth(160)
|
|
}
|
|
]
|
|
|
|
spinedit(leftArc, 1, 10)
|
|
spinedit(rightArc, 1, 10)
|
|
spinedit(topArc, 1, 10)
|
|
spinedit(bottomArc, 1, 10)
|
|
|
|
floatedit(accuracy, 0.1, 0.2)
|
|
[
|
|
exec
|
|
{
|
|
tooltip("The probability between 0 and 1 that for any bullet the AI will aim at the player")
|
|
}
|
|
]
|
|
floatedit(aiSpread, 0.1, 0.2)
|
|
[
|
|
exec
|
|
{
|
|
label("ai spread")
|
|
width(270)
|
|
tooltip("The bullet spread in degrees when the gun is used by AI")
|
|
}
|
|
]
|
|
floatedit(playerSpread, 0.1, 0.2)
|
|
[
|
|
exec
|
|
{
|
|
label("player spread")
|
|
width(270)
|
|
tooltip("The bullet spread in degrees when the gun is used by the player")
|
|
}
|
|
]
|
|
floatedit(fireTime, 0.05, 0.2)
|
|
|
|
spinedit(animHorRotateInc, 1, 10)
|
|
|
|
spinedit(minHorTurnSpeed, 1, 10)
|
|
spinedit(minVertTurnSpeed, 1, 10)
|
|
spinedit(maxHorTurnSpeed, 1, 10)
|
|
spinedit(maxVertTurnSpeed, 1, 10)
|
|
|
|
floatedit(pitchConvergenceTime, 0.1, 1)
|
|
floatedit(yawConvergenceTime, 0.1, 1)
|
|
floatedit(suppressionTime, 0.1, 1)
|
|
floatedit(maxRange, 1, 10)
|
|
floatedit(horizViewJitter, 0.1, 1)
|
|
floatedit(vertViewJitter, 0.1, 1)
|
|
|
|
edit(script)
|
|
|
|
checkbox(rifleBullet)
|
|
checkbox(armorPiercing)
|
|
checkbox(projImpactExplode)
|
|
|
|
edit(fireSound)
|
|
edit(fireSoundPlayer)
|
|
[
|
|
exec
|
|
{
|
|
label("fire (Player)")
|
|
}
|
|
]
|
|
edit(loopFireSound)
|
|
edit(loopFireSoundPlayer)
|
|
[
|
|
exec
|
|
{
|
|
label("loopFire (Player)")
|
|
}
|
|
]
|
|
edit(stopFireSound)
|
|
edit(stopFireSoundPlayer)
|
|
[
|
|
exec
|
|
{
|
|
label("stopFire (Player)")
|
|
}
|
|
]
|
|
|
|
fileedit(viewFlashEffect)
|
|
[
|
|
exec
|
|
{
|
|
reldir("raw/")
|
|
}
|
|
]
|
|
fileedit(worldFlashEffect)
|
|
[
|
|
exec
|
|
{
|
|
reldir("raw/")
|
|
}
|
|
]
|
|
fileedit(reticleCenter)
|
|
[
|
|
exec
|
|
{
|
|
reldir("raw/")
|
|
}
|
|
]
|
|
spinedit(reticleCenterSize, 1, 2)
|
|
|
|
fileedit(idleAnim)
|
|
[
|
|
exec
|
|
{
|
|
reldir("raw/xanim/")
|
|
width(500)
|
|
}
|
|
]
|
|
fileedit(fireAnim)
|
|
[
|
|
exec
|
|
{
|
|
reldir("raw/xanim/")
|
|
width(500)
|
|
}
|
|
]
|
|
floatedit(playerPositionDist, 1, 10)
|
|
|
|
////////////////////////////////////////
|
|
// UI
|
|
////////////////////////////////////////
|
|
vcontainer
|
|
{
|
|
hcontainer
|
|
{
|
|
fileedit(hudIcon)
|
|
[
|
|
exec
|
|
{
|
|
label("Hud Icon")
|
|
reldir("raw/")
|
|
width(450)
|
|
labelwidth(130)
|
|
}
|
|
]
|
|
scrollbox(hudIconRatio)
|
|
[
|
|
exec
|
|
{
|
|
label(" Aspect:")
|
|
width(110)
|
|
labelwidth(60)
|
|
}
|
|
]
|
|
}
|
|
hcontainer
|
|
{
|
|
fileedit(killIcon)
|
|
[
|
|
exec
|
|
{
|
|
label("Kill Icon")
|
|
reldir("raw/")
|
|
width(450)
|
|
labelwidth(130)
|
|
}
|
|
]
|
|
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)
|
|
}
|
|
]
|
|
}
|
|
edit(useHintString)
|
|
edit(dropHintString)
|
|
}
|
|
[
|
|
exec
|
|
{
|
|
groupBox("User Interface")
|
|
}
|
|
]
|
|
|
|
scrollbox(fireRumble)
|
|
[
|
|
exec
|
|
{
|
|
width(500)
|
|
}
|
|
]
|
|
|
|
////////////////////////////////////////
|
|
// Depth of Field Settings
|
|
////////////////////////////////////////
|
|
vcontainer
|
|
{
|
|
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")
|
|
}
|
|
]
|
|
|
|
////////////////////////////////////////
|
|
// ADS Overlay Settings
|
|
////////////////////////////////////////
|
|
vcontainer
|
|
{
|
|
edit(adsOverlayShader)
|
|
[
|
|
exec
|
|
{
|
|
label("Shader")
|
|
tooltip("Overlay for sniper rifles in ADS. Uses a quarter circle image to construct a full scope view.")
|
|
width(500)
|
|
}
|
|
]
|
|
|
|
scrollbox(adsOverlayInterface)
|
|
[
|
|
exec
|
|
{
|
|
label("Interface")
|
|
tooltip("Interactive Interface for Overlay")
|
|
}
|
|
]
|
|
|
|
hcontainer
|
|
{
|
|
spinedit(adsOverlayWidth, 1, 10)
|
|
[
|
|
exec
|
|
{
|
|
label("Width")
|
|
}
|
|
]
|
|
|
|
spinedit(adsOverlayHeight, 1, 10)
|
|
[
|
|
exec
|
|
{
|
|
label("Height")
|
|
}
|
|
]
|
|
}
|
|
}
|
|
[
|
|
exec
|
|
{
|
|
groupBox("ADS Overlay Settings")
|
|
}
|
|
]
|
|
|
|
}
|
|
|