All pastes #254321 Raw Edit

Stuff

public text v1 · immutable
#254321 ·published 2006-11-21 19:16 UTC
rendered paste body
#Global Hooks

$Simulation:

[


--------------------------
--MISSION INITIALIZATION--
--------------------------

if missionInit == nil then
	RedFlagBearer = nil
	GreenFlagBearer = nil
	RedScore = 0
	GreenScore = 0
	RedBase = mn.getShipByName("Red Base")		--These ships MUST be in the game in order for this to work!
	GreenBase = mn.getShipByName("Green Base")
	RedFlag = mn.getShipByName("Red Flag")
	GreenFlag = mn.getShipByName("Green Flag")
	missionInit = 42
	RedDrop = 0
	GreenDrop = 0
	nullvec = ma.newVector(0,0,0)
end

RedFlag.Velocity = nullvec
GreenFlag.Velocity = nullvec

------------------
--CARRY RED FLAG--
------------------

if RedFlagBearer ~= nil then
	RedFlag.Position = RedFlagBearer.Position
	
	---------------------
	--GREEN TEAM SCORES--
	---------------------

	if (RedFlagBearer.Position:getDistance(GreenBase.Position) < 50) and (GreenFlagBearer == nil) and (GreenDrop == 0) then
		RedFlagBearer = nil
		RedFlag.Position = RedBase.Position
		GreenScore = GreenScore + 1
	end
	
end

if RedFlagBearer ~= nil then

	-----------------
	--DROP RED FLAG--
	-----------------
	
	if RedFlagBearer.HitpointsLeft < 1 then
		RedFlagBearer = nil
		RedDrop = 1
	end
	
end

-------------------
--PICKUP RED FLAG--
-------------------

if (RedFlagBearer == nil) then --if RedFlag isn't being carried

	for i = 1, mn.getNumShips() do --run though all ships

		thisShip = mn.getShipByIndex(i)

		if thisShip.Position:getDistance(RedFlag.Position) < 10 then --if one of those ships is touched the flag
				
		
			if thisShip.Team ~= RedFlag.Team then --filter out one team
				RedFlagBearer = thisShip -- he's the flagbearer!
			else						--recovering a dropped flag
				if RedDrop == 1 and thisShip ~= RedFlag then
				--ba.error(thisShip.Name)
					RedDrop = 0
					RedFlag.Position = RedBase.Position
					RedFlagBearer = nil
				end
			end
		end
	end
end


--------------------
--CARRY GREEN FLAG--
--------------------

if GreenFlagBearer ~= nil then						--If the flag is being carried...
	GreenFlag.Position = GreenFlagBearer.Position	--Make the Flag be carried
	
	
	-------------------
	--RED TEAM SCORES--
	-------------------							--if the enemy flag is at your base, and the RedFlag is at your base...
	
	if (GreenFlagBearer.Position:getDistance(RedBase.Position) < 50) and (RedFlagBearer == nil) and (RedDrop == 0) then
		GreenFlagBearer = nil						--No more flagbearer
		GreenFlag.Position = GreenBase.Position		--Flag goes back to the base
		RedScore = RedScore + 1						--And you get a point
	end
	
	
end

if GreenFlagBearer ~= nil then	
	-------------------
	--DROP GREEN FLAG--
	-------------------
	
	if GreenFlagBearer.HitpointsLeft < 1 then		--If the flagbearer DIES
		GreenFlagBearer = nil						--No flagbearer!
		GreenDrop = 1								--Dropped Flag flag (hehe)
	end
	
end

---------------------
--PICKUP GREEN FLAG--
---------------------

if (GreenFlagBearer == nil) then --if GreenFlag isn't being carried

	for i = 1, mn.getNumShips() do --run though all ships

		thisShip = mn.getShipByIndex(i)

		if thisShip.Position:getDistance(GreenFlag.Position) < 10 then --if one of those ships is touched the flag

		
			if thisShip.Team ~= GreenFlag.Team then --filter out one team
				GreenFlagBearer = thisShip -- he's the flagbearer!
			else						--recovering a dropped flag
				if GreenDrop == 1 and thisShip ~= GreenFlag then
						--ba.error(thisShip.Name)
					GreenDrop = 0
					GreenFlag.Position = GreenBase.Position
					GreenFlagBearer = nil
				end
			end
		end
	end
end


]

$HUD:
[

swidth = gr.getScreenWidth()
sheight = gr.getScreenHeight()

halfwidth = swidth*0.5
halfheight = sheight*0.5

redX = swidth*0.6
greenX  = swidth*0.4

teamX = sheight*0.1
scoreX = sheight*0.12

rednoticeY = sheight*0.15
greennoticeY = sheight*0.17

gr.setColor(192,0,0)
gr.drawString("Red", redX, teamX)
gr.drawString(RedScore, redX, scoreX)

gr.setColor(0,128,0)
gr.drawString("Green", greenX, teamX)
gr.drawString(GreenScore, greenX, scoreX)

if RedFlagBearer ~= nil then
	gr.setColor(192,0,0)
	gr.drawString("The Red Flag has been taken!", greenX, rednoticeY)
end

if GreenFlagBearer ~= nil then
	gr.setColor(0,128,0)
	gr.drawString("The Green Flag has been taken!", greenX, greennoticeY)
end
	

]

#End