Page 1 of 1

Multi Objectives?

Posted: Sat Dec 13, 2003 1:30 pm
by pshyco
is there any way to get "Multi Objectives" for both teams like both teams have to steal some documents then once there stolern bomb 1 becomes useable? not in tow mode but obj? heres what i got so far:

Code: Select all

// Objective Farm Assult
// [69th]<-=*PsHyCo*=->

main:

setcvar "g_obj_alliedtext1" "Get The Plans" 
setcvar "g_obj_alliedtext2" "&"
setcvar "g_obj_alliedtext3" "Destroy the Tank"

setcvar "g_obj_axistext1" "Get The Plans"
setcvar "g_obj_axistext2" "&"
setcvar "g_obj_axistext3" "Destroy the Barn"

setcvar "g_scoreboardpic" "none"

level waittill prespawn

	//*** Precache Dm Stuff
	exec global/DMprecache.scr
		
	//***Ambient sounds
	level.script = maps/obj/obj_farm_assult.scr
	exec global/ambient.scr obj_farm_assult

	//***Initializes the exploder subsystem
	thread global/exploder.scr::main

level waittill spawn

	level.defusing_team = "axis"
	level.planting_team = "allies"
	level.targets_to_destroy = 4
	level.bomb_damage = 200
	level.bomb_explosion_radius = 2048

	// set the parameters for round based match
	level.dmrespawning = 1
	level.dmroundlimit = 15
	level.clockside = kills

level waittill roundstart
	
		$panel_bomb thread global/obj_dm.scr::bomb_thinker
		$wall_document_trigger thread documentaxis_check
		$desk_document_trigger thread documentallies_check
		thread allies_win_bomb
		thread axis_win_bomb
		
end

//*** --------------------------------------------
//*** "Allies Victory"
//*** --------------------------------------------

allies_win_bomb:

	while(level.targets_destroyed < level.targets_to_destroy)
		waitframe

	teamwin allies
end

//*** --------------------------------------------
//*** "Axis Victory"
//*** --------------------------------------------

axis_win_bomb:

	while(level.targets_destroyed < level.targets_to_destroy)
		waitframe

	teamwin axis
end


documentaxis_check:
	while(1) { 
		self waittill trigger
		if(parm.other.dmteam == axis) {
			self.target hide
			level.targets_destroyed ++
			break		}
		waitframe
	}
end

documentallies_check:
	while(1) { 
		self waittill trigger
		if(parm.other.dmteam == allies) {
			self.target hide
			level.targets_destroyed ++
			break		}
		waitframe
	}
end

new variables

Posted: Sat Dec 13, 2003 6:49 pm
by tltrude
You can add new variables like:

level.controlling_team
level.allied_targets_to_destroy = 2
level.axis_targets_destroyed ++

Use any names you like. You should also set the objectives up so only one team or the other can use the triggers. You can use "if" statements for that.

You will need new "planting" and "defusing" lines too and that may require a modification of the obj_dm.scr script.

Posted: Sat Dec 13, 2003 7:30 pm
by pshyco
i dont understand were to place

Code: Select all

level.controlling_team 
level.allied_targets_to_destroy = 2 
level.axis_targets_destroyed ++ 
in my new scirpt and also would it be easyer to be a tug of war match.
here is my scirpt could you try and help me by putting it in here?

Code: Select all

// Objective Farm Assult
// [69th]<-=*PsHyCo*=->

main:

setcvar "g_obj_alliedtext1" "Get The Plans" 
setcvar "g_obj_alliedtext2" "PROTECT YOUR SAFE"
setcvar "g_obj_alliedtext3" ""

setcvar "g_obj_axistext1" "Destroy the Safe"
setcvar "g_obj_axistext2" "PROTECT YOUR PLANS"
setcvar "g_obj_axistext3" ""

setcvar "g_scoreboardpic" "none"

level waittill prespawn

	//*** Precache Dm Stuff
	exec global/DMprecache.scr
		
	//***Ambient sounds
	level.script = maps/obj/obj_farm_assult.scr
	exec global/ambient.scr obj_farm_assult

	//***Initializes the exploder subsystem
	thread global/exploder.scr::main

level waittill spawn

//i added it heredunno if its in the right place?
//	level.controlling_team 
//	level.allied_targets_to_destroy = 2 
//	level.axis_targets_destroyed ++ 
	level.defusing_team = "axis"
	level.planting_team = "allies"
	level.targets_to_destroy = 4
	level.bomb_damage = 200
	level.bomb_explosion_radius = 2048

	// set the parameters for round based match
level.dmrespawning = 1
	level.dmroundlimit = 15
	level.clockside = kills

level waittill roundstart
	
		$tank_trigger_1 thread global/obj_dm.scr::bomb_thinker
		$safe_trigger_2 thread global/obj_dm.scr::bomb_thinker
		$document_trigger_axis thread documentaxis_check
		$document_trigger thread documentallies_check
		thread allies_win_bomb
		thread axis_win_bomb
		
end

//*** --------------------------------------------
//*** "Allies Victory"
//*** --------------------------------------------

allies_win_bomb:

	while(level.targets_destroyed < level.targets_to_destroy)
		waitframe

	teamwin allies
end

//*** --------------------------------------------
//*** "Axis Victory"
//*** --------------------------------------------

axis_win_bomb:

	while(level.targets_destroyed < level.targets_to_destroy)
		waitframe

	teamwin axis
end


documentaxis_check:
	while(1) { 
		self waittill trigger
		if(parm.other.dmteam == axis) {
			self.target hide
			level.targets_destroyed ++
			break		}
		waitframe
	}
end

documentallies_check:
	while(1) { 
		self waittill trigger
		if(parm.other.dmteam == allies) {
			self.target hide
			level.targets_destroyed ++
			break		}
		waitframe
	}
end

//------------------------------------------------------->
// Water Trigger Messages To Stop Under Water Snipers
//------------------------------------------------------->

Water_Trigger:
self waittill trigger
local.player=parm.other
if (local.player.isTrigger1==1)
end

local.player.isTrigger1=1
wait 2.0
iprintln ("Warning")
wait 2.0
iprintln ("To Anyone")
wait 2.0
iprintln ("In The")
wait 2.0
iprintln ("Water")
wait 2.0
iprintln ("4  4  4")
wait 2.0
iprintln ("3  3  3")
wait 2.0
iprintln ("2  2  2")
wait 2.0
iprintln ("1  1  1")
wait 2.0
iprintln ("0  0  0")
local.player respawn 
local.player.stufftext ?say :-( I Was In The Water Swimming?
local.player.stufftext ?say :-( But I Drowned?
local.player.isTrigger1=0
end

//------------------------------------------------------->
// EXPLOSIVE CRATE
//------------------------------------------------------->
 
boomcrate1:
 
 $crate_trigger1 waittill trigger
 
 spawn "animate/fx_explosion_mine" targetname "explode_crate1" angle "-1" origin local.crate1.origin
 $explode_crate1 anim start
 radiusdamage $killspot1 250 256
 local.crate1 hide
 $crate_trigger1 remove
 $killspot1 remove
 wait 20
 $explode_crate1 remove
 local.crate1 show
 local.crate1 remove
 thread boomcrate1
end

Spearhead

Posted: Sat Dec 13, 2003 9:31 pm
by tltrude
You should study a Tow script. I don't have Spearhead, so I can't help. Those lines were just examples of things you can add.

Posted: Tue Dec 16, 2003 3:37 pm
by nuggets
have
key: targetname
value: allies_object
key: setthread
value: allies_win

on the plans trigger

and
key: targetname
value: axis_object
key: setthread
value: axis_win

on the safe trigger

then

in the script after...
main:
//...
//etc...
end

allies_win:
teamwin allies
end

axis_win:
teamwin axis
end

Posted: Fri Dec 19, 2003 10:14 pm
by pshyco
ah thanks that what i needed.