targetname of bomb
Moderator: Moderators
-
sg.Pepper
- Second Lieutenant
- Posts: 152
- Joined: Tue Jan 13, 2004 2:47 pm
- Location: Czrch Republic
- Contact:
targetname of bomb
HI, I HAVE A QUSTION:
i create an obj MP map with 5 bombs (targetname $bomb1....5).
And i want to know a targetname of bomb, which was just planted or defused, for better orientation of players.
Can somebody help?
thanks
i create an obj MP map with 5 bombs (targetname $bomb1....5).
And i want to know a targetname of bomb, which was just planted or defused, for better orientation of players.
Can somebody help?
thanks
-
Green Beret
- Major General
- Posts: 746
- Joined: Mon Apr 19, 2004 12:21 pm
- Contact:
just add a thread that checks and prints wich bomb was exploded
Code: Select all
bomb1_exploded local.bomb1:
while (local.bomb1.exploded != 1)
wait .1
iprintlnbold "Bomb_1 Exploded"
end
Hi
I guess u can copy the obj_dm.scr, and customize it for your bomb.
Rename it to bomb1.scr instead of obj_dm.scr and put it in your global folder, start it like this in your mapscript
$bomb1 thread global/bomb1.scr::bomb1_thinker
Here is an example of a customized obj_dm.scr that I use in a map Im working on (its a lil wicked, short ticktime, defusetime and planttime, the bombmodel is also changed in it), I changed the targetname of the bomb so that it fits one of your bombs.
look for the iprintlnbold lines and customize them for your bomb.
I guess u can copy the obj_dm.scr, and customize it for your bomb.
Rename it to bomb1.scr instead of obj_dm.scr and put it in your global folder, start it like this in your mapscript
$bomb1 thread global/bomb1.scr::bomb1_thinker
Here is an example of a customized obj_dm.scr that I use in a map Im working on (its a lil wicked, short ticktime, defusetime and planttime, the bombmodel is also changed in it), I changed the targetname of the bomb so that it fits one of your bombs.
look for the iprintlnbold lines and customize them for your bomb.
Code: Select all
bomb1_thinker:
// Ric-hard says planting time = less then 1 second
// defusing time = less then 1 second
// tick time = 4 seconds
$bomb1.set = 0
$bomb1.defuse_time = 2 //tenths of a second
$bomb1.set_time = 2 //tenths of a second
$bomb1.tick_time = 4 //seconds (was 60 seconds, then 30 seconds)
$bomb1.explosion_radius = 1054 //quake units
$bomb1.use_distance = 128 //quake units
$bomb1.damage = 200
$bomb1.usefov = 30
level.subtitleX = 100
level.subtitleY = 50
println "----------------------Z-----------------------"
println "self = " self
println "self.target (flak 88 or other) = " self.target
println "self.target.destroyed_model = " self.target.destroyed_model
println "self.target.target (collision entity) = " self.target.target
println "self.trigger_name = " self.trigger_name
println "self.exploder_set = " self.exploder_set
println "self.explosion_fx = " self.explosion_fx
println "self.explosion_sound = " self.explosion_sound
println "self.killarea = " self.killarea
println "----------------------Z-----------------------"
self.target.collisionent = self.target.target
self.target notsolid
thread bomb_waittill_set
end
//***********************************************
// first thread... controls allies using the trigger
//***********************************************
bomb_waittill_set:
self model items/pulse_explosive2.tik
while ( $(self.trigger_name) )
{
println "waittill trigger " self.trigger_name
self.trigger_name waittill trigger
local.player = parm.other
//"local.player.dmteam", can be 'spectator', 'freeforall', 'allies' or 'axis'
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 $bomb1.usefov $bomb1.use_distance) && (local.player.useheld == 1) )
{
if (local.counter == 0)
local.player stopwatch ($bomb1.set_time * .1)
local.counter++
// if ((local.counter % 5) == 0)
// locprint level.subtitleX level.subtitleY("set "+ local.counter)
wait .1
if (local.counter >= $bomb1.set_time)
{
iprintlnbold "Bomb 1 has been planted!"
if (level.planting_team == "allies")
self playsound dfr_objective_o
else
self playsound den_objective_o
thread bomb_waittill_defuse
thread bomb_waittill_explode
self.live = 1
$bomb1.set ++
end
}
}
if (local.counter > 0)
local.player stopwatch 0
println "usetrigger but failed check"
if ! (self cansee local.player $bomb1.usefov $bomb1.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
//***********************************************
bomb_waittill_defuse:
while ( $(self.trigger_name) )
{
self.trigger_name waittill trigger
local.player = parm.other
//"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 $bomb1.usefov $bomb1.use_distance) && (local.player.useheld == 1) )
{
if (local.counter == 0)
local.player stopwatch ($bomb1.defuse_time * .1)
local.counter++
// if ((local.counter % 5) == 0)
// locprint level.subtitleX level.subtitleY ("defuse "+local.counter)
wait .1
if (local.counter >= $bomb1.defuse_time)
{
iprintlnbold "Bomb1 has been defused!"
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
$bomb1.set --
end
}
}
if (local.counter > 0)
local.player stopwatch 0
}
end
//***********************************************
// third thread... times the bomb and makes it explode at the right time
//***********************************************
bomb_waittill_explode:
self model items/explosive2.tik
self playsound plantbomb
self loopsound bombtick
local.start_time = level.time
while (level.time < (local.start_time + $bomb1.tick_time) )
{
wait .1
if (self.live != 1)
{
self stoploopsound
end
}
if (level.time == (local.start_time + $bomb1.tick_time - 2) )
{
self stoploopsound
self loopsound final_countdown
}
}
self stoploopsound
thread bomb_explode
end
//***********************************************
// fourth thread... controls the explosion
//***********************************************
bomb_explode:
self.trigger_name remove
thread jitter_large 0
if (self.exploder_set != NIL)
exec global/exploder.scr::explode self.exploder_set
if (self.explosion_fx != NIL)
{
self thread spawn_fx self.explosion_fx
}
if (self.explosion_sound != NIL)
self playsound self.explosion_sound
if (self.target != NIL)
{
if (self.target.destroyed_model != NIL)
{
local.damaged = self.target thread spawn_damaged self.target.destroyed_model
}
self.target remove
waitframe
}
radiusdamage self.origin $bomb1.damage $bomb1.explosion_radius
if (self.killarea != NIL)
{
self.killarea volumedamage 1000
}
self hide
self.exploded = 1
// we delay the decrementing of $bomb1.set so that the script has
// time to determin the winner before the timelimit gets checked and hit
wait 0.5
$bomb1.set --
end
//----------------------------------
spawn_fx local.fx:
local.temp = spawn script_model model local.fx
local.temp.origin = self.origin
local.temp anim start
wait 5
local.temp remove
end
spawn_damaged local.model:
local.damaged = spawn script_model model local.model
local.damaged.origin = self.origin
local.damaged.angles = self.angles
end local.damaged
//******************************
// 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-
sg.Pepper
- Second Lieutenant
- Posts: 152
- Joined: Tue Jan 13, 2004 2:47 pm
- Location: Czrch Republic
- Contact:
so, i make obj map with bots (named HRAD or CASTLE in english lamguage). This castle have 2 flours and there are 5 bombs, in every flour at least one bomb.
So it was be god for players, tell him, how bomb (and how flour) was planted or defused, for better orientation.
Take a look:
http://pelec-herba.wz.cz/MOHAA/screens.htm
it is still Beta but finished.
So it was be god for players, tell him, how bomb (and how flour) was planted or defused, for better orientation.
Take a look:
http://pelec-herba.wz.cz/MOHAA/screens.htm
it is still Beta but finished.
You could give the triggers a key/floor value/floor# and/or bomb# and then give them a setthread value so that it runs a thread to do what you wanted like print something on the screen. Or even give the triggers a message value so when they are triggered they print something to the screen but that won't tell you if the bomb is being set or defused .
I am currently making a server side script for southern france which uses the same principle as what you want to do.
Now I know the script is long and has stuff you dont need but I will paste the whole script as is. To make this work to my advantage I use radio bombs and once all bombs are set then a little movie plays. It works so far except for a few glitches which I would be welcome to have anyone comment on. Feel free to copy and try this out for a server side script.
mohdm1.scr
global/gas_chambers.scr
global/gas_chamber_roof.scr
Well that is what I have so far. It seems to work when I test locally but when I tested on dedicated server with 5 people, only myself (slot 0) would actually freeze and see the movie. Everyone else just froze where they stood until the next round started.
Hope this can help you figure out how to update status on your bombs though. That part at least seems to work. A small glitch seems to be I have to restart the round right away in order for the hud messages to show on bottom of screen. Else they appear in the center near my crosshair. Dont know why this is happening either.
G3mInI
Now I know the script is long and has stuff you dont need but I will paste the whole script as is. To make this work to my advantage I use radio bombs and once all bombs are set then a little movie plays. It works so far except for a few glitches which I would be welcome to have anyone comment on. Feel free to copy and try this out for a server side script.
mohdm1.scr
Code: Select all
// SOUTHERN FRANCE
// ARCHITECTURE: SENN
// SCRIPTING: POWZER
// MODIFICATIONS FOR MULTIPLAYER OBJ - G3MINI
main:
//====================================
// Change gametype from DM to OBJ
//====================================
setcvar "g_gametype" "4"
setcvar "g_gamestring" "objective match"
setcvar "g_obj_alliedtext1" "Place a radio bomb"
setcvar "g_obj_alliedtext2" "on all 5 of the"
setcvar "g_obj_alliedtext3" "german BMW bikes"
setcvar "g_obj_axistext1" "Prevent Allies from"
setcvar "g_obj_axistext2" "completing their mission"
setcvar "g_obj_axistext3" " mod by -G3mInI-"
setcvar "g_scoreboardpic" "mohdm1"
thread sounds
thread block_original_spawns
thread new_spawns
level waitTill prespawn
thread spawn_the_gas_triggers
thread spawn_gas_door_block
thread spawn_roof_triggers
thread spawn_the_bmw_bikes
thread global/exploder.scr::main
thread global/gas_chambers.scr::gas_chamber_setup
thread global/gas_chamber_roof.scr::gas_chamber_roof_setup
level.script = maps/dm/mohdm1.scr
exec global/ambient.scr mohdm1
level.dmrespawning = 0
level.dmroundlimit = 5
level.clockside = axis
thread spawn_the_gas_effects
//$world farplane 5000
//$world farplane_color (.333 .333 .329)
level waittill spawn
thread print_status
thread update_status
level.bombsleft = 5
level.bomb1set = 0
level.bomb2set = 0
level.bomb3set = 0
level.bomb4set = 0
level.bomb5set = 0
level.bomb_set_time = 50 // tenths of a second
//level waittill roundstart
thread nextbike
thread axis_win
end
print_status:
while(1)
{
local.counter = 0
local.amount = 200
local.counter++
huddraw_alpha 1 .8 // alpha
huddraw_alpha 2 .8
huddraw_alpha 3 .8
huddraw_alpha 4 .8
huddraw_alpha 5 .8
huddraw_font 1 "verdana-12" //type of letter <index> <font>
huddraw_font 2 "verdana-12"
huddraw_font 3 "verdana-12"
huddraw_font 4 "verdana-12"
huddraw_font 5 "verdana-12"
huddraw_color 1 0 1 0 // color..this one is green <index> <red> <green> <blue>
huddraw_color 2 0 1 0
huddraw_color 3 0 1 0
huddraw_color 4 0 1 0
huddraw_color 5 0 1 0
huddraw_align 1 center bottom // alignment <index> <horiz> <vert>
huddraw_align 2 center bottom
huddraw_align 3 center bottom
huddraw_align 4 center bottom
huddraw_align 5 center bottom
huddraw_string 1 "Radiobomb_1 not set"
huddraw_string 2 "Radiobomb_2 not set"
huddraw_string 3 "Radiobomb_3 not set"
huddraw_string 4 "Radiobomb_4 not set"
huddraw_string 5 "Radiobomb_5 not set"
huddraw_rect 1 0 -70 200 12 // origin <index> <string> <vert pos> <horiz pos> <size>
huddraw_rect 2 0 -60 200 12
huddraw_rect 3 0 -50 200 12
huddraw_rect 4 0 -40 200 12
huddraw_rect 5 0 -30 200 12
if(local.counter => local.amount
break
println "broke out of huddraw loop"
wait 1
}
end
update_status:
while(1)
{
if(level.bomb1set == 1)
{
huddraw_alpha 1 0
huddraw_alpha 1 .8
huddraw_color 1 1 .5 0
huddraw_string 1 "Radio_bomb1 activated!"
}
if(level.bomb2set == 1)
{
huddraw_alpha 2 0
huddraw_alpha 2 .8
huddraw_color 2 1 .5 0
huddraw_string 2 "Radio_bomb2 activated!"
}
if(level.bomb3set == 1)
{
huddraw_alpha 3 0
huddraw_alpha 3 .8
huddraw_color 3 1 .5 0
huddraw_string 3 "Radio_bomb3 activated!"
}
if(level.bomb4set == 1)
{
huddraw_alpha 4 0
huddraw_alpha 4 .8
huddraw_color 4 1 .5 0
huddraw_string 4 "Radio_bomb4 activated!"
}
if(level.bomb5set == 1)
{
huddraw_alpha 5 0
huddraw_alpha 5 .8
huddraw_color 5 1 .5 0
huddraw_string 5 "Radio_bomb5 activated!"
}
if((level.bomb1set == 1)&&(level.bomb2set == 1)&&(level.bomb3set == 1)&&(level.bomb4set == 1)&&(level.bomb5set == 1))
{
huddraw_alpha 1 0
huddraw_alpha 2 0
huddraw_alpha 3 0
huddraw_alpha 4 0
huddraw_alpha 5 0
break
}
wait 1
}
end
//the following threads are called by the bsp using setthread when a player hits the use key
//*********************************************
// Bomb BMW Bike 1
//*********************************************
bmw_bike1_bombed:
local.sucker = parm.other
if (local.sucker.dmteam != "allies")
end
local.counter = 0
while ( (Isalive local.sucker) && (local.sucker.useheld == 1) )
{
if (local.counter == 0)
local.sucker stopwatch (level.bomb_set_time * .1)
local.counter++
wait .1
if (local.counter >= level.bomb_set_time)
{
iprintlnbold "A Bomb has been planted!"
$bmw_bike1_explosive playsound dfr_objective_o
thread setbike_one
end
}
}
if (local.counter >= 0)
{
local.sucker stopwatch 0
end
}
end
setbike_one:
$bmw_bike1_explosive model "animate//radiobomb.tik"
$bmw_bike1_explosive playsound radiobomb
$bmw_bike1_trigger nottriggerable
level.bomb1set = 1
level.bombsleft = (level.bombsleft - 1)
end
//*********************************************
// Bomb BMW Bike 2
//*********************************************
bmw_bike2_bombed:
local.sucker = parm.other
if (local.sucker.dmteam != "allies")
end
local.counter = 0
while ( (Isalive local.sucker) && (local.sucker.useheld == 1) )
{
if (local.counter == 0)
local.sucker stopwatch (level.bomb_set_time * .1)
local.counter++
wait .1
if (local.counter >= level.bomb_set_time)
{
iprintlnbold "A Bomb has been planted!"
$bmw_bike2_explosive playsound dfr_objective_o
thread setbike_two
end
}
}
if (local.counter >= 0)
{
local.sucker stopwatch 0
end
}
end
setbike_two:
$bmw_bike2_explosive model "animate//radiobomb.tik"
$bmw_bike2_explosive playsound radiobomb
$bmw_bike2_trigger nottriggerable
level.bomb2set = 1
level.bombsleft = (level.bombsleft - 1)
end
//*********************************************
// Bomb BMW Bike 3
//*********************************************
bmw_bike3_bombed:
local.sucker = parm.other
if (local.sucker.dmteam != "allies")
end
local.counter = 0
while ( (Isalive local.sucker) && (local.sucker.useheld == 1) )
{
if (local.counter == 0)
local.sucker stopwatch (level.bomb_set_time * .1)
local.counter++
wait .1
if (local.counter >= level.bomb_set_time)
{
iprintlnbold "A Bomb has been planted!"
$bmw_bike3_explosive playsound dfr_objective_o
thread setbike_three
end
}
}
if (local.counter >= 0)
{
local.sucker stopwatch 0
end
}
end
setbike_three:
$bmw_bike3_explosive model "animate//radiobomb.tik"
$bmw_bike3_explosive playsound radiobomb
$bmw_bike3_trigger nottriggerable
level.bomb3set = 1
level.bombsleft = (level.bombsleft - 1)
end
//*********************************************
// Bomb BMW Bike 4
//*********************************************
bmw_bike4_bombed:
local.sucker = parm.other
if (local.sucker.dmteam != "allies")
end
local.counter = 0
while ( (Isalive local.sucker) && (local.sucker.useheld == 1) )
{
if (local.counter == 0)
local.sucker stopwatch (level.bomb_set_time * .1)
local.counter++
wait .1
if (local.counter >= level.bomb_set_time)
{
iprintlnbold "A Bomb has been planted!"
$bmw_bike4_explosive playsound dfr_objective_o
thread setbike_four
end
}
}
if (local.counter >= 0)
{
local.sucker stopwatch 0
end
}
end
setbike_four:
$bmw_bike4_explosive model "animate//radiobomb.tik"
$bmw_bike4_explosive playsound radiobomb
$bmw_bike4_trigger nottriggerable
level.bomb4set = 1
level.bombsleft = (level.bombsleft - 1)
end
//*********************************************
// Bomb BMW Bike 5
//*********************************************
bmw_bike5_bombed:
local.sucker = parm.other
if (local.sucker.dmteam != "allies")
end
local.counter = 0
while ( (Isalive local.sucker) && (local.sucker.useheld == 1) )
{
if (local.counter == 0)
local.sucker stopwatch (level.bomb_set_time * .1)
local.counter++
wait .1
if (local.counter >= level.bomb_set_time)
{
iprintlnbold "A Bomb has been planted!"
$bmw_bike5_explosive playsound dfr_objective_o
thread setbike_five
end
}
}
if (local.counter >= 0)
{
local.sucker stopwatch 0
end
}
end
setbike_five:
$bmw_bike5_explosive model "animate//radiobomb.tik"
$bmw_bike5_explosive playsound radiobomb
$bmw_bike5_trigger nottriggerable
level.bomb5set = 1
level.bombsleft = (level.bombsleft - 1)
end
//*********************************************
// Determine how many bombs planted and which team wins
//*********************************************
nextbike:
while(level.bombsleft != 0)
waitframe
thread explode // Trigger bomb explosion sequence
end
axis_win:
level waittill axiswin
end
//*********************************************
// Bomb explosion sequence
//*********************************************
explode:
forcemusic aux2 aux2
//letterbox .5
drawhud 0
level ignoreclock 1
local.camorig2 = spawn script_origin
local.camorig2.origin = ( 646.11 212.03 338.61 )
local.camorig2.angles = ( 39.98 164.44 0.00 )
local.camera2 = spawn func_camera origin local.camorig2.origin angles local.camorig2.angles
local.camera2 fov 90 1
local.camera2 watch $bmw_bike2
local.camera2 cut
cuecamera local.camera2
wait 2
$bmw_bike2_explosive playsound explode_tank
$bmw_bike2_explosive remove
$bmw_bike2 thread bike_killed
wait .5
exec global/earthquake.scr .23 4 0 0
wait 1
local.camorig1 = spawn script_origin
local.camorig1.origin = ( -49.05 -291.86 138.26 )
local.camorig1.angles = ( 26.03 -49.20 0.00 )
local.camera1 = spawn func_camera origin local.camorig1.origin angles local.camorig1.angles
local.camera1 fov 90 1
local.camera1 watch $bmw_bike1
local.camera1 cut
cuecamera local.camera1
wait 2
$bmw_bike1_explosive playsound explode_tank
$bmw_bike1_explosive remove
$bmw_bike1 thread bike_killed
wait .5
exec global/earthquake.scr .23 4 0 0
wait 1
local.camorig5 = spawn script_origin
local.camorig5.origin = ( 867.01 -209.54 188.57 )
local.camorig5.angles = ( 33.98 -86.11 0.00 )
local.camera5 = spawn func_camera origin local.camorig5.origin angles local.camorig5.angles
local.camera5 fov 90 1
local.camera5 watch $bmw_bike5
local.camera5 cut
cuecamera local.camera5
wait 2
$bmw_bike5_explosive playsound explode_tank
$bmw_bike5_explosive remove
$bmw_bike5 thread bike_killed
wait .5
exec global/earthquake.scr .23 4 0 0
wait 1
local.camorig3 = spawn script_origin
local.camorig3.origin = ( 79.48 822.22 193.23 )
local.camorig3.angles = ( 25.54 -117.33 0.00 )
local.camera3 = spawn func_camera origin local.camorig3.origin angles local.camorig3.angles
local.camera3 fov 90 1
local.camera3 watch $bmw_bike3
local.camera3 cut
cuecamera local.camera3
wait 2
$bmw_bike3_explosive playsound explode_tank
$bmw_bike3_explosive remove
$bmw_bike3 thread bike_killed
wait .5
exec global/earthquake.scr .23 4 0 0
wait 1
local.camorig4 = spawn script_origin
local.camorig4.origin = ( -554.41 614.66 46.01 )
local.camorig4.angles = ( 28.11 -127.72 0.00 )
local.camera4 = spawn func_camera origin local.camorig4.origin angles local.camorig4.angles
local.camera4 fov 90 1
local.camera4 watch $bmw_bike4
local.camera4 cut
cuecamera local.camera4
wait 2
$bmw_bike4_explosive playsound explode_tank
$bmw_bike4_explosive remove
$bmw_bike4 thread bike_killed
wait .5
exec global/earthquake.scr .23 4 0 0
wait 1
teamwin allies
end
bike_killed:
self thread spawn_fx models/fx/fx_tank_explosion.tik
radiusdamage self.origin 200 200
local.damaged = thread spawn_damaged models/vehicles/bmwbike_d.tik
self remove
end
spawn_damaged local.model:
local.damaged = spawn script_model model local.model
local.damaged.origin = self.origin
local.damaged.angles = self.angles
local.damaged notsolid
end local.damaged
spawn_fx local.fx:
local.temp = spawn script_model model local.fx
local.temp notsolid
local.temp.origin = self.origin
local.temp anim start
local.temp notsolid
wait 5
local.temp remove
end
spawn_gas_door_block:
local.wall = spawn script_object
local.wall.origin = ( 1336.00 2072.00 574.00 )
local.wall setsize ( -8.00 -36.00 -62.00 ) ( 8.00 36.00 62.00 )
local.wall solid
local.wall nodamage
end
spawn_roof_triggers:
local.rooftrig1 = spawn trigger_multipleall origin ( -442.00 48.00 450.00 )
local.rooftrig1 setsize ( -60.00 -80.00 -0.00 ) ( 60.00 80.00 200.00 )
local.rooftrig1.targetname = gas_chamber_roof
local.rooftrig1.wait = .1
local.rooftrig1 triggerable
end
sounds:
local.master = spawn ScriptMaster
local.master aliascache steamloop sound/mechanics/Mec_SteamLoop_01.wav soundparms 1.0 0.3 1.0 0.0 320 2200 item loaded maps "dm obj"
end
spawn_the_bmw_bikes:
//==========================
// Spawn five bmw's
//==========================
//bike 1
level.bmw1 = spawn vehicles/bmwbike.tik origin ( 212.00 -616.00 0.00 ) angles ( 0.00 90.00 0.00 )
level.bmw1.targetname = bmw_bike1
level.bmw1 solid
//bike2
level.bmw2 = spawn vehicles/bmwbike.tik origin ( 224.00 332.00 48.00 ) angles ( 0.00 0.00 0.00 )
level.bmw2.targetname = bmw_bike2
level.bmw2 solid
//bike3
level.bmw3 = spawn vehicles/bmwbike.tik origin ( -92.00 488.00 48.00 ) angles ( 0.00 90.00 0.00 )
level.bmw3.targetname = bmw_bike3
level.bmw3 solid
//bike4
level.bmw4 = spawn vehicles/bmwbike.tik origin ( -732.00 392.00 -16.00 ) angles ( 0.00 90.00 0.00 )
level.bmw4.targetname = bmw_bike4
level.bmw4 solid
//bike5
level.bmw5 = spawn vehicles/bmwbike.tik origin ( 868.00 -568.00 0.00 ) angles ( 0.00 90.00 0.00 )
level.bmw5.targetname = bmw_bike5
level.bmw5 solid
//============================
// Spawn the five bike bombs
//============================
//bomb1
level.device1 = spawn animate/pulse_radiobomb.tik
level.device1.targetname = bmw_bike1_explosive
level.device1.exploder_set = 1
level.device1.origin = ( 264.64 -637.22 32.00 )
level.device1.angles = ( 0.00 0.00 0.00 )
level.device1.scale = 1.0
//bomb2
level.device2 = spawn animate/pulse_radiobomb.tik
level.device2.targetname = bmw_bike2_explosive
level.device2.exploder_set = 2
level.device2.origin = ( 200.78 279.92 84.00 )
level.device2.angles = ( 0.00 270.00 0.00 )
level.device2.scale = 1.0
//bomb3
level.device3 = spawn animate/pulse_radiobomb.tik
level.device3.targetname = bmw_bike3_explosive
level.device3.exploder_set = 3
level.device3.origin = ( -39.36 466.78 84.00 )
level.device3.angles = ( 0.00 0.00 0.00 )
level.device3.scale = 1.0
//bomb4
level.device4 = spawn animate/pulse_radiobomb.tik
level.device4.targetname = bmw_bike4_explosive
level.device4.exploder_set = 4
level.device4.origin = ( -679.36 370.78 20.00 )
level.device4.angles = ( 0.00 0.00 0.00 )
level.device4.scale = 1.0
//bomb5
level.device5 = spawn animate/pulse_radiobomb.tik
level.device5.targetname = bmw_bike5_explosive
level.device5.exploder_set = 5
level.device5.origin = ( 920.64 -593.22 32.00 )
level.device5.angles = ( 0.00 0.00 0.00 )
level.device5.scale = 1.0
//===============================
// Spawn the five bike triggers
//===============================
//trigger1
level.trigger1 = spawn trigger_use
level.trigger1.targetname = bmw_bike1_trigger
level.trigger1.origin = ( 262.00 -638.00 40.00 )
level.trigger1 setsize ( -20.00 -20.00 -0.00 ) ( 20.00 20.00 20.00 )
level.trigger1 setthread bmw_bike1_bombed
level.trigger1 triggerable
//trigger2
level.trigger2 = spawn trigger_use
level.trigger2.targetname = bmw_bike2_trigger
level.trigger2.origin = ( 200.00 280.00 88.00 )
level.trigger2 setsize ( -20.00 -20.00 -0.00 ) ( 20.00 20.00 20.00 )
level.trigger2 setthread bmw_bike2_bombed
level.trigger2 triggerable
//trigger3
level.trigger3 = spawn trigger_use
level.trigger3.targetname = bmw_bike3_trigger
level.trigger3.origin = ( -40.00 464.00 88.00 )
level.trigger3 setsize ( -20.00 -20.00 -0.00 ) ( 20.00 20.00 20.00 )
level.trigger3 setthread bmw_bike3_bombed
level.trigger3 triggerable
//trigger4
level.trigger4 = spawn trigger_use
level.trigger4.targetname = bmw_bike4_trigger
level.trigger4.origin = ( -680.00 368.00 24.00 )
level.trigger4 setsize ( -20.00 -20.00 -0.00 ) ( 20.00 20.00 20.00 )
level.trigger4 setthread bmw_bike4_bombed
level.trigger4 triggerable
//trigger5
level.trigger5 = spawn trigger_use
level.trigger5.targetname = bmw_bike5_trigger
level.trigger5.origin = ( 920.00 -592.00 40.00 )
level.trigger5 setsize ( -20.00 -20.00 -0.00 ) ( 20.00 20.00 20.00 )
level.trigger5 setthread bmw_bike5_bombed
level.trigger5 triggerable
end
//======================
// Spawn the gas thread
//======================
spawn_the_gas_effects:
local.gaseffect1 = spawn animate/adam-mustard-gas.tik origin ( 1184.00 2080.00 512.00 ) angle ( -1 )
local.gaseffect1 anim start
local.gaseffect2 = spawn animate/adam-mustard-gas.tik origin ( 1288.00 2184.00 520.00 ) angle ( -1 )
local.gaseffect2 anim start
local.gaseffect3 = spawn animate/adam-mustard-gas.tik origin ( 1080.00 2184.00 520.00 ) angle ( -1 )
local.gaseffect3 anim start
local.gaseffect4 = spawn animate/adam-mustard-gas.tik origin ( 1080.00 1976.00 520.00 ) angle ( -1 )
local.gaseffect4 anim start
local.gaseffect5 = spawn animate/adam-mustard-gas.tik origin ( 1288.00 1976.00 520.00 ) angle ( -1 )
local.gaseffect5 anim start
end
spawn_the_gas_triggers:
//roof1
local.gastrigger1 = spawn trigger_multiple origin ( 1184.00 2080.00 512.00 )
local.gastrigger1 setsize ( -144.00 -144.00 -0.00 ) ( 144.00 144.00 176.00 )
local.gastrigger1.targetname = gas_chamber
local.gastrigger1 triggerable
//roof2
end
//===================
// Axis win thread
//===================
axis_win_timer:
level waittill axiswin
end
block_original_spawns:
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 976 -528 0 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 976 -592 0 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 896 -584 0 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 912 -96 0 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 912 -56 0 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 992 -48 0 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 992 -104 0 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1064 -552 256 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1104 -544 256 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1144 -552 256 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 976 184 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 784 792 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 816 792 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 848 792 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1104 672 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1128 640 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1176 672 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1672 912 222 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1234 1566 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1194 1566 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1178 1334 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 914 1334 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1450 2174 512 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1450 2214 512 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1506 2606 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1514 2678 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1514 2742 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1378 2710 672 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1354 2526 672 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 50 2958 256 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -262 1414 48 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -214 1430 48 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -286 1238 48 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -1262 1862 104 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -1206 1110 12 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -1174 1062 12 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -702 350 -16 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -670 350 -16 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -646 310 328 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -806 374 328 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -774 374 328 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -214 1230 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -262 1230 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -326 1238 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 578 1574 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 610 1526 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -814 -394 48 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -846 -346 48 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -926 -290 48 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -926 94 96 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -966 102 96 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -1262 -18 128 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -1270 30 128 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -1294 86 128 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -1502 302 168 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -1502 478 168 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -1054 662 168 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -1022 662 168 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -830 350 -16 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -862 350 -16 )
end
new_spawns:
local.newspawnallied = spawn info_player_allied origin ( 848 2640 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 784 2640 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 880 2544 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 816 2544 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 752 2544 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 880 2448 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 816 2448 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 752 2448 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 848 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 784 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 720 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 656 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 592 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 528 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 464 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 400 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 336 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 272 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 208 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 144 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 80 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 16 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( -48 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( -112 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( -176 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( -240 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( -304 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( -368 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( -432 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( -496 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( -560 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( -624 2352 400 ) angle 270
local.newspawnaxis = spawn info_player_axis origin ( 368 -416 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 304 -416 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 240 -416 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 176 -416 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 112 -416 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 976 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 912 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 848 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 784 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 720 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 656 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 592 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 528 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 464 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 400 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 336 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 272 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 208 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 144 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 80 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 16 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( -48 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( -112 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( -176 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( -240 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( -304 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( -368 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( -432 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( -496 -336 56 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( -560 -336 56 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( -624 -336 56 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( -688 -336 56 ) angle 90
endglobal/gas_chambers.scr
Code: Select all
//*********************************************************************************************************************************************
//*** gas chamber script
//*** The player enters the gas chamber, and within a short random amount of time
//*** if he's still in the gas chamber he'll begin losing health rapidly.
//*** This main thread is called by this script and should not be called by the
//*** level script itsself. The level script should call gas_chamber_setup
//*** syntax ------------------------------------
//*** gas_chamber <this is the index number for the array of gas_chamber triggers>
//*********************************************************************************************************************************************
gas_chamber local.index:
gas_chamber_loop:
$gas_chamber[local.index] waittill trigger
local.sucker = parm.other
wait (randomfloat .5 + .5)
if (local.sucker istouching $gas_chamber[local.index] == 1)
{
local.spawn_gas = (local.sucker.targetname + "_gas")
spawn fx/dummy.tik targetname local.spawn_gas
local.spawn_gas = $(local.sucker.targetname + "_gas")
local.spawn_gas.origin = local.sucker.origin
//local.spawn_gas anim start
radiusdamage local.spawn_gas.origin 10 5
}
//*** remove the effect
wait 2
local.spawn_gas remove
goto gas_chamber_loop
end
//*************************************************
//*** setup the gas_chambers
//*** the level scripts should call this thread
//*************************************************
gas_chamber_setup:
if ($gas_chamber == NULL)
{
println "^~^~^ There are no gas_chambers in the map!!!"
goto gas_chamber_setup_end
}
/*
if ($gas_chamber.size == 1)
{
thread gas_chamber_single
goto gas_chamber_setup_end
}
*/
for (local.i = 1 ; local.i <= $gas_chamber.size ; local.i ++)
{
thread gas_chamber local.i
}
gas_chamber_setup_end:
endglobal/gas_chamber_roof.scr
Code: Select all
//*** setup the gas chamber roof triggers
// this is to prevent people from getting on the roofs in southern france. currently only 1 roof trigger is scripted.
gas_chamber_roof_setup:
if ($gas_chamber_roof == NULL)
{
println "^~^~^ There are no gas_chamber_roof triggers in the map!!!"
goto gas_chamber_roof_end
}
for (local.i = 1 ; local.i <= $gas_chamber_roof.size ; local.i ++)
{
thread gas_chamber_teleport local.i
}
gas_chamber_roof_end:
end
gas_chamber_teleport local.index:
gas_chamber_teleport_loop:
$gas_chamber_roof[local.index] waittill trigger
local.sucker = parm.other
local.sucker tele ( 1194 2102 534 )
iprintln "A player is being sent to the gas chamber!"
wait .1
local.sucker stufftext "say I JUST TRIED TO GET ON THE ROOF. WATCH ME DIE IN THE GAS CHAMBER!"
goto gas_chamber_teleport_loop
endWell that is what I have so far. It seems to work when I test locally but when I tested on dedicated server with 5 people, only myself (slot 0) would actually freeze and see the movie. Everyone else just froze where they stood until the next round started.
Hope this can help you figure out how to update status on your bombs though. That part at least seems to work. A small glitch seems to be I have to restart the round right away in order for the hud messages to show on bottom of screen. Else they appear in the center near my crosshair. Dont know why this is happening either.
G3mInI

