Train Poisoning using a Shelf by Jaseowns

Description: This script uses your shelf to pull poison based on your skill. If your skill is less than 55, you do need to make sure you setup the restock_container_regular_kegs variable. Updated for the shelf changes on March 1st.

1# Training Poisoning with a shelf by Jaseowns
2# UO Outlands - Updated 3/1/2023 updated for shelf
3# Make sure to update the max skill on line 47 if you want to go over 100 
4#################
5# Disclaimer: This script will edit your shelf loadout to only grab neccesary 
6# items to train.  To learn how to do this, check out my videos: youtube.com/jaseowns
7#################
8# Requirements:  a shelf stocked with poison, heals and cures & one weapon (ex: kryss)
9##################
10# Additional Info 
11##################
12# If your skill is less than 55 you also need:
13#   One Empty bottle in your backpack
14#   Regular posion kegs in a container
15#   Restock Agent 1 as keg
16#   Script variable called "restock_container_regular_kegs"
17#   Organizer Agent 1 as keg - Set to a different container then your restock_container_regular_kegs
18##################
19# How to heal through failed posion?
20##################
21#   Training poison has the ability to kill you if you do not heal or cure yourself.  
22#   This script attempts to use heal and cure pots to survive.  You could also
23#   have another character constantly bandaging you but this script should be enough.
24
25if not findtype "kryss" backpack and not find select_train_weapon backpack
26    overhead 'Please select your target weapon to train poison on' 88
27    @setvar! 'select_train_weapon'
28endif
29
30clearsysmsg 
31
32while not dead
33    
34    if insysmsg 'world will save'
35        overhead "World save coming soon.."
36    elseif insysmsg 'world is saving'
37        for 100
38            overhead 'Waiting for world save...'
39            wait 100
40            if insysmsg 'save complete'
41                overhead 'Save complete - continue on!' 88
42                break
43            endif
44        endfor
45    endif
46
47    if skill 'poisoning' >= 100
48        overhead 'Maxed out' 88
49        wait 2500
50        replay
51    elseif skill 'poisoning' < 50
52        overhead 'Go train at vendor to 50' 34
53        wait 2500
54        replay
55    elseif skill 'poisoning' < 55
56        if not findtype "empty bottle%s%" backpack
57            overhead 'Need at least one empty bottle!' 34
58            wait 1000
59            replay
60        endif
61    
62        // target a container that has reg kegs
63        if not findtype "keg" backpack
64            restock 1
65            waitfortarget 
66            target 'restock_container_regular_kegs'
67        endif
68
69        if not findtype "keg" backpack
70            overhead "Missing regular keg!" 34
71            wait 2500
72            replay
73        endif
74
75        overhead 'Using keg of Regular Posion' 88
76        dclicktype "keg" backpack
77        wait 500
78        
79        // keg is empty, make sure to organizer to a different container
80        if not insysmsg "place it into your backpack"
81            organizer 1
82            wait 500
83            replay
84        endif
85     endif
86 
87    overhead 'Using restock shelf' 88
88    gumpclose 3232825965
89    if not gumpexists 3232825965 and findtype "storage shelf" ground -1 -1 2 as shelf
90        dclick shelf
91        waitforgump 3232825965 5000
92    endif
93
94    // Restock shelf
95    gumpresponse 1000 3232825965
96    waitfortarget 5000
97    hotkey 'Target Self'
98    
99    // Clear loadout
100    while not insysmsg "Loadout cleared"
101        gumpresponse 16 3232825965
102        waitforgump 3232825965 5000
103    endwhile
104    
105    // edit loadout
106    gumpresponse 1001 3232825965
107    waitforgump 3232825965 5000
108
109    // 10 heal pots
110    gumpresponse 300 3232825965
111    waitforgump 3232825965 5000
112    gumpresponse 315 3232825965
113    waitforgump 3232825965 5000
114    
115    // 10 cure pots
116    gumpresponse 301 3232825965
117    waitforgump 3232825965 5000
118    gumpresponse 316 3232825965
119    waitforgump 3232825965 5000
120    
121    if skill 'poisoning' < 50
122        overhead 'Go train at vendor' 34
123        wait 2500
124        replay
125    elseif skill 'poisoning' < 55
126        overhead '55 Regular'
127    elseif skill 'poisoning' < 80
128        overhead '80 Greater'
129        gumpresponse 307 3232825965
130        waitforgump 3232825965 5000
131    elseif skill 'poisoning' < 100
132        overhead '100 Deadly'
133        gumpresponse 308 3232825965
134        waitforgump 3232825965 5000
135    elseif skill 'poisoning' < 120
136        overhead '120 Lethal'
137        gumpresponse 309 3232825965
138        waitforgump 3232825965 5000
139    else
140        replay
141    endif
142    
143    // Resupply
144    gumpresponse 7 3232825965
145    waitforgump 3232825965 5000
146    
147    wait 500
148
149    if findtype "Green Potion" backpack and hp > 50
150        skill 'Poisoning'
151        wft 500
152        targettype "Green Potion" backpack
153        wft 500
154        if findtype "kryss" backpack
155            targettype "kryss" backpack
156        else
157            target 'select_train_weapon'
158        endif
159    endif
160
161    if findtype "Yellow Potion" backpack and hp < 50
162        hotkey 'Drink Heal'
163        wait 500
164    endif
165
166    if poisoned
167        overhead 'Posioned'
168        while poisoned
169            if findtype "Orange Potion" backpack
170                hotkey 'Drink Cure'
171                wait 500
172            else
173                overhead "Out of cures... you gonna die" 34
174                wait 1000
175            endif
176            
177            if findtype "Yellow Potion" backpack and hp < 40
178                hotkey 'Drink Heal'
179                wait 500
180            endif
181        endwhile
182        wait 5000
183    else
184        wait 5000
185    endif
186endwhile