MOH Central

Medal of Honor Series Forum => MOHAA Series: General => Topic started by: Trinitrotoluene on February 05, 2006, 07:52:46 AM

Title: New gametype idea
Post by: Trinitrotoluene on February 05, 2006, 07:52:46 AM
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!
Title: New gametype idea
Post by: habsey on February 05, 2006, 07:59:40 AM
okay well theres a mod called stratiegic base hold, if you cannot find i could manage to do sumthing simple if you would like
Title: New gametype idea
Post by: Trinitrotoluene on February 05, 2006, 08:02:30 AM
Where can I download this mod? If its any good we'll use that one :)
Title: New gametype idea
Post by: habsey on February 05, 2006, 08:03:07 AM
uhh im not sure do a seearch around
Title: New gametype idea
Post by: Trinitrotoluene on February 05, 2006, 08:07:36 AM
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) ?
Title: New gametype idea
Post by: habsey on February 05, 2006, 08:12:00 AM
uhh i dunno imma go to bed if you want i will develop this gametype for u...
Title: New gametype idea
Post by: Trinitrotoluene on February 05, 2006, 08:13:07 AM
Sure. Any experience with modding? Let me know... Any other people that are interested?
Title: New gametype idea
Post by: habsey on February 05, 2006, 09:27:15 AM
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
Title: New gametype idea
Post by: Trinitrotoluene on February 05, 2006, 09:35:39 AM
Have you got MSN? If yes, add me (and everyone else that wants to help making this mod)
Title: New gametype idea
Post by: Vince on February 05, 2006, 10:06:04 AM
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
Title: New gametype idea
Post by: Cobra {sfx} on February 05, 2006, 01:40:36 PM
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.
Title: New gametype idea
Post by: Vince on February 09, 2006, 05:18:59 AM
lol rob, they lost interest :((
Title: New gametype idea
Post by: Cobra {sfx} on February 09, 2006, 05:25:29 AM
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).
Title: New gametype idea
Post by: Vince on February 09, 2006, 07:14:49 AM
anyway, mind proofreading the script above? I may pick it back up.
Title: New gametype idea
Post by: habsey on February 09, 2006, 03:24:36 PM
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
Title: New gametype idea
Post by: Vince on February 10, 2006, 01:22:02 PM
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.