Training Poisoning with no shelf by Jaseowns

Description: 50 to 120 poison training - requires separate bags containing the different types of poisons, heals and cures optional but at least someone healing you on a loop would help. You also need a weapon to poison, by default it attempts to use a kryss.

1# Training Poisoning with no shelf by Jaseowns
2# UO Outlands - Updated 12/09/2021 for timeout issue
3#   Updated 1/17/2022 for making sure keg containers are set
4# Make sure to update the max skill on line 59 if you want to go over 100 
5#################
6# Requirements:  separate bags containing the different types of poisons, 
7# heals and cures optional but at least someone healing you on a loop
8# one weapon (ex: kryss selected by default)
9##################
10#   One Empty bottle in your backpack
11#   Each type of Posion keg in different containers
12#   Restock Agent 1 as keg
13#   Script variable called "restock_container_regular_kegs"
14#   Script variable called "restock_container_greater_kegs"
15#   Script variable called "restock_container_deadly_kegs"
16#   Script variable called "restock_container_lethal_kegs"
17#   Organizer Agent 1 as keg - Set to a different container then your restock containers
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 should also
23#   have another character constantly bandaging you since this script does not use 
24#   and has no extra restock agent related to heal/cure pots
25
26if not findtype "kryss" backpack and not listexists 'select_train_weapon'
27    overhead 'Please select your target weapon to train poison on' 88
28    setvar 'select_train_weapon'
29    createlist 'select_train_weapon'
30endif
31
32if not find restock_container_regular_kegs ground
33    overhead "Select REGULAR poison keg container"
34    setvar restock_container_regular_kegs
35endif
36
37if not find restock_container_greater_kegs ground
38    overhead "Select GREATER poison keg Container"
39    setvar restock_container_greater_kegs
40endif
41
42if not find restock_container_deadly_kegs ground
43    overhead "Select DEADLY poison keg Container"
44    setvar restock_container_deadly_kegs
45endif
46
47if not find restock_container_lethal_kegs ground
48    overhead "Select LETHAL poison keg Container"
49    setvar restock_container_lethal_kegs
50endif
51
52while not dead
53
54    removelist 'skill_check'
55    removelist 'keg_container'
56    createlist 'skill_check'
57    createlist 'keg_container'
58
59    if skill 'poisoning' >= 100
60        overhead 'Maxed out' 88
61        wait 2500
62        replay
63    elseif skill 'poisoning' < 50
64        overhead 'Go train at vendor to 50' 34
65        wait 2500
66        replay
67    elseif skill 'poisoning' < 55
68        pushlist "skill_check" 55
69        pushlist "keg_container" "restock_container_regular_kegs"
70    elseif skill 'poisoning' < 80
71        pushlist "skill_check" 80
72        pushlist "keg_container" "restock_container_greater_kegs"
73    elseif skill 'poisoning' < 100
74        pushlist "skill_check" 100
75        pushlist "keg_container" "restock_container_deadly_kegs"
76    elseif skill 'poisoning' < 120
77        pushlist "skill_check" 120
78        pushlist "keg_container" "restock_container_lethal_kegs"
79    else
80        replay
81    endif
82        
83    if not findtype "empty bottle%s%" backpack
84        overhead 'Need at least one empty bottle!' 34
85        wait 1000
86        replay
87    endif
88    
89    if findtype "keg" backpack
90        overhead 'Clear bag of kegs'
91        organizer 1
92        wait 500
93    endif
94    
95    foreach skillchecker in skill_check
96        while skill 'poisoning' < skillchecker
97            overhead skillchecker
98            if not findtype "keg" backpack
99                restock 1
100                wft 500 
101                foreach kegcontainer in keg_container
102                    overhead kegcontainer
103                    target kegcontainer
104                endfor
105                wait 2500
106            endif
107            
108            if not findtype "keg" backpack
109                overhead "Missing keg!" 34
110                overhead "Make sure the following variable points to correct keg location" 34
111                foreach kegcontainer in keg_container
112                    overhead kegcontainer 88
113                endfor 
114                wait 2500
115                replay
116            endif
117            
118            dclicktype "keg" backpack
119            wait 500
120            
121            if not insysmsg "place it into your backpack"
122                organizer 1
123                wait 500
124            endif
125            
126            if findtype "Green Potion" backpack and hp > 50
127                skill 'Poisoning'
128                wft 500 
129                targettype "Green Potion" backpack
130                wft 500 
131                if findtype "kryss" backpack
132                    targettype "kryss" backpack
133                else
134                    target 'select_train_weapon'
135                endif
136                wait 4000
137            endif
138            
139            if findtype "Yellow Potion" backpack and hp < 50
140                hotkey 'Drink Heal'
141                wait 500
142            endif
143
144            if poisoned
145                overhead 'Posioned'
146                while poisoned
147                    if findtype "Orange Potion" backpack
148                        hotkey 'Drink Cure'
149                        wait 500
150                    else
151                        overhead "Out of cures... you gonna die" 34
152                        wait 1000
153                    endif
154                    
155                    if findtype "Yellow Potion" backpack and hp < 40
156                        hotkey 'Drink Heal'
157                        wait 500
158                    endif
159                endwhile
160                wait 4000
161            else
162                wait 4000
163            endif
164        endwhile
165    endfor
166    
167endwhile