the Hunt FFA
Posted: Tue Oct 11, 2005 6:40 pm
does anyone know where i can get the HUNT FFA server side. I have V2 and would love to have the Hune also.
Thanks
Thanks
Code: Select all
// THE HUNT
// ARCHITECTURE: NED/STEVE
// SCRIPTING: NED and lots of help from ZIED
// -------------------------------------------------------------------------------------
main:
// -------------------------------------------------------------------------------------
level.gametype = int( getcvar( g_gametype ) )
//Update the map if we are not in obj mode
if( level.gametype == 1 )
{
thread update_map
}
if( level.gametype == 4 )
{
setcvar "g_obj_alliedtext1" "- Find and destroy"
setcvar "g_obj_alliedtext2" "the Flak 88 cannon"
setcvar "g_obj_alliedtext3" ""
setcvar "g_obj_axistext1" "- Defend the Flak 88"
setcvar "g_obj_axistext2" "cannon"
setcvar "g_obj_axistext3" " "
}
else if( level.gametype == 1 )
{
setcvar "g_obj_alliedtext1" "The Hunt"
setcvar "g_obj_alliedtext2" " "
setcvar "g_obj_alliedtext3" "FFA"
setcvar "g_obj_axistext1" " "
setcvar "g_obj_axistext2" " "
setcvar "g_obj_axistext3" " "
}
else if( level.gametype != 4 ) //Just incase, it proberbly doesnt need the check, but I don't have time to check in MoH, so yeah.
{
setcvar "g_obj_alliedtext1" "The Hunt"
setcvar "g_obj_alliedtext2" " "
setcvar "g_obj_alliedtext3" " "
setcvar "g_obj_axistext1" " "
setcvar "g_obj_axistext2" " "
setcvar "g_obj_axistext3" " "
}
setcvar "g_scoreboardpic" "objdm1"
///////////////////////
level waittill prespawn
///////////////////////
//*** Precache Dm Stuff
exec global/DMprecache.scr
level.script = maps/obj/obj_team1.scr
exec global/ambient.scr obj_team1
////////////////////
level waittill spawn
////////////////////
$world farclipoverride -1
if( level.gametype > 2 )
{
thread round_based_thread
}
if( level.gametype == 4 )
{
$flak88_weapon1_trigger thread flak88_random_setup $flak88_weapon1_explosive $flak88_weapon1 $flak88_target1 $flak88_base1 4
$flak88_weapon1_explosive thread global/obj_dm.scr::bomb_thinker
thread allies_win_thread
$flak88_weapon1_explosive thread axis_win_timer
}
else
{
//Setup respawing etc.
level.dmrespawning = 1 //1 or 0
level.clockside = kills
$flak88_weapon1_trigger remove
$flak88_weapon1_explosive remove
$flak88_weapon1 remove
$flak88_base1 remove
}
end
// -------------------------------------------------------------------------------------
almost_there1:
// -------------------------------------------------------------------------------------
//only want this message in obj mode
if( level.gametype != 4 )
end
//called by BSP
local.player = parm.other
if ( (local.player.dmteam != "allies") || (level.perimeter_breached == 1) )
end
iprintlnbold "The Allies have breached the perimeter!"
level.perimeter_breached = 1
end
// -------------------------------------------------------------------------------------
allies_win_thread:
// -------------------------------------------------------------------------------------
while(level.targets_destroyed < level.targets_to_destroy)
waitframe
teamwin allies
end
//*** --------------------------------------------
//*** "Axis Victory"
//*** --------------------------------------------
// -------------------------------------------------------------------------------------
axis_win_timer:
// -------------------------------------------------------------------------------------
level waittill axiswin
end
// -------------------------------------------------------------------------------------
flak88_random_setup local.explosive local.weapon local.point_at local.base local.number_of_locations:
// -------------------------------------------------------------------------------------
local.location = ((randomint (local.number_of_locations)) + 1)
local.trigger_offset = self.origin - local.base.origin
local.weapon_offset = local.weapon.origin - local.base.origin
local.explosive_offset = local.explosive.origin - local.base.origin
local.point_at_offset = local.point_at.origin - local.base.origin
local.location = $("flak88_location" + local.location)
local.base.origin = local.location.origin
self.origin = local.trigger_offset + local.base.origin
local.weapon.origin = local.weapon_offset + local.base.origin
local.explosive.origin = local.explosive_offset + local.base.origin
local.point_at.origin = local.point_at_offset + local.base.origin
local.weapon setaimtarget local.point_at
end
//***********************************************
// first thread... controls allies using the trigger
//***********************************************
// -------------------------------------------------------------------------------------
flak88_set_explosive_thinker local.bomb local.weapon:
// -------------------------------------------------------------------------------------
local.bomb model items/pulse_explosive.tik
while (1)
{
println "waittill trigger " self
self waittill trigger
local.player = parm.other
//"local.player.dmteam", can be 'spectator', 'freeforall', 'allies' or 'axis'
if (local.player.dmteam !="allies")
{
goto flak88_set_explosive_thinker local.bomb local.weapon
println "failed dmteam check" local.player.dmteam
}
local.counter = 0
//add check for allies vs nazi
while ( (Isalive local.player) && (local.player cansee local.bomb level.bombusefov level.bomb_use_distance) && (local.player.useheld == 1) )
{
local.counter++
if ((local.counter % 5) == 0)
{
level.subtitleX = 100
level.subtitleY = 50
locprint level.subtitleX level.subtitleY("set "+ local.counter)
}
wait .1
if (local.counter >= level.bomb_set_time)
{
thread wait_for_axis local.bomb local.weapon
thread waittill_explode local.bomb local.weapon
local.bomb.live = 1
end
}
}
println "usetrigger but failed check"
if ! (local.bomb cansee local.player level.bombusefov level.bomb_use_distance)
println "failed cansee check"
if ! (local.player.useheld == 1)
println "failed useheld check" local.player.useheld
}
end
//***********************************************
// second thread... controls axis using the trigger
//***********************************************
// -------------------------------------------------------------------------------------
wait_for_axis local.bomb local.weapon:
// -------------------------------------------------------------------------------------
while (1)
{
self waittill trigger
local.player = parm.other
//"local.player.dmteam", can be 'spectator', 'freeforall', 'allies' or 'axis'
//add check for nazi
if (local.player.dmteam !="axis")
{
println "failed dmteam check" local.player.dmteam
goto wait_for_axis local.bomb local.weapon
}
local.counter = 0
while ( (Isalive local.player) && (local.player cansee local.bomb level.bombusefov level.bomb_use_distance) && (local.player.useheld == 1) )
{
local.counter++
if ((local.counter % 5) == 0)
{
level.subtitleX = 100
level.subtitleY = 70
locprint level.subtitleX level.subtitleY ("defuse "+local.counter)
}
wait .1
if (local.counter >= level.bomb_defuse_time)
{
thread flak88_set_explosive_thinker local.bomb local.weapon //start first thread again
local.bomb.live = 0
end
}
}
}
end
//***********************************************
// third thread... times the bomb and makes it explode at the right time
//***********************************************
// -------------------------------------------------------------------------------------
waittill_explode local.bomb local.weapon:
// -------------------------------------------------------------------------------------
local.bomb model items/explosive.tik
local.bomb playsound plantbomb
self loopsound bombtick
local.start_time = level.time
while (level.time < (local.start_time + level.bomb_tick_time))
{
wait .1
if (local.bomb.live != 1)
{
self stoploopsound
end
}
}
self stoploopsound
thread explode local.bomb local.weapon
self remove
end
// -------------------------------------------------------------------------------------
explode local.bomb local.weapon:
// -------------------------------------------------------------------------------------
///// shake the players view
thread jitter_large 0
local.temp = spawn script_model
local.temp.origin = self.origin
local.temp model "fx/fx_flak88_explosion.tik"
local.temp anim start
local.temp playsound explode_aagun
local.weapon model models/statweapons/flak88_d.tik
//origin damage radius constant damage or not
radiusdamage local.bomb.origin level.bomb_damage level.bomb_explosion_radius
local.bomb hide
teamwin allies
end
//******************************
// jitter large effect
// jitter_large [delay]
//******************************
// -------------------------------------------------------------------------------------
jitter_large local.time:
// -------------------------------------------------------------------------------------
if (local.time)
wait local.time
waitexec global/earthquake.scr .35 10 0 0
waitexec global/earthquake.scr .23 6 0 0
waitexec global/earthquake.scr 1 1 0 0
waitexec global/earthquake.scr 1.25 .3 0 1
end
// -------------------------------------------------------------------------------------
round_based_thread:
// -------------------------------------------------------------------------------------
level.defusing_team = "axis"
level.planting_team = "allies"
level.targets_to_destroy = 1
// set the parameters for this round based match
level.dmrespawning = 0 // 1 or 0
level.dmroundlimit = 5 // round time limit in minutes
level.clockside = axis // set to axis, allies, kills, or draw
//////////////////////////
level waittill roundstart
//////////////////////////
end
// -------------------------------------------------------------------------------------
update_map:
// -------------------------------------------------------------------------------------
//spawn a barrier to block the dead end road
local.barbwire = spawn script_model model static/barbwire.tik
local.barbwire.origin = ( 1307.74 4947.03 -248.90 )
local.barbwire angle 315
local.barbwire2 = spawn script_model model static/barbwire.tik
local.barbwire2.origin = ( 1487.74 5077.03 -250.90 )
local.barbwire2 angle 315
local.hedgehog = spawn script_model model static/hedgehog.tik
local.hedgehog.origin = ( 1270.85 4893.20 -234.00 )
local.hedgehog angle 315
local.hedgehog2 = spawn script_model model static/hedgehog.tik
local.hedgehog2.origin = ( 1546.85 5125.20 -232.00 )
local.hedgehog2 angle 315
local.hedgehog3 = spawn script_model model static/hedgehog.tik
local.hedgehog3.origin = ( 1414.85 5017.20 -234.00 )
local.hedgehog3 angle 315
//spawners
local.spawner = spawn info_player_deathmatch
local.spawner.origin = ( 3544 2794 -222 )
local.spawner2 = spawn info_player_deathmatch
local.spawner2.origin = ( 1530 4886 -216 )
local.spawner2 angle 315
local.spawner3 = spawn info_player_deathmatch
local.spawner3.origin = ( 2728 4794 -216 )
local.spawner3 angle 225
local.spawner4 = spawn info_player_deathmatch
local.spawner4.origin = ( 998 3814 -116 )
local.spawner4 angle 45
local.spawner5 = spawn info_player_deathmatch
local.spawner5.origin = ( 1400 3674 -174 )
local.spawner5 angle 315
local.spawner6 = spawn info_player_deathmatch
local.spawner6.origin = ( 3680 4642 -210 )
local.spawner6 angle 225
local.spawner7 = spawn info_player_deathmatch
local.spawner7.origin = ( 5284 3718 -296 )
local.spawner7 angle 180
local.spawner8 = spawn info_player_deathmatch
local.spawner8.origin = ( 3420 2258 -194 )
local.spawner8 angle 90
local.spawner9 = spawn info_player_deathmatch
local.spawner9.origin = ( 3884 608 -300 )
local.spawner9 angle 135
local.spawner10 = spawn info_player_deathmatch
local.spawner10.origin = ( 3104 446 -336 )
local.spawner10 angle 315
local.spawner11 = spawn info_player_deathmatch
local.spawner11.origin = ( 5450 -308 -336 )
local.spawner11 angle 135
local.spawner12 = spawn info_player_deathmatch
local.spawner12.origin = ( 4528 -926 -336 )
local.spawner12 angle 135
local.spawner13 = spawn info_player_deathmatch
local.spawner13.origin = ( 2858 -1884 -336 )
local.spawner13 angle 135
local.spawner14 = spawn info_player_deathmatch
local.spawner14.origin = ( -86 -1382 -336 )
local.spawner14 angle 45
local.spawner15 = spawn info_player_deathmatch
local.spawner15.origin = ( 1452 12 -266 )
local.spawner15 angle 270
local.spawner16 = spawn info_player_deathmatch
local.spawner16.origin = ( 3414 1836 -266 )
local.spawner16 angle 270
local.spawner17 = spawn info_player_deathmatch
local.spawner17.origin = ( 4032 890 -300 )
local.spawner17 angle 315
local.spawner18 = spawn info_player_deathmatch
local.spawner18.origin = ( 5200 2626 -300 )
local.spawner18 angle 135
local.spawner19 = spawn info_player_deathmatch
local.spawner19.origin = ( 5506 3070 -272 )
local.spawner19 angle 180
local.spawner20 = spawn info_player_deathmatch
local.spawner20.origin = ( 3862 4340 -236 )
local.spawner20 angle 245
local.spawner21 = spawn info_player_deathmatch
local.spawner21.origin = ( 3326 3296 -236 )
local.spawner21 angle 270
local.spawner22 = spawn info_player_deathmatch
local.spawner22.origin = ( 1898 3328 -236 )
local.spawner22 angle 315
local.spawner23 = spawn info_player_deathmatch
local.spawner23.origin = ( 2216 4246 -220 )
local.spawner23 angle 225
local.spawner24 = spawn info_player_deathmatch
local.spawner24.origin = ( 5140 916 -306 )
local.spawner24 angle 225
local.spawner25 = spawn info_player_deathmatch
local.spawner25.origin = ( 1482 -1910 -330 )
local.spawner25 angle 90
local.spawner26 = spawn info_player_deathmatch
local.spawner26.origin = ( 2932 410 -338 )
local.spawner26 angle 135
end