Dieing To Get This To Work

Post your scripting questions / solutions here

Moderator: Moderators

Post Reply
Lt.Audie L Murphy
Lance Corporal
Posts: 22
Joined: Wed Feb 16, 2005 8:47 am

Dieing To Get This To Work

Post by Lt.Audie L Murphy »

Can Someone Plz Help Me With This Script

Im Trying To Convert This Singlepayer map to an obj map
but cant seem to get the explosives to work correct


it will explode
but wont say objective complete and restart objective again

Code: Select all

//
//training
//Training
//
//
//
//
//


main:


removeclass actor


setcvar "g_obj_alliedtext1" "ALLIES MUST FIND & "
setcvar "g_obj_alliedtext2" "DESTROY THE TANK"
setcvar "g_obj_alliedtext4" "AT All COSTS"
setcvar "g_obj_axistext1"   "AXIS MUST DEFEND" 
setcvar "g_obj_axistext2"   "THE TANK"
setcvar "g_obj_axistext4"   "AT All COSTS"

setcvar "g_scoreboardpic" "trainingcourse_sign.tga"

setcvar "g_gametype" "4"
setcvar "session" "4"
setcvar "fraglimit" "0"
setcvar "timelimit" "10"
setcvar "level.clockside" "axis"


// call additional stuff for playing this map round based is needed
	if(level.roundbased)
		thread objectivethread


level.script = maps/training.scr


$world farplane_color (0 0 0) (0 0 0) (0 0 0) 0 9 0 0
$world farplane 15000


local.axis = spawn info_player_axis
local.axis.angle = 87
local.axis.origin = ( 6347 -2945 -387 )
local.axis = spawn info_player_axis
local.axis.angle = -179
local.axis.origin = ( 6358 -2745 -387 )
local.axis = spawn info_player_axis
local.axis.angle = 161
local.axis.origin = ( 6166 -2935 -387 )
local.axis = spawn info_player_axis
local.axis.angle = -167
local.axis.origin = ( 6148 -2569 -387 )
local.axis = spawn info_player_axis
local.axis.angle = -90
local.axis.origin = ( 5563 -2564 -387 )
local.axis = spawn info_player_axis
local.axis.angle = 89
local.axis.origin = ( 5558 -2947 -387 )
local.axis = spawn info_player_axis
local.axis.angle = -156
local.axis.origin = ( 5848 -2564 -387 )
local.axis = spawn info_player_axis
local.axis.angle = 161
local.axis.origin = ( 5888 -2845 -387 )
local.axis = spawn info_player_axis
local.axis.angle = -166
local.axis.origin = ( 5446 -2571 -387 )
local.axis = spawn info_player_axis
local.axis.angle = 161
local.axis.origin = ( 5434 -2924 -387 )
local.axis = spawn info_player_axis
local.axis.angle = 149
local.axis.origin = ( 5181 -2926 -387 )
local.axis = spawn info_player_axis
local.axis.angle = 89
local.axis.origin = ( 4865 -2934 -387 )
local.axis = spawn info_player_axis
local.axis.angle = -157
local.axis.origin = ( 5137 -2575 -387 )
local.axis = spawn info_player_axis
local.axis.angle = -90
local.axis.origin = ( 4862 -2567 -387 )
local.axis = spawn info_player_axis
local.axis.angle = -140
local.axis.origin = ( 5688 -2572 -387 )
local.axis = spawn info_player_axis
local.axis.angle = -141
local.axis.origin = ( 4973 -2583 -387 )


local.allies = spawn info_player_allied
local.allies.angle = -24
local.allies.origin = ( -5921 1038 69 )
local.allies = spawn info_player_allied
local.allies.angle = -64
local.allies.origin = ( -4295 1031 69 )
local.allies = spawn info_player_allied
local.allies.angle = 90
local.allies.origin = ( -4308 -1106 69 )
local.allies = spawn info_player_allied
local.allies.angle = 25
local.allies.origin = ( -5949 -1093 69 )
local.allies = spawn info_player_allied
local.allies.angle = -13
local.allies.origin = ( -5186 579 -309 )
local.allies = spawn info_player_allied
local.allies.angle = 9
local.allies.origin = ( -6070 -518 -309 )
local.allies = spawn info_player_allied
local.allies.angle = 29
local.allies.origin = ( -5697 -1101 -309 )
local.allies = spawn info_player_allied
local.allies.angle = 28
local.allies.origin = ( -5176 -732 -309 )
local.allies = spawn info_player_allied
local.allies.angle = 35
local.allies.origin = ( -4934 -1133 -309 )
local.allies = spawn info_player_allied
local.allies.angle = 65
local.allies.origin = ( -4531 -1104 -309 )
local.allies = spawn info_player_allied
local.allies.angle = -46
local.allies.origin = ( -4597 987 -309 )
local.allies = spawn info_player_allied
local.allies.angle = -50
local.allies.origin = ( -5623 561 -309 )
local.allies = spawn info_player_allied
local.allies.angle = 53
local.allies.origin = ( -5580 -708 -309 )
local.allies = spawn info_player_allied
local.allies.angle = 95
local.allies.origin = ( -4812 -761 -309 )
local.allies = spawn info_player_allied
local.allies.angle = -89
local.allies.origin = ( -4856 673 -309 )



$door_mid remove
$exterior remove
$interior remove
$clip_2 delete



roundbasedthread:

	// Can specify different scoreboard messages for round based games here.




level waittill prespawn


exec global/loadout.scr "maps/training.scr"
exec maps/fix0.scr
exec maps/fix0a.scr
exec maps/fix0b.scr
exec global/DMprecache.scr
exec global/obj_dm.scr
exec global/exploder.scr
exec global/jv_sound.scr
exec global/bomber.scr
exec global/door_locked.scr
exec global/ambient.scr training
exec global/bomb_explode.scr


thread flak88
thread global/barrel.scr::explosive_barrel
thread p47flyby
thread global/exploder.scr::main
thread tank_sound

local.soundorigin = spawn script_model model "fx/dummy.tik"
local.soundorigin.origin = local.origin
local.soundorigin loopsound local.sound
local.soundorigin notsolid

$player stufftext "tmstop"
$player stufftext "tmstartloop sound/music/mus_06a_mystery.mp3"
	
$pistol_ammo thread ammo_spawners pistol
$rifle_ammo thread ammo_spawners rifle
$smg_ammo thread ammo_spawners smg
$ammo_grenade thread ammo_spawners grenade

$mg42 maxYawOffset 45
$mg42 pitchCaps ( -15 15 0)

thread start
thread ladder
thread explosives
thread doors
thread pistol
thread smg
thread rifle
thread grenade
thread mg42

end


level waittill spawn



// 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


tank_sound:
level.tank_idle_entity = spawn script_model model "fx/dummy.tik"
level.tank_idle_entity.origin = ($tank.origin + ( 0 0 200))
level.tank_idle_entity notsolid
println "z:   level.tank_idle_entity: " level.tank_idle_entity.origin

level.tank_idle_entity loopsound tank_idle_training
$tank loopsound tank_idle_training
end

start:			
	end
//=======================
ladder:
	end
//=======================
explosives:
	$explosives_trigger waittill trigger
	
	while (level.flags[explosive] != 1)
		wait 1
		
	waitthread global/objectives.scr::add_objectives 4 3
	
	
	level.bomb_appeared = 1
	
	$explosive_off show
	
	
	waitthread global/objectives.scr::add_objectives 5 2 "Plant the explosives on the tank." $explosive_on.origin
	waitthread global/objectives.scr::current_objectives 5
	
	waitthread dialog_plant_explosives
		
	while (level.bomb_set != 1)
		wait 1
		
	waitthread global/objectives.scr::add_objectives 5 3

	waitthread dialog_moveaway_explosives

	
	while (level.flags[tank] != 1)
		wait 1
//=======================

	waitthread global/objectives.scr::add_objectives 6 2 "Complete the rest of training." $final_door.origin
	waitthread global/objectives.scr::current_objectives 6

	$doors_dialog_trigger waittill trigger
	
	thread dialog_doors
	
	$door_2_triggeruse thread door_wait $door_3
	$door_3_triggeruse thread door_wait $door_2
end

//=======================
pistol:
	end	
//=======================
smg:
	end	
//=======================
rifle:
	end

//=======================
grenade:
        end
//=======================
mg42:

	end

/////----------------------------

feedback_delay:
	end

grenade_target:
	end


ammo_spawners local.type:
	local.ammo_origin = self.origin
	local.ammo_angles = self.angles
	
	while (1)
	{	
		if (local.type == "pistol")
			local.item = spawn models/items/item_pistol_ammobox.tik
		if (local.type == "smg")
			local.item = spawn models/items/item_smg_ammobox.tik
		if (local.type == "rifle")
			local.item = spawn models/items/item_rifle_ammobox.tik	
		if (local.type == "grenade")
			local.item = spawn models/weapons/m2frag_grenade_sp.tik
		
		local.item.origin = local.ammo_origin
		local.item.angles = local.ammo_angles
		
		while (local.item)
			wait 1
		println "z:       " self " is gone. respawning"
		if (self.targetname == "ammo_grenade")
			level.got_grenade = 1
		wait 5
		
		while ($player cansee self 100)
		{
			println "z:    player cansee: " self
			println "z:    waitting on spawn"
			wait 1
		}
	}
end	
	

seencheck:
	end

obj6:
	//CALLED BY BSP WHEN EXPLOSIVES ARE PICKED UP
	waitthread global/items.scr::add_item "explosives"
	$explosive hide
	level.flags[explosive] = 1
end

obj6b:
	//CALLED BY BSP WHEN BOMB IS PLANTED
	if (level.bomb_appeared == 1)
	{
		if (level.bomb_set == 1)
			end
		level.bomb_set = 1

		$explosive_off hide
		$explosive_on show
		$explosive_on playsound plantbomb
		$explosive_on loopsound bombtick
		
		waitthread global/items.scr::remove_item "explosives"
		$player stopwatch 15
		wait 15
		
		$explosive_on stoploopsound bombtick
		$explosive_on hide
		level.tank_idle_entity stoploopsound
	//	$tank stoploopsound
		$tank playsound explode_tank
		exec global/model.scr $explosive_on.origin "models/emitters/explosion_mine.tik"
		wait 0.3
		exec global/model.scr $tank.origin "models/emitters/mortar_higgins.tik"

		$tank.gun = $tank QueryTurretSlotEntity 0
		$tank.gun2 = $tank QueryTurretSlotEntity 1
		if ($tank.gun)
		{
			$tank DetachTurretSlot 0
			$tank.gun remove
		}
		if ($tank.gun2)
		{
			$tank DetachTurretSlot 1
			$tank.gun2 remove
		}

		local.ent = spawn script_model
		local.ent model "vehicles/tigertank_d.tik"	
		local.ent.origin = $tank.origin
		local.ent.angles = $tank.angles
		
		$tank remove
		
		level.flags[tank] = 1
		
		//radiusdamage self.origin level.bomb_damage level.bomb_explosion_radius
		radiusdamage $explosive_on.origin 1000 600
	}
end

door_wait local.other_door:
	end

theplane:
	if (level.theplane != 1)
	{
		level.theplane = 1
		wait 1
		thread global/bomber.scr::bomb 1 1
		thread global/bomber.scr::bomb 2 1
		thread global/bomber.scr::bomb 3 1
		thread global/bomber.scr::bomb 7 1
	}
end

rotatedown local.amount:
	self rotateydown local.amount
	self waitmove
end

rotateup local.amount:
	self rotateyup local.amount
	self waitmove
end

p47flyby:

	//***flyby of p47 as player enters level
//	wait 0.75
	thread global/bomber.scr::bomb 4
	thread global/bomber.scr::bomb 5
		
end

easter_egg:
	thread global/bomber.scr::bomb 6
end



/////----------------------------

dialog_start:
	end

dialog_mouse:
	end

dialog_movement:
	end

dialog_objectives:
	end

dialog_objective_complete:	
	end

dialog_jump:
	end

dialog_duck:
	end

dialog_ladder:
	end

dialog_down_ladder:
	end

dialog_explosives:
	end

dialog_inventory:
	end

dialog_plant_explosives:
	end

dialog_moveaway_explosives:
	end

dialog_doors:
	end

dialog_locked_doors:
	end

dialog_health:
	end

dialog_pistol:
	end

dialog_thompson:
	end
	
dialog_springfield:
	end

dialog_grenade:
	end

dialog_mg42:
	end

dialog_end_warning:
	end

dialog_end:
	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
Last edited by Lt.Audie L Murphy on Thu Feb 17, 2005 10:24 pm, edited 5 times in total.
fuhrer
Captain
Posts: 253
Joined: Sun Mar 14, 2004 3:36 am

Post by fuhrer »

long script :shock: ...maybe u could cut out the parts that dont have nething to do with the things that dont work ?
Lt.Audie L Murphy
Lance Corporal
Posts: 22
Joined: Wed Feb 16, 2005 8:47 am

Post by Lt.Audie L Murphy »

Hope thats much better i didnt want to remove too much incase thats where error was
Grassy
First Lieutenant
Posts: 221
Joined: Sun Aug 22, 2004 11:36 am

Post by Grassy »

:shock:

Erm, the script is to hard to follow now.. Too many holes in it.
What map is it for?
Lt.Audie L Murphy
Lance Corporal
Posts: 22
Joined: Wed Feb 16, 2005 8:47 am

Post by Lt.Audie L Murphy »

i figured if i cut code up someone would ask so i edited back
plz help someone ,,,, ive been at this map for days stuck

map training
fuhrer
Captain
Posts: 253
Joined: Sun Mar 14, 2004 3:36 am

Post by fuhrer »

im fairly pants when it comes to exploders and global scripts n stuff, but is there sposed to be a win condition or something?
Lt.Audie L Murphy
Lance Corporal
Posts: 22
Joined: Wed Feb 16, 2005 8:47 am

Post by Lt.Audie L Murphy »

yes ,,,,,, theres where problem lyes

I cant seem to get it to work correct

code seems to follow the singleplayer code

axis cant disarm the bomb ,,,,, seems they can plant bomb aswell

it doesnt say obj complete when bomb blows up

im in need of assistance plz help
Image
Grassy
First Lieutenant
Posts: 221
Joined: Sun Aug 22, 2004 11:36 am

Post by Grassy »

Ahhh, more clearer now...
That map is designed for single player only, for one thing any entry in the script like $player will only work on the player in slot 0 when playing multiplayer.
Also commands for adding items in a players inventory dont work in MP (I think, correct me if I'm wrong ppl)
And the end of the main script is in the wrong place, it should be after all the lines following waittill spawn.
The thread "roundbasedthread:" near the top of the script has no end and is in the wrong place...
Arghhhh reading more of it... I recon it would be easier to start over and make a new script, there are too many single player objectives in it for mp.
Here is a copy of a script I converted to add bombs that are spawned in random spots each time, and it has it's own bomb thinker, no need for global stuff.. This will give you an idea of the correct script layout for mp maps and how to spawn your bombs into a map.

Code: Select all

//----------------------------------------------------------
// Main
//----------------------------------------------------------
main:
 
	level.script = "maps/obj/mp_bizertefort_obj.scr"
  
	level.gametype = int( getcvar( g_gametype ) )

	// set scoreboard messages
	if( level.gametype == 4 )
	{
		setcvar "g_obj_alliedtext1" "Destroy the" 
		setcvar "g_obj_alliedtext2" "Fort Supplies"
		setcvar "g_obj_alliedtext3" "A Breakthrough map"

		setcvar "g_obj_axistext1" "Protect the"
		setcvar "g_obj_axistext2" "Fort Supplies"
		setcvar "g_obj_axistext3" "Coverted by Grassy"
	}
	else
	{
		setcvar "g_obj_alliedtext1" "Bizerte Festung"
		setcvar "g_obj_alliedtext2" ""
		setcvar "g_obj_alliedtext3" ""
		setcvar "g_obj_axistext1" ""
		setcvar "g_obj_axistext2" ""
		setcvar "g_obj_axistext3" ""
	}
	
	setcvar "g_scoreboardpic" "mp_bizerte_dm"
	
//A new cvar for random obj locations added by <|WHC|>Grassy
//this sets up the cvar with it ON by default, to deactivate set the value to 0 from the console

  setcvar "rand_obj" 1

//------------------------  
	level waittill prespawn
//------------------------
	
	exec global/b_ambience.scr::ambience  //custom ambient sounds by <|WHC|>Grassy
	
	exec global/DMprecache.scr
	exec global/door_locked.scr

	$crustywerfer nodamage
	$crustywerfer_turret0 nodamage

	if($collisionhull)
	{
		$collisionhull.angles = (0 0 0)
		$collisionhull.origin = $collisionhull.origin + (0 0 -300)
		$crustywerfer.collisionent =  $collisionhull
	}
//	$crustywerfer notsolid
//	$crustywerfer_turret0 notsolid

	if(level.gametype == 4)
		waitthread reverseSpawnPoints


//------------------------
	level waittill spawn
//------------------------

  waitframe
  
	if (level.gametype > 2) 
	{
		level waittill roundstart
	}
	level.dmroundlimit = 5   // round time limit in minutes
	if (level.gametype == 4) 
	{
  	level.rand_obj = int( getcvar( rand_obj ))
    if ( level.rand_obj == 1 )
    {
		  waitthread randomise_objective_locations
		}
		else
		waitthread ObjectiveMode
	}
	
end


//------------------------
randomise_objective_locations:
//------------------------
  switch (randomint(7)+1)
  {
    case 1:  local.pos = ( -1346.00 -907.00 353.00 ) ; break
    case 2:  local.pos = ( -555.87 -1401.17 176.13 ) ; break
    case 3:  local.pos = ( -1210.13 -1236.68 336.13 ) ; break
    case 4:  local.pos = ( -1325.08 -877.00 592.13 ) ; break
    case 5:  local.pos = ( -1152.26 -1947.14 608.13 ) ; break
    case 6:  local.pos = ( -1446.09 -1115.39 336.30 ) ; break
    case 7:  local.pos = ( -1291.37 -869.98 544.13 ) ; break
  }
  thread ObjectiveMode local.pos
end

//------------------------
// Created Objective Mode
ObjectiveMode local.pos:
//------------------------
   if ( level.rand_obj != 1 )
   local.pos = ( -1346.00 -907.00 353.00 )

		local.bomborigin = local.pos
		level.defusing_team = "axis" // axis protect and defuse
		level.planting_team = "allies"  // allies attack and plant
		level.bombs_to_plant = 1
		level.bomb_damage = 600
		level.bomb_explosion_radius = 1024
		level.targets_to_destroy = 1
		level.bomb_defuse_time = 60 //tenths of a second
		level.bomb_set_time = 50  //tenths of a second
		level.bomb_explosion_radius = 1054  //quake units
		level.bomb_use_distance = 128 //quake units
		level.bomb_damage = 200
		level.bombusefov = 30

		level.subtitleX = 100
		level.subtitleY = 50
		level.allieswin = 0
		// set the parameters for this round/wave based match
		level.clockside = axis // set to axis, allies, kills, or draw
		
		spawn script_model "targetname" "bomb1" "model" "items/pulse_explosive.tik" "origin" local.bomborigin
		local.crate = spawn script_model "targetname" "fakecrate" "origin" ( -1346 -907 305)
		
		wait 1.0
		$bomb1.trigger_name = spawn trigger_use "origin" $bomb1.origin targetname "Bomb1Trigger"
		$bomb1.explosion_fx = "fx/fx_flak88_explosion.tik"
		$bomb1.explosion_sound = "explode_aagun"
		waitframe
		$bomb1.angle = -90
		$bomb1.trigger_name setsize ( -40 -40 -40) (40 40 40)
		if($fortcrates)
			thread bomb_exploded $bomb1 $fortcrates
		$bomb1 thread bomb_thinker
 

	  	thread allied_win_bomb
		thread axis_win_timer

		addobjective 1 1 "" $bomb1.origin
		setcurrentobjective 1
End

//*** --------------------------------------------
//*** Special effects macro
//*** --------------------------------------------

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 playsound explode_truck1
	local.temp notsolid
	earthquake .5 2 1 0
	wait 5
	local.temp remove
end


//*** --------------------------------------------
//*** Explode all the crates near the bomb
//*** --------------------------------------------

explodeCrate:
	local.wait = 0.1 + randomfloat(0.6)
	wait local.wait
	self thread spawn_fx models/fx/fx_tank_explosion.tik
	wait 0.5
	self thread spawn_fx models/emitters/tehao_explosionDust.tik
end


//*** --------------------------------------------
//*** Wait for a bomb to go off
//*** --------------------------------------------

bomb_exploded local.bomb local.crates:
	while (local.bomb)
		wait .1

 	level.axiswin = 1

	local.crates waitthread explodeCrate

	teamwin allies
end

//*** --------------------------------------------
//*** "Axis Victory"
//*** --------------------------------------------
AxisVictory:
   	while (level.axiswin != 1) 
		wait 0.1

	teamwin axis

end

allied_win_bomb:

	level waittill allieswin

end

//*** --------------------------------------------
//*** "Allied Victory"
//*** --------------------------------------------

axis_win_timer:

	level waittill axiswin

end



//*** --------------------------------------------
//*** Bomb Code
//*** --------------------------------------------
bomb_thinker:
	level.bomb_defuse_time = 20 //tenths of a second
	level.bomb_set_time = 60  //tenths of a second, 50
	level.bomb_tick_time = 20  //seconds, 15
	level.bomb_explosion_radius = 500  //quake units
	level.bomb_use_distance = 128 //quake units
	level.bomb_damage = 200000
	level.bombusefov = 30

	level.subtitleX = 100
	level.subtitleY = 50
	
	self.live = 0

	if (self.target != NIL && self.target != NULL && $(self.target) != NULL)
	{
		self.target.collisionent = self.target.target
		self.target notsolid
	}

	thread bomb_waittill_set
end

bomb_waittill_set:
	self model items/pulse_explosive.tik
	while ( $(self.trigger_name) )
	{
		self.trigger_name waittill trigger
		local.player = parm.other

    if (local.player.dmteam != level.planting_team) 
		{
			local.player iprint ( loc_convert_string "You are the wrong team to plant a bomb here!" )
			goto bomb_waittill_set
		}

		local.tickIndex = 0
		local.counter = 0
		
		while ( (Isalive local.player) && (local.player cansee self level.bombusefov level.bomb_use_distance) && (local.player.useheld == 1) && self.live == 0 )
		{
			if (local.counter == 0)
				local.player stopwatch (level.bomb_set_time * .1)
				
			local.counter++
			
			if( (local.counter % 10) == 0 )
			{
				switch( local.tickIndex )
				{
				case 0:
					self playsound bomb_prime1
					break;
				case 1:
					self playsound bomb_prime2
					break;
				case 2:
					self playsound bomb_prime3
					break;
				case 3:
					self playsound bomb_prime4
					break;
				case 4:
					self playsound bomb_prime5
					break;
				case 5:
					self playsound bomb_prime6
					break;
				}

				local.tickIndex++
			}
		
			wait 0.1

			if (local.counter >= level.bomb_set_time)
			{
				iprintlnbold ( loc_convert_string "The Allies have Planted a Bomb!" )
				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
				level.bombs_planted ++
				end
			}
		}
		if (local.counter > 0)
			local.player stopwatch 0
	}
end


bomb_waittill_defuse:
	while ( $(self.trigger_name) )
	{
		self.trigger_name waittill trigger

		local.player = parm.other
	
		if (local.player.dmteam != level.defusing_team)
		{      
			local.player iprint ( loc_convert_string "You're on the wrong team to defuse this bomb!" )
			goto bomb_waittill_defuse
		}
	
		local.counter = 0
		while ( (Isalive local.player) && 
				(local.player cansee self level.bombusefov level.bomb_use_distance) && 
				(local.player.useheld == 1) && self.live == 1 )
		{
			if (local.counter == 0)
				local.player stopwatch (level.bomb_defuse_time * .1)
			
			local.counter++
			wait 0.1

			if (local.counter >= level.bomb_defuse_time)
			{
				iprintlnbold ( loc_convert_string "The Axis have Defused a Bomb!" )
				if (level.defusing_team == "axis")
					self playsound dfr_diffused_d
				else
					self playsound den_diffused_d
				thread bomb_waittill_set //start first thread again
				self.live = 0
				level.bombs_planted --
				end
			}
		}
		if (local.counter > 0)
			local.player stopwatch 0
	}
end

bomb_waittill_explode:
	self model items/explosive.tik
	self playsound plantbomb
	self loopsound bombtick
	
	local.start_time = level.time

	while (level.time < (local.start_time + level.bomb_tick_time) )
	{
		wait 0.1
		if (self.live != 1)
		{
			self stoploopsound
			end
		}
		if (level.time == (local.start_time + level.bomb_tick_time - 10) )
		{
			self stoploopsound
			self loopsound final_countdown
		}
 	}
 	self stoploopsound
	thread bomb_explode
end

bomb_explode:
	self.trigger_name remove

	thread global/obj_dm.scr::jitter_large 0
	
	if (self.exploder_set != NIL)
	{
		thread global/exploder.scr::explode self.exploder_set
	}
	
	if (self.explosion_fx != NIL)
		self thread global/obj_dm.scr::spawn_fx self.explosion_fx
	
	if (self.explosion_sound != NIL)
		self playsound self.explosion_sound

	if (self.target != NIL && self.target != NULL && self.target != "" && self.target.size == 1)
	{
		if (self.target.destroyed_model != NIL)
		{
			local.damaged = self.target thread spawn_damaged self.target.destroyed_model
		}

		if (self.exploder_set == NIL)
		{
			self.target remove
		}

		waitframe
	}
	radiusdamage self.origin level.bomb_damage level.bomb_explosion_radius
	if (self.killarea != NIL)
	{
		self.killarea volumedamage 1000
	}
	self hide
	self notsolid
//	self remove
	
	self.live = 0
	
	self.exploded = 1
	level.targets_destroyed = level.targets_destroyed + 1

	if( self.objCvar != NIL && self.objCvar != NULL )
	{
		setcvar self.objCvar ""
	}


	// we delay the decrementing of	level.bombs_planted so that the script has
	// time to determin the winner before the timelimit gets checked and hit

	fadeout 0.85 0 0 0 1

	wait 0.5
	level.bombs_planted --


	teamwin allies // axis

end

reverseSpawnPoints:
	if(!($axisspawn) || !($alliedspawn))
		End
	local.axis = $axisspawn.size
	local.allies = $alliedspawn.size
  
	if(local.axis > local.allies)
		{
			for(local.a = 1; local.a <= local.allies; local.a++)
			{
				local.temporigin = $axisspawn[local.a].origin
				local.tempangles = $axisspawn[local.a].angles
				$axisspawn[local.a].origin = $alliedspawn[local.a].origin
				$axisspawn[local.a].angles = $alliedspawn[local.a].angles

				$alliedspawn[local.a].origin = local.temporigin
				$alliedspawn[local.a].angles = local.tempangles
			}
			for(local.b = local.allies + 1; local.b <= local.axis; local.b++)
				$axisspawn[local.a] disablespawn
		}
	else
		{
			for(local.a = 1; local.a <= local.axis; local.a++)
			{
				local.temporigin = $axisspawn[local.a].origin
				local.tempangles = $axisspawn[local.a].angles
				$axisspawn[local.a].origin = $alliedspawn[local.a].origin
				$axisspawn[local.a].angles = $alliedspawn[local.a].angles

				$alliedspawn[local.a].origin = local.temporigin
				$alliedspawn[local.a].angles = local.tempangles
			}
			for(local.b = local.axis + 1; local.b <= local.allies; local.b++)
				$alliedspawn[local.a] disablespawn
		}	
	
End
Lt.Audie L Murphy
Lance Corporal
Posts: 22
Joined: Wed Feb 16, 2005 8:47 am

Post by Lt.Audie L Murphy »

Im Trying to make the singleplayer obj
multiplayer obj

blow up the tank but havent clue
dont care if stuff gets added to invetory i prefure that was deleted

im new to scripting havent a clue how to make a multiplayer obj
i can spwn things good : )
but triggers are above me i dont get that part ,,,,ive read tuts
but dont seem to get it

any assistance will be greatly appreciated
Image
Bjarne BZR
Site Admin
Posts: 3298
Joined: Wed Feb 05, 2003 2:04 pm
Location: Sweden
Contact:

Post by Bjarne BZR »

Scripting in an objective is no problem: Chaeck out the objectification of "Snowy park" I made called "Dogville" In downoloads: http://www.gronnevik.se/rjukan/
Admin .MAP Forums
Image
Head above heels.
Lt.Audie L Murphy
Lance Corporal
Posts: 22
Joined: Wed Feb 16, 2005 8:47 am

Post by Lt.Audie L Murphy »

your map helped dude i really appreciate the help
Image
Bjarne BZR
Site Admin
Posts: 3298
Joined: Wed Feb 05, 2003 2:04 pm
Location: Sweden
Contact:

Post by Bjarne BZR »

Glad that it helped.
Admin .MAP Forums
Image
Head above heels.
Post Reply