Created: 11/16/2024, 07:01:34 PM Updated: 12/11/2024, 06:50:23 PM View Change History
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 setvar! brewingRange 2
20
21
22
23 setvar! brewingSkipOverheadInfo 0
24
25
26
27 setvar! brewingDebugMode 0
28
29
30
31
32
33
34
35
36
37
38if timerexists brewingRestartTimer
39 if timer brewingRestartTimer < 10000
40 unsetvar brewingDone
41 endif
42 removetimer brewingRestartTimer
43endif
44
45if not varexist brewingDone or brewingDone = 1
46 setvar! brewingDone 0
47 @clearignore
48 clearsysmsg
49else
50 settimer brewingRestartTimer 0
51 overhead "|* Resuming brewing *|" cBeer
52 sysmsg "|* Resuming brewing *|" cBeer
53 overhead "|* Replay to start fresh *|" cLightOrange
54 sysmsg "|* Replay within 10s to start fresh *|" cLightOrange
55endif
56
57setvar! brewingMinWaitForServerResponse 200
58setvar! brewingMaxWaitForServerResponse 1000
59setvar! brewingWaitForObjectDelay 600
60if not timerexists brewingObjectDelayTimer
61 settimer brewingObjectDelayTimer brewingWaitForObjectDelay
62endif
63
64setvar! brewingKettleGumpID 2803256377
65setvar! brewingCaskGumpID 2874981722
66
67setvar! cBeer 1720
68setvar! cGreen 68
69setvar! cLightBlue 100
70setvar! cLightOrange 145
71setvar! cRed 33
72setvar! cWhite 1150
73
74removelist brewingEmptyCaskList
75createlist brewingEmptyCaskList
76
77while findtype "brewing kettle|brewing barrel" ground -1 -1 brewingRange
78
79
80 if insysmsg "world is saving"
81 sysmsg "Waiting for world save ..."
82 settimer globalWorldSaveTimer 0
83 while timer globalWorldSaveTimer < 10000
84 if insysmsg "save complete"
85 sysmsg "The world has been saved!"
86 settimer brewingWaitTimer 0
87 getlabel backpack pingCheck
88 while timer brewingWaitTimer < brewingMinWaitForServerResponse
89 endwhile
90 break
91 endif
92 endwhile
93 endif
94
95 if targetexists
96 target cancel
97 endif
98
99 if brewingDebugMode > 0
100 settimer brewingDebugTimer 0
101 endif
102
103 if not timerexists brewingOverheadTimer
104 overhead "|* Brewing *|" cBeer
105 settimer brewingOverheadTimer 0
106 elseif not findtype "brewing kettle|brewing barrel" ground -1 -1 2 and timer brewingOverheadTimer > 2000
107 overhead "|* Searching equipment *|" cBeer
108 if brewingSkipOverheadInfo = 0
109 createlist brewingUnfinishedEquipmentList
110 while 10 > index and findtype "brewing kettle|brewing barrel" ground -1 -1 brewingRange as localEquipment
111 overhead "Pending" cLightOrange localEquipment
112 overhead " ▼ " cLightOrange localEquipment
113 pushlist brewingUnfinishedEquipmentList localEquipment
114 @ignore localEquipment
115 endwhile
116 @unignore brewingUnfinishedEquipmentList
117 removelist brewingUnfinishedEquipmentList
118 endif
119 settimer brewingOverheadTimer 0
120 continue
121 elseif timer brewingOverheadTimer > 2000
122 overhead "|* Brewing *|" cBeer
123 settimer brewingOverheadTimer 0
124 endif
125
126
127 if findtype "water" ground -1 -1 2
128 while findtype "water" ground -1 -1 2 and findtype 3703|3707|3715|4090|5344|5453 ground -1 -1 2 as localWaterContainer
129 while timer brewingObjectDelayTimer < brewingWaitForObjectDelay
130 endwhile
131 dclick localWaterContainer
132 if brewingDebugMode > 0
133 sysmsg "[Brewing] Trying to refill water containers (Timer: {{brewingDebugTimer}} ms)" cLightBlue
134 endif
135 settimer brewingObjectDelayTimer 0
136 @ignore localWaterContainer
137 endwhile
138 while findtype "water" ground -1 -1 2 and findtype 3703|3707|3715|4090|5344|5453 backpack as localWaterContainer
139 while timer brewingObjectDelayTimer < brewingWaitForObjectDelay
140 endwhile
141 dclick localWaterContainer
142 if brewingDebugMode > 0
143 sysmsg "[Brewing] Trying to refill water containers (Timer: {{brewingDebugTimer}} ms)" cLightBlue
144 endif
145 settimer brewingObjectDelayTimer 0
146 @ignore localWaterContainer
147 endwhile
148 endif
149
150
151 if findtype "brewing barrel" ground -1 -1 2 as localCask and not inlist brewingEmptyCaskList localCask
152
153 getlabel localCask localCaskLabel
154
155 if "%)" in localCaskLabel
156 @ignore localCask
157
158 elseif "(needs mixture)" in localCaskLabel
159 pushlist brewingEmptyCaskList localCask
160
161 else
162 gumpclose brewingCaskGumpID
163 while timer brewingObjectDelayTimer < brewingWaitForObjectDelay
164 endwhile
165 dclick localCask
166 settimer brewingObjectDelayTimer 0
167 waitforgump brewingCaskGumpID brewingMaxWaitForServerResponse
168
169 if not gumpexists brewingCaskGumpID
170 wait brewingMaxWaitForServerResponse
171 if not gumpexists brewingCaskGumpID
172 continue
173 endif
174 endif
175
176 if gumpexists brewingCaskGumpID and "complete)" in localCaskLabel
177 if insysmsg "You collect 10 cleansing brew from the brewing cask."
178 endif
179 gumpresponse 13 brewingCaskGumpID
180 settimer brewingWaitTimer 0
181 waitforgump brewingCaskGumpID brewingMaxWaitForServerResponse
182 getlabel backpack pingCheck
183 pushlist brewingEmptyCaskList localCask
184 while timer brewingWaitTimer < brewingMinWaitForServerResponse
185 endwhile
186 if brewingDebugMode > 0
187 if insysmsg "You collect 10 cleansing brew from the brewing cask."
188 sysmsg "[Brewing] Cleansing brew collected (Cask: {{localCask}}, Timer: {{brewingDebugTimer}} ms)" cLightBlue
189 else
190 sysmsg "[Brewing] Cleansing brew pickup failed (Cask: {{localCask}}, Timer: {{brewingDebugTimer}} ms)" cLightBlue
191 endif
192 endif
193
194
195 else
196
197
198 if gumpexists brewingCaskGumpID and ingump "Add Hops (0/1)" 2874981722 and not ingump "Add Kettle Mixture (0/1)" 2874981722
199 if findtype 6818 backpack as localHops
200 if insysmsg "This cask does not currently require hops." or insysmsg "You must wait for this to finish brewing." or insysmsg "You are too far away to use that item."
201 endif
202 while not targetexists
203 gumpresponse 11 brewingCaskGumpID
204 waitforgump brewingCaskGumpID brewingMaxWaitForServerResponse
205 if insysmsg "This cask does not currently require hops." or insysmsg "You must wait for this to finish brewing." or insysmsg "You are too far away to use that item."
206 break
207 endif
208 endwhile
209 if targetexists
210 target localHops
211 settimer brewingWaitTimer 0
212 waitforgump brewingCaskGumpID brewingMaxWaitForServerResponse
213 getlabel backpack pingCheck
214 while timer brewingWaitTimer < brewingMinWaitForServerResponse
215 endwhile
216 if brewingDebugMode > 0
217 overhead "Hops" cGreen localCask
218 sysmsg "[Brewing] Adding hops" cLightBlue
219 endif
220 endif
221 else
222 overhead "|* Not enough hops *|" cRed
223 endif
224 endif
225
226
227 if gumpexists brewingCaskGumpID and counttype 2540 backpack >= 10 and not ingump "Add Jar of Honey (10/10)" 2874981722 and not ingump "Add Hops (0/1)" 2874981722
228 while not ingump "Add Jar of Honey (10/10)" 2874981722 and findtype 2540 backpack as localJarOfHoney
229 if insysmsg "This cask does not currently require jars of honey." or insysmsg "You must wait for this to finish brewing." or insysmsg "You are too far away to use that item."
230 endif
231 while not targetexists
232 gumpresponse 12 brewingCaskGumpID
233 waitforgump brewingCaskGumpID brewingMaxWaitForServerResponse
234 if insysmsg "This cask does not currently require jars of honey." or insysmsg "You must wait for this to finish brewing." or insysmsg "You are too far away to use that item."
235 break
236 endif
237 endwhile
238 if targetexists
239 target localJarOfHoney
240 settimer brewingWaitTimer 0
241 waitforgump brewingCaskGumpID brewingMaxWaitForServerResponse
242 while find localJarOfHoney backpack and timer brewingWaitTimer < brewingMaxWaitForServerResponse
243 endwhile
244 else
245 break
246 endif
247 endwhile
248 if brewingDebugMode > 0 and not ingump "Add Jar of Honey (10/10)" 2874981722
249 sysmsg "[Brewing] Honey failed" cRed
250 elseif brewingDebugMode > 0
251 overhead "Honey" cBeer localCask
252 sysmsg "[Brewing] Honey added" cLightBlue
253 endif
254 elseif counttype 2540 backpack < 10
255 overhead "|* Not enough honey *|" cRed
256 endif
257
258 if brewingDebugMode > 0 and ingump "Add Jar of Honey (10/10)" 2874981722
259 overhead "Done" cGreen localCask
260 overhead " ▼ " cGreen localCask
261 sysmsg "[Brewing] Cask done (Serial: {{localCask}}, Timer: {{brewingDebugTimer}})" cLightBlue
262 elseif brewingDebugMode > 0
263 overhead "Fail" cRed localCask
264 overhead " ▼ " cRed localCask
265 sysmsg "[Brewing] Cask refill failed (Serial: {{localCask}}, Timer: {{brewingDebugTimer}})" cLightBlue
266 endif
267 @ignore localCask
268
269 endif
270 endif
271
272
273 elseif findtype "brewing kettle" ground -1 -1 2 as localKettle
274
275 getlabel localKettle localKettleLabel
276
277 if "%)" in localKettleLabel
278 @ignore localKettle
279
280 else
281 gumpclose brewingKettleGumpID
282 while timer brewingObjectDelayTimer < brewingWaitForObjectDelay
283 endwhile
284 dclick localKettle
285 settimer brewingObjectDelayTimer 0
286 waitforgump brewingKettleGumpID brewingMaxWaitForServerResponse
287
288 if not gumpexists brewingKettleGumpID
289 wait brewingMaxWaitForServerResponse
290 if not gumpexists brewingKettleGumpID
291 continue
292 endif
293 endif
294
295
296 if gumpexists brewingKettleGumpID and "complete)" in localKettleLabel and list brewingEmptyCaskList > 0
297 if poplist brewingEmptyCaskList front as localEmptyCask
298 if insysmsg "You transfer the mixture to a brewing cask." or insysmsg "You must wait for this to finish brewing." or insysmsg "You are too far away to use that item."
299 endif
300 while not targetexists
301 gumpresponse 13 brewingKettleGumpID
302 waitforgump brewingKettleGumpID brewingMaxWaitForServerResponse
303 if insysmsg "You must wait for this to finish brewing." or insysmsg "You are too far away to use that item."
304 break
305 endif
306 endwhile
307 if targetexists
308 target localEmptyCask
309 settimer brewingWaitTimer 0
310 waitforgump brewingKettleGumpID brewingMaxWaitForServerResponse
311 getlabel backpack pingCheck
312 while timer brewingWaitTimer < brewingMinWaitForServerResponse
313 endwhile
314 if insysmsg "You transfer the mixture to a brewing cask."
315 @unignore localEmptyCask
316 if brewingDebugMode > 0
317 overhead "Mixture" cWhite localEmptyCask
318 sysmsg "[Brewing] Adding mixture (Cask: {{localEmptyCask}}, Timer: {{brewingDebugTimer}} ms)" cLightBlue
319 endif
320 else
321 pushlist brewingEmptyCaskList localEmptyCask front
322 endif
323 endif
324 endif
325 endif
326
327
328 if gumpexists brewingKettleGumpID and ingump "(0.0% Complete)" 2803256377
329
330
331 if gumpexists brewingKettleGumpID and ingump "Add Barley (0/1)" 2803256377
332 if findtype 49557 backpack as localBarley
333 if insysmsg "This kettle does not currently require barley." or insysmsg "You must wait for this to finish brewing." or insysmsg "You are too far away to use that item."
334 endif
335 while not targetexists
336 gumpresponse 10 brewingKettleGumpID
337 waitforgump brewingKettleGumpID brewingMaxWaitForServerResponse
338 if insysmsg "This kettle does not currently require barley." or insysmsg "You must wait for this to finish brewing." or insysmsg "You are too far away to use that item."
339 break
340 endif
341 endwhile
342 if targetexists
343 target localBarley
344 settimer brewingWaitTimer 0
345 waitforgump brewingKettleGumpID brewingMaxWaitForServerResponse
346 getlabel backpack pingCheck
347 while timer brewingWaitTimer < brewingMinWaitForServerResponse
348 endwhile
349 if brewingDebugMode > 0
350 overhead "Barley" cGreen localKettle
351 sysmsg "[Brewing] Adding barley" cLightBlue
352 endif
353 endif
354 else
355 overhead "|* Not enough barley *|" cRed
356 endif
357 endif
358
359
360 if gumpexists brewingKettleGumpID and ingump "Add Water (0/250)" 2803256377 and not ingump "Add Barley (0/1)" 2803256377
361 createlist brewingFullWateringCanList
362 if insysmsg "You do not see any nearby water containers to fill this from."
363 endif
364 while findtype 25570|56416|56417 backpack as localWateringCan
365 getlabel localWateringCan localWateringCanLabel
366 if "250/250" in localWateringCanLabel
367 pushlist brewingFullWateringCanList localWateringCan
368 @ignore localWateringCan
369 else
370 while timer brewingObjectDelayTimer < brewingWaitForObjectDelay
371 endwhile
372 dclick localWateringCan
373 settimer brewingWaitTimer 0
374 settimer brewingObjectDelayTimer 0
375 getlabel backpack pingCheck
376 while timer brewingWaitTimer < brewingMinWaitForServerResponse
377 if insysmsg "You completely fill the watering can."
378 break
379 elseif insysmsg "You do not see any nearby water containers to fill this from."
380 @ignore localWateringCan
381 break
382 endif
383 endwhile
384 endif
385 endwhile
386 @unignore brewingFullWateringCanList
387 if list brewingFullWateringCanList = 0
388 overhead "|* No water supply *|" cRed
389 elseif poplist brewingFullWateringCanList front as localFullWateringCan
390 if insysmsg "This kettle does not currently require water." or insysmsg "You must wait for this to finish brewing." or insysmsg "You are too far away to use that item."
391 endif
392 while find localFullWateringCan backpack and not targetexists
393 gumpresponse 11 brewingKettleGumpID
394 waitforgump brewingKettleGumpID brewingMaxWaitForServerResponse
395 if insysmsg "This kettle does not currently require water." or insysmsg "You must wait for this to finish brewing." or insysmsg "You are too far away to use that item."
396 break
397 endif
398 endwhile
399 if targetexists and find localFullWateringCan backpack
400 target localFullWateringCan
401 settimer brewingWaitTimer 0
402 waitforgump brewingKettleGumpID brewingMaxWaitForServerResponse
403 getlabel backpack pingCheck
404 while timer brewingWaitTimer < brewingMinWaitForServerResponse
405 endwhile
406 if brewingDebugMode > 0
407 overhead "Water" cLightBlue localKettle
408 sysmsg "[Brewing] Adding water" cLightBlue
409 endif
410 endif
411 endif
412 removelist brewingFullWateringCanList
413 endif
414
415
416 if gumpexists brewingKettleGumpID and counttype 3972 self >= 10 and not ingump "Add Garlic (10/10)" 2803256377 and not ingump "Add Water (0/250)" 2803256377
417 if not findtype 3972 backpack 0 10 and findtype 3972 self 0 10 as localGarlic
418 while timer brewingObjectDelayTimer < brewingWaitForObjectDelay
419 endwhile
420 @drop backpack -1 -1 -1
421 lift localGarlic 10
422 settimer brewingObjectDelayTimer 0
423 @drop backpack -1 -1 -1
424 settimer brewingWaitTimer 0
425 while not find localGarlic backpack 0 10 and timer brewingWaitTimer < brewingMaxWaitForServerResponse
426 endwhile
427 endif
428 while not ingump "Add Garlic (10/10)" 2803256377 and findtype 3972 backpack as localGarlic
429 if insysmsg "This kettle does not currently require garlic." or insysmsg "You must wait for this to finish brewing." or insysmsg "You are too far away to use that item." or insysmsg "That item must be in your backpack in order to be used."
430 endif
431 while not targetexists
432 gumpresponse 12 brewingKettleGumpID
433 waitforgump brewingKettleGumpID brewingMaxWaitForServerResponse
434 if insysmsg "This kettle does not currently require garlic." or insysmsg "You must wait for this to finish brewing." or insysmsg "You are too far away to use that item." or insysmsg "That item must be in your backpack in order to be used."
435 break
436 endif
437 endwhile
438 if targetexists
439 target localGarlic
440 settimer brewingWaitTimer 0
441 waitforgump brewingKettleGumpID brewingMaxWaitForServerResponse
442 while find localGarlic backpack and timer brewingWaitTimer < brewingMaxWaitForServerResponse
443 endwhile
444 else
445 break
446 endif
447 endwhile
448 if brewingDebugMode > 0 and not ingump "Add Garlic (10/10)" 2803256377
449 sysmsg "[Brewing] Garlic failed" cRed
450 elseif brewingDebugMode > 0
451 overhead "Garlic" cWhite localKettle
452 sysmsg "[Brewing] Garlic added" cLightBlue
453 endif
454 elseif counttype 3972 self < 10
455 overhead "|* Not enough garlic *|" cRed
456 endif
457
458 if brewingDebugMode > 0 and ingump "Add Garlic (10/10)" 2803256377
459 overhead "Done" cGreen localKettle
460 overhead " ▼ " cGreen localKettle
461 sysmsg "[Brewing] Kettle done (Serial: {{localKettle}}, Timer: {{brewingDebugTimer}})" cLightBlue
462 elseif brewingDebugMode > 0
463 overhead "Fail" cRed localKettle
464 overhead " ▼ " cRed localKettle
465 sysmsg "[Brewing] Kettle refill failed (Serial: {{localKettle}}, Timer: {{brewingDebugTimer}})" cLightBlue
466 endif
467 endif
468 @ignore localKettle
469
470 endif
471 endif
472
473 if list brewingEmptyCaskList > 0 and not findtype "brewing kettle" ground -1 -1 brewingRange
474 overhead "|* Not enough mixtures *|" cRed
475 @ignore brewingEmptyCaskList
476 endif
477
478endwhile
479
480gumpclose brewingKettleGumpID
481gumpclose brewingCaskGumpID
482
483removetimer brewingDebugTimer
484removetimer brewingOverheadTimer
485removetimer brewingWaitTimer
486removetimer globalWorldSaveTimer
487
488removelist brewingEmptyCaskList
489
490@clearignore
491setvar! brewingDone 1
492overhead "|* Brewing Done *|" cBeer