Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: data/branches/presentation/scripts/prisoner.lua @ 4161

Last change on this file since 4161 was 4161, checked in by snellen, 18 years ago

update

File size: 12.6 KB
Line 
1-- Get objects from orxonox
2thisscript:addObject("GenericNPC", "prisoner")
3thisscript:addObject("FPSPlayer", "Player")
4thisscript:addObject("GenericNPC", "secondguard")
5thisscript:addObject("GenericNPC","guard")
6
7
8cellDoorOpened = false
9walkinCellFinished = false
10cellExitReached = false
11exitReached = false
12hangarReached = false
13spaceShipReached = false
14spaceShipEntered = false
15playerInLock = false
16guardStopped = false
17gotoSpaceship = false
18
19randTime = 0
20height = 36
21
22
23function dist( x1,x2,x3, y1,y2,y3 )
24
25return math.sqrt( (x1-y1)^2 + (x2-y2)^2 + (x3-y3)^2 )
26
27end
28
29function observeGuard()
30guardX = secondguard:getAbsCoorX()
31guardY = secondguard:getAbsCoorY()
32guardZ = secondguard:getAbsCoorZ()
33
34if dist( guardX,guardY,guardZ, 43.406876, 29, 179.517303) < 60 then
35cellDoorOpened = true
36end
37
38end
39
40function observePlayer()
41playerX = Player:getAbsCoorX()
42playerY = Player:getAbsCoorY()
43playerZ = Player:getAbsCoorZ()
44
45
46guardX = guard:getAbsCoorX()
47guardY = guard:getAbsCoorY()
48guardZ = guard:getAbsCoorZ()
49
50distance = dist( guardX,guardY,guardZ,playerX, playerY, playerZ)
51
52if dist( playerX,playerY,playerZ,161.76,49,408.87 ) < 50 then
53playerInLock = true
54end
55
56
57if distance > 250 and hangarRouteProgrammed and not guardStopped and not gotoSpaceship then
58 prisoner:stop()
59 guardStopped = true
60end
61
62if distance < 250 and hangarRouteProgrammed and guardStopped and not gotoSpaceship then
63 prisoner:resume()
64 guardStopped = false
65end
66
67
68if dist( guardX,guardY,guardZ,772.325012, height, -1500.850708) < 200 then
69gotoSpaceship = true
70end
71
72
73end
74
75walkProgrammed = false
76exitProgrammed = false
77function walkInCell(timestep)
78
79
80if not walkProgrammed then
81--prisoner:walkTo( -66.454849, height, 62.363449)
82--prisoner:walkTo( -66.454849, height, 62.363449)
83prisoner:walkTo( -63.214821, height, 62.429710)
84prisoner:walkTo( -56.661182, height, 62.563740)
85prisoner:walkTo( -46.779755, height, 62.765827)
86prisoner:walkTo( -41.634224, height, 71.319214)
87prisoner:walkTo( -38.168526, height, 79.655807)
88prisoner:walkTo( -40.782196, height, 101.285233)
89prisoner:walkTo( -47.722874, height, 114.314980)
90prisoner:walkTo( -54.593349, height, 118.605423)
91prisoner:walkTo( -62.802982, height, 117.947144)
92prisoner:walkTo( -73.180130, height, 116.720863)
93prisoner:walkTo( -85.028603, height, 114.952316)
94prisoner:walkTo( -113.125824, height, 96.362946)
95prisoner:walkTo( -118.218887, height, 87.702599)
96prisoner:walkTo( -120.596275, height, 80.304184)
97prisoner:walkTo( -114.928169, height, 68.971840)
98prisoner:walkTo( -108.606766, height, 62.085098)
99prisoner:walkTo( -90.078171, height, 59.558804)
100prisoner:walkTo( -83.558510, height, 60.516567)
101prisoner:walkTo( -71.352402, height, 63.920750)
102walkProgrammed = true
103end
104
105
106if prisoner:finalGoalReached() and not cellDoorOpened then
107 walkProgrammed = false
108end
109
110
111if cellDoorOpened then
112
113  if not exitProgrammed then
114prisoner:walkTo( -61.875267, height, 158.254517)
115prisoner:walkTo( -62.335995, height, 170.318756)
116prisoner:walkTo( -62.358681, height, 179.232559)
117prisoner:walkTo( -55.998741, height, 189.289749)
118prisoner:walkTo( -49.237957, height, 195.076263)
119prisoner:walkTo( -39.007496, height, 195.889221)
120prisoner:walkTo( -24.234095, height, 195.547043)
121prisoner:walkTo( -11.409116, height, 196.236069)
122prisoner:walkTo( 2.545602, height, 196.805954)
123prisoner:walkTo( 13.875313, height, 196.377563)
124prisoner:walkTo( 28.379402, height, 195.829132)
125prisoner:walkTo( 41.672989, height, 195.326477)
126prisoner:walkTo( 57.125935, height, 194.742126)
127prisoner:walkTo( 70.114609, height, 194.251007)
128prisoner:walkTo( 81.857407, height, 193.806961)
129prisoner:walkTo( 97.840607, height, 193.974030)
130prisoner:walkTo( 107.569641, height, 196.299652)
131prisoner:walkTo( 120.975266, height, 202.754532)
132prisoner:walkTo( 129.063812, height, 207.099640)
133prisoner:walkTo( 140.468765, height, 214.389191)
134prisoner:walkTo( 145.902267, height, 224.194229)
135prisoner:walkTo( 148.106079, height, 233.095215)
136prisoner:walkTo( 150.907532, height, 244.410049)
137prisoner:walkTo( 153.191757, height, 253.635788)
138prisoner:walkTo( 153.191757, height, 253.635788)
139prisoner:walkTo( 151.838257, height, 257.185974)
140prisoner:walkTo( 153.967865, height, 270.535095)
141prisoner:walkTo( 156.288605, height, 284.582123)
142prisoner:walkTo( 158.034988, height, 300.072937)
143prisoner:walkTo( 158.817184, height, 311.973724)
144prisoner:walkTo( 159.794891, height, 326.848816)
145prisoner:walkTo( 160.789093, height, 342.474060)
146prisoner:walkTo( 161.391815, height, 357.817505)
147prisoner:walkTo( 162.055618, height, 374.715668)
148prisoner:walkTo( 161.595901, height, 389.146759)
149prisoner:walkTo( 160.607056, height, 407.092896)
150prisoner:walkTo( 160.508041, height, 416.996307)
151
152   exitProgrammed = true
153  end
154
155  if prisoner:finalGoalReached() then
156   return true
157  end
158
159end 
160
161return false
162
163end
164
165
166hangarRouteProgrammed = false
167function goToHangar(timestep)
168
169if not hangarRouteProgrammed and playerInLock then
170prisoner:walkTo( 162.624390, height, 425.402435)
171prisoner:walkTo( 162.666931, height, 431.160980)
172prisoner:walkTo( 162.708481, height, 436.786591)
173prisoner:walkTo( 162.789124, height, 447.704620)
174prisoner:walkTo( 162.863098, height, 457.719055)
175prisoner:walkTo( 162.916428, height, 464.939545)
176prisoner:walkTo( 162.975830, height, 472.982452)
177prisoner:walkTo( 163.028259, height, 480.078857)
178prisoner:walkTo( 164.319611, height, 491.340607)
179prisoner:walkTo( 168.597382, height, 497.577728)
180prisoner:walkTo( 186.090088, height, 506.772766)
181prisoner:walkTo( 205.179825, height, 510.814911)
182prisoner:walkTo( 210.280609, height, 511.704041)
183prisoner:walkTo( 216.508865, height, 512.518982)
184prisoner:walkTo( 224.820663, height, 513.199585)
185prisoner:walkTo( 233.553589, height, 513.803711)
186prisoner:walkTo( 275.363922, height, 514.931763)
187prisoner:walkTo( 325.490265, height, 515.918945)
188prisoner:walkTo( 365.214355, height, 516.691833)
189prisoner:walkTo( 403.109619, height, 515.911804)
190prisoner:walkTo( 464.696991, height, 514.644348)
191prisoner:walkTo( 524.817627, height, 513.407104)
192prisoner:walkTo( 565.836670, height, 512.870239)
193prisoner:walkTo( 608.300232, height, 512.717957)
194prisoner:walkTo( 634.151794, height, 512.625183)
195prisoner:walkTo( 656.115234, height, 512.546570)
196prisoner:walkTo( 679.420166, height, 512.462708)
197prisoner:walkTo( 696.694702, height, 512.400635)
198prisoner:walkTo( 712.425781, height, 512.344299)
199prisoner:walkTo( 720.998474, height, 512.273193)
200prisoner:walkTo( 733.098389, height, 512.028137)
201prisoner:walkTo( 755.905273, height, 493.950714)
202prisoner:walkTo( 758.626648, height, 472.345520)
203prisoner:walkTo( 758.944458, height, 464.883545)
204prisoner:walkTo( 760.426208, height, 404.809967)
205prisoner:walkTo( 761.147827, height, 370.829987)
206prisoner:walkTo( 761.848511, height, 337.836395)
207prisoner:walkTo( 762.567932, height, 303.964020)
208prisoner:walkTo( 763.293335, height, 269.808380)
209prisoner:walkTo( 764.076294, height, 232.951477)
210prisoner:walkTo( 765.114441, height, 184.070221)
211prisoner:walkTo( 765.890076, height, 147.545258)
212prisoner:walkTo( 766.753296, height, 106.902954)
213prisoner:walkTo( 767.115967, height, 76.410255)
214prisoner:walkTo( 766.648621, height, 39.034630)
215prisoner:walkTo( 766.501282, height, 3.641552)
216prisoner:walkTo( 766.630615, height, -25.998037)
217prisoner:walkTo( 766.773560, height, -58.753052)
218prisoner:walkTo( 766.897766, height, -87.277809)
219prisoner:walkTo( 766.534546, height, -107.109718)
220prisoner:walkTo( 764.282104, height, -135.666809)
221prisoner:walkTo( 761.187439, height, -155.214981)
222prisoner:walkTo( 756.769043, height, -180.015106)
223prisoner:walkTo( 748.603821, height, -224.832336)
224prisoner:walkTo( 741.901978, height, -259.153870)
225prisoner:walkTo( 735.091492, height, -293.963196)
226prisoner:walkTo( 726.579651, height, -329.477051)
227prisoner:walkTo( 716.802002, height, -367.452911)
228prisoner:walkTo( 706.963806, height, -402.515228)
229prisoner:walkTo( 697.003357, height, -438.013824)
230prisoner:walkTo( 688.261230, height, -471.035400)
231prisoner:walkTo( 683.497986, height, -504.091461)
232prisoner:walkTo( 681.250732, height, -528.006287)
233prisoner:walkTo( 679.264771, height, -554.841125)
234prisoner:walkTo( 678.647949, height, -582.533508)
235prisoner:walkTo( 678.731018, height, -612.342407)
236prisoner:walkTo( 678.873230, height, -663.699585)
237prisoner:walkTo( 683.213135, height, -824.669922)
238prisoner:walkTo( 691.796326, height, -993.215332)
239prisoner:walkTo( 696.237244, height, -1045.909302)
240prisoner:walkTo( 702.897461, height, -1072.645020)
241prisoner:walkTo( 710.501160, height, -1095.735107)
242prisoner:walkTo( 715.637573, height, -1111.740845)
243prisoner:walkTo( 725.408020, height, -1144.843506)
244prisoner:walkTo( 747.384888, height, -1223.670410)
245prisoner:walkTo( 751.330872, height, -1238.939941)
246prisoner:walkTo( 757.179504, height, -1262.104980)
247prisoner:walkTo( 761.473145, height, -1287.161133)
248prisoner:walkTo( 764.180298, height, -1311.035767)
249prisoner:walkTo( 765.995178, height, -1339.139648)
250prisoner:walkTo( 767.811340, height, -1381.138428)
251prisoner:walkTo( 769.017273, height, -1409.277344)
252prisoner:walkTo( 769.463684, height, -1430.375244)
253prisoner:walkTo( 769.351685, height, -1451.503418)
254
255prisoner:walkTo( 775.508972, height, -1457.168213)
256prisoner:walkTo( 776.536743, height, -1462.372925)
257prisoner:walkTo( 778.141663, height, -1470.500732)
258prisoner:walkTo( 779.744995, height, -1478.620117)
259prisoner:walkTo( 782.587646, height, -1489.528198)
260prisoner:walkTo( 785.285156, height, -1497.338013)
261prisoner:walkTo( 788.850159, height, -1506.399414)
262prisoner:walkTo( 792.417053, height, -1515.465820)
263prisoner:walkTo( 796.757446, height, -1525.825684)
264prisoner:walkTo( 802.122009, height, -1534.417847)
265prisoner:walkTo( 808.422058, height, -1541.669067)
266prisoner:walkTo( 816.134949, height, -1549.770508)
267prisoner:walkTo( 824.352783, height, -1557.150024)
268prisoner:walkTo( 832.695801, height, -1563.451172)
269prisoner:walkTo( 843.443665, height, -1571.163818)
270prisoner:walkTo( 850.623901, height, -1576.316284)
271prisoner:walkTo( 859.099182, height, -1580.545166)
272prisoner:walkTo( 868.999939, height, -1585.129028)
273prisoner:walkTo( 879.254211, height, -1588.827148)
274prisoner:walkTo( 888.822021, height, -1592.277832)
275prisoner:walkTo( 895.563293, height, -1594.931885)
276prisoner:walkTo( 900.941589, height, -1597.049438)
277prisoner:walkTo( 907.684387, height, -1599.704102)
278prisoner:walkTo( 914.599243, height, -1604.825928)
279prisoner:walkTo( 919.703430, height, -1609.984619)
280prisoner:walkTo( 925.728088, height, -1616.250977)
281prisoner:walkTo( 930.751343, height, -1621.475830)
282prisoner:walkTo( 934.714905, height, -1625.719360)
283prisoner:walkTo( 940.166260, height, -1631.555664)
284prisoner:walkTo( 946.152344, height, -1637.964600)
285prisoner:walkTo( 953.042297, height, -1646.456421)
286prisoner:walkTo( 958.174194, height, -1654.167847)
287prisoner:walkTo( 964.112854, height, -1663.534424)
288prisoner:walkTo( 968.981812, height, -1670.229248)
289prisoner:walkTo( 975.821045, height, -1678.569946)
290prisoner:walkTo( 982.743835, height, -1687.244385)
291prisoner:walkTo( 990.572571, height, -1697.622559)
292prisoner:walkTo( 995.849670, height, -1704.618164)
293prisoner:walkTo( 1001.152649, height, -1711.648193)
294prisoner:walkTo( 1005.204590, height, -1717.019531)
295prisoner:walkTo( 1012.097412, height, -1725.154907)
296prisoner:walkTo( 1017.283020, height, -1731.152222)
297prisoner:walkTo( 1022.044250, height, -1736.658936)
298prisoner:walkTo( 1028.422852, height, -1744.234863)
299prisoner:walkTo( 1033.080688, height, -1749.780884)
300prisoner:walkTo( 1036.395874, height, -1753.908936)
301prisoner:walkTo( 1040.509155, height, -1759.065186)
302prisoner:walkTo( 1044.627441, height, -1764.227783)
303prisoner:walkTo( 1050.220093, height, -1770.871094)
304prisoner:walkTo( 1054.504883, height, -1775.961060)
305prisoner:walkTo( 1060.259888, height, -1782.490723)
306prisoner:walkTo( 1067.060913, height, -1789.939209)
307prisoner:walkTo( 1072.477173, height, -1795.898315)
308prisoner:walkTo( 1076.556152, height, -1800.990845)
309prisoner:walkTo( 1080.718018, height, -1806.200439)
310prisoner:walkTo( 1085.281494, height, -1811.912476)
311prisoner:walkTo( 1090.934448, height, -1817.621094)
312prisoner:walkTo( 1095.896240, height, -1822.369141)
313prisoner:walkTo( 1100.940430, height, -1827.278564)
314prisoner:walkTo( 1107.045898, height, -1833.460693)
315prisoner:walkTo( 1113.230103, height, -1839.722534)
316
317hangarRouteProgrammed = true
318end
319
320thisX = prisoner:getAbsCoorX()
321thisY = prisoner:getAbsCoorY()
322thisZ = prisoner:getAbsCoorZ()
323
324if dist( thisX,thisY,thisZ, 1113.230103, height, -1839.722534) < 10 then
325prisoner:hide()
326return true
327end
328
329
330return false
331
332end
333
334spaceshipRouteProgrammed = false
335function goToSpaceship(timestep)
336
337if not spaceshipRouteProgrammed then
338
339
340spaceshipRouteProgrammed = true
341end
342
343if prisoner:finalGoalReached() then
344   return true
345end
346
347return false
348
349end
350
351
352function enterSpaceship(timestep)
353
354return false
355end
356
357
358
359function tick(timestep)
360
361 observeGuard()
362 observePlayer()
363
364
365if not walkinCellFinished then
366walkinCellFinished = walkInCell(timestep)
367end
368
369
370if walkinCellFinished and not hangarReached then
371hangarReached = goToHangar(timestep)
372end
373
374
375return hangarReached
376end
Note: See TracBrowser for help on using the repository browser.