something important getting overridden?
oh wait.... you put those fancy A's in there didnt ya!
oh wait.... you put those fancy A's in there didnt ya!
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Show posts Menu
/*
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