Multi Objectives?

Post your scripting questions / solutions here

Moderator: Moderators

Post Reply
pshyco
Private
Posts: 8
Joined: Thu Dec 04, 2003 8:15 pm

Multi Objectives?

Post 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
User avatar
tltrude
Chuck Norris
Posts: 4774
Joined: Sun Jul 07, 2002 4:03 am
Location: Oklahoma, USA
Contact:

new variables

Post 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.
Tom Trude,

Image
pshyco
Private
Posts: 8
Joined: Thu Dec 04, 2003 8:15 pm

Post 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
User avatar
tltrude
Chuck Norris
Posts: 4774
Joined: Sun Jul 07, 2002 4:03 am
Location: Oklahoma, USA
Contact:

Spearhead

Post 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.
Tom Trude,

Image
nuggets
General
Posts: 1006
Joined: Fri Feb 28, 2003 2:57 am
Location: U-england-K (england in the UK) :P
Contact:

Post 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
hope this helps, prob not cos it's all foreign 2 me :-/
pshyco
Private
Posts: 8
Joined: Thu Dec 04, 2003 8:15 pm

Post by pshyco »

ah thanks that what i needed.
Post Reply