kentares wrote: ↑March 7th, 2022, 4:14 am
Is this something you're using Gargl Kark?
kentares
Quite similar, I use three macros:
the first recalls to the house and walks in
the second collects gems, remembers where I was last and checks weight
the third recalls to a bank, sells jewels and checks gold
A fourth macro cares about placing the carts.
So far I feel this is good.
From time to time I have to adjust the pauses and make them longer, I forgot to put walls to east corner of the house teleporters, and depending on lag time, my char falls off sometimes.
Gargl Kark wrote: ↑March 8th, 2022, 1:32 pm
Quite similar, I use three macros:
the first recalls to the house and walks in
the second collects gems, remembers where I was last and checks weight
the third recalls to a bank, sells jewels and checks gold
A fourth macro cares about placing the carts.
So far I feel this is good.
From time to time I have to adjust the pauses and make them longer, I forgot to put walls to east corner of the house teleporters, and depending on lag time, my char falls off sometimes.
Gargl Kark,
I respect that it is your code; but I would be very interested in seeing: remembers where I was last and checks weight
I have some thoughts on how I think this could be done; but oh my gatos the code would be ugly.. so ugly..
The code below is still in testing; but it is a pretty significant update to the previous code base. The problem I think I am having starts on the third floor; the code seems to skip gathering from the mining carts. I am going to do more testing tomorrow. Again, this code is still being tested.
//With the assistance of many people including: (in alphabetical order)
// * @Bama (yes Bama, does come before A)
// * @Alvin
// * @BCrowly
// * @DeathViper
// * @Gargl Kark
// * @Geaux
// * @Gredras
// * @kobra
// * @MB
// * @MMMartin
// * @mortoburger
// * @otimpyre
// * @preman
// * @The Silvertiger
// * @Spok
//
// If I left you off the list this was entirely by accident PM me and I will edit.
//
// Update History:
// Version 20210515T0406 cst.
// * Works with UOSteam
// * Works anywhere and on any shard
// * Does not require recording serial numbers of carts
// * Requires something in the left hand when it begins
// * Requires a counter for Tourmaline (sorry)
// * Added additional commenting in code
//
// Version 20220306T2214 cst.
// * Now requires a recall, a rune, and an agent organizer
// * When weight is greater than maxweight recalls out of the house
// * Ugly walk code back to the container agent organizer is run to
// dump gemsthen code to get back to a specific teleporter
//
// Version 20220612T0040 cst.
// * Major overhaul added lists to act as a memory
// * Counters no longer required
// * Removed access changing code
// * Ugly walk code still ugly
// * Improved documentation / added more comments
//
// Documented because I always forget which way they go. :P
// <= less than symbol
// >= greater than symbol
//
// First Floor Z-Axis information
// z 'self' == -83
// z 'cart' >= -83 and z 'cart' <= -68
//
// Second Floor Z-Axis information
// z 'self' == -63
// z 'cart' >= -63 and z 'cart' <= -48
//
// Third Floor Z-Axis information
// z 'self' == -43
// z 'cart' >= -43 and z 'cart' <= -28
//
// Fourth Floor Z-Axis information
// z 'self' == -23
// z 'cart' >= -23 and z 'cart' <= -8
//
if not listexists 'First Floor OOR'
createlist 'First Floor OOR'
endif
if not listexists 'Second Floor OOR'
createlist 'Second Floor OOR'
endif
if not listexists 'Third Floor OOR'
createlist 'Third Floor OOR'
endif
if not listexists 'Fourth Floor OOR'
createlist 'Fourth Floor OOR'
endif
if not listexists 'Empty'
createlist 'Empty'
endif
//
// ==========================================================================
// STEP 01 - What level am I on?
// ==========================================================================
//
// Start of While Loop looking for any mining carts on the ground
while @findtype 0x1a88 'any' 'ground' 1 2
if weight < maxweight
if @inlist 'Empty' 'found'
// If what has been 'found' is found in the 'Empty' list ignore it
ignoreobject 'found'
else
// If what has been 'found' isn't found in the 'Empty' list continue
//
// ----------------------------------------------------------------------
// First Floor
// ----------------------------------------------------------------------
//
if z 'self' == -83
if z 'found' >= -83 and z 'found' <= -68
//If a mining cart is found on the same level as the player:
@setalias 'cart' 'found'
@unsetalias 'found'
else
//if a mining cart is not found on the same leave as the player:
if @inlist 'First Floor OOR' 'found'
//is the cart OOR(out of reach) if so:
ignoreobject 'found'
@unsetalias 'found'
else
//is the cart OOR if not:
pushlist 'First Floor OOR' 'found'
ignoreobject 'found'
@unsetalias 'found'
endif
endif
endif
//
// ----------------------------------------------------------------------
// Second Floor
// ----------------------------------------------------------------------
//
if z 'self' == -63
if z 'found' >= -63 and z 'found' <= -48
//If a mining cart is found on the same level as the player:
@setalias 'cart' 'found'
@unsetalias 'found'
else
//if a mining cart is not found on the same leave as the player:
if @inlist 'Second Floor OOR' 'found'
//is the cart OOR(out of reach) if so:
ignoreobject 'found'
@unsetalias 'found'
else
//is the cart OOR if not:
pushlist 'Second Floor OOR' 'found'
ignoreobject 'found'
@unsetalias 'found'
endif
endif
endif
//
// ----------------------------------------------------------------------
// Third Floor
// ----------------------------------------------------------------------
//
if z 'self' == -43
if z 'found' >= -43 and z 'found' <= -28
//If a mining cart is found on the same level as the player:
@setalias 'cart' 'found'
@unsetalias 'found'
else
//if a mining cart is not found on the same leave as the player:
if @inlist 'Third Floor OOR' 'found'
//is the cart OOR(out of reach) if so:
ignoreobject 'found'
@unsetalias 'found'
else
//is the cart OOR if not:
pushlist 'Third Floor OOR' 'found'
ignoreobject 'found'
@unsetalias 'found'
endif
endif
endif
//
// ----------------------------------------------------------------------
// Fourth Floor
// ----------------------------------------------------------------------
//
if z 'self' == -23
if z 'found' >= -23 and z 'found' <= -8
//If a mining cart is found on the same level as the player:
@setalias 'cart' 'found'
@unsetalias 'found'
else
//if a mining cart is not found on the same leave as the player:
if @inlist 'Fourth Floor OOR' 'found'
//is the cart OOR(out of reach) if so:
ignoreobject 'found'
@unsetalias 'found'
else
//is the cart OOR if not:
pushlist 'Fourth Floor OOR' 'found'
ignoreobject 'found'
@unsetalias 'found'
endif
endif
endif
endif // end of "if @inlist 'Empty' 'found'" <-- do not remove
//
// ====================================================================
// STEP 02 - Attended resource gathering
// ====================================================================
//
if findalias 'cart'
while not @injournal "There are no more resources available at this time." 'system'
useobject 'cart'
endwhile
if @injournal "There are no more resources available at this time." 'system'
pushlist 'Empty' 'cart'
ignoreobject 'cart'
@unsetalias 'cart'
@clearjournal
@clearignorelist
endif
endif
else // else of "if weight < maxweight" <-- do not remove
cast "Recall"
if @injournal "The spell fizzles" 'system'
@clearjournal
replay
endif
waitfortarget 15000
target! 0x41083290
@organizer 'Dumping Gems'
pause 10000
// You'll have to customize this to get back into your mining home.
// It's ugly I know. :(
turn "East"
for 3
walk "East"
pause 250
endfor
pause 1000
turn "North"
for 2
walk "North"
pause 250
endfor
pause 1000
turn "West"
for 1
walk "West"
pause 250
endfor
pause 1000
endif // end of "if weight < maxweight" <-- do not remove
endwhile
//
// ========================================================================
// STEP 03 - Move to the other side and go back to STEP 01
// ========================================================================
//
if @findobject 'lefthand'
// If an object is found in the lefthand do these commands
turn "East"
pause 1000
for 2
walk "East"
pause 250
endfor
togglehands 'left'
// disarm
pause 2000
else
// If an object is not found in the lefthand do these commands
turn "West"
pause 1000
for 1
walk "West"
pause 250
endfor
togglehands 'left'
// rearm
pause 2000
endif
//With the assistance of many people including: (in alphabetical order)
// * @Bama (yes Bama, does come before A)
// * @Alvin
// * @BCrowly
// * @DeathViper
// * @Gargl Kark
// * @Geaux
// * @Gredras
// * @kobra
// * @MB
// * @MMMartin
// * @mortoburger
// * @otimpyre
// * @preman
// * @The Silvertiger
// * @Spok
//
// If I left you off the list this was entirely by accident PM me
//
// Update History:
// Version 20210515T0406 cst.
// * Works with UOSteam
// * Works anywhere and on any shard
// * Does not require recording serial numbers of carts
// * Requires something in the left hand when it begins
// * Requires a counter for Tourmaline (sorry)
// * Added additional commenting in code
//
// Version 20220306T2214 cst.
// * Now requires a recall, a rune, and an agent organizer
// * When weight is greater than maxweight recalls out of the house
// * Ugly walk code back to the container agent organizer is run to
// dump gemsthen code to get back to a specific teleporter
//
// Version 20220612T0040 cst.
// * Major overhaul added lists to act as a memory
// * Counters no longer required
// * Removed access changing code
// * Ugly walk code still ugly
// * Improved documentation / added more comments
//
// Version 20220907T2308 cst.
// * Dramatic improvements to the lists and memory
// * Now works on all floors
// * Ignore list is now cleared after teleporting to the next spot
// * Added improvements to the weight and recall process
// * Added whisper messages to show progress
//
// Documented because I always forget which way they go. :P
// <= less than symbol
// >= greater than symbol
//
// First Floor Z-Axis information
// z 'self' == -83
// z 'found' >= -83 and z 'found' <= -68
//
// Second Floor Z-Axis information
// z 'self' == -63
// z 'found' >= -63 and z 'found' <= -48
//
// Third Floor Z-Axis information
// z 'self' == -43
// z 'found' >= -43 and z 'found' <= -28
//
// Fourth Floor Z-Axis information
// z 'self' == -23
// z 'found' >= -23 and z 'found' <= -8
//
// *** Make sure to have something in the left hand before starting! ***
//
if not listexists '00 Empty Cart'
createlist '00 Empty Cart'
endif
if not listexists '01 First Floor Cannot Reach'
createlist '01 First Floor Cannot Reach'
endif
if not listexists '02 Second Floor Cannot Reach'
createlist '02 Second Floor Cannot Reach'
endif
if not listexists '03 Third Floor Cannot Reach'
createlist '03 Third Floor Cannot Reach'
endif
if not listexists '04 Fourth Floor Cannot Reach'
createlist '04 Fourth Floor Cannot Reach'
endif
while @findtype 0x1a88 'any' 'ground' 1 2
pause 1000
if weight < maxweight
if @inlist '00 Empty Cart' 'found'
ignoreobject 'found'
whispermsg 'Bah! This cart is empty!'
else
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//
// ----------------------------------------------------------------------
// BEGIN --First Floor--
// ----------------------------------------------------------------------
//
if z 'self' == -83
if @inlist '01 First Floor Cannot Reach' 'found'
ignoreobject 'found'
whispermsg 'Grrr! I cannot reach that cart!'
else
if z 'found' >= -83 and z 'found' <= -68
@setalias 'cart' 'found'
@unsetalias 'found'
else
ignoreobject 'found'
pushlist! '01 First Floor Cannot Reach' 'found'
@unsetalias 'found'
endif
endif
endif
//
// ----------------------------------------------------------------------
// END --First Floor--
// ----------------------------------------------------------------------
//
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//
// ----------------------------------------------------------------------
// BEGIN --Second Floor--
// ----------------------------------------------------------------------
//
if z 'self' == -63
if @inlist '02 Second Floor Cannot Reach' 'found'
ignoreobject 'found'
whispermsg 'Grrr! I cannot reach that cart!'
else
if z 'found' >= -63 and z 'found' <= -48
@setalias 'cart' 'found'
@unsetalias 'found'
else
ignoreobject 'found'
pushlist! '02 Second Floor Cannot Reach' 'found'
@unsetalias 'found'
endif
endif
endif
//
// ----------------------------------------------------------------------
// END --Second Floor--
// ----------------------------------------------------------------------
//
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//
// ----------------------------------------------------------------------
// BEGIN --Third Floor--
// ----------------------------------------------------------------------
//
if z 'self' == -43
if @inlist '03 Third Floor Cannot Reach' 'found'
ignoreobject 'found'
whispermsg 'Grrr! I cannot reach that cart!'
else
if z 'found' >= -43 and z 'found' <= -28
@setalias 'cart' 'found'
@unsetalias 'found'
else
ignoreobject 'found'
pushlist! '03 Third Floor Cannot Reach' 'found'
@unsetalias 'found'
endif
endif
endif
//
// ----------------------------------------------------------------------
// END --Third Floor--
// ----------------------------------------------------------------------
//
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//
// ----------------------------------------------------------------------
// BEGIN --Fourth Floor--
// ----------------------------------------------------------------------
//
if z 'self' == -23
if @inlist '04 Fourth Floor Cannot Reach' 'found'
ignoreobject 'found'
whispermsg 'Grrr! I cannot reach that cart!'
else
if z 'found' >= -23 and z 'found' <= -8
@setalias 'cart' 'found'
@unsetalias 'found'
else
ignoreobject 'found'
pushlist! '04 Fourth Floor Cannot Reach' 'found'
@unsetalias 'found'
endif
endif
endif
//
// ----------------------------------------------------------------------
// END --Fourth Floor--
// ----------------------------------------------------------------------
//
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//
// ----------------------------------------------------------------------
// BEGIN --Attended resource gathering--
// ----------------------------------------------------------------------
//
if findalias 'cart'
while not @injournal "There are no more resources available at this time." 'system' // 02
useobject 'cart'
whispermsg 'Ooo! Something shiny!'
pause 1000
endwhile
if @injournal "There are no more resources available at this time." 'system' // 03
ignoreobject 'cart'
pushlist! '00 Empty Cart' 'cart'
@unsetalias 'cart'
@clearjournal
endif
endif
//
// ----------------------------------------------------------------------
// END --Attended resource gathering--
// ----------------------------------------------------------------------
//
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
endif
else
//
// ----------------------------------------------------------------------
// BEGIN --Overweight--
// ----------------------------------------------------------------------
//
cast "Recall"
if @injournal "The spell fizzles" 'system'
@clearjournal
replay
endif
waitfortarget 15000
target! 0x41083290
whispermsg 'These pockets need to be larger!'
@organizer 'Dumping Gems'
pause 10000
// You'll have to customize this to get back into your mining home.
// It's ugly I know. :(
if not @findobject 'lefthand'
togglehands 'left'
endif
turn "East"
for 3
walk "East"
pause 250
endfor
pause 1000
turn "North"
for 2
walk "North"
pause 250
endfor
pause 1000
turn "West"
for 1
walk "West"
pause 250
endfor
pause 1000
//
// ----------------------------------------------------------------------
// END --Overweight--
// ----------------------------------------------------------------------
//
endif
endwhile
//
// ----------------------------------------------------------------------------
// BEGIN --Move to the otherside--
// ----------------------------------------------------------------------------
//
if @findobject 'lefthand'
// If an object is found in the lefthand do these commands
turn "East"
pause 1000
for 2
walk "East"
pause 250
endfor
togglehands 'left'
// disarm
pause 2000
else
// If an object is not found in the lefthand do these commands
turn "West"
pause 1000
for 1
walk "West"
pause 250
endfor
togglehands 'left'
// rearm
pause 2000
msg 'What am I forgetting? Oh well!'
clearignorelist
pause 2000
endif
//
// ----------------------------------------------------------------------------
// END --Move to the otherside--
// ----------------------------------------------------------------------------
//
//With the assistance of many people including: (in alphabetical order)
// * @Bama (yes Bama, does come before A)
// * @Alvin
// * @BCrowly
// * @DeathViper
// * @Gargl Kark
// * @Geaux
// * @Gredras
// * @kobra
// * @MB
// * @MMMartin
// * @mortoburger
// * @otimpyre
// * @preman
// * @The Silvertiger
// * @Spok
//
// If I left you off the list this was entirely by accident PM me
//
// Update History:
// Version 20210515T0406 cst.
// * Works with UOSteam
// * Works anywhere and on any shard
// * Does not require recording serial numbers of carts
// * Requires something in the left hand when it begins
// * Requires a counter for Tourmaline (sorry)
// * Added additional commenting in code
//
// Version 20220306T2214 cst.
// * Now requires a recall, a rune, and an agent organizer
// * When weight is greater than maxweight recalls out of the house
// * Ugly walk code back to the container agent organizer is run to
// dump gemsthen code to get back to a specific teleporter
//
// Version 20220612T0040 cst.
// * Major overhaul added lists to act as a memory
// * Counters no longer required
// * Removed access changing code
// * Ugly walk code still ugly
// * Improved documentation / added more comments
//
// Version 20220907T2308 cst.
// * Dramatic improvements to the lists and memory
// * Now works on all floors
// * Ignore list is now cleared after teleporting to the next spot
// * Added improvements to the weight and recall process
// * Added whisper messages to show progress
//
// Version 20220908T2017 cst.
// * This script now gathers from both different facing gem carts
// * Commented out the whisper messages
// * Reimproved the weight and recall process (using diffweight)
//
// Documented because I always forget which way they go. :P
// <= less than symbol
// >= greater than symbol
//
// First Floor Z-Axis information
// z 'self' == -83
// z 'found' >= -83 and z 'found' <= -68
//
// Second Floor Z-Axis information
// z 'self' == -63
// z 'found' >= -63 and z 'found' <= -48
//
// Third Floor Z-Axis information
// z 'self' == -43
// z 'found' >= -43 and z 'found' <= -28
//
// Fourth Floor Z-Axis information
// z 'self' == -23
// z 'found' >= -23 and z 'found' <= -8
//
// *** Make sure to have something in the left hand before starting! ***
//
if not listexists '00 Empty Cart'
createlist '00 Empty Cart'
endif
if not listexists '01 First Floor Cannot Reach'
createlist '01 First Floor Cannot Reach'
endif
if not listexists '02 Second Floor Cannot Reach'
createlist '02 Second Floor Cannot Reach'
endif
if not listexists '03 Third Floor Cannot Reach'
createlist '03 Third Floor Cannot Reach'
endif
if not listexists '04 Fourth Floor Cannot Reach'
createlist '04 Fourth Floor Cannot Reach'
endif
while @findtype 0x1a88 'any' 'ground' 1 2 or @findtype 0x1a83 'any' 'ground' 1 2
if diffweight > 20
if @inlist '00 Empty Cart' 'found'
ignoreobject 'found'
//whispermsg 'Bah! This cart is empty!'
else
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//
// ----------------------------------------------------------------------
// BEGIN --First Floor--
// ----------------------------------------------------------------------
//
if z 'self' == -83
if @inlist '01 First Floor Cannot Reach' 'found'
ignoreobject 'found'
//whispermsg 'Grrr! I cannot reach that cart!'
else
if z 'found' >= -83 and z 'found' <= -68
@setalias 'cart' 'found'
@unsetalias 'found'
else
ignoreobject 'found'
pushlist! '01 First Floor Cannot Reach' 'found'
@unsetalias 'found'
endif
endif
endif
//
// ----------------------------------------------------------------------
// END --First Floor--
// ----------------------------------------------------------------------
//
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//
// ----------------------------------------------------------------------
// BEGIN --Second Floor--
// ----------------------------------------------------------------------
//
if z 'self' == -63
if @inlist '02 Second Floor Cannot Reach' 'found'
ignoreobject 'found'
//whispermsg 'Grrr! I cannot reach that cart!'
else
if z 'found' >= -63 and z 'found' <= -48
@setalias 'cart' 'found'
@unsetalias 'found'
else
ignoreobject 'found'
pushlist! '02 Second Floor Cannot Reach' 'found'
@unsetalias 'found'
endif
endif
endif
//
// ----------------------------------------------------------------------
// END --Second Floor--
// ----------------------------------------------------------------------
//
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//
// ----------------------------------------------------------------------
// BEGIN --Third Floor--
// ----------------------------------------------------------------------
//
if z 'self' == -43
if @inlist '03 Third Floor Cannot Reach' 'found'
ignoreobject 'found'
//whispermsg 'Grrr! I cannot reach that cart!'
else
if z 'found' >= -43 and z 'found' <= -28
@setalias 'cart' 'found'
@unsetalias 'found'
else
ignoreobject 'found'
pushlist! '03 Third Floor Cannot Reach' 'found'
@unsetalias 'found'
endif
endif
endif
//
// ----------------------------------------------------------------------
// END --Third Floor--
// ----------------------------------------------------------------------
//
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//
// ----------------------------------------------------------------------
// BEGIN --Fourth Floor--
// ----------------------------------------------------------------------
//
if z 'self' == -23
if @inlist '04 Fourth Floor Cannot Reach' 'found'
ignoreobject 'found'
//whispermsg 'Grrr! I cannot reach that cart!'
else
if z 'found' >= -23 and z 'found' <= -8
@setalias 'cart' 'found'
@unsetalias 'found'
else
ignoreobject 'found'
pushlist! '04 Fourth Floor Cannot Reach' 'found'
@unsetalias 'found'
endif
endif
endif
//
// ----------------------------------------------------------------------
// END --Fourth Floor--
// ----------------------------------------------------------------------
//
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//
// ----------------------------------------------------------------------
// BEGIN --Attended resource gathering--
// ----------------------------------------------------------------------
//
if findalias 'cart'
while not @injournal "There are no more resources available at this time." 'system' // 02
useobject 'cart'
//whispermsg 'Ooo! Something shiny!'
pause 500
endwhile
if @injournal "There are no more resources available at this time." 'system' // 03
ignoreobject 'cart'
pushlist! '00 Empty Cart' 'cart'
@unsetalias 'cart'
@clearjournal
endif
endif
//
// ----------------------------------------------------------------------
// END --Attended resource gathering--
// ----------------------------------------------------------------------
//
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
endif
else
//
// ----------------------------------------------------------------------
// BEGIN --Overweight--
// ----------------------------------------------------------------------
//
cast "Recall"
if @injournal "The spell fizzles" 'system'
@clearjournal
replay
endif
waitfortarget 15000
target! 0x41083290
//whispermsg 'These pockets need to be larger!'
@organizer 'Dumping Gems'
pause 10000
// You'll have to customize this to get back into your mining home.
// It's ugly I know. :(
if not @findobject 'lefthand'
togglehands 'left'
endif
turn "East"
for 3
walk "East"
pause 250
endfor
pause 1000
turn "North"
for 2
walk "North"
pause 250
endfor
pause 1000
turn "West"
for 1
walk "West"
pause 250
endfor
pause 1000
//
// ----------------------------------------------------------------------
// END --Overweight--
// ----------------------------------------------------------------------
//
endif
endwhile
//
// ----------------------------------------------------------------------------
// BEGIN --Move to the otherside--
// ----------------------------------------------------------------------------
//
if @findobject 'lefthand'
// If an object is found in the lefthand do these commands
turn "East"
pause 1000
for 2
walk "East"
pause 250
endfor
togglehands 'left'
// disarm
pause 2000
else
// If an object is not found in the lefthand do these commands
turn "West"
pause 1000
for 1
walk "West"
pause 250
endfor
togglehands 'left'
// rearm
pause 2000
//msg 'What am I forgetting? Oh well!'
clearignorelist
pause 2000
endif
//
// ----------------------------------------------------------------------------
// END --Move to the otherside--
// ----------------------------------------------------------------------------
//
Thank you for your time and please have a nice evening,
With some prompting from Carmen; I've cleaned up the ending of the loop. Lines 97 - 106; this will only work at my house; so please either update the coordinates or remove it completely.
//With the assistance of many people including: (in alphabetical order)
// * @Bama (yes Bama, does come before A)
// * @Alvin
// * @BCrowly
// * @DeathViper
// * @Gargl Kark
// * @Geaux
// * @Gredras
// * @kobra
// * @MB
// * @MMMartin
// * @mortoburger
// * @otimpyre
// * @preman
// * @The Silvertiger
// * @Spok
//
// If I left you off the list this was entirely by accident PM me
//
// Update History:
// Version 20210515T0406 cst.
// * Works with UOSteam
// * Works anywhere and on any shard
// * Does not require recording serial numbers of carts
// * Requires something in the left hand when it begins
// * Requires a counter for Tourmaline (sorry)
// * Added additional commenting in code
//
// Version 20220306T2214 cst.
// * Now requires a recall, a rune, and an agent organizer
// * When weight is greater than maxweight recalls out of the house
// * Ugly walk code back to the container agent organizer is run to
// dump gemsthen code to get back to a specific teleporter
//
// Version 20220612T0040 cst.
// * Major overhaul added lists to act as a memory
// * Counters no longer required
// * Removed access changing code
// * Ugly walk code still ugly
// * Improved documentation / added more comments
//
// Version 20220907T2308 cst.
// * Dramatic improvements to the lists and memory
// * Now works on all floors
// * Ignore list is now cleared after teleporting to the next spot
// * Added improvements to the weight and recall process
// * Added whisper messages to show progress
//
// Version 20220908T2017 cst.
// * This script now gathers from both different facing gem carts
// * Commented out the whisper messages
// * Reimproved the weight and recall process (using diffweight)
//
// Version 20220910T1434 cst. (prompted by Carmen)
// * Polished up the last part of the loop by adding a manual walk
// based upon the x y coordinates of the avatar
// * You'll need to update or remove this code to work at your house
//
// Documented because I always forget which way they go. :P
// <= less than symbol
// >= greater than symbol
//
// First Floor Z-Axis information
// z 'self' == -83
// z 'found' >= -83 and z 'found' <= -68
//
// Second Floor Z-Axis information
// z 'self' == -63
// z 'found' >= -63 and z 'found' <= -48
//
// Third Floor Z-Axis information
// z 'self' == -43
// z 'found' >= -43 and z 'found' <= -28
//
// Fourth Floor Z-Axis information
// z 'self' == -23
// z 'found' >= -23 and z 'found' <= -8
//
// *** Make sure to have something in the left hand before starting! ***
//
if not listexists '00 Empty Cart'
createlist '00 Empty Cart'
endif
if not listexists '01 First Floor Cannot Reach'
createlist '01 First Floor Cannot Reach'
endif
if not listexists '02 Second Floor Cannot Reach'
createlist '02 Second Floor Cannot Reach'
endif
if not listexists '03 Third Floor Cannot Reach'
createlist '03 Third Floor Cannot Reach'
endif
if not listexists '04 Fourth Floor Cannot Reach'
createlist '04 Fourth Floor Cannot Reach'
endif
while @findtype 0x1a88 'any' 'ground' 1 2 or @findtype 0x1a83 'any' 'ground' 1 2
//if at the end of the loop walk up three steps to start over
//custom code that only works for my house
//others should update / remove it
if x 'self' == 2314 and y 'self' == 1673
for 3
walk 'West'
pause 250
endfor
pause 5000
endif
//end of custom code that only works for my house
if diffweight > 20
if @inlist '00 Empty Cart' 'found'
ignoreobject 'found'
//whispermsg 'Bah! This cart is empty!'
else
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//
// ----------------------------------------------------------------------
// BEGIN --First Floor--
// ----------------------------------------------------------------------
//
if z 'self' == -83
if @inlist '01 First Floor Cannot Reach' 'found'
ignoreobject 'found'
//whispermsg 'Grrr! I cannot reach that cart!'
else
if z 'found' >= -83 and z 'found' <= -68
@setalias 'cart' 'found'
@unsetalias 'found'
else
ignoreobject 'found'
pushlist! '01 First Floor Cannot Reach' 'found'
@unsetalias 'found'
endif
endif
endif
//
// ----------------------------------------------------------------------
// END --First Floor--
// ----------------------------------------------------------------------
//
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//
// ----------------------------------------------------------------------
// BEGIN --Second Floor--
// ----------------------------------------------------------------------
//
if z 'self' == -63
if @inlist '02 Second Floor Cannot Reach' 'found'
ignoreobject 'found'
//whispermsg 'Grrr! I cannot reach that cart!'
else
if z 'found' >= -63 and z 'found' <= -48
@setalias 'cart' 'found'
@unsetalias 'found'
else
ignoreobject 'found'
pushlist! '02 Second Floor Cannot Reach' 'found'
@unsetalias 'found'
endif
endif
endif
//
// ----------------------------------------------------------------------
// END --Second Floor--
// ----------------------------------------------------------------------
//
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//
// ----------------------------------------------------------------------
// BEGIN --Third Floor--
// ----------------------------------------------------------------------
//
if z 'self' == -43
if @inlist '03 Third Floor Cannot Reach' 'found'
ignoreobject 'found'
//whispermsg 'Grrr! I cannot reach that cart!'
else
if z 'found' >= -43 and z 'found' <= -28
@setalias 'cart' 'found'
@unsetalias 'found'
else
ignoreobject 'found'
pushlist! '03 Third Floor Cannot Reach' 'found'
@unsetalias 'found'
endif
endif
endif
//
// ----------------------------------------------------------------------
// END --Third Floor--
// ----------------------------------------------------------------------
//
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//
// ----------------------------------------------------------------------
// BEGIN --Fourth Floor--
// ----------------------------------------------------------------------
//
if z 'self' == -23
if @inlist '04 Fourth Floor Cannot Reach' 'found'
ignoreobject 'found'
//whispermsg 'Grrr! I cannot reach that cart!'
else
if z 'found' >= -23 and z 'found' <= -8
@setalias 'cart' 'found'
@unsetalias 'found'
else
ignoreobject 'found'
pushlist! '04 Fourth Floor Cannot Reach' 'found'
@unsetalias 'found'
endif
endif
endif
//
// ----------------------------------------------------------------------
// END --Fourth Floor--
// ----------------------------------------------------------------------
//
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//
// ----------------------------------------------------------------------
// BEGIN --Attended resource gathering--
// ----------------------------------------------------------------------
//
if findalias 'cart'
while not @injournal "There are no more resources available at this time." 'system' // 02
useobject 'cart'
//whispermsg 'Ooo! Something shiny!'
pause 500
endwhile
if @injournal "There are no more resources available at this time." 'system' // 03
ignoreobject 'cart'
pushlist! '00 Empty Cart' 'cart'
@unsetalias 'cart'
@clearjournal
endif
endif
//
// ----------------------------------------------------------------------
// END --Attended resource gathering--
// ----------------------------------------------------------------------
//
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
endif
else
//
// ----------------------------------------------------------------------
// BEGIN --Overweight--
// ----------------------------------------------------------------------
//
cast "Recall"
if @injournal "The spell fizzles" 'system'
@clearjournal
replay
endif
waitfortarget 15000
target! 0x40e7ac79
//whispermsg 'These pockets need to be larger!'
@organizer 'Dumping Gems'
pause 15000
// You'll have to customize this to get back into your mining home.
// It's ugly I know. :(
if not @findobject 'lefthand'
togglehands 'left'
endif
turn "East"
for 3
walk "East"
pause 250
endfor
pause 1000
turn "North"
for 2
walk "North"
pause 250
endfor
pause 1000
turn "West"
for 1
walk "West"
pause 250
endfor
pause 1000
//
// ----------------------------------------------------------------------
// END --Overweight--
// ----------------------------------------------------------------------
//
endif
endwhile
//
// ----------------------------------------------------------------------------
// BEGIN --Move to the otherside--
// ----------------------------------------------------------------------------
//
if @findobject 'lefthand'
// If an object is found in the lefthand do these commands
turn "East"
pause 1000
for 2
walk "East"
pause 250
endfor
togglehands 'left'
// disarm
pause 2000
else
// If an object is not found in the lefthand do these commands
turn "West"
pause 1000
for 1
walk "West"
pause 250
endfor
togglehands 'left'
// rearm
pause 2000
//msg 'What am I forgetting? Oh well!'
clearignorelist
pause 2000
endif
//
// ----------------------------------------------------------------------------
// END --Move to the otherside--
// ----------------------------------------------------------------------------
//
Thank you and sorry for the frequent updates this past week.
//With the assistance of many people including: (in alphabetical order)
// * @Bama (yes Bama, does come before A)
// * @Alvin
// * @BCrowly
// * @DeathViper
// * @Gargl Kark
// * @Geaux
// * @Gredras
// * @kobra
// * @MB
// * @MMMartin
// * @mortoburger
// * @otimpyre
// * @preman
// * @The Silvertiger
// * @Spok
//
// If I left you off the list this was entirely by accident PM me
//
// Update History:
// Version 20220910T1434 cst. (prompted by Carmen)
// * Polished up the last part of the loop by adding a manual walk
// based upon the x y coordinates of the avatar
// * You'll need to update or remove this code to work at your house
//
// Version 20220908T2017 cst.
// * This script now gathers from both different facing gem carts
// * Commented out the whisper messages
// * Improved the weight and recall process (using diffweight)
//
// Version 20220907T2308 cst.
// * Dramatic improvements to the lists and memory
// * Now works on all floors
// * Ignore list is now cleared after teleporting to the next spot
// * Added improvements to the weight and recall process
// * Added whisper messages to show progress
//
// Version 20220612T0040 cst.
// * Major overhaul added lists to act as a memory
// * Counters no longer required
// * Removed access changing code
// * Ugly walk code still ugly
// * Improved documentation / added more comments
//
// Version 20220306T2214 cst.
// * Now requires a recall, a rune, and an agent organizer
// * When weight is greater than maxweight recalls out of the house
// * Ugly walk code back to the container agent organizer is run to
// dump gems then code to get back to a specific teleporter
//
// Version 20210515T0406 cst.
// * Works with UOSteam
// * Works anywhere and on any shard
// * Does not require recording serial numbers of carts
// * Requires something in the left hand when it begins
// * Requires a counter for Tourmaline (sorry)
// * Added additional commenting in code
//
// Documented because I always forget which way they go. :P
// <= less than symbol
// >= greater than symbol
//
// First Floor Z-Axis information
// z 'self' == -83
// z 'found' >= -83 and z 'found' <= -68
//
// Second Floor Z-Axis information
// z 'self' == -63
// z 'found' >= -63 and z 'found' <= -48
//
// Third Floor Z-Axis information
// z 'self' == -43
// z 'found' >= -43 and z 'found' <= -28
//
// Fourth Floor Z-Axis information
// z 'self' == -23
// z 'found' >= -23 and z 'found' <= -8
//
// *** Make sure to have something in the left hand before starting! ***
//
if not listexists '00 Empty Cart'
createlist '00 Empty Cart'
endif
if not listexists '01 First Floor Cannot Reach'
createlist '01 First Floor Cannot Reach'
endif
if not listexists '02 Second Floor Cannot Reach'
createlist '02 Second Floor Cannot Reach'
endif
if not listexists '03 Third Floor Cannot Reach'
createlist '03 Third Floor Cannot Reach'
endif
if not listexists '04 Fourth Floor Cannot Reach'
createlist '04 Fourth Floor Cannot Reach'
endif
while @findtype 0x1a88 'any' 'ground' 1 2 or @findtype 0x1a83 'any' 'ground' 1 2
//if at the end of the loop walk up three steps to start over
//custom code that only works for my house
//others should update / remove it
if x 'self' == 2314 and y 'self' == 1673
for 3
walk 'West'
pause 250
endfor
pause 5000
endif
//end of custom code that only works for my house
if diffweight > 20
if @inlist '00 Empty Cart' 'found'
ignoreobject 'found'
//whispermsg 'Bah! This cart is empty!'
else
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//
// ----------------------------------------------------------------------
// BEGIN --First Floor--
// ----------------------------------------------------------------------
//
if z 'self' == -83
if @inlist '01 First Floor Cannot Reach' 'found'
ignoreobject 'found'
//whispermsg 'Grrr! I cannot reach that cart!'
else
if z 'found' >= -83 and z 'found' <= -68
@setalias 'cart' 'found'
@unsetalias 'found'
else
ignoreobject 'found'
pushlist! '01 First Floor Cannot Reach' 'found'
@unsetalias 'found'
endif
endif
endif
//
// ----------------------------------------------------------------------
// END --First Floor--
// ----------------------------------------------------------------------
//
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//
// ----------------------------------------------------------------------
// BEGIN --Second Floor--
// ----------------------------------------------------------------------
//
if z 'self' == -63
if @inlist '02 Second Floor Cannot Reach' 'found'
ignoreobject 'found'
//whispermsg 'Grrr! I cannot reach that cart!'
else
if z 'found' >= -63 and z 'found' <= -48
@setalias 'cart' 'found'
@unsetalias 'found'
else
ignoreobject 'found'
pushlist! '02 Second Floor Cannot Reach' 'found'
@unsetalias 'found'
endif
endif
endif
//
// ----------------------------------------------------------------------
// END --Second Floor--
// ----------------------------------------------------------------------
//
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//
// ----------------------------------------------------------------------
// BEGIN --Third Floor--
// ----------------------------------------------------------------------
//
if z 'self' == -43
if @inlist '03 Third Floor Cannot Reach' 'found'
ignoreobject 'found'
//whispermsg 'Grrr! I cannot reach that cart!'
else
if z 'found' >= -43 and z 'found' <= -28
@setalias 'cart' 'found'
@unsetalias 'found'
else
ignoreobject 'found'
pushlist! '03 Third Floor Cannot Reach' 'found'
@unsetalias 'found'
endif
endif
endif
//
// ----------------------------------------------------------------------
// END --Third Floor--
// ----------------------------------------------------------------------
//
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//
// ----------------------------------------------------------------------
// BEGIN --Fourth Floor--
// ----------------------------------------------------------------------
//
if z 'self' == -23
if @inlist '04 Fourth Floor Cannot Reach' 'found'
ignoreobject 'found'
//whispermsg 'Grrr! I cannot reach that cart!'
else
if z 'found' >= -23 and z 'found' <= -8
@setalias 'cart' 'found'
@unsetalias 'found'
else
ignoreobject 'found'
pushlist! '04 Fourth Floor Cannot Reach' 'found'
@unsetalias 'found'
endif
endif
endif
//
// ----------------------------------------------------------------------
// END --Fourth Floor--
// ----------------------------------------------------------------------
//
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//
// ----------------------------------------------------------------------
// BEGIN --Attended resource gathering--
// ----------------------------------------------------------------------
//
if findalias 'cart'
while not @injournal "There are no more resources available at this time." 'system' // 02
useobject 'cart'
//whispermsg 'Ooo! Something shiny!'
pause 500
endwhile
if @injournal "There are no more resources available at this time." 'system' // 03
ignoreobject 'cart'
pushlist! '00 Empty Cart' 'cart'
@unsetalias 'cart'
@clearjournal
endif
endif
//
// ----------------------------------------------------------------------
// END --Attended resource gathering--
// ----------------------------------------------------------------------
//
// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
endif
else
//
// ----------------------------------------------------------------------
// BEGIN --Overweight--
// ----------------------------------------------------------------------
//
cast "Recall"
if @injournal "The spell fizzles" 'system'
@clearjournal
replay
endif
waitfortarget 15000
target! 0x40e7ac79
//whispermsg 'These pockets need to be larger!'
@organizer 'Dumping Gems'
pause 15000
// You'll have to customize this to get back into your mining home.
// It's ugly I know. :(
if not @findobject 'lefthand'
togglehands 'left'
endif
turn "East"
for 3
walk "East"
pause 250
endfor
pause 1000
turn "North"
for 2
walk "North"
pause 250
endfor
pause 1000
turn "West"
for 1
walk "West"
pause 250
endfor
pause 1000
//
// ----------------------------------------------------------------------
// END --Overweight--
// ----------------------------------------------------------------------
//
endif
endwhile
//
// ----------------------------------------------------------------------------
// BEGIN --Move to the otherside--
// ----------------------------------------------------------------------------
//
if @findobject 'lefthand'
// If an object is found in the lefthand do these commands
turn "East"
pause 1000
for 2
walk "East"
pause 250
endfor
togglehands 'left'
// disarm
pause 2000
else
// If an object is not found in the lefthand do these commands
turn "West"
pause 1000
for 1
walk "West"
pause 250
endfor
togglehands 'left'
// rearm
pause 2000
//msg 'What am I forgetting? Oh well!'
clearignorelist
pause 2000
endif
//
// ----------------------------------------------------------------------------
// END --Move to the otherside--
// ----------------------------------------------------------------------------
//
No code related changes. Changing computers and getting everything set back up; realized the release notes are in Oldest to Newest order; flipped it.
UO Version 7.0.104.18
Doesn't work with the gem gathering script.
I have determined that the '00 Empty Cart' list is no longer populating carts that are empty.
I'll work on getting this fixed. If anyone has a quick fix / solution don't be afraid to let me know.
//With the assistance of many people including: (in alphabetical order)
// * @Bama (yes Bama, does come before A)
// * @Alvin
// * @BCrowly
// * @DeathViper
// * @Gargl Kark
// * @Geaux
// * @Gredras
// * @kobra
// * @MB
// * @MMMartin
// * @mortoburger
// * @otimpyre
// * @preman
// * @The Silvertiger
// * @Spok
//
// If I left you off the list this was entirely by accident PM me
//
// *** Make sure to have something in the left hand before starting! ***
//
// Update History:
// Version 20240911T11:11 cst.
// * Cleaned up comments in code
// * Reversed the update history
// * With with a simple "for 10" (loop) times to do the gathering process
// the injournal messaging wasn't working and this works
//
// Version 20220910T1434 cst. (prompted by Carmen)
// * Polished up the last part of the loop by adding a manual walk
// based upon the x y coordinates of the avatar
// * You'll need to update or remove this code to work at your house
//
// Version 20220908T2017 cst.
// * This script now gathers from both different facing gem carts
// * Commented out the whisper messages
// * Reimproved the weight and recall process (using diffweight)
//
// Version 20220907T2308 cst.
// * Dramatic improvements to the lists and memory
// * Now works on all floors
// * Ignore list is now cleared after teleporting to the next spot
// * Added improvements to the weight and recall process
// * Added whisper messages to show progress
//
// Version 20220612T0040 cst.
// * Major overhaul added lists to act as a memory
// * Counters no longer required
// * Removed access changing code
// * Ugly walk code still ugly
// * Improved documentation / added more comments
//
// Version 20220306T2214 cst.
// * Now requires a recall, a rune, and an agent organizer
// * When weight is greater than maxweight recalls out of the house
// * Ugly walk code back to the container agent organizer is run to
// dump gemsthen code to get back to a specific teleporter
//
// Version 20210515T0406 cst.
// * Works with UOSteam
// * Works anywhere and on any shard
// * Does not require recording serial numbers of carts
// * Requires something in the left hand when it begins
// * Requires a counter for Tourmaline (sorry)
// * Added additional commenting in code
//
if not listexists 'Empty'
createlist 'Empty'
endif
if not listexists 'First'
createlist 'First'
endif
if not listexists 'Second'
createlist 'Second'
endif
if not listexists 'Third'
createlist 'Third'
endif
if not listexists 'Fourth'
createlist 'Fourth'
endif
while @findtype 0x1a88 'any' 'ground' 1 2 or @findtype 0x1a83 'any' 'ground' 1 2
//if at the end of the loop walk up three steps to start over
//custom code that only works for my house
//others should update / remove it
if x 'self' == 2314 and y 'self' == 1673
for 3
walk 'West'
pause 250
endfor
pause 5000
endif
//end of custom code that only works for my house
if diffweight > 20
//if diffweight > 300
if @inlist 'Empty' 'found'
ignoreobject 'found'
//whispermsg 'Bah! This cart is empty!'
else
// --First Floor--
if z 'self' == -83
if @inlist 'First' 'found'
ignoreobject 'found'
//whispermsg 'Grrr! I cannot reach that cart!'
else
if z 'found' >= -83 and z 'found' <= -68
@setalias 'cart' 'found'
@unsetalias 'found'
else
ignoreobject 'found'
pushlist! 'First' 'found'
@unsetalias 'found'
endif
endif
endif
// --Second Floor--
if z 'self' == -63
if @inlist 'Second' 'found'
ignoreobject 'found'
//whispermsg 'Grrr! I cannot reach that cart!'
else
if z 'found' >= -63 and z 'found' <= -48
@setalias 'cart' 'found'
@unsetalias 'found'
else
ignoreobject 'found'
pushlist! 'Second' 'found'
@unsetalias 'found'
endif
endif
endif
// --Third Floor--
if z 'self' == -43
if @inlist 'Third' 'found'
ignoreobject 'found'
//whispermsg 'Grrr! I cannot reach that cart!'
else
if z 'found' >= -43 and z 'found' <= -28
@setalias 'cart' 'found'
@unsetalias 'found'
else
ignoreobject 'found'
pushlist! 'Third' 'found'
@unsetalias 'found'
endif
endif
endif
// --Fourth Floor--
if z 'self' == -23
if @inlist 'Fourth' 'found'
ignoreobject 'found'
//whispermsg 'Grrr! I cannot reach that cart!'
else
if z 'found' >= -23 and z 'found' <= -8
@setalias 'cart' 'found'
@unsetalias 'found'
else
ignoreobject 'found'
pushlist! 'Fourth' 'found'
@unsetalias 'found'
endif
endif
endif
// --Attended resource gathering--
if findalias 'cart'
for 10
useobject 'cart'
//whispermsg 'Ooo! Something shiny!'
pause 500
endfor
pushlist! 'Empty' 'cart'
ignoreobject 'cart'
@unsetalias 'cart'
endif
endif
else
// --Overweight--
cast "Recall"
if @injournal "The spell fizzles" 'system'
@clearjournal
replay
endif
waitfortarget 15000
target! 0x400acc73
//whispermsg 'These pockets need to be larger!'
@organizer 'Dumping Gems'
pause 15000
// You'll have to customize this to get back into your mining home.
// It's ugly I know. :(
if not @findobject 'lefthand'
togglehands 'left'
endif
turn "East"
for 3
walk "East"
pause 250
endfor
pause 1000
turn "North"
for 3
walk "North"
pause 250
endfor
pause 1000
turn "West"
for 1
walk "West"
pause 250
endfor
pause 1000
endif
endwhile
// --Move to the otherside--
if @findobject 'lefthand'
// If an object is found in the lefthand do these commands
turn "East"
pause 1000
for 2
walk "East"
pause 250
endfor
togglehands 'left'
// disarm
pause 2000
else
// If an object is not found in the lefthand do these commands
turn "West"
pause 1000
for 1
walk "West"
pause 250
endfor
togglehands 'left'
// rearm
pause 2000
//msg 'What am I forgetting? Oh well!'
clearignorelist
pause 2000
endif
This works as expected.
Thank you for your patience.