I'm sure you guys know what ''capture the hill is''. Both teams need to try and hold a specified area for x amount of time to win a point. Now, my clan sometimes plays this. We specify one or two areas in a map that we need to capture and hold, great for training. For as far as I know there isnt a gametype CTH for mohaa. But I think it would be very fun to play, in public and great for training.
So what do you modders think about this idea of making a CTH mod for mohaa? Once again, great for (clan)trainings!
okay well theres a mod called stratiegic base hold, if you cannot find i could manage to do sumthing simple if you would like
Where can I download this mod? If its any good we'll use that one
uhh im not sure do a seearch around
Can't find it on this site, not on google either. I can only find some OBJ maps, Muna Hill etc.
Dont you guys think its worth it to make a mod that works on all mohaa maps with random areas (just like CTF) ?
uhh i dunno imma go to bed if you want i will develop this gametype for u...
Sure. Any experience with modding? Let me know... Any other people that are interested?
Trinitrotoluene :
Sure. Any experience with modding? Let me know... Any other people that are interested?
i can do it dont worry if i get a chance when i wake up i will
Have you got MSN? If yes, add me (and everyone else that wants to help making this mod)
I was going to use this for my headquarters mod, but i dropped it. Thread it like a bomb thinker. Put your spawns you want to switch underneathe the newly spawned pulse bomb in the bomb_explode thread.
/*
Logic For HeadQuarters based deathmatches.
Scripting by Vince {sfx}
Script based off of original obj_dm.scr
*/
//***********************************************
// initialization thread...
//***********************************************
hq_base_thinker level.base_name level.hometeam:
//level.bomb_defuse_time = 30
//level.bomb_set_time = 30
//level.bomb_tick_time = 10
//level.bomb_use_distance = 128
//level.bombusefov = 30
level.Regain_Base_Time = 30
level.Claim_Base_Time = 30
level.Defend_Claim_Time = 10
level.Use_Distance = 128
level.BombUseFov = 30
level.subtitleX = 100
level.subtitleY = 50
//println "----------------HeadQuarters-{sfx}-----------------"
//println "self = " self
//println "level.hometeam = " level.hometeam
//println "self.trigger_name = " self.trigger_name
//println "level.base_name = " level.base_name
//println "level.spawn_names = " level.spawn_names
//println "self.sound = " self.sound
//println "self.beamset = " self.beamset
//println "----------------HeadQuarters-{sfx}-----------------"
self rotatex 72
self rotatey 95
self rotatez 80
self notsolid
self.live = 0
self.target.collisionent = self.target.target
self.trigger_name waittill trigger
thread bomb_waittill_set
end
//***********************************************
// first thread... makes base wait to be taken.
//***********************************************
bomb_waittill_set:
self model items/pulse_explosive.tik
self notsolid
while ( $(self.trigger_name) )
{
//println "waittill trigger " self.trigger_name
self.trigger_name waittill trigger
local.player = parm.other
if(level.hometeam != NIL)
{
level.planting_team = level.hometeam
if(level.planting_team == allies)
{
level.defusing_team = axis
}
if(level.planting_team == axis)
{
level.defusing_team = allies
}
}
else
{
thread dmcheck
}
self notsolid
if (local.player.dmteam != level.planting_team)
{
goto bomb_waittill_set
println "failed dmteam check" local.player.dmteam
}
local.counter = 0
while ( (Isalive local.player) && (local.player cansee self level.BombUseFov level.Use_Distance) && (local.player.useheld == 1) )
{
local.player waitexec global/weapcheck.scr
if ( (local.counter == 0) && (local.player.holstered == 1) )
local.player stopwatch (level.Claim_Base_Time * .1)
local.counter++
wait .1
if (local.counter >= level.Claim_Base_Time)
{
if (level.planting_team == "allies")
self playsound dfr_objective_o
else
self playsound den_objective_o
thread bomb_waittill_defuse
thread bomb_waittill_explode
exec global/hud.scr ("The " + level.base_name + " is being taken by the " + level.planting_team + "!")
self.live = 1
end
}
}
if (local.counter > 0)
local.player stopwatch 0
}
end
//***********************************************
// second thread... controls opposing team defusing a capture attempt
//***********************************************
bomb_waittill_defuse:
while ( $(self.trigger_name) )
{
self.trigger_name waittill trigger
local.player = parm.other
self notsolid
//"local.player.dmteam", can be 'spectator', 'freeforall', 'allies' or 'axis'
if (local.player.dmteam != level.defusing_team)
{
println "failed dmteam check" local.player.dmteam
goto bomb_waittill_defuse
}
local.counter = 0
while ( (Isalive local.player) && (local.player cansee self level.BombUseFov level.Use_Distance) && (local.player.useheld == 1) )
{
local.player waitexec global/weapcheck.scr
if ( (local.counter == 0) && (local.player.holstered == 1) )
local.player stopwatch (level.Regain_Base_Time * .1)
local.player exec global/weapcheck.scr
local.counter++
wait .1
if (local.counter >= level.Regain_Base_Time)
{
exec global/hud.scr ( "The " + level.base_name + " has been reclaimed by the " + level.defusing_team + "!" )
if (level.defusing_team == "allies")
self playsound dfr_diffused_d
else
self playsound den_diffused_d
thread bomb_waittill_set //start first thread again
self.live = 0
end
}
}
if (local.counter > 0)
local.player stopwatch 0
local.player stufftext "holster"
local.player.dmteam = level.defusing_team
}
end
//***********************************************
// third thread... times the base and
//***********************************************
bomb_waittill_explode:
self model items/explosive.tik
self playsound plantbomb
self notsolid
local.player = parm.other
if (local.player.holstered == 1)
{
local.player stufftext ""
}
else
{
local.player stufftext "holster"
}
self loopsound bombtick
local.start_time = level.time
while (level.time < (local.start_time + level.Defend_Claim_Time) )
{
wait .1
if (self.live != 1)
{
self stoploopsound
end
}
if (level.time == (local.start_time + level.Defend_Claim_Time - 10) )
{
self stoploopsound
self loopsound final_countdown
}
}
self stoploopsound
thread bomb_explode
end
bomb_explode:
local.bomb = spawn script_model
local.bomb model "items/pulse_explosive.tik"
local.bomb.origin = self.origin
local.bomb.angles = self.angles
local.bomb.targetname = ("new" + self.entnum)
local.bomb.trigger_name = self.trigger_name
local.bomb.target = self.target
local.bomb.scale = self.scale
local.bomb rotatex 90
local.bomb rotatey 100
local.bomb rotatez 80
local.bomb notsolid
self delete
exec global/hud.scr ( "The " + level.base_name + " has been taken by the " + level.planting_team + "!" )
if(level.planting_team == allies)
{
$axis_guy hide
$allied_guy show
level.tileshader = "textures/hud/allies"
$("new" + self.entnum) thread bomb_thinker_2 axis allies
}
else
{
$axis_guy show
$allied_guy hide
level.tileshader = "textures/hud/axis"
$("new" + self.entnum) thread bomb_thinker_2 allies axis
}
//delay to avoid glitches in map ending/players leaving etc...
wait 0.5
end
bomb_thinker_2 local.planting_team local.defusing_team:
level.planting_team = local.planting_team
level.defusing_team = local.defusing_team
//println "----------------HeadQuarters-{sfx}-----------------"
//println "Bomb_thinker_2 init"
//println "level.planting_team = " level.planting_team
//println "level.defusing_team = " level.defusing_team
//println "----------------HeadQuarters-{sfx}-----------------"
self notsolid
self.target.collisionent = self.target.target
self.trigger_name waittill trigger
thread bomb_waittill_set_2
end
//***********************************************
// first thread... controls allies using the trigger
//***********************************************
bomb_waittill_set_2:
while ( $(self.trigger_name) )
{
println "waittill trigger " self.trigger_name
self.trigger_name waittill trigger
local.player = parm.other
self notsolid
if (local.player.dmteam != level.planting_team)
{
goto bomb_waittill_set_2
println "failed dmteam check" local.player.dmteam
}
local.counter = 0
while ( (Isalive local.player) && (local.player cansee self level.BombUseFov level.Use_Distance) && (local.player.useheld == 1) )
{
local.player waitexec global/weapcheck.scr
if ( (local.counter == 0) && (local.player.holstered == 1) )
local.player stopwatch (level.Claim_Base_Time * .1)
local.counter++
wait .1
if (local.counter >= level.Claim_Base_Time)
{
if (level.planting_team == "allies")
self playsound dfr_objective_o
else
self playsound den_objective_o
thread bomb_waittill_defuse_2
thread bomb_waittill_explode
exec global/hud.scr ( "The " + level.base_name + " is being taken by the " + level.planting_team + "!" )
self.live = 1
end
}
}
if (local.counter > 0)
local.player stopwatch 0
}
end
bomb_waittill_defuse_2:
while ( $(self.trigger_name) )
{
self.trigger_name waittill trigger
local.player = parm.other
self notsolid
if (local.player.dmteam != level.defusing_team)
{
println "failed dmteam check" local.player.dmteam
goto bomb_waittill_defuse_2
}
local.counter = 0
while ( (Isalive local.player) && (local.player cansee self level.BombUseFov level.Use_Distance) && (local.player.useheld == 1) )
{
local.player waitexec global/weapcheck.scr
if ( (local.counter == 0) && (local.player.holstered == 1) )
local.player stopwatch (level.Regain_Base_Time * .1)
local.counter++
wait .1
if (local.counter >= level.Regain_Base_Time)
{
exec global/hud.scr ( "The " + level.base_name + " has been reclaimed by the " + level.defusing_team + "!" )
if (level.defusing_team == "allies")
self playsound dfr_diffused_d
else
self playsound den_diffused_d
thread bomb_waittill_set_2 //start first thread again
self.live = 0
end
}
}
if (local.counter > 0)
local.player stopwatch 0
local.player stufftext "holster"
}
end
//variables:
//waittill spawn
//level.planting_team = level.new_planting_team
//level.defusing_team = level.new_using_team
//end
dmcheck:
local.player = parm.other
if(local.player.dmteam == allies)
{
level.planting_team = allies
level.defusing_team = axis
}
if(local.player.dmteam == axis)
{
level.planting_team = axis
level.defusing_team = allies
}
end
We converted M1L2A to a King Of The Fort Mod a while back, (never released it as far as i know), ill dig it out, basically if it detected an enemy within the fort after x amount of time it respawned the current fort holders elsewhere and the attacking force inside the Fort then the war started all over again.
lol rob, they lost interest :((
I also cant find the final version lol, the one i have here some things arent finalised.
Basically the Fort used a trigger and respawned the teams (with spawnpoint switching) once an enemy was detected in the fort for more than 10 seconds (or thereabouts).
anyway, mind proofreading the script above? I may pick it back up.
looks fine to me , neat gametype but i got 1 question,
local.player exec global/weapcheck.scr
why are you using a weapon check? to see if holstered?
everything else looks fine dont see any errors myself
not looking for errors really. More looking for effeciency improovements. In my version, i force you to holster before using my bomb, however... i couldnt just stufftext holster to any one using... I run around holstered myself, and if i went to use it, it would unholster me.
So elgan lent me a weapon check script and i only stufftext those who arent holstered.
oh and I beleive i will be finishing this mod. Rob care to add a touch? there are a few things i cant do. PM me m8.