| 1 | -- Create the trigger |
|---|
| 2 | trigger = ScriptTrigger() |
|---|
| 3 | trigger:setName("floorguytrigger") |
|---|
| 4 | trigger:setScript("floorguy.lua") |
|---|
| 5 | trigger:setFunction("tick") |
|---|
| 6 | trigger:setAbsCoor(576.753357, 19, 508.746613) |
|---|
| 7 | trigger:setTarget("Player") |
|---|
| 8 | trigger:setRadius(100) |
|---|
| 9 | |
|---|
| 10 | -- Get objects from orxonox |
|---|
| 11 | thisscript:addObject("GenericNPC", "floorguy") |
|---|
| 12 | thisscript:addObject("FPSPlayer", "Player") |
|---|
| 13 | thisscript:addObject("SpaceShip", "flyby") |
|---|
| 14 | |
|---|
| 15 | programRoute = true |
|---|
| 16 | height = -10 |
|---|
| 17 | time = 3 |
|---|
| 18 | |
|---|
| 19 | |
|---|
| 20 | function fly(timestep) |
|---|
| 21 | |
|---|
| 22 | dx = 0 * timestep |
|---|
| 23 | dy = 0 * timestep |
|---|
| 24 | dz = -500* timestep |
|---|
| 25 | |
|---|
| 26 | flybyX = flyby:getAbsCoorX() |
|---|
| 27 | flybyY = flyby:getAbsCoorY() |
|---|
| 28 | flybyZ = flyby:getAbsCoorZ() |
|---|
| 29 | |
|---|
| 30 | if time < 0 and time > -0.4 then |
|---|
| 31 | flyby:fire(true) |
|---|
| 32 | else |
|---|
| 33 | flyby:fire(false) |
|---|
| 34 | end |
|---|
| 35 | |
|---|
| 36 | if flybyZ < 600 then |
|---|
| 37 | --flyby:setAbsCoor(flybyX + dx, flybyY + dy, flybyZ + dz) |
|---|
| 38 | end |
|---|
| 39 | |
|---|
| 40 | end |
|---|
| 41 | |
|---|
| 42 | function tick(timestep) |
|---|
| 43 | |
|---|
| 44 | time = time - timestep |
|---|
| 45 | |
|---|
| 46 | if time < 0 then |
|---|
| 47 | fly(timestep) |
|---|
| 48 | end |
|---|
| 49 | |
|---|
| 50 | |
|---|
| 51 | if programRoute then |
|---|
| 52 | floorguy:runTo( 800.634338, height, -340.454163) |
|---|
| 53 | floorguy:runTo( 800.965149, height, -317.040039) |
|---|
| 54 | floorguy:runTo( 801.330627, height, -291.156891) |
|---|
| 55 | floorguy:runTo( 801.922913, height, -274.193085) |
|---|
| 56 | floorguy:runTo( 802.959045, height, -258.950653) |
|---|
| 57 | floorguy:runTo( 803.812805, height, -246.390198) |
|---|
| 58 | floorguy:runTo( 804.034180, height, -232.661407) |
|---|
| 59 | floorguy:runTo( 816.056702, height, 407.114502) |
|---|
| 60 | floorguy:runTo( 817.066284, height, 439.783112) |
|---|
| 61 | floorguy:runTo( 817.734314, height, 461.401306) |
|---|
| 62 | floorguy:runTo( 818.361816, height, 481.702789) |
|---|
| 63 | floorguy:runTo( 820.161621, height, 540.826538) |
|---|
| 64 | floorguy:runTo( 820.825195, height, 579.028748) |
|---|
| 65 | floorguy:runTo( 821.907410, height, 641.302673) |
|---|
| 66 | floorguy:runTo( 823.706055, height, 744.863098) |
|---|
| 67 | floorguy:runTo( 820.552490, height, 761.699585) |
|---|
| 68 | floorguy:runTo( 809.810425, height, 771.055420) |
|---|
| 69 | floorguy:runTo( 794.455383, height, 779.180725) |
|---|
| 70 | --floorguy:runTo( 779.520386, height, 773.730957) |
|---|
| 71 | --floorguy:runTo( 769.395630, height, 762.138306) |
|---|
| 72 | --floorguy:runTo( 761.172668, height, 749.739258) |
|---|
| 73 | --floorguy:runTo( 756.049500, height, 736.094116) |
|---|
| 74 | --floorguy:runTo( 755.904297, height, 648.224854) |
|---|
| 75 | --floorguy:runTo( 742.674744, height, -243.343140) |
|---|
| 76 | --floorguy:runTo( 742.312805, height, -273.083893) |
|---|
| 77 | --floorguy:runTo( 741.927856, height, -304.735474) |
|---|
| 78 | --floorguy:runTo( 741.548035, height, -335.971069) |
|---|
| 79 | --floorguy:runTo( 741.181824, height, -366.028503) |
|---|
| 80 | programRoute = false |
|---|
| 81 | end |
|---|
| 82 | |
|---|
| 83 | |
|---|
| 84 | if floorguy:finalGoalReached() then |
|---|
| 85 | programRoute = true |
|---|
| 86 | end |
|---|
| 87 | |
|---|
| 88 | |
|---|
| 89 | return false |
|---|
| 90 | end |
|---|