does anyone know where i can get the HUNT FFA server side. I have V2 and would love to have the Hune also.
Thanks
the Hunt FFA
Moderator: Moderators
-
@(...:.:...)@
- Corporal
- Posts: 37
- Joined: Wed Nov 23, 2005 3:42 pm
- Location: Cambridge UK
Nein, only BT comes with ffa for all the obj maps (exept v2). You can play ffa on the others, but the spawn points will be wrong, and you can't respawn.
Paste this into wordpad or notepad etc, and save it as obj_team1.scr
This is the script from Breakthrough, with a few changes to make the scoreboard text work properly.
Then, if you have my v2 ffa mod, open that up with pakscape (you can get it here: http://users.1st.net/kimberly/Tutorial/down.htm ). With the v2 ffa pk3 open in pakscape, browse to the folder "maps" then "obj" and paste obj_team1.scr into that, and save it. 
Paste this into wordpad or notepad etc, and save it as obj_team1.scr
This is the script from Breakthrough, with a few changes to make the scoreboard text work properly.
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
<3 arrays.