Code: Select all
exec global/loadout.scr maps/m1l1_aiPractice.scr
exec global/ai.scr
exec global/weather.scr
exec global/ambient.scr m5l1b
level waitTill prespawn
main:
level waittill spawn
println "spawning germans"
$player item weapons/colt45.tik
$player item weapons/m1_garand.tik
$player item weapons/mp40.tik
$mg42a_gunner exec global/disable_ai.scr
$mg42b_gunner exec global/disable_ai.scr
$mg42c_gunner exec global/disable_ai.scr
$axis exec global/disable_ai.scr // just for testing purposes
thread mg42a // first gunner
thread mg42b // second gunner
thread mg42c // third gunner
end
mg42a:
local.gunner = $mg42a_gunner // assign gunner to local.gunner
local.gun = $mg42a
local.bursts = 0 // for reloading
println "starting targeting"
while (isAlive local.gunner)
{
local.target = NULL
for (local.i = 1; local.i <= $axis.size; local.i++)
{
local.guy = $axis[local.i]
println "checking german #" local.i
if (isAlive local.guy)
{
if (local.gunner cansee local.guy ) // (2 * local.gun.maxYawOffset) 2000) // commented this out cause it was causing a casting error
{
local.target = local.guy
println "found target -> #" local.i
break
}
else
println "can't see enemy"
}
else
println "enemy is dead"
}
if (local.target != NULL)
{
local.gun setaimtarget local.target // aim
wait 1
println "opening fire at " local.target
local.gun startfiring
wait 2
local.gun stopfiring
println "ceased fire"
local.bursts++ // reloading
if (local.bursts >= 4)
{
if (isAlive local.gunner)
{
println "reloading gun"
local.gunner reload_mg42
local.gunner waittill animdone
local.bursts = 0
}
}
}
else
println "no target found"
wait 0.5
}
println "script ended"
end
mg42b:
local.gunner = $mg42b_gunner // assign gunner to local.gunner
local.gun = $mg42b
local.bursts = 0 // for reloading
println "starting targeting"
while (isAlive local.gunner)
{
local.target = NULL
for (local.i = 2; local.i <= $axis.size; local.i++)
{
local.guy = $axis[local.i]
println "checking german #" local.i
if (isAlive local.guy)
{
if (local.gunner cansee local.guy ) // (2 * local.gun.maxYawOffset) 2000) // took this out cause it was causing a casting error
{
local.target = local.guy
println "found target -> #" local.i
break
}
else
println "can't see enemy"
}
else
println "enemy is dead"
}
if (local.target != NULL)
{
local.gun setaimtarget local.target // aim
wait 1
println "opening fire at " local.target
local.gun startfiring
wait 2
local.gun stopfiring
println "ceased fire"
local.bursts++ // reloading
if (local.bursts >= 4)
{
if (isAlive local.gunner)
{
println "reloading gun"
local.gunner reload_mg42
local.gunner waittill animdone
local.bursts = 0
}
}
}
else
println "no target found"
wait 0.5
}
println "script ended"
end
mg42c:
local.gunner = $mg42c_gunner // assign gunner to local.gunner
local.gun = $mg42c
local.bursts = 0 // for reloading
println "starting targeting"
while (isAlive local.gunner)
{
local.target = NULL
for (local.i = 3; local.i <= $axis.size; local.i++)
{
local.guy = $axis[local.i]
println "checking german #" local.i
if (isAlive local.guy)
{
if (local.gunner cansee local.guy ) // (2 * local.gun.maxYawOffset) 2000) // commented this out cause it was causing a casting error
{
local.target = local.guy
println "found target -> #" local.i
break
}
else
println "can't see enemy"
}
else
println "enemy is dead"
}
if (local.target != NULL)
{
local.gun setaimtarget local.target // aim
wait 1
println "opening fire at " local.target
local.gun startfiring
wait 2
local.gun stopfiring
println "ceased fire"
local.bursts++ // reloading
if (local.bursts >= 4)
{
if (isAlive local.gunner)
{
println "reloading gun"
local.gunner reload_mg42
local.gunner waittill animdone
local.bursts = 0
}
}
}
else
println "no target found"
wait 0.5
}
println "script ended"
endAny assistance is appreciated.
ShadowX
