Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

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

continued working

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