Back to "halloween" tags

Halloween 2022 - Reaper of Souls mage bot by Jaseowns

1# One hotkey mage cycle, nox, poison looking for Reaper of Souls  by Jaseowns
2# UO Outlands - https://youtu.be/K3bVPhHcInE
3
4// Beta client for cooldowns
5// cooldowns for mushrooms, mana vampire and healpots
6// for now using timers
7
8# Set this to one, if you want to cast poison once no matter what
9# If you have 100 poisoning and want Lethal, set this to 0
10@setvar! castPoisonAnyway 0
11
12# We will spam mind blast when other skills are on cooldown
13# If you set this to 0 it will use flamestrike
14@setvar! spamMindBlastOverFlamestrike 0
15
16# This will auto replay this script if you want it too
17@setvar! autoBotEnabled 1
18
19# This will make sure you have bless on
20@setvar! blessYourself 1
21
22# Update this variable to 1 for ALL KILL
23# Update this variable to 0 for target nearest
24@setvar! setThisAsOneIfYouWantToTargetYourOwnKillOrItWillTargetClosestMonster 0
25
26###############
27### Edit these cooldowns to match your wizard grimoire
28######
29@setvar! canYouMakeAMushroom 1
30@setvar! cdLightning 60000
31@setvar! cdMagicArrow 20000
32@setvar! cdHarm 20000
33@setvar! cdFireball 60000
34
35###############
36### Necro Cooldowns
37######
38@setvar! cdEvilOmen 30000
39@setvar! cdVampiricEmbrace 30000
40@setvar! cdCorpseSkin 30000
41@setvar! cdMindRot 30000
42
43#### Buff Cooldowns
44@setvar! cdMushroom 60000
45@setvar! cdMagicShield 60000
46@setvar! cdReactiveArmor 60000
47
48##################################################################
49# 
50#   Hopefully you do not have to edit after this :)
51#
52##################################################################
53
54// Make sure we have a spell book attached
55if findlayer self righthand as item
56    // do nothing
57elseif findtype "3834" backpack as item
58    dclick item
59else 
60    overhead "No book bro!" 34
61endif
62
63if not timerexists reactiveArmorTimer
64    createtimer reactiveArmorTimer
65    settimer reactiveArmorTimer cdMagicShield
66endif
67
68if not timerexists magicShieldTimer
69    createtimer magicShieldTimer
70    settimer magicShieldTimer cdMagicShield
71endif
72
73if not timerexists magicMushroomTimer
74    createtimer magicMushroomTimer
75    settimer magicMushroomTimer cdMushroom
76endif
77
78if not timerexists magicArrowTimer
79    createtimer magicArrowTimer
80    settimer magicArrowTimer cdMagicArrow
81endif
82
83if not timerexists lightningTimer
84    createtimer lightningTimer
85    settimer lightningTimer cdLightning
86endif
87
88if not timerexists harmTimer
89    createtimer harmTimer
90    settimer harmTimer cdHarm
91endif
92
93if not timerexists fireballTimer
94    createtimer fireballTimer
95    settimer fireballTimer cdFireball
96endif
97
98if not timerexists evilOmenTimer
99    createtimer evilOmenTimer
100    settimer evilOmenTimer cdEvilOmen
101endif
102
103if not timerexists vampiricEmbraceTimer
104    createtimer vampiricEmbraceTimer
105    settimer vampiricEmbraceTimer cdVampiricEmbrace
106endif
107
108if not timerexists corpseSkinTimer
109    createtimer corpseSkinTimer
110    settimer corpseSkinTimer cdCorpseSkin
111endif
112
113if not timerexists mindRotTimer
114    createtimer mindRotTimer
115    settimer mindRotTimer cdMindRot
116endif
117
118# Eat food if we got it
119if not findbuff "food" and findtype "tray" backpack as jood
120    dclick jood
121    wait 200
122endif
123
124
125# Use Taste ID if possible
126if skill "Taste Identification" >= 50 and not findbuff "herb"
127    useskill 'tasteidentification'
128    wft 500
129    target backpack
130endif
131
132if setThisAsOneIfYouWantToTargetYourOwnKillOrItWillTargetClosestMonster = 1
133    say "all kill"
134    wait 200
135    while targetexists 
136        // wait
137        wait 50
138    endwhile
139elseif findtype "a reaper of souls|Ayleth Geste" ground -1 -1 12 as nukethisguy
140    @setvar myKillTarget nukethisguy 
141else  
142    overhead "found no one" 34
143    if autoBotEnabled = 1
144        wait 500
145        replay
146    endif
147endif
148
149
150
151if not varexist myPreviousKillTarget
152    @setvar myPreviousKillTarget 0     
153endif
154
155getlabel myKillTarget desc
156overhead desc
157
158if not varexist myEarthPet or dead myEarthPet
159    overhead "Your pet is dead, demonic summon time..." 34
160    if findtype "an ancient mummy" ground -1 -1 10 as maybePet
161        overhead "Found a mate.. maybe?" 88
162        if noto maybePet = "friend"
163            @setvar! myEarthPet maybePet
164            replay
165        endif
166    endif
167else
168    menu myEarthPet 2
169    wft 500
170    target myKillTarget
171endif
172
173if diffhits >= 30 and mana > 12
174    while not targetexists
175        if diffhits >= 60
176            cast 'Heal'
177        else
178            cast 'Greater Heal'                
179        endif
180        wait 50
181        if hp = maxhp
182            hotkey '> Interrupt'
183            break
184        endif
185    endwhile
186    if targetexists
187        target self
188    endif
189elseif blessYourself = 1 and str <= 100
190    while not targetexists
191        cast 'Bless'
192        wait 50
193        if diffhits >= 30
194            hotkey '> Interrupt'
195            break
196        endif
197    endwhile
198    if targetexists
199        target self
200    endif
201endif
202
203if find myKillTarget -1 -1 12 as killy
204    if myKillTarget = myPreviousKillTarget
205        // do nthoing
206    else
207        
208   
209        while not targetexists and not dead myKillTarget
210            if diffhits < 30
211                cast 'Curse'
212                wait 50
213            elseif diffhits >= 30 
214                hotkey '> Interrupt'
215                break
216            endif
217        endwhile
218        if targetexists
219            target myKillTarget
220            wait 500
221        endif
222
223
224        while not targetexists and not dead myKillTarget
225            if diffhits < 30
226                cast 'mana drain'
227                wait 50
228            elseif diffhits >= 30 
229                hotkey '> Interrupt'
230                break
231            endif 
232        endwhile
233        if targetexists
234            target myKillTarget
235            wait 500
236        endif
237        @setvar myPreviousKillTarget myKillTarget
238    endif
239else
240    overhead "Out of range" 34
241endif
242
243
244
245clearsysmsg 
246
247say "all guard"
248
249@setvar! isLethalPoison 0
250
251while not dead myKillTarget and find myKillTarget -1 -1 12 as killy
252    
253    if insysmsg "Target cannot be seen." 
254        overhead "CANNOT BE SEEN MOVE TO NEXT TARGET" 34
255    endif 
256    
257    if timer magicShieldTimer >= cdMagicShield and not findbuff "Magic Reflection"
258        cast "Magic Reflection"
259        wait 1000
260    elseif not findbuff "Magic Reflection" and not findbuff "Magic Resist Potion" and findtype "Black Potion" backpack as pot
261        dclick pot
262        wait 200
263    endif
264
265    if findbuff "Magic Reflection"
266        settimer magicShieldTimer 0
267    endif
268    
269    if timer reactiveArmorTimer >= cdReactiveArmor and not findbuff "Reactive Armor"
270        cast "Reactive Armor"
271        wait 200
272    endif
273
274    if findbuff "Reactive Armor"
275        settimer reactiveArmorTimer 0
276    endif
277
278    if timer corpseSkinTimer >= cdCorpseSkin and skill "Necromancy" >= 65
279        overhead "Should be CorpseSkin!" 34
280        say "[CorpseSkin"
281        settimer corpseSkinTimer 0
282        wait 500
283    endif
284    
285    if skill "poisoning" >= 100 or castPoisonAnyway = 1
286
287        if timer mindRotTimer >= cdMindRot and skill "Necromancy" >= 75
288            overhead "Should be mind rotting!" 34
289            say "[MindRot"
290            settimer mindRotTimer 0
291            wait 500
292        endif
293        
294        while isLethalPoison = 0
295            
296            if insysmsg "Target cannot be seen." 
297                overhead "CANNOT BE SEEN MOVE TO NEXT TARGET" 34
298                replay
299            endif 
300        
301            getlabel myKillTarget desc2
302            overhead desc2 66
303            // poison lethal
304            if "Lethal" in desc2
305                @setvar! isLethalPoison 1
306                break
307            elseif castPoisonAnyway = 1 and "Ticks" in desc2
308                @setvar! isLethalPoison 1
309                break
310            elseif castPoisonAnyway = 1 and "Poison" in desc2
311                @setvar! isLethalPoison 1
312                break
313            elseif diffhits >= 30 
314                // need a heal
315                break
316            elseif mana >= 9
317                while not targetexists
318                    cast 'poison'
319                    wait 50
320                    if dead myKillTarget
321                        hotkey '> Interrupt'
322                        replay
323                    endif
324                endwhile
325                target myKillTarget
326                wait 200
327                if insysmsg "Target cannot be seen." 
328                     overhead "CANNOT BE SEEN MOVE TO NEXT TARGET" 34
329                     @setvar! isLethalPoison 1
330                endif 
331            else
332                wait 200
333            endif
334        endwhile
335    endif
336    if timer evilOmenTimer >= cdEvilOmen and skill "Necromancy" >= 60
337        say "[EvilOmen"
338        settimer evilOmenTimer 0
339        wait 200
340    endif
341
342    if timer vampiricEmbraceTimer >= cdVampiricEmbrace and skill "Necromancy" >= 75 and findtype 8198 ground -1 -1 4 as jorpse
343        say "[VampiricEmbrace"
344        wft 500
345        target jorpse
346        settimer vampiricEmbraceTimer 0
347    endif
348   
349    if find myKillTarget -1 -1 12 as killy
350       // do nothing
351    else
352        overhead "Out of range" 34
353        break
354    endif
355    
356    if poisoned
357        if findtype "Orange Potion" backpack as pot 
358            dclick pot
359            wait 200
360        else
361            while not targetexists
362                if not poisoned
363                    hotkey '> Interrupt'
364                    break
365                else
366                    cast 'Cure'
367                    wait 50
368                endif 
369            endwhile
370            if targetexists
371                target self
372                wait 500
373            endif
374        endif
375    endif
376
377    
378    if diffhits < 30 and mana >= 12 and timer lightningTimer >= cdLightning
379        while not targetexists
380            if dead myKillTarget or diffhits >= 30
381                hotkey '> Interrupt'
382                break
383            else
384                cast 'Lightning'
385                wait 50
386            endif 
387        endwhile
388        if targetexists
389            target myKillTarget
390            settimer lightningTimer 0
391            wait 500
392        endif
393    endif
394
395    if diffhits < 30 and mana >= 5 and timer magicArrowTimer >= cdMagicArrow
396        while not targetexists
397            if dead myKillTarget or diffhits >= 30
398                hotkey '> Interrupt'
399                break
400            else
401                cast 'magic arrow'
402                wait 50
403            endif 
404        endwhile
405        if targetexists
406            target myKillTarget
407            settimer magicArrowTimer 0
408            wait 500
409        endif
410    endif
411
412    if diffhits < 30 and mana >= 9 and timer harmTimer >= cdHarm
413        while not targetexists
414            if dead myKillTarget or diffhits >= 30
415                hotkey '> Interrupt'
416                break
417            else
418                cast 'harm'
419                wait 50
420            endif 
421        endwhile
422        if targetexists
423            target myKillTarget
424            settimer harmTimer 0
425            wait 500
426        endif
427    endif
428
429    if diffhits < 30 and mana >= 12 and timer fireballTimer >= cdFireball
430        while not targetexists
431            if dead myKillTarget or diffhits >= 30
432                hotkey '> Interrupt'
433                break
434            else
435                cast 'fireball'
436                wait 50
437            endif 
438        endwhile
439        if targetexists
440            target myKillTarget
441            settimer fireballTimer 0
442            wait 500
443        endif
444    endif
445    
446    if diffhits >= 30
447            
448        if findtype "Yellow Potion" backpack as pot 
449            getlabel pot desc
450            if "next usable" in desc
451                // do nothing
452            else
453                dclick pot
454                wait 200
455            endif
456        endif
457
458        if diffhits >= 30 and mana >= 12
459            while not targetexists
460                if diffhits >= 60
461                    cast 'Heal'
462                else
463                    cast 'Greater Heal'                
464                endif
465                wait 50
466                if hp = maxhp
467                    hotkey '> Interrupt'
468                    break
469                endif
470            endwhile
471            if targetexists
472                target self
473                wait 50
474            endif
475        endif
476    elseif mana < 55 and findbuff "actively meditating" 
477        // wait for mana
478    elseif spamMindBlastOverFlamestrike = 1 mana > 42
479        while not targetexists and mana > 40
480            if dead myKillTarget or diffhits >= 30
481                hotkey '> Interrupt'
482                break
483            else
484                cast 'Mind Blast'
485                wait 50
486            endif 
487        endwhile
488        if targetexists
489            target myKillTarget
490            wait 500
491        endif
492    elseif mana > 42
493        while not targetexists and mana > 40
494            if dead myKillTarget or diffhits >= 30
495                hotkey '> Interrupt'
496                break
497            else
498                cast 'Flamestrike'
499                wait 50
500            endif 
501        endwhile
502        if targetexists
503            target myKillTarget
504            wait 500
505        endif
506    elseif not findbuff "actively meditating" and timer magicMushroomTimer >= cdMushroom and findtype "mushroom" backpack as mushy
507        overhead "Eatting shrooms" 66
508        dclick mushy
509        settimer magicMushroomTimer 0
510    elseif not findbuff "actively meditating" 
511        useskill 'meditation'
512        wait 500
513    endif
514    wait 50
515endwhile
516wait 500
517if targetexists 
518    hotkey 'Cancel Current Target'
519endif
520say "all guard me"
521if canYouMakeAMushroom = 1 and counttype "mushroom" backpack < 5
522    while counttype "mushroom" backpack < 15
523        cast "Create Food"
524        wait 200
525        if counttype "mushroom" backpack = 0
526            break
527        endif
528    endwhile
529endif
530while mana < 50
531    if not findbuff "actively meditating" 
532        useskill 'meditation'
533    endif
534    wait 500
535endwhile
536if timer vampiricEmbraceTimer >= cdVampiricEmbrace and skill "Necromancy" >= 70 and findtype 8198 ground -1 -1 4 as jorpse
537    say "[VampiricEmbrace"
538    wft 500
539    target jorpse
540    settimer vampiricEmbraceTimer 0
541endif
542   
543if autoBotEnabled = 1
544    replay
545endif
546
547
548// curse
549// mana drain
550// magic arrrow
551// harm
552// fireball
553// lightening