Changeset 4162
- Timestamp:
- Jul 5, 2006, 10:57:14 AM (18 years ago)
- Location:
- data/branches/presentation
- Files:
-
- 1 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
data/branches/presentation/scripts/staumanndli.lua
r4157 r4162 1 1 -- Get objects from orxonox 2 thisscript:addObject("GenericNPC"," guard")2 thisscript:addObject("GenericNPC","staumanndli") 3 3 thisscript:addObject("FPSPlayer", "Player") 4 4 5 -- Global Variables 6 walkingRouteOne = true -- True if thestranger is walking route one 7 exitPositionReached = false 8 playerInLock = false 9 hangarReached = false 10 guardStopped = false 11 gotoSpaceship = false 5 programRoute = true 6 height = -10 12 7 13 height = 34 8 function tick(timestep) 14 9 15 -- Returns the distance between (x1,x2,x3) and (y1,y2,y3) 16 function dist( x1,x2,x3, y1,y2,y3 ) 17 return math.sqrt( (x1-y1)^2 + (x2-y2)^2 + (x3-y3)^2 ) 10 if programRoute then 11 floorguy:runTo( 800.634338, height, -340.454163) 12 floorguy:runTo( 800.965149, height, -317.040039) 13 floorguy:runTo( 801.330627, height, -291.156891) 14 floorguy:runTo( 801.922913, height, -274.193085) 15 floorguy:runTo( 802.959045, height, -258.950653) 16 floorguy:runTo( 803.812805, height, -246.390198) 17 floorguy:runTo( 804.034180, height, -232.661407) 18 floorguy:runTo( 816.056702, height, 407.114502) 19 floorguy:runTo( 817.066284, height, 439.783112) 20 floorguy:runTo( 817.734314, height, 461.401306) 21 floorguy:runTo( 818.361816, height, 481.702789) 22 floorguy:runTo( 820.161621, height, 540.826538) 23 floorguy:runTo( 820.825195, height, 579.028748) 24 floorguy:runTo( 821.907410, height, 641.302673) 25 floorguy:runTo( 823.706055, height, 744.863098) 26 floorguy:runTo( 820.552490, height, 761.699585) 27 floorguy:runTo( 809.810425, height, 771.055420) 28 floorguy:runTo( 794.455383, height, 779.180725) 29 floorguy:runTo( 779.520386, height, 773.730957) 30 floorguy:runTo( 769.395630, height, 762.138306) 31 floorguy:runTo( 761.172668, height, 749.739258) 32 floorguy:runTo( 756.049500, height, 736.094116) 33 floorguy:runTo( 755.904297, height, 648.224854) 34 floorguy:runTo( 742.674744, height, -243.343140) 35 floorguy:runTo( 742.312805, height, -273.083893) 36 floorguy:runTo( 741.927856, height, -304.735474) 37 floorguy:runTo( 741.548035, height, -335.971069) 38 floorguy:runTo( 741.181824, height, -366.028503) 39 programRoute = false 18 40 end 19 41 20 21 function observePlayer() 22 23 guardX = guard:getAbsCoorX() 24 guardY = guard:getAbsCoorY() 25 guardZ = guard:getAbsCoorZ() 26 27 playerX = Player:getAbsCoorX() 28 playerY = Player:getAbsCoorY() 29 playerZ = Player:getAbsCoorZ() 30 31 32 distance = dist( guardX,guardY,guardZ,playerX, playerY, playerZ) 33 34 if distance > 250 and hangarRouteProgrammed and not guardStopped and not gotoSpaceship then 35 guard:stop() 36 guardStopped = true 42 if floorguy:finalGoalReached() then 43 programRoute = true 37 44 end 38 45 39 if distance < 250 and hangarRouteProgrammed and guardStopped and not gotoSpaceship then40 guard:resume()41 guardStopped = false42 end43 44 if dist( playerX,playerY,playerZ,167.361526,29,483.163818 ) < 200 then45 playerInLock = true46 end47 48 if dist( guardX,guardY,guardZ,772.325012, height, -1500.850708) < 200 then49 gotoSpaceship = true50 end51 52 53 end54 55 routeOneProgrammed = false56 function walkRouteOne(timestep)57 if not routeOneProgrammed then58 guard:walkTo( 266.396362, height, 241.398544)59 guard:walkTo( 254.577255, height, 241.159897)60 guard:walkTo( 221.120651, height, 240.484360)61 guard:walkTo( 187.732651, height, 239.810196)62 guard:walkTo( 165.661865, height, 239.364563)63 guard:walkTo( 148.642044, height, 239.020889)64 guard:walkTo( 128.012802, height, 238.604340)65 guard:walkTo( 65.664688, height, 237.345383)66 guard:walkTo( 30.099592, height, 236.627243)67 guard:walkTo( -14.031926, height, 236.483414)68 guard:walkTo( -52.224205, height, 241.776978)69 guard:walkTo( -83.528168, height, 245.757629)70 guard:walkTo( -98.730980, height, 247.394043)71 guard:walkTo( -111.666504, height, 246.585648)72 guard:walkTo( -111.666504, height, 246.585648)73 guard:walkTo( -114.805542, height, 246.144440)74 guard:walkTo( -119.267967, height, 245.360168)75 guard:walkTo( -138.284515, height, 239.281021)76 guard:walkTo( -146.166840, height, 234.512054)77 guard:walkTo( -157.210480, height, 222.620941)78 guard:walkTo( -158.519867, height, 219.674301)79 guard:walkTo( -158.519867, height, 219.674301)80 guard:walkTo( -158.478958, height, 213.490570)81 guard:walkTo( -158.478958, height, 213.490570)82 guard:walkTo( -155.965332, height, 210.303101)83 guard:walkTo( -150.804489, height, 203.959869)84 guard:walkTo( -148.853012, height, 201.561295)85 guard:walkTo( -145.451157, height, 197.554382)86 guard:walkTo( -143.694107, height, 196.373535)87 guard:walkTo( -139.281479, height, 193.407990)88 guard:walkTo( -137.526047, height, 192.228226)89 guard:walkTo( -103.046753, height, 182.510071)90 guard:runTo( -14.992087, height, 181.910767)91 guard:runTo( 46.347664, height, 181.493317)92 guard:runTo( 86.343376, height, 181.221130)93 guard:runTo( 124.465179, height, 194.251617)94 guard:runTo( 136.548996, height, 219.682953)95 guard:runTo( 145.162140, height, 244.268982)96 guard:runTo( 149.328720, height, 256.993256)97 guard:runTo( 162.649582, height, 268.181732)98 99 routeOneProgrammed = true100 end101 102 if guard:finalGoalReached() then103 return false104 end105 106 return true107 end108 109 110 exitRouteProgrammed = false111 function goToExitPosition(timestep)112 113 if not exitRouteProgrammed then114 --guard:runTo( 162.096558, height, 274.944366)115 --guard:runTo( 161.519516, height, 286.673370)116 --guard:runTo( 161.098618, height, 295.228699)117 --guard:runTo( 160.568466, height, 306.004486)118 guard:runTo( 160.151169, height, 314.486572)119 guard:runTo( 159.416641, height, 324.925232)120 guard:walkTo( 158.700073, height, 335.108154)121 guard:walkTo( 157.943298, height, 345.862610)122 guard:walkTo( 157.418381, height, 356.131256)123 guard:walkTo( 156.908035, height, 366.115417)124 guard:walkTo( 156.940308, height, 377.467712)125 guard:walkTo( 156.965408, height, 386.287933)126 guard:walkTo( 156.924698, height, 394.296417)127 guard:walkTo( 156.816116, height, 401.564911)128 guard:walkTo( 156.147583, height, 446.314850)129 guard:walkTo( 155.145660, height, 515.473877)130 guard:walkTo( 148.450058, height, 524.572571)131 guard:walkTo( 135.599609, height, 533.407166)132 guard:walkTo( 119.772217, height, 539.609192)133 guard:walkTo( 108.926720, height, 537.174927)134 guard:walkTo( 100.885788, height, 524.737793)135 guard:walkTo( 99.870834, height, 512.540100)136 guard:walkTo( 108.219215, height, 502.064178)137 138 exitRouteProgrammed = true139 end140 141 if guard:finalGoalReached() and playerInLock then142 return true143 end144 46 145 47 return false 146 48 end 147 49 148 149 hangarRouteProgrammed = false 150 function goToHangar(timestep) 151 152 if not hangarRouteProgrammed and playerInLock then 153 154 guard:walkTo( 133.354797, height, 504.669128) 155 guard:walkTo( 147.490158, height, 507.034393) 156 guard:walkTo( 157.640610, height, 508.901001) 157 guard:walkTo( 168.830688, height, 510.958710) 158 guard:walkTo( 185.020630, height, 512.736206) 159 guard:walkTo( 201.232452, height, 513.413818) 160 guard:walkTo( 265.666138, height, 513.736023) 161 guard:walkTo( 362.377960, height, 515.575806) 162 guard:walkTo( 426.176392, height, 515.666748) 163 guard:walkTo( 500.031677, height, 515.197266) 164 guard:walkTo( 551.294250, height, 514.430237) 165 guard:walkTo( 604.974731, height, 515.106323) 166 guard:walkTo( 651.117920, height, 516.026550) 167 guard:walkTo( 664.581909, height, 516.295227) 168 guard:walkTo( 683.122803, height, 516.665100) 169 guard:walkTo( 694.547485, height, 516.892944) 170 guard:walkTo( 704.408569, height, 517.089539) 171 guard:walkTo( 714.413208, height, 517.289185) 172 guard:walkTo( 739.045288, height, 515.581970) 173 guard:walkTo( 763.904541, height, 497.281738) 174 guard:walkTo( 767.672791, height, 481.974457) 175 guard:walkTo( 769.436951, height, 468.704559) 176 guard:walkTo( 770.490967, height, 453.283386) 177 guard:walkTo( 771.185303, height, 435.960114) 178 guard:walkTo( 771.952820, height, 379.502045) 179 guard:walkTo( 771.938293, height, 310.049042) 180 guard:walkTo( 772.514526, height, 231.579498) 181 guard:walkTo( 773.601074, height, 135.177933) 182 guard:walkTo( 773.790771, height, 50.675163) 183 guard:walkTo( 773.316162, height, -36.961666) 184 guard:walkTo( 772.885986, height, -116.407944) 185 guard:walkTo( 772.841309, height, -124.651726) 186 guard:walkTo( 772.491333, height, -137.742279) 187 guard:walkTo( 770.644775, height, -153.245926) 188 guard:walkTo( 768.774414, height, -163.767120) 189 guard:walkTo( 766.336426, height, -174.224228) 190 guard:walkTo( 762.794128, height, -187.312271) 191 guard:walkTo( 733.548279, height, -274.004791) 192 guard:walkTo( 713.113647, height, -329.657959) 193 guard:walkTo( 694.801819, height, -379.530243) 194 guard:walkTo( 681.276062, height, -422.047028) 195 guard:walkTo( 672.579102, height, -458.540985) 196 guard:walkTo( 670.843384, height, -465.824615) 197 guard:walkTo( 669.948364, height, -480.910645) 198 guard:walkTo( 669.361511, height, -493.648529) 199 guard:walkTo( 669.686829, height, -501.598572) 200 guard:walkTo( 674.055664, height, -582.077637) 201 guard:walkTo( 676.046387, height, -630.403809) 202 guard:walkTo( 677.839050, height, -674.209534) 203 guard:walkTo( 680.754944, height, -765.965515) 204 guard:walkTo( 681.034180, height, -803.351135) 205 guard:walkTo( 680.088806, height, -844.069031) 206 guard:walkTo( 677.801514, height, -899.952148) 207 guard:walkTo( 675.205627, height, -950.496460) 208 guard:walkTo( 672.847778, height, -996.413574) 209 guard:walkTo( 676.204041, height, -1043.556274) 210 guard:walkTo( 691.304382, height, -1088.596558) 211 guard:walkTo( 705.101318, height, -1128.320312) 212 guard:walkTo( 720.476013, height, -1164.364380) 213 guard:walkTo( 729.216797, height, -1183.948364) 214 guard:walkTo( 740.145203, height, -1212.598267) 215 guard:walkTo( 746.547363, height, -1238.340576) 216 guard:walkTo( 756.866211, height, -1280.605347) 217 guard:walkTo( 763.380554, height, -1314.622314) 218 guard:walkTo( 768.731506, height, -1347.977539) 219 guard:walkTo( 772.446655, height, -1381.641479) 220 guard:walkTo( 772.721069, height, -1421.184937) 221 guard:walkTo( 772.414734, height, -1457.349121) 222 guard:walkTo( 772.803284, height, -1489.560913) 223 224 guard:walkTo( 772.325012, height, -1500.850708) 225 guard:walkTo( 772.325012, height, -1500.850708) 226 guard:walkTo( 772.487854, height, -1508.028809) 227 guard:walkTo( 774.761047, height, -1519.442139) 228 guard:walkTo( 778.809204, height, -1525.292847) 229 guard:walkTo( 783.482666, height, -1530.000610) 230 guard:walkTo( 790.163269, height, -1536.350708) 231 guard:walkTo( 797.713745, height, -1542.968018) 232 guard:walkTo( 804.024475, height, -1548.390503) 233 guard:walkTo( 810.316406, height, -1553.796875) 234 guard:walkTo( 819.849731, height, -1561.323242) 235 guard:walkTo( 826.676819, height, -1566.627197) 236 guard:walkTo( 833.950928, height, -1572.278442) 237 guard:walkTo( 840.587036, height, -1577.434082) 238 guard:walkTo( 847.261230, height, -1582.458252) 239 guard:walkTo( 852.104797, height, -1586.104370) 240 guard:walkTo( 857.504944, height, -1590.169556) 241 guard:walkTo( 861.696411, height, -1593.324829) 242 guard:walkTo( 867.690613, height, -1597.837036) 243 guard:walkTo( 874.808105, height, -1604.437378) 244 guard:walkTo( 878.302429, height, -1608.333252) 245 guard:walkTo( 884.001892, height, -1614.366211) 246 guard:walkTo( 890.699646, height, -1621.398315) 247 guard:walkTo( 895.391052, height, -1626.179688) 248 guard:walkTo( 902.171509, height, -1633.090332) 249 guard:walkTo( 906.807495, height, -1637.957764) 250 guard:walkTo( 910.438599, height, -1641.770142) 251 guard:walkTo( 915.626160, height, -1647.216797) 252 guard:walkTo( 921.844727, height, -1653.745972) 253 guard:walkTo( 928.565125, height, -1660.801636) 254 guard:walkTo( 933.742004, height, -1666.236694) 255 guard:walkTo( 938.956543, height, -1671.711182) 256 guard:walkTo( 942.160706, height, -1675.745972) 257 guard:walkTo( 947.547302, height, -1681.952881) 258 guard:walkTo( 951.732483, height, -1687.077759) 259 guard:walkTo( 957.284851, height, -1693.876709) 260 guard:walkTo( 962.786438, height, -1700.614990) 261 guard:walkTo( 966.177246, height, -1705.151245) 262 guard:walkTo( 970.221619, height, -1710.886230) 263 guard:walkTo( 974.503113, height, -1717.243896) 264 guard:walkTo( 977.332153, height, -1722.064087) 265 guard:walkTo( 981.496887, height, -1729.391357) 266 guard:walkTo( 986.814148, height, -1738.394165) 267 guard:walkTo( 991.428650, height, -1745.393799) 268 guard:walkTo( 998.958069, height, -1755.184326) 269 guard:walkTo( 1003.995300, height, -1761.734131) 270 guard:walkTo( 1009.006226, height, -1768.234375) 271 guard:walkTo( 1013.550842, height, -1773.405029) 272 guard:walkTo( 1019.371277, height, -1778.674072) 273 guard:walkTo( 1024.703491, height, -1782.708618) 274 guard:walkTo( 1030.605469, height, -1787.173950) 275 guard:walkTo( 1036.072876, height, -1790.982056) 276 guard:walkTo( 1043.746094, height, -1795.485474) 277 guard:walkTo( 1050.884644, height, -1799.663574) 278 hangarRouteProgrammed = true 279 end 280 281 if guard:finalGoalReached() and not guardStopped then 282 return true 283 end 284 285 return false 286 end 287 288 289 290 function tick(timestep) 291 --io.write("Guard called \n") 292 observePlayer() 293 294 295 if walkingRouteOne then 296 walkingRouteOne = walkRouteOne(timestep) 297 end 298 299 if not walkingRouteOne and not exitPositionReached then 300 exitPositionReached = goToExitPosition(timestep) 301 end 302 303 if not hangarReached and exitPositionReached then 304 hangarReached = goToHangar(timestep) 305 end 306 307 return hangarReached 308 end 309 50 579 373 -114 51 764 373 -197 52 1070 373 -209 -
data/branches/presentation/worlds/sp_demo_mountain_lake.oxw
r4160 r4162 35 35 36 36 <!--<ScriptTrigger> 37 <name> guardtrigger</name>38 <file> guard.lua</file>37 <name>staumanndli</name> 38 <file>staumanndli.lua</file> 39 39 <function>tick</function> 40 40 <abs-coor>-500, 300, 900</abs-coor>
Note: See TracChangeset
for help on using the changeset viewer.