AAHH whats wrong with this script?

Post your scripting questions / solutions here

Moderator: Moderators

Post Reply
User avatar
Alcoholic
General
Posts: 1470
Joined: Sat May 17, 2003 5:57 am
Location: California
Contact:

AAHH whats wrong with this script?

Post by Alcoholic »

Nothing works! Please jv_map or anybody help me find out whats wrong...


Code: Select all

//Recovery:
//	After the Hanomag you were in got blown to smithereens, you and your squad
//	are stranded, with nothing left but your colts. Follow the captains orders
//	and you just might make it out alive.
//Geometry - Alcoholic
//Scripting - Alcoholic

//Notes:
//You are a sergeant.
//Captain uses STG44 later, sniper uses KAR 98 later, privates use MP40 later, you use Mauser later.
main:

level waittill prespawn

	//Global Scripts
	exec global/ai.scr
	exec global/alarmer.scr
	exec global/exploder.scr
	exec global/friendly.scr
	
	//Definition of Friendlies
	level.captain = level.friendly1
	level.sniper = level.friendly2
	level.private1 = level.friendly4
	level.private2 = level.friendly5
	level.medic = level.friendly6
	level.finn = level.friendly7
	level.hill = level.friendly8
	level.ryan = level.friendly9
	
	//Some Variables
	level.captainlead = 0
	level.regularsfollow = 1
	level.newguysfollow = 0
	level.youdoit = 0
	level.maxplayerhealth = $player.health
	level.engysdead = 0
	
	//Always on hard
	game.skill = "hard"
	
	//Initialize Minefield
	thread global/minefield.scr::minefield_setup
	
level waittill spawn

	//Death Threads
	level.captain thread death_captain
	level.sniper thread death_sniper
	level.private1 thread death_private1
	level.private2 thread death_private2
	level.medic thread death_medic
	level.hill thread death_hill
	level.finn thread death_finn
	
	//Some initial things that need to be done
	$player item weapons/colt45.tik
	$player ammo pistol 42
	$player useweaponclass pistol
	
	$sniper exec global/disable_ai.scr
	$snipee exec global/disable_ai.scr
	level.finn exec global/disable_ai.scr
	level.hill exec global/disable_ai.scr
	$sniper hide
	$snipee hide
	level.finn hide
	level.hill hide
	
	//Initial Threads
	thread intro_setup
	end

//********************
//Scripted things
//********************	

intro_setup:

	wait 2
	
	level.captain say dfr_M1L1_add03 //Change of plans, Lets Go!
	level.captain waittill saydone
	
	level.sniper say streamed_dfr_scripted_M3L1_096a //Minefields, watch for minefields
	waittill saydone
	
	thread basic_ai_setup
	waitthread global/objectives.scr::add_objectives 1 2 "Follow the Captain. He knows what to do." level.captain.origin
	
	level.sniper thread regulars_follow
	level.private1 thread regulars_follow
	level.private2 thread regulars_follow
	end


//********************
//AI Changes, Scripted, etc.
//********************	

basic_ai_setup:

	level.captain.friendtype = 4
	level.captain exec global/friendly.scr::friendlythink
	level.captain.avoidplayer = 1
	
//	level.sniper.friendtype = -1
//	level.sniper exec global/friendly.scr::friendlythink
	level.sniper.avoidplayer = 1
	
//	level.private1.friendtype = -1
//	level.private1 exec global/friendly.scr::friendlythink
	level.private1.avoidplayer = 1
	
//	level.private2.friendtype = -1
//	level.private2 exec global/friendly.scr::friendlythink
	level.private2.avoidplayer = 1
	
	level.medic.friendtype = 5
	level.medic exec global/friendly.scr::friendlythink
	level.medic.avoidplayer = 1
	end
	
regulars_follow:

	while (isalive self && isalive level.captain && level.regularsfollow == 1)
	{
		if !(vector_within self.origin level.captain 256)
		{
			self runto level.captain
		}
		else
		{
			self runto NULL
		}
		wait 1
	}
	end
	
newguys_follow:

	while (isalive self && isalive level.captain && level.newguysfollow == 1)
	{
		if !(vector_within self.origin level.captain 256)
		{
			self runto level.captain
		}
		else
		{
			self runto NULL
		}
		wait 1
	}
	end
		
new_leader_setup:

	level.regularsfollow = 0
	
	level.sniper.friendtype = 1
	level.private1.friendtype = 1
	level.private2.friendtype = 1
	
	waitthread global/objectives.scr::add_objectives 1 3 "Follow the Captain. He knows what to do. - Failed."
//	thread objective1_check
	end
	
introtiger_entrance:

	if(isalive level.private2)
	{
		local.speaker = level.private2
		local.speaker say dfr_scripted_M5L3_17g //Hey, somethins coming.
		local.speaker waittill saydone
		wait 1
		local.speaker say dfr_scripted_M5L3_18f //Its a tank!
	}
	else
	{
		if(isalive level.sniper)
		{
			local.speaker = level.sniper
			local.speaker say dfr_scripted_M5L3_17g //Hey, somethins coming.
			local.speaker waittill saydone
			wait 1
			local.speaker say dfr_scripted_M5L3_18f
		}
		else
		{
			if(isalive level.private1)
			{
				local.speaker = level.private1
				local.speaker say dfr_scripted_M5L3_17g //Hey, somethins coming.
				local.speaker waittill saydone
				wait 1
				local.speaker say dfr_scripted_M5L3_18f
			}
			else
			{
				if(isalive level.captain)
				{
					local.speaker = level.captain
					local.speaker say dfr_scripted_M5L3_17g //Hey, somethins coming.
					local.speaker waittill saydone
					wait 1
					local.speaker say dfr_scripted_M5L3_18f
				}
			}
		}
	}
	local.speaker waittill saydone
	wait 0.25
	local.speaker say dfr_scripted_M3L1_039g //Keep your head down!
	
	level.captain exec global/disable_ai.scr
	level.sniper exec global/disable_ai.scr
	level.private1 exec global/disable_ai.scr
	level.private2 exec global/disable_ai.scr
	
	level.captain runto $intro_captain_destination
	level.sniper runto $intro_sniper_destination
	level.private1 runto $intro_private1_destination
	level.private2 runto $intro_private2_destination //behind the rock. damage actors like this:(put the targetname in front) damage $world 35000 $world (0 0 0) (0 0 0) (0 0 0) 0 9 0 0
	end
	
engineer_entrance:

	wait 3
	
	$introtiger1 thread introtigers_death
	
	wait 1
	
	$introtiger2 thread introtigers_death
	
	wait 2
	
	level.captain exec global/disable_ai.scr
	level.sniper exec global/disable_ai.scr
	level.private1 exec global/disable_ai.scr
	level.private2 exec global/disable_ai.scr
	
	level.captain.avoidplayer = 0
	level.sniper.avoidplayer = 0
	level.private1.avoidplayer = 0
	level.private2.avoidplayer = 0
	level.hill.avoidplayer = 0
	level.finn.avoidplayer = 0
	
	$sniper show
	$snipee show
	level.hill show
	level.finn show
	waitframe
	
	level.hill nodamage
	level.finn nodamage
	$sniper nodamage
	$snipee nodamage
	level.captain nodamage
	level.sniper nodamage
	level.private1 nodamage
	level.private2 nodamage
	level.medic nodamage
	
	//Friend reunion
	$snipee runto $snipeesnipe_destination
	waitframe
	level.hill runto $hillsnipe_destination
	waitframe
	level.finn runto $finnsnipe_destination
	waitframe
	level.captain runto $captainsnipe_destinatin
	waitframe
	level.sniper runto $snipersnipe_destination
	waitframe
	level.private1 runto $private1snipe_destination
	waitframe
	level.private2 runto $private2snipe_destination
	waitframe
	
	$snipee waittill movedone
	level.hill waittill movedone
	level.finn waittill movedone
	level.captain waittill movedone
	level.sniper waittill movedone
	level.private1 waittill movedone
	level.private2 waittill movedone
	
	$snipee turnto level.captain
	level.hill turnto level.private1
	level.finn turnto level.private1
	level.captain turnto $snipee
	level.sniper turnto $snipee
	level.private1 turnto level.hill
	level.private2 turnto level.finn
	
	
	level.finn say dfr_scripted_M5L3_09f //Hey Hill look its Parish.
	level.finn waittill saydone
	
	wait 1
	
	level.private1 say dfr_scripted_M5L3_10c //Finn, Hill, I figured you guys were dead.
	level.private1 waittill saydone
	
	wait 0.5
	
	level.finn say dfr_scripted_M5L3_11h //Not yet.
	level.finn waittill saydone
	
	//He gets shot by a sniper.
	$snipee takedamage
	$snipee damage $world 15000 $world (0 0 0) (0 0 0) (0 0 0) 0 9 0 0
	
	level.sniper turnto NULL
	level.sniper turnto $sniper
	
	level.sniper say dfr_scripted_M5L3_02g //The sniper's up there!
	level.sniper waittill saydone
	
	//Sniper kills sniper
	wait 0.5
	
	level.sniper exec global/aimat.scr $sniper
	
	waitframe
	
	level.sniper exec global/shoot.scr
	
	wait 0.2
	
	level.sniper exec global/aimat.scr NULL
	
	$sniper takedamage
	$sniper damage $world 15000 $world (0 0 0) (0 0 0) (0 0 0) 0 9 0 0
	
	level.sniper say dfr_confirm_kill4 //One down.
	level.sniper waittill saydone
	
	level.hill say dfr_M5L3_549k_1 //Those snipers are tearing us to pieces out here.
	level.hill waittill saydone
	
	wait 1
	
	level.finn say dfr_follow_01c_201 //We'll cover you.
	level.finn waittill saydone
	
	wait 0.25
	
	level.hill say dfr_follow_10c1 //Lead the way.
	level.hill waittill saydone
	
	level.captain takedamage
	level.sniper takedamage
	level.private1 takedamage
	level.private2 takedamage
	level.finn takedamage
	level.hill takedamage
	
	level.captain turnto NULL
	level.sniper turnto NULL
	level.private1 turnto NULL
	level.private2 turnto NULL
	level.finn turnto NULL
	level.hill turnto NULL
	
	level.newguysfollow = 1
	level.finn thread newguysfollow
	level.hill thread newguysfollow
	
	iprintlnbold_noloc "The Captain has decided to lead these engineers to a small German encampment to steal some Tiger Tanks."
	waitthread global/objectives.scr::add_objectives 2 2 "Assist the Captain in helping the engineers steal Tiger Tanks."
	
	level.captain.friendtype = 4
	level.captain exec global/enable_ai.scr
	level.sniper exec global/enable_ai.scr
	level.private1 exec global/enable_ai.scr
	level.private2 exec global/enable_ai.scr
	level.finn exec global/enable_ai.scr
	level.hill exec global/enable_ai.scr
	
	level.captain.avoidplayer = 1
	level.sniper.avoidplayer = 1
	level.private1.avoidplayer = 1
	level.private2.avoidplayer = 1
	level.finn.avoidplayer = 1
	level.hill.avoidplayer = 1
	
	
//********************
//Flag Threads
//********************

flagthread1:

	level.captain.friendtype -1
	level.captain runto NULL
	
	wait 0.5
	
	level.private1 say dfr_M1L1_add06 //What was that, I think I heard something.
	level.private1 waittill saydone
	
	wait 1
	
	level.private1 say dfr_M1L1_106k_1 //AMBUSH!
	level.private1 waittill saydone
	
	thread global/ai.scr::spawngroup #1
	
	$introtiger1 waitthread initTank
	$introtiger1 thread introtiger1_move
	
	wait 2
	
	$introtiger2 waitthread initTank
	$introtiger2 thread introtiger2_move
	end
	
//********************
//Tank things
//********************

initTank:

	self.health = 1000
	self removeondeath = 0
	self lock
	self setcollisionentity self.target
	self immune bullet
	self immune fast_bullet
	self immune grenade
	self immune bash
	end
	
introtiger1_move:
	
	local.path = $introtiger1_vehiclepoint
	local.tankspeed = 64
	local.acceleration = 32
	local.reachdistance = 256
	local.lookahead = 128
	
	self drive local.path local.tankspeed local.acceleration local.reachdistance local.lookahead
	self waittill drive
	self stop
	end
	
introtiger2_move:

	local.path = $introtiger2_vehiclepoint
	local.tankspeed = 60
	local.acceleration = 34
	local.reachdistance = 256
	local.lookahead = 128
	
	self drive local.path local.tankspeed local.acceleration local.reachdistance local.lookahead
	self waittill drive
	self stop
	thread engineer_entrance
	end
	
introtigers_death:

	self show
	self stop
	
	local.gun1 = self queryturretslotentity 0
	local.gun2 = self queryturretslotentity 1
	
	if(local.gun1)
	{
		self detachturretslot 0
		local.gun1 remove
	}
	if(local.gun2)
	{
		self detachturretslot 1
		local.gun2 remove
	}
	self playsound explode_tank
	
	local.boom = spawn "fx/fx_tank_explosion.tik"
	local.boom.origin = self.origin
	local.boom anim start
	exec global/earthquake.scr.23 4 0 0
	radiusdamage self.origin 200 200
	
	local.brushmodel = self.target.brushmodel
	local.collision = spawn script_object model local.brushmodel
	local.collision.angles = self.angles
	local.collision.origin = self.origin
	local.collision disconnect_paths
	
	local.damaged = spawn script_model model models/vehicles/tigertank_d.tik
	local.damaged.origin = self.origin
	local.damaged.angles = self.angles
	
	self remove
	local.boom remove
	end

tiger_death:

	self waittill death
	self show
	self stop
	
	local.gun1 = self queryturretslotentity 0
	local.gun2 = self queryturretslotentity 1
	
	if(local.gun1)
	{
		self detachturretslot 0
		local.gun1 remove
	}
	if(local.gun2)
	{
		self detachturretslot 1
		local.gun2 remove
	}
	self playsound explode_tank
	
	local.boom = spawn "fx/fx_tank_explosion.tik"
	local.boom.origin = self.origin
	local.boom anim start
	exec global/earthquake.scr.23 4 0 0
	radiusdamage self.origin 200 200
	
	local.brushmodel = self.target.brushmodel
	local.collision = spawn script_object model local.brushmodel
	local.collision.angles = self.angles
	local.collision.origin = self.origin
	local.collision disconnect_paths
	
	local.damaged = spawn script_model model models/vehicles/tigertank_d.tik
	local.damaged.origin = self.origin
	local.damaged.angles = self.angles
	
	self remove
	local.boom remove
	end
		
//********************
//Death Threads
//********************

death_captain:

	self waittill death
	iprintlnbold_noloc "Captain Hank has been killed in action. Pick up his mission plans and carry on."
	$trigger_captainitem.origin = level.captain.origin
	thread new_leader_setup
	thread deathitem_captain
	end
	
death_sniper:

	self waittill death
	iprintlnbold_noloc "Sniper Jackson has been killed in action. Pick up his binoculars and carry on."
	$trigger_sniperitem.origin = level.sniper.origin
	thread deathitem_sniper
	end
	
death_private1:

	self waittill death
	iprintlnbold_noloc "Private Parish has been killed in action. Sadly, he has nothing of value to pick up."
	end
	
death_private2:

	self waittill death
	iprintlnbold_noloc "Private Zack has been killed in action. Sadly, he has nothing of value to pick up."
	end
	
death_medic:

	self waittill death
	iprintlnbold_noloc "Medic Tom has been killed in action. Pick up his spare health pack and carry on."
	$trigger_medic.origin = level.medic.origin
	thread deathitem_medic
	end
	
death_hill:

	self waittill death
	iprintlnbold_noloc "Engineer Hill has been killed in action."
	level.engysdead++
	end
	
death_finn:

	self waittill death
	iprintlnbold_noloc "Engineer Finn has been killed in action."
	level.engysdead++
	end
	
//********************
//Dead Teammate Item Spawn
//********************

deathitem_captain:

	local.item_captain = spawn script_model "targetname" "inventory_captain"
	$inventory_captain model "miscobj/clipboard.tik"
	$inventory_captain.origin = level.captain.origin
	end
	
deathitem_sniper:

	local.item_sniper = spawn script_model "targetname" "inventory_sniper"
	$inventory_sniper model "items/binoculars.tik"
	$inventory_sniper.origin = level.sniper.origin
	end
	
deathitem_medic:

	local.item_medic = spawn script_model "targetname" "inventory_medic"
	$inventory_medic model "items/item_100_healthbox.tik"
	$inventory_medic.origin = level.medic.origin
	end
	
pickup_captainitem:

	self waittill trigger
	$inventory_captain remove
	waitthread global/items.scr::add_item "clipboard" "1"
	iprintlnbold_noloc "You have the captain's mission plans. As the Lietenant, you are now in charge of completing the mission."
	level.youdoit = 1
	self remove
	end
	
pickup_sniperitem:

	self waittill trigger
	$inventory_sniper remove
	waitthread global/items.scr::add_item "binoculars" "1"
	iprintlnbold_noloc "You have the sniper's binoculars."
	self remove
	end
	
pickup_medicitem:

	self waittill trigger
	$inventory_medic remove
	$player playsound med_kit
	$player.health = level.maxplayerhealth
	iprintlnbold_noloc "You used the medic's health pack.
	self remove
	end
User avatar
Alcoholic
General
Posts: 1470
Joined: Sat May 17, 2003 5:57 am
Location: California
Contact:

Post by Alcoholic »

I had some great ideas for this map too. if i keep asking for help, you'll know everything that happens in my map! :cry: :(
User avatar
Butch
Lieutenant Colonel
Posts: 398
Joined: Fri Jan 24, 2003 11:30 am

Post by Butch »

awww I was gonna use finn and hill :cry:
PFC.Butch
B Company, 2nd Ranger Battalion
US Army
User avatar
Alcoholic
General
Posts: 1470
Joined: Sat May 17, 2003 5:57 am
Location: California
Contact:

Post by Alcoholic »

well, maybe you can make them last names. they could be huckleberry finn and hank hill. :D
User avatar
Butch
Lieutenant Colonel
Posts: 398
Joined: Fri Jan 24, 2003 11:30 am

Post by Butch »

hehe
PFC.Butch
B Company, 2nd Ranger Battalion
US Army
Post Reply