Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: data/branches/single_player_map/scripts/secondguard.lua @ 4051

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

objects get added from within the script

File size: 12.8 KB
Line 
1-- Get objects from orxonox
2thisscript:addObject("GenericNPC", "secondguard")
3thisscript:addObject("GenericNPC", "guard")
4thisscript:addObject("FPSPlayer", "Player")
5thisscript:addObject("GenericNPC", "prisoner")
6
7-- Global Variables
8allOk = true
9cellReached = false
10guidePositionReached = false
11prisonerReachedLock = false
12hangarReached = false
13
14height = 100
15
16-- Returns the distance between (x1,x2,x3) and (y1,y2,y3)
17function dist( x1,x2,x3, y1,y2,y3 )
18return math.sqrt( (x1-y1)^2 + (x2-y2)^2 + (x3-y3)^2 )
19end
20
21
22function observeGuard()
23guardX = guard:getAbsCoorX()
24guardY = guard:getAbsCoorY()
25guardZ = guard:getAbsCoorZ()
26
27if dist( guardX,guardY,guardZ,35.48, 29, 191.28 ) < 30 then
28allOk = false
29end
30
31end
32
33function observePrisoner()
34
35prisonerX = prisoner:getAbsCoorX()
36prisonerY = prisoner:getAbsCoorY()
37prisonerZ = prisoner:getAbsCoorZ()
38
39if dist( prisonerX,prisonerY,prisonerZ,162.757919,49,363.489349 ) < 60 then
40--io.write("Prisonner reached lock \n")
41prisonerReachedLock = true
42end
43
44end
45
46cellProgrammed = false
47function goToCell(timestep)
48
49if not cellProgrammed then
50secondguard:walkTo( 442.173767, height, 176.429855)
51secondguard:walkTo( 442.173767, height, 176.429855)
52secondguard:walkTo( 436.727753, height, 188.191757)
53secondguard:walkTo( 432.311584, height, 198.882462)
54secondguard:walkTo( 426.079590, height, 213.968994)
55secondguard:walkTo( 420.553986, height, 226.714996)
56secondguard:walkTo( 412.681915, height, 235.053696)
57secondguard:walkTo( 398.758545, height, 241.846924)
58secondguard:walkTo( 384.690735, height, 242.851395)
59secondguard:walkTo( 348.930481, height, 242.394958)
60secondguard:walkTo( 336.467926, height, 241.985764)
61secondguard:walkTo( 324.042999, height, 241.577774)
62secondguard:walkTo( 303.851410, height, 240.914841)
63secondguard:walkTo( 293.013977, height, 240.559006)
64secondguard:walkTo( 276.207611, height, 240.007233)
65secondguard:walkTo( 261.475800, height, 239.523544)
66secondguard:walkTo( 239.185089, height, 238.791687)
67secondguard:walkTo( 226.655655, height, 238.491974)
68secondguard:walkTo( 211.996979, height, 238.851044)
69secondguard:walkTo( 192.956741, height, 239.859207)
70secondguard:walkTo( 178.496552, height, 241.852539)
71secondguard:walkTo( 160.421860, height, 244.009827)
72secondguard:walkTo( 145.371857, height, 244.946075)
73secondguard:walkTo( 129.918198, height, 245.307037)
74secondguard:walkTo( 113.065468, height, 245.108231)
75secondguard:walkTo( 99.159073, height, 244.695694)
76secondguard:walkTo( 82.069923, height, 244.188766)
77secondguard:walkTo( 65.880531, height, 243.708527)
78secondguard:walkTo( 48.133881, height, 243.182114)
79secondguard:walkTo( 34.706280, height, 242.783813)
80secondguard:walkTo( 20.682344, height, 242.367783)
81secondguard:walkTo( 5.419819, height, 241.915070)
82secondguard:walkTo( -10.556346, height, 241.058746)
83secondguard:walkTo( -24.159513, height, 240.127090)
84secondguard:walkTo( -33.819145, height, 239.995453)
85secondguard:walkTo( -45.414162, height, 240.373322)
86secondguard:walkTo( -60.228550, height, 240.856079)
87secondguard:walkTo( -73.269897, height, 241.260895)
88secondguard:walkTo( -86.128647, height, 240.457886)
89secondguard:walkTo( -100.443581, height, 236.485718)
90secondguard:walkTo( -112.346939, height, 233.967209)
91secondguard:walkTo( -127.331635, height, 227.615112)
92secondguard:walkTo( -135.153656, height, 215.476883)
93secondguard:walkTo( -131.529984, height, 202.931015)
94secondguard:walkTo( -122.671799, height, 193.644669)
95secondguard:walkTo( -113.823517, height, 183.986633)
96secondguard:walkTo( -104.089592, height, 170.659729)
97cellProgrammed = true
98end
99
100if secondguard:finalGoalReached() then
101return true
102end
103
104return false
105end
106
107guideProgrammed = false
108function goToGuidePosition(timestep)
109
110if not guideProgrammed then
111secondguard:walkTo( -104.757011, height, 171.200729)
112secondguard:walkTo( -100.266739, height, 171.345627)
113secondguard:walkTo( -91.152046, height, 171.639709)
114secondguard:walkTo( -85.456375, height, 171.823486)
115secondguard:walkTo( -74.048538, height, 172.191589)
116secondguard:walkTo( -53.574173, height, 172.852219)
117secondguard:walkTo( -43.275124, height, 173.184540)
118secondguard:walkTo( -35.155544, height, 173.446518)
119secondguard:walkTo( -31.645050, height, 173.559784)
120secondguard:walkTo( -23.426588, height, 173.824966)
121secondguard:walkTo( -10.576803, height, 174.239578)
122secondguard:walkTo( -2.389911, height, 174.503754)
123secondguard:walkTo( 6.950986, height, 174.805176)
124secondguard:walkTo( 16.313608, height, 175.161179)
125secondguard:walkTo( 23.271458, height, 175.547226)
126secondguard:walkTo( 31.248058, height, 176.199890)
127secondguard:walkTo( 43.694778, height, 177.753479)
128secondguard:walkTo( 50.441612, height, 178.595612)
129secondguard:walkTo( 71.374535, height, 181.208389)
130secondguard:walkTo( 82.251022, height, 181.855988)
131secondguard:walkTo( 91.975792, height, 182.434998)
132secondguard:walkTo( 101.695015, height, 183.013672)
133secondguard:walkTo( 110.377205, height, 183.530609)
134secondguard:walkTo( 122.299400, height, 184.240448)
135secondguard:walkTo( 129.848495, height, 184.689911)
136secondguard:walkTo( 141.687805, height, 185.394821)
137secondguard:walkTo( 150.166702, height, 186.776016)
138secondguard:walkTo( 155.342255, height, 189.285080)
139secondguard:walkTo( 162.508133, height, 192.849976)
140secondguard:walkTo( 171.747696, height, 197.075134)
141secondguard:walkTo( 177.846390, height, 199.864029)
142secondguard:walkTo( 182.707596, height, 204.381516)
143secondguard:walkTo( 182.707596, height, 204.381516)
144secondguard:walkTo( 187.317139, height, 211.966385)
145secondguard:walkTo( 193.191528, height, 221.632446)
146secondguard:walkTo( 197.856018, height, 229.307724)
147secondguard:walkTo( 198.350906, height, 232.634857)
148secondguard:walkTo( 198.427155, height, 243.656113)
149
150guideProgrammed = true
151end
152
153if secondguard:finalGoalReached() then
154return true
155end
156
157return false
158end
159
160hangarProgrammed = false
161function goToHangar(timestep)
162
163if not hangarProgrammed and prisonerReachedLock then
164secondguard:walkTo( 194.153641, height, 244.749863)
165secondguard:walkTo( 185.976517, height, 243.876404)
166secondguard:walkTo( 179.645737, height, 243.505066)
167secondguard:walkTo( 169.583008, height, 244.959457)
168secondguard:walkTo( 161.454269, height, 249.422363)
169secondguard:walkTo( 158.488998, height, 260.951874)
170secondguard:walkTo( 158.228958, height, 272.121582)
171secondguard:walkTo( 158.326004, height, 288.892853)
172secondguard:walkTo( 158.389069, height, 299.792603)
173secondguard:walkTo( 158.437561, height, 308.174896)
174secondguard:walkTo( 158.479034, height, 315.341095)
175secondguard:walkTo( 158.542801, height, 326.362518)
176secondguard:walkTo( 158.621414, height, 339.950256)
177secondguard:walkTo( 158.664566, height, 347.408417)
178secondguard:walkTo( 158.737900, height, 360.080902)
179secondguard:walkTo( 158.795013, height, 369.950531)
180secondguard:walkTo( 158.857086, height, 380.676056)
181secondguard:walkTo( 158.935440, height, 394.219177)
182secondguard:walkTo( 158.984039, height, 402.618896)
183secondguard:walkTo( 159.035522, height, 411.518219)
184secondguard:walkTo( 159.089432, height, 420.837036)
185secondguard:walkTo( 159.143021, height, 430.104523)
186secondguard:walkTo( 159.203644, height, 440.579224)
187secondguard:walkTo( 159.257263, height, 449.841522)
188secondguard:walkTo( 159.304810, height, 458.057617)
189secondguard:walkTo( 159.351440, height, 466.113068)
190secondguard:walkTo( 160.060013, height, 482.411865)
191secondguard:walkTo( 161.352600, height, 488.302185)
192secondguard:walkTo( 174.254333, height, 503.439209)
193secondguard:walkTo( 181.668213, height, 506.381195)
194secondguard:walkTo( 189.177277, height, 508.729156)
195secondguard:walkTo( 213.465332, height, 512.184326)
196secondguard:walkTo( 223.635010, height, 512.920715)
197secondguard:walkTo( 233.668503, height, 513.374512)
198secondguard:walkTo( 448.702118, height, 512.187744)
199secondguard:walkTo( 477.701050, height, 511.587463)
200secondguard:walkTo( 525.645752, height, 511.139526)
201secondguard:walkTo( 559.871216, height, 510.819763)
202secondguard:walkTo( 596.801941, height, 510.632080)
203secondguard:walkTo( 640.160767, height, 510.906891)
204secondguard:walkTo( 684.745239, height, 510.429138)
205secondguard:walkTo( 706.457214, height, 508.596039)
206secondguard:walkTo( 718.750916, height, 507.558044)
207secondguard:walkTo( 728.147827, height, 506.649780)
208secondguard:walkTo( 743.581970, height, 502.185822)
209secondguard:walkTo( 752.977234, height, 495.788635)
210secondguard:walkTo( 759.201721, height, 483.407104)
211secondguard:walkTo( 761.196167, height, 461.130798)
212secondguard:walkTo( 762.335449, height, 398.166901)
213secondguard:walkTo( 762.908691, height, 366.482208)
214secondguard:walkTo( 763.506409, height, 333.456848)
215secondguard:walkTo( 764.330750, height, 287.894409)
216secondguard:walkTo( 767.909790, height, 194.910492)
217secondguard:walkTo( 770.649231, height, 122.865265)
218secondguard:walkTo( 770.102112, height, 44.244534)
219secondguard:walkTo( 767.269775, height, -37.871273)
220secondguard:walkTo( 763.989197, height, -132.996460)
221secondguard:walkTo( 755.274231, height, -217.520859)
222secondguard:walkTo( 739.636230, height, -307.869354)
223secondguard:walkTo( 722.792725, height, -390.075226)
224secondguard:walkTo( 702.582275, height, -475.155273)
225secondguard:walkTo( 687.325012, height, -551.699036)
226secondguard:walkTo( 681.873169, height, -628.924316)
227secondguard:walkTo( 679.997437, height, -708.013794)
228secondguard:walkTo( 681.080933, height, -772.108887)
229secondguard:walkTo( 681.686035, height, -845.449524)
230secondguard:walkTo( 682.188538, height, -906.434998)
231secondguard:walkTo( 682.669800, height, -964.887085)
232secondguard:walkTo( 684.829895, height, -1023.870117)
233secondguard:walkTo( 690.728516, height, -1069.400146)
234secondguard:walkTo( 695.965027, height, -1097.353149)
235secondguard:walkTo( 701.128540, height, -1118.496216)
236secondguard:walkTo( 708.865234, height, -1144.444214)
237secondguard:walkTo( 724.753845, height, -1192.741699)
238secondguard:walkTo( 737.665771, height, -1230.398560)
239secondguard:walkTo( 741.520081, height, -1241.704712)
240secondguard:walkTo( 756.537842, height, -1287.260376)
241secondguard:walkTo( 764.046631, height, -1310.927002)
242secondguard:walkTo( 769.402771, height, -1342.806152)
243secondguard:walkTo( 772.158691, height, -1363.218750)
244secondguard:walkTo( 772.599426, height, -1374.571899)
245secondguard:walkTo( 771.977844, height, -1390.778320)
246secondguard:walkTo( 771.576355, height, -1401.246826)
247secondguard:walkTo( 770.982666, height, -1423.905273)
248secondguard:walkTo( 770.952637, height, -1429.344360)
249secondguard:walkTo( 770.912476, height, -1436.589966)
250secondguard:walkTo( 770.880249, height, -1442.399536)
251secondguard:walkTo( 770.847107, height, -1448.385376)
252secondguard:walkTo( 770.785339, height, -1454.349365)
253secondguard:walkTo( 768.858459, height, -1464.382080)
254secondguard:walkTo( 767.639709, height, -1469.028809)
255secondguard:walkTo( 765.099487, height, -1476.370605)
256secondguard:walkTo( 762.003601, height, -1484.767456)
257secondguard:walkTo( 758.787231, height, -1492.394287)
258secondguard:walkTo( 755.135986, height, -1496.482788)
259secondguard:walkTo( 752.631165, height, -1498.550049)
260secondguard:walkTo( 746.021912, height, -1502.547485)
261secondguard:walkTo( 739.376099, height, -1505.427734)
262secondguard:walkTo( 731.429199, height, -1507.691162)
263secondguard:walkTo( 719.202393, height, -1510.812622)
264secondguard:walkTo( 716.329712, height, -1511.546021)
265secondguard:walkTo( 711.301514, height, -1512.674438)
266secondguard:walkTo( 702.414124, height, -1514.126099)
267secondguard:walkTo( 695.724304, height, -1515.173218)
268secondguard:walkTo( 576.522278, height, -1521.146362)
269secondguard:walkTo( 542.552246, height, -1522.204712)
270secondguard:walkTo( 499.907288, height, -1524.441772)
271secondguard:walkTo( 461.101288, height, -1525.987915)
272secondguard:walkTo( 417.154602, height, -1526.579102)
273secondguard:walkTo( 367.752686, height, -1527.168091)
274secondguard:walkTo( 322.209106, height, -1527.709473)
275secondguard:walkTo( 273.998047, height, -1528.283447)
276secondguard:walkTo( 234.330612, height, -1528.756348)
277secondguard:walkTo( 188.730209, height, -1529.299438)
278secondguard:walkTo( 140.078659, height, -1529.880249)
279secondguard:walkTo( 105.882103, height, -1530.287109)
280secondguard:walkTo( 71.860947, height, -1532.856079)
281secondguard:walkTo( 39.777569, height, -1541.485596)
282secondguard:walkTo( 13.919314, height, -1565.188110)
283secondguard:walkTo( -0.632493, height, -1604.602783)
284secondguard:walkTo( -2.103141, height, -1639.236694)
285secondguard:walkTo( 0.498238, height, -1674.846558)
286secondguard:walkTo( 2.861493, height, -1705.131958)
287
288hangarProgrammed = true
289end
290
291guardX = secondguard:getAbsCoorX()
292guardY = secondguard:getAbsCoorY()
293guardZ = secondguard:getAbsCoorZ()
294
295if dist( guardX,guardY,guardZ, 2.861493, 29, -1705.131958) < 60 then
296return true
297end
298
299return false
300
301end
302
303time = 2
304function tick(timestep)
305--io.write("Secondguard called \n")
306 
307observePrisoner()
308observeGuard()
309
310if not allOk then
311cellReached = goToCell(timestep)
312end
313
314--do talking
315if cellReached then
316time = time - timestep
317end
318
319
320if time < 0 then
321
322if cellReached and not guidePositionReached then
323guidePositionReached = goToGuidePosition(timestep)
324end
325
326if guidePositionReached and not hangarReached then
327hangarReached = goToHangar(timestep)
328end
329
330if hangarReached then
331return true
332end
333
334
335end
336
337
338return false
339end
Note: See TracBrowser for help on using the repository browser.