////**** ROCKET-3 *** BFG-120 *** GRANNY-234 *** PLASMA-328 *** RAIL-380 *** LG-450 *** SG,MG,GAUNTLET-510 ///////////
weapon/rocket/flash {
color 1 0.20 0
size 400 + rand*32
light
}
weapon/rocket/projectile {
// wolfcam need to do model rotation yourself
// wolfcam add size option when adding models
model "models/ammo/rocket/rocket.md3"
rotate time * 1000 / 4
size 1
dirModel
loopSound "sound/weapons/rocket/rockfly.wav"
}
weapon/rocket/trail {
// world glow
color 1 0 0
size 500
Light
// flame trail
color 1 0.10 0
alpha 0.80
shader flareShader
interval 0.003 {
normalize dir v0
inverse v0
wobble v0 velocity 5 + rand*10
scale velocity velocity 75 + rand*50
emitter 0.6 + rand*0.5 {
size 13 * ( 1 - 0.5 * lerp * 1.5 )
colorFade 0.005
moveGravity 0
Sprite
}
}
}
weapon/rocket/impact {
vibrate 70
sound sound/weapons/rocket/rocklx1a.wav
shader gfx/damage/burn_med_mrk
size 64
Decal
// animating sprite of the explosion
shader rocketExplosion
size 40
color 1 0 0
emitter 1 {
// size will goto zero after 0.5 of the time
Sprite
size 300 * clip(2 - 2*lerp)
Light
}
// Particles
color 1 1 0
alpha 0.8
shader flareShader
repeat 20 {
random velocity
scale velocity velocity 250 + rand*50
size 1 + rand*2.5
emitter 1 + rand*0.5 {
colorFade 0.75
Sprite
moveBounce 400 0.75
}
}
color 1 0.20 0
alpha 0.90
shader flareShader
repeat 20 {
random velocity
scale velocity velocity 250 + rand*50
size 1 + rand*2.5
emitter 1 + rand*0.5 {
colorFade 0.75
Sprite
moveBounce 400 0.75
}
}
color 1 0.25 0
alpha 0.8
shader flareShader
repeat 20 {
random velocity
scale velocity velocity 250 + rand*50
size 1 + rand*2.5
emitter 1 + rand*0.5 {
colorFade 0.75
Sprite
moveBounce 400 0.75
}
}
}
////**** ROCKET-3 *** BFG-120 *** GRANNY-234 *** PLASMA-330 *** RAIL-380 *** LG-450 *** SG,MG,GAUNTLET-510 ///////////
// --------------------------------------------------------------------------------------
// ----- PLASMA -------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
// input: origin, team, clientnum, enemy, teammate, ineyes
weapon/plasma/flash {
color 1 0 0
size 200 + rand * 25
Light
}
// input: velocity, dir, rotate, origin, angles, axis, size
weapon/plasma/projectile {
loopSound "sound/weapons/plasma/lasfly.wav"
// world glow
size 125
color 0.35 0.35 1
Light
// 4x twisting flame
t0 360 / pi
t1 cos( t0 * time * pi * 2 )
t2 sin( t0 * time * pi * 2 )
normalize dir v2
inverse v2
perpendicular dir v0
cross v2 v0 v1
shader flareShader
distance 6 + 1 * rand {
scale v2 v2 0.6 + 0.6 * rand
repeat 4 {
if loopcount = 0 {
scale v0 v3 t2
scale v1 v4 t2
subScale v4 v0 v5 t1
addScale v3 v1 v5 t1
}
if loopcount = 1 {
scale v0 v3 -t2
scale v1 v4 -t2
addScale v4 v0 v5 t1
subScale v3 v1 v5 t1
}
if loopcount = 2 {
scale v0 v3 t1
scale v1 v4 t1
subScale v4 v0 v5 t2
addScale v3 v1 v5 -t2
}
if loopcount = 3 {
scale v0 v3 -t1
scale v1 v4 -t1
subScale v4 v0 v5 -t2
addScale v3 v1 v5 t2
}
add v2 v5 v6
addScale parentVelocity v6 velocity 75 + 50 * rand
emitter 0.3 * rand * rand {
t3 5 + 0.5 * crand
size t3 - t3 * ( 0.5 * lerp )
red 0.2 - lerp * 0.1
green 0.2 - lerp * 0.1
blue 0.9 + lerp * 0.1
colorFade 0
moveGravity 0
moveBounce 0.1 0.1
Sprite cullNear
}
}
// random flares
t4 3 + 0.5 * crand
random v7
addScale parentVelocity v7 velocity 75 + rand * 50
emitter 0.3 * rand * rand {
size t4 - t4 * lerp
red 0.2 - lerp * 0.1
green 0.2 + lerp * 0.2
blue 0.9 + lerp * 0.1
colorFade 0
moveGravity 0
moveBounce 0.1 0.1
Sprite cullNear
}
}
}
// input: origin, angles, velocity, dir, axis
weapon/plasma/trail {
// inverse flame
shader flareShader
distance 6 + 2 * rand {
normalize dir v0
inverse v0
addScale parentVelocity v0 velocity 200 + rand * 75
emitter 0.35 * rand * rand {
t0 20 - 2 * rand
size t0 - t0 * ( 0.5 * lerp )
width size - size * lerp
red 0.2 - lerp * 0.1
green 0.2 - lerp * 0.1
blue 0.9 + lerp * 0.1
colorFade 0
moveGravity 0
Spark cullNear
}
// inverse flares
normalize dir v1
inverse v1
addScale parentVelocity v1 velocity 250 + rand * 75
emitter 0.3 * rand * rand {
t1 8 - 2 * rand
size t1 - t1 * ( 0.5 * lerp )
width size - size * lerp
red 0.2 - lerp * 0.1
green 0.2 + lerp * 0.2
blue 0.9 + lerp * 0.1
colorFade 0
moveGravity 0
Spark cullNear
}
}
}
// input: origin, dir, surfacetype
weapon/plasma/impact {
vibrate 5
sound sound/weapons/plasma/plasmx1a.wav
shader plasmaExplosion
model models/weaphits/ring02.md3
rotate rand * 360
emitter 0.5 {
dirModel
}
copy origin parentOrigin
copy velocity parentVelocity
normalize dir v2
perpendicular dir v0
cross v0 v2 v1
t0 180 / pi
t1 pi * 2
t2 25 - 5 * rand
shader flareShader
repeat 30 + rand * 40 {
random dir
addScale parentVelocity dir velocity 350 * rand
width 2 + 1 * rand
emitter 0.7 * rand + rand * 0.4 {
size 20 - lerp * 20
color 1 0 0
colorFade 0.8
moveBounce 150 0.8
Spark
}
}
repeat 20 + 10 * rand {
t3 cos( t0 * loop * t1 )
t4 sin( t0 * loop * t1 )
scale v0 v3 10 * t3
addScale v3 v1 v4 10 * t4
add parentOrigin v4 origin
t5 5 * -sin( t0 * loop * t1 )
t6 5 * cos( t0 * loop * t1 )
scale v0 v5 t5
addScale v5 v1 v6 t6
scale v2 v7 5 * rand
add v6 v7 v8
addScale parentVelocity v8 velocity 25
emitter 0.2 + 0.1 * rand {
size t2 - t2 * ( 0.5 * lerp * 1.5 )
width size - size * ( 0.5 * lerp * 1.5 )
red 0.2 - lerp * 0.1
green 0.2 - lerp * 0.1
blue 0.9 + lerp * 0.1
colorFade 0
moveBounce 1 1
moveGravity 0
Spark cullNear
}
}
repeat 20 + 10 * rand {
t3 cos( t0 * loop * t1 )
t4 sin( t0 * loop * t1 )
scale v0 v3 10 * t3
addScale v3 v1 v4 10 * t4
add parentOrigin v4 origin
t5 5 * -sin( t0 * loop * t1 )
t6 5 * cos( t0 * loop * t1 )
scale v0 v5 t5
addScale v5 v1 v6 t6
scale v2 v7 5 * rand
add v6 v7 v8
addScale parentVelocity v8 velocity 25
emitter 0.2 + 0.2 * rand {
size t2 - t2 * ( 0.5 * lerp * 1.5 )
width size - size * ( 0.5 * lerp * 1.5 )
red 0.2 - lerp * 0.1
green 0.2 - lerp * 0.1
blue 0.9 + lerp * 0.1
colorFade 0
moveBounce 1 1
moveGravity 0
Spark cullNear
}
}
}
// input: origin, dir, team, clientnum, enemy, teammate, ineyes
weapon/plasma/impactflesh {
shader flareShader
repeat 30 + rand * 40 {
random dir
addScale parentVelocity dir velocity 350 * rand
width 2 + 1 * rand
emitter 0.2 * rand + rand * 0.4 {
size 20 - lerp * 20
color 1 0 0
colorFade 0.8
moveBounce 150 0.8
Spark
}
}
}
// --------------------------------------------------------------------------------------
// ----- LG -----------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
weapon/lightning/flash {
color 1 0 0
size 300 + rand*32
light
}
weapon/lightning/impact {
vibrate 5
soundList {
sound/weapons/lightning/lg_hit.wav
sound/weapons/lightning/lg_hit2.wav
sound/weapons/lightning/lg_hit3.wav
}
// sparks - controla la marca
shader flareShader
alpha 0
color 1 0.1 0
repeat 1 {
wobble dir velocity 5 + rand*25
scale velocity velocity 250 + rand*50
size 1 + rand*4
emitter 1 + rand*0.25 {
colorFade 0.75
Sprite
moveBounce 400 0.75
}
}
// controla las chispas q salen
shader flareShader
alpha 0.8
color 1 0 0
repeat 1 {
wobble dir velocity 5 + rand*25
scale velocity velocity 100 + rand*50
size 1 + rand*2
emitter 1 + rand*0.25 {
colorFade 0.75
Sprite
moveBounce 400 0.75
}
}
// hole mark shader decal
shader gfx/damage/hole_lg_mrk
size 10
decal
}
////**** ROCKET-3 *** BFG-120 *** GRANNY-234 *** PLASMA-328 *** RAIL-380 *** LG-450 *** SG,MG,GAUNTLET-510 ///////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// ///////////////////////////////////////////////////////////
//////////////////// STUFF ///////////////////////////////////////////////////////////
//////////////////// ///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// q3mme example scripts combined into one file with example changes to make
// it compatible with wolfcam
// wolfcam additional inputs to some scripts are:
// team 0 free, 1 red, 2 blue, 3 spectator
// clientnum
// enemy 1 if enemy of whoever is being specced in demo
// teammate
// ineyes 1 if first person view is with this player
// surfacetype for impact scripts: 0 not specified, 1 metal, 2 wood,
// 3 dust
//
/////////////////////////////////////////////////////
// Some general fx script you could use in the effects editor when really bored
mme/decal {
Trace
decalTemp
}
mme/quad {
quad
}
mme/model {
anglesModel
}
// Talk sprite
// input: origin, team, clientnum, enemy, teammate, ineyes
player/talk {
if ineyes != 1 {
size 10
shader sprites/balloon3
Sprite
}
}
// Impressive sprite
// input: origin, team, clientnum, enemy, teammate, ineyes
player/impressive {
if ineyes != 1 {
size 10
shader medal_impressive
Sprite
}
}
// Excellent sprite
// input: origin, team, clientnum, enemy, teammate, ineyes
player/excellent {
if ineyes != 1 {
size 10
shader medal_excellent
Sprite
}
}
// Holy shit medal from ra3
// input: origin, team, clientnum, enemy, teammate, ineyes
player/holyshit {
if ineyes != 1 {
size 10
shader medal_holyshit
Sprite
}
}
// Accuracy medal
// input: origin, team, clientnum, enemy, teammate, ineyes
player/accuracy {
if ineyes != 1 {
size 10
shader medal_accuracy
Sprite
}
}
// Gauntlet sprite
// input: origin, team, clientnum, enemy, teammate, ineyes
player/gauntlet {
if ineyes != 1 {
size 10
shader medal_gauntlet
Sprite
}
}
// connection sprite
// input: origin, team, clientnum, enemy, teammate, ineyes
player/connection {
if ineyes != 1 {
size 10
shader disconnected
Sprite
}
}
// haste/speed trail
// input: origin, angles, velocity, dir (normalized), team, clientnum,
// enemy, teammate, ineyes
player/haste {
interval 0.1 {
shader hasteSmokePuff
emitter 0.5 {
size 6 + 10 * wave( 0.5 * lerp )
alphaFade 0
sprite cullNear
}
}
}
// flight trail -- wolfcam addition, not in q3mme
// input: origin, angles, velocity, dir (normalized), team, clientnum,
// enemy, teammate, ineyes
player/flight {
interval 0.1 {
shader hasteSmokePuff
emitter 0.5 {
size 6 + 10 * wave( 0.5 * lerp )
alphaFade 0
sprite cullNear
}
}
}
// wolfcam addition, not in q3mme:
//
// player/head/trail
// player/torso/trail
// player/legs/trail
//
// input: origin, angles, velocity, dir (normalized), team, clientnum,
// enemy, teammate, ineyes
//player/legs/trail {
// interval 0.1 {
// shader sprites/balloon3
// emitter 0.5 {
// size 6 + 10 * wave( 0.5 * lerp )
// alphaFade 0
// sprite cullNear
// }
// }
//}
// teleport in effect and sound effect
// input: origin
player/teleportIn {
sound sound/world/telein.wav
// Show the fading spawn tube for 0.5 seconds
//model models/misc/telep.md3
// wolfcam ql uses different model
model models/powerups/pop.md3
//shader teleportEffect // wolfcam for ql don't add shader
emitter 0.5 {
colorFade 0
anglesModel
}
}
// teleport out effect and sound effect
// input: origin
player/teleportOut {
sound sound/world/teleout.wav
//Show the fading spawn tube for 0.5 seconds
//model models/misc/telep.md3
// wolfcam ql uses different model
model models/powerups/pop.md3
//shader teleportEffect // wolfcam for ql don't add shader
emitter 0.5 {
colorFade 0
anglesModel
}
}
// Explode the body into gibs
// input: origin, velocity, team, clientnum, enemy, teammate, ineyes
//
// wolfcam: guessing that velocity corresponds to player
player/gibbed {
if cl_useq3gibs {
sound sound/player/gibsplt1.wav
repeat 11 {
//Huge list of different body parts that get thrown away
modellist loop {
// wolfcam gibs located in different directory
//models/gibs/abdomen.md3
//models/gibs/arm.md3
//models/gibs/chest.md3
//models/gibs/fist.md3
//models/gibs/foot.md3
//models/gibs/forearm.md3
//models/gibs/intestine.md3
//models/gibs/leg.md3
//models/gibs/leg.md3
//models/gibs/skull.md3
//models/gibs/brain.md3
models/gibsq3/abdomen.md3
models/gibsq3/arm.md3
models/gibsq3/chest.md3
models/gibsq3/fist.md3
models/gibsq3/foot.md3
models/gibsq3/forearm.md3
models/gibsq3/intestine.md3
models/gibsq3/leg.md3
models/gibsq3/leg.md3
models/gibsq3/skull.md3
models/gibsq3/brain.md3
}
// aim v0 in random direction, giving more height to upwards vector and scale add to velocity
random v0
v02 v02+1
addScale parentVelocity v0 velocity 350
yaw 360*rand
pitch 360*rand
roll 360*rand
emitter 5 + rand*3 {
sink 0.9 50
moveBounce 800 0.6
anglesModel
impact 50 {
// wolfcam need to add gib splat sounds yourself
if rand < 0.5 {
t0 rand * 3
if t0 < 3 {
sound sound/player/gibimp3.wav
} else if t0 < 2 {
sound sound/player/gibimp2.wav
} else {
sound sound/player/gibimp1.wav
}
}
size 16 + rand*32
//shader bloodMark
// wolfcam
shader q3bloodMark
decal alpha
}
distance 20 {
// Slowly sink downwards
clear velocity
velocity2 -10
rotate rand*360
//shader bloodTrail
// wolfcam
shader q3bloodTrail
emitter 2 {
moveGravity 0
alphaFade 0
rotate rotate + 10*lerp
size 8 + 10*lerp
sprite
}
}
}
}
} else {
t0 rand * 4
if t0 < 4 {
sound sound/misc/electrogib_04.ogg
} else if t0 < 3 {
sound sound/misc/electrogib_03.ogg
} else if t0 < 2 {
sound sound/misc/electrogib_02.ogg
} else {
sound sound/misc/electrogib_01.ogg
}
// death effect
shader deathEffect
size 100
copy velocity v3
clear velocity
emitter 0.5 {
sprite
}
copy v3 velocity
shaderClear
repeat 15 {
// aim v0 in random direction, giving more height to upwards vector and scale add to velocity
random v0
v02 v02+1
addScale parentVelocity v0 velocity 350
yaw 360*rand
pitch 360*rand
roll 360*rand
model models/gibs/sphere.md3
size 1
emitter 1 + rand*0.5 {
sink 0.9 50
moveBounce 800 0.6
anglesModel
impact 50 {
if rand < 0.5 {
t0 rand * 4
if t0 < 4 {
sound sound/misc/electrogib_bounce_04.ogg
} else if t0 < 3 {
sound sound/misc/electrogib_bounce_03.ogg
} else if t0 < 2 {
sound sound/misc/electrogib_bounce_02.ogg
} else {
sound sound/misc/electrogib_bounce_01.ogg
}
}
//size 16 + rand*32
//shader bloodMark
//decal alpha
}
distance 20 {
clear velocity
shader wc/tracer
size 2.5 + rand * 1
color 0 1 0
emitter 0.5 {
red lerp
rotate rotate + 10*lerp
//size 8 + 10*lerp
sprite
}
}
}
}
}
}
// Freezetag thaw
// input: origin, velocity, team, clientnum, enemy, teammate, ineyes
//
// wolfcam: guessing that velocity corresponds to player
//
// player/thawed {}
// General weapon effects
// flash is a 0.25 second event after a weapon is fired
// fire is a single event when weapon is fired
// impact is for weapons impact on something or explode like gr enades
// trail is a single event for weapons without projectiles or a
// constant event when projectile is in motion projectile is for
// rendering the specific projectile
// wolfcam: the other ql weapons also available as 'nailgun', 'prox',
// and 'chaingun'
// wolfcam: weapons also have, in addition to /impact scripts, /impactflesh
// scripts. ex: weapon/plasma/impactflesh
// inputs for 'impactflesh' are: origin and dir
//
// If a weapon doesn't have an impactflesh script 'weapon/common/impactFlesh'
// will be checked. 'weapon/common/impactFlesh' would be a good place to
// place custom hit sparks.
// input: origin, dir, team, clientnum, enemy, teammate, ineyes
//weapon/common/impactFlesh {
// shader flareShader
// size 5
// color 1 0 1
// emitter 4 {
// //origin2 origin2 + lerp * 8
// velocity2 200
// moveGravity 0
// Sprite
// }
//}
//General weapon effects
//flash is a 0.25 second event after a weapon is fired
//fire is a single event when weapon is fired
//impact is for weapons impact on something or explode like gr enades
//trail is a single event for weapons without projectiles or a constant event when projectile is in motion
//projectile is for rendering the specific projectile
//Bubbles in the water
//input origin
weapon/common/bubbles {
shader waterbubble
distance 5+rand*10 {
size 1 + rand * 2
random dir
addScale origin dir origin 10 * rand
emitter 1+rand*0.25 {
alphaFade 0
origin2 origin2 + lerp * 8
Sprite
}
}
}
//////////////////////////////////////////////////////////
weapon/gauntlet/flash {
color 0.3 0.3 0.5
size 150 + rand * 32
Light
shader flareShader
repeat 5 + rand * 10 {
random dir
addScale parentVelocity dir velocity 300 * rand
width 0.5 + 0.4 * rand
emitter 0.1 * rand + rand * 0.3 {
size 3 - lerp * 0.2
color 1 1 0.1
colorFade 1
moveBounce 400 0.1
spark
}
}
}
No hay comentarios:
Publicar un comentario