Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --------------------------------------------------------------------------------
- -- Mission script for checkpoints
- --------------------------------------------------------------------------------
- -- By Shurumov Ilya
- -- 11 Mar 2015
- --------------------------------------------------------------------------------
- world:SetLevelName("default")
- world:SetEnvironmentName("dusk_clear")
- SetGameState( GAMESTATE_LOADING ) -- load level
- --------------------------------------------------------------------------------
- Checkpoint = class()
- function Checkpoint:__init( pos )
- self.pos = pos
- self.obj = nil
- end
- function Checkpoint:Enable()
- self.obj = world:CreateObject("dummy")
- self.obj:SetModel("models/misc/arrow.egf")
- self.obj:SetOrigin( self.pos )
- self.obj:Spawn()
- self.obj:Activate()
- end
- function Checkpoint:CheckAndComplete()
- self.obj:SetOrigin( self.pos + Vector3D.new(0,0.8 + math.abs(math.sin(missionmanager.m_timeoutTime*4.0)), 0) )
- self.obj:SetAngles( Vector3D.new(0,camera:GetAngles():get_y(), 0) )
- if length(playerCar:GetOrigin() - self.pos) < 4 then
- self.obj:Remove()
- self.obj = nil
- return true
- end
- return false
- end
- ----------------------------------------------------------------------------------------------
- -- Mission initialization
- ----------------------------------------------------------------------------------------------
- function Mission_Init()
- camera = world:GetCameraParams()
- -- put globals here
- missionData = {
- nextConeSpawnTime = 2.0,
- lastConePos = nil,
- startpos = Vector3D.new(54,0.46,-191),
- checkidx = 1,
- checkpoints = {
- Checkpoint( Vector3D.new(102,0.46,-49) ),
- Checkpoint( Vector3D.new(-65,0.46,78) ),
- Checkpoint( Vector3D.new(16,0.46,218) ),
- Checkpoint( Vector3D.new(18,0.46,69) ),
- Checkpoint( Vector3D.new(89,-0.44,-191) ),
- }
- }
- -- car name maxdamage pos ang
- playerCar = gameses:CreateCar("rollo")
- playerCar:SetMaxDamage(2)
- playerCar:SetOrigin( missionData.startpos )
- playerCar:SetAngles( Vector3D.new(0.26, -2.2, 0) )
- playerCar:Spawn()
- playerCar:Activate()
- gameses:SetPlayerCar( playerCar )
- ScreenMessage("Go throuh checkpoints fast as you can!", 3.5)
- missionmanager:EnableTimeout( true, 15 ) -- enable, time
- missionData.checkpoints[1]:Enable()
- -- here we start
- missionmanager:SetRefreshFunc( Mission_Update )
- end
- --------------------------------------------------------------------------------
- -- main mission update
- function Mission_Update()
- if missionData.checkpoints[ missionData.checkidx ]:CheckAndComplete() then
- missionData.checkidx = missionData.checkidx + 1;
- if missionData.checkpoints[ missionData.checkidx ] then
- ScreenMessage("Checkpoint!\n +8 secs", 3.5)
- missionmanager:AddSeconds(8)
- missionData.checkpoints[ missionData.checkidx ]:Enable()
- else
- playerCar:Lock(true)
- ScreenMessage("Well done!", 3.5)
- missionmanager:SetRefreshFunc( function()
- return false
- end )
- --WaitForExit( MIS_SUCCESS, 5.0 )
- end
- end
- if missionmanager:IsTimedOut() then
- playerCar:Lock(true)
- ScreenMessage("Time's up!", 3.5)
- missionmanager:SetRefreshFunc( function()
- return false
- end )
- --WaitForExit( MIS_FAILED, 5.0 )
- return false
- end
- -- check player vehicle is wrecked
- if playerCar:GetDamage() == playerCar:GetMaxDamage() then
- playerCar:Lock(true)
- ScreenMessage("You wrecked your vehicle", 3.5)
- missionmanager:SetRefreshFunc( function()
- return false
- end )
- --WaitForExit( MIS_FAILED, 5.0 )
- return false
- end
- return true
- end
- -- put mission initializer
- missionmanager:Init( Mission_Init )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement