Tinkering Crafting Queue and Sell Jewelry by Jaseowns

Description: Read the notes in the script for full details.. but this might become a video? :D

Updated 9/28/2024 for item count

1# Tinkering Crafting Queue and Sell Jewelry by Jaseowns
2# UO Outlands
3# Updated 9/28/2024 to re-handle item count change
4# Updated 7/10/2023 to handle Camping (let me know if it breaks)
5# Requirements:
6#    Magery and a desire to use the crafting queue
7#    Two runes or rune books 
8#       - one default location to your house (must be in backpack)
9#       - other to tinker vendor (must be accessible while at home)
10#    Sell Agent Enabled with Beads/Necklace
11#    A bunch of recall Regs (i am not checking to restock)
12# Description:
13#    Setup the crafting queue https://uooutlands.com/wiki/Tinkering#Training
14#    As you finish making beads, make sure those are on your SELL agent.
15#    Make sure the SELL agent is enabled, you should only need to target one bead
16#    Make sure to select one necklace when you get that far as well
17#   
18#    This script assumes you are recalling to a spot where you can run the
19#    Crafting Queue without needing to move your character (Courtyard anyone?)
20#    If you need to move your character, you can manually do that or add 
21#    walk movements to the area it says "I am lost"
22#
23#    The script checks for your house X/Y position that you set on line 30/31
24#    It also needs to know your Vendor rune X/Y position on line 33/34
25#
26#    Once you recall to your vendor rune, it will ask for the vendor to sell too
27#    After all these steps are setup, the script will continue to loop between
28#    Running the crafting queue and then selling when 120 items is met
29#    
30#    I try to handle being out of regs or not knowing where you are.. but goodluck!
31
32@setvar! myHomeX 1825
33@setvar! myHomeY 997
34
35@setvar! tinkerVendorX 1556
36@setvar! tinkerVendorY 1545
37
38@setvar! globalTimeout 650
39
40if not varexist myHomeRuneOrBook or not find myHomeRuneOrBook self
41    overhead "Select your home rune or runebook (default location)"
42    @setvar! myHomeRuneOrBook
43    replay
44endif
45
46if position myHomeX myHomeY
47
48    if not varexist tinkerVendorRuneOrBook or not find tinkerVendorRuneOrBook backpack and not find tinkerVendorRuneOrBook ground -1 -1 2 
49        overhead "Select your tinker vendor rune or runebook (default location)"
50        @setvar! tinkerVendorRuneOrBook
51        replay
52    endif
53    
54    if findtype "gold coin" backpack as gold
55        if findtype "bank deposit safe" ground -1 -1 2 as safe
56            lift gold 60000
57            drop safe -1 -1 -1
58            wait globalTimeout
59        elseif not varexist dropOffGoldContainer or not find dropOffGoldContainer ground -1 -1 2 
60            @setvar! dropOffGoldContainer
61            replay
62        elseif find dropOffGoldContainer ground -1 -1 2 
63            lift gold 60000
64            drop dropOffGoldContainer -1 -1 -1
65            wait globalTimeout
66        else
67            overhead "You have gold and I do not know where to put it!" 34
68            wait 5000
69            replay
70        endif
71
72    endif
73
74    @setvar! needToSell 0
75
76    while not gumpexists 453554062
77        say '[cq'
78        wait globalTimeout
79    endwhile
80    
81    if ingump "Begin Crafting" 453554062
82        overhead "Starting Queue..." 88
83        gumpresponse 7 453554062
84        wait globalTimeout
85    endif
86    
87    while ingump "Stop Crafting" 453554062
88        sysmsg "Working Crafting Queue..." 88
89        getlabel backpack itemCount
90        if "(120/" in itemCount or "(121/" in itemCount or "(122/" in itemCount or "(123/" in itemCount or "(124/" in itemCount or "(125/" in itemCount
91            overhead "Too many items, lets sell" 88
92            gumpresponse 7 453554062
93            @setvar! needToSell 1
94            break
95        endif
96        wait globalTimeout
97    endwhile
98
99    
100    if needToSell = 1
101        overhead "Recalling to Tinker..."
102        if targetexists 
103            hotkey 'Cancel Current Target'
104        endif
105        while not targetexists 
106            cast "Recall"
107            wait 500
108        endwhile
109        target tinkerVendorRuneOrBook
110        wait 2000
111        if position myHomeX myHomeY
112            overhead "Might be out of regs.. you never left home" 34
113            wait 5000
114            replay
115        endif
116    else
117        overhead "Might be all done..." 88
118        overhead "crafting queue stopped but bag not at max limit" 34
119        wait 5000
120        replay
121    endif
122    
123
124elseif position tinkerVendorX tinkerVendorY
125    
126    if not varexist tinkerVendorNPC or not find tinkerVendorNPC ground -1 -1 12 
127        overhead "Select the tinker vendor to sell to"
128        @setvar! tinkerVendorNPC
129        replay
130    endif
131
132    overhead "Attempting to sell..." 88
133    menu tinkerVendorNPC 2
134    wait globalTimeout
135    menu tinkerVendorNPC 2
136    wait globalTimeout
137    menu tinkerVendorNPC 2
138    wait globalTimeout
139    
140    overhead "Returning home..." 88
141    if targetexists 
142        hotkey 'Cancel Current Target'
143    endif
144    while not targetexists 
145        cast "Recall"
146        wait 500
147    endwhile
148    target myHomeRuneOrBook
149else
150    overhead "Help I am lost.. make sure you set the X,Y of your house and vendor" 34
151    sysmsg "Read the description and follow the setup" 34
152    // If you need to move (maybe you live in a wagon)
153    // add a few walk commands here to get into position
154    // This would let me walk back into my wagon by just walking west
155    // walk 'West'
156endif
157wait 1000
158loop