This is my global strafeing script . It is simular to the global/bomber.scr but for strafeing and bombing . It is easy to use and setup . It has lots of defaults so you can have it ready to go in a very short time . To use it all you need to do it make a path useing info_spline pathnodes the same as you would do in the global/bomber.scr . All you need to do is put this in your level.script
exec global/strafe2.scr
The first node must have a targetname of strafe_path and you must give all the nodes on the same path a set number . If that set number is 1 for example then your script might look like this
main:
level.script = maps/mymap.scr . this is for useing the setthread key
exec global/strafe2.scr this sets up the script and numbers the nodes
thread global/strafe2.scr::strafe 1 this spawns the plane and begins the strafeing run
end
Now for the options .
You can also use the plane that you choose as well by setting the mdl key just like the bomber.scr and my special touch you can use a script model as the plane as well like you see in the picture on the top . There are keys that you can set on any of the nodes to turn the guns on or off , have the plane drop a bomb either on a target or not , change the scale of the plane and/or the bomb , you can run a thread in your level script at any of the nodes , you can run a thread in your level script when a bomb is droped , you can make the plane bomb every time it is spawned or set how often you want it to bomb or even set it to randomly choose to drop a bomb or not . You can even choose the explosion to use when the bomb drops . As well you can setup kill zones useing trigger and if a player is in the zone he becomes the bomb target . All you need to do is make a trigger with the targetname of stkillzone and have it target one of the nodes on your path .
example of a spawned kill zone see sample script for test_strafe.bsp )
exec global/strafe.scr
local.zone = spawn trigger_multiple targetname "stkillzone"
local.zone setsize ( -100 -100 -100)(100 100 100) 200x200
local.zone.origin = (1389.58 623.78 -94.88)
local.zone.target = level.strafenode[1][2]
local.zone2 = spawn trigger_multiple targetname "stkillzone"
local.zone2 setsize ( -100 -100 -100)(100 100 100)
local.zone2.origin = (2108.30 107.64 -94.88)
local.zone2.target = level.strafenode[3][4]
thread global/strafe2.scr::killzone
Here are is a list of keys you can use look at the docs for an explanation of the keys
---------------------------------------------------------------------------------------------------
First info_splinepath node keys
---------------------------------------------------------------------------------------------------
Key:$targetname Value: strafe_path ( not optional )
Key:#set Value: < integer > ( set each each node to same set# each path to a different set # )
Key:$mdl Value: < model > ( Plane model default vehicles/p47fly.tik)
Key:$scrplane Value: < script_object> ( Script object brush model for plane instead of $mdl )
Key:angles Value: < x y z > ( pitch yaw roll )
Key:#planescale Value: < float > ( plane scale default 1 )
Key:#gunangle Value: < angle > ( gun pitch angle default 30 )
Key:#guns Value: < boolean > ( guns on or off (1,0) default 1 on )
Key:#sideoffset Value: < float > ( gun offset from center * #planescale( damage trigger 100x100 * scale on center ) default 70 )
Key:#forwardoffset Value: < float > ( gun forward offset from origin default 100 )
Key:#heightoffset Value: < float > ( gun height offset from origin default 0 )
Key:#damage Value: < integer > ( health when new plane spawned or after plane death default 1000)
Key:#destroyable Value: < boolean > ( 1 destoyable 0 not destroyable default 1 overrides #damage )
Key:$planeexpmdl Value: < emitter > ( plane explosion emitter default animate/fx_mortar_higgins.tik)
Key:#planeexpscale Value: < float > ( plane explosion scale default 1 )
Key:#pause Value: < time > ( optional time to wait after spawn before flying in sec )
---------------------------------------------------------------------------------------------------
All info_splinepath nodes keys ( read from node )
---------------------------------------------------------------------------------------------------
Key:#set Value: < integer > ( set each each node to same set# each path to a different set # )
Key:$setthread Value: < thread > ( optional level.script thread to run when plane flys over node passes #set and #node to thread )
Key:model Value: < model > ( optional editor model ( editor only ))
Key:#planescale Value: < float > ( optional new plane scale )
Key:#bombstart Value: < spawn # > ( optional spawn # delay for bombing if #bomb or #singlebomb set )
Key:#bomb Value: < # spawns > ( optional value for bombing every # spawns (after #bombstart if #bombstart set))
Key:#singlebomb Value: < boolean > ( optional value for single bomb drop , resets #bomb to NIL after bombing can be used with #bombstart )
Key:#randombomb Value: < integer > ( optional Value for random bombing chance of bomb 1 to #randombomb )
Key:$bombtarget Value: < targetname > ( optional entity targetname for bombing ( is reset to default bombing angles or $statictarget after bombing))
Key:$statictarget Value: < targetname > ( optional entity targetname for bombing ( is not reset to default and is overridden if $bombtarget set))
Key:$bombmodel Value: < model > ( optional model for bomb default ammo/us_bomb.tik )
Key:#bombscale Value: < float > ( optional bomb scale set each node default 1 )
Key:bombsound Value: < soundalias > ( optional sound for dropping bomb default drop_bomb )
Key:bombdamage Value: < float > ( optional bomb damage default 500 )
Key:bombradius Value: < float > ( optional bomb damage radius default 500 )
Key:$expmodel Value: < emitter > ( optional explosion model for bombing default models/emitters/explosion_mine)
Key:#expscale Value: < float > ( optional explosion model scale set each node default 1 )
Key:$bombthread Value: < thread > ( optional level.script thread to run after bomb explosion passes #set and #node to thread)
Key:#guns Value: < boolean > ( optional value to start/stop guns fireing ( 1 on 0 off ))
Key:#gunangle Value: < newangle > ( optional new gun pitch angle )
Key:speed Value: < float > ( optional new speed setting at node default 1 or speed set in editor )
---------------------------------------------------------------------------------------------------
Level Nodes ( Keys can be changed by script see Keys above )
---------------------------------------------------------------------------------------------------
level.strafenode[set #][node #].origin ( node origin )
level.strafenode[set #][node #].angles ( node angles )
level.strafenode[set #][node #]. ( read from node each flight )
level.startbomb[set #][node # ] ( Stored after node setup can be changed to delay )
( bombing or set #bomb Key to NIL to stop bombing )
level.index[set #][node #] ( counter for #bombstart and #bomb key , 1 to )
( startbomb then 1 to #bomb )