Mining cart house guide

Share your guides, how-tos, FAQs, and so forth. This is not for support -- post questions in General Discussion.
User avatar
Gargl Kark
Posts: 484

Re: Mining cart house guide

Post by Gargl Kark »

kentares wrote: March 7th, 2022, 4:14 am Is this something you're using Gargl Kark? :geek:
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.
Whammy | Timezone: GMT+2

2020-09-17: SALE | Jewels List
User avatar
kentares
Posts: 676
Location: Houston

Re: Mining cart house guide

Post by kentares »

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..




kentares
User avatar
Gargl Kark
Posts: 484

Re: Mining cart house guide

Post by Gargl Kark »

kentares wrote: March 8th, 2022, 9:00 pm seeing:
remembers where I was last and checks weight
kentares
I'll PM you and anyone who wants to have it.
the public audience may want to solve that riddle themselves :D
Whammy | Timezone: GMT+2

2020-09-17: SALE | Jewels List
User avatar
kentares
Posts: 676
Location: Houston

Re: Mining cart house guide

Post by kentares »

Gargl Kark wrote: March 9th, 2022, 7:28 pm
I'll PM you and anyone who wants to have it.
Please do, Gargl Kark. :geek:




kentares
User avatar
kentares
Posts: 676
Location: Houston

Re: Mining cart house guide

Post by kentares »

Good evening,

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.

Code: Select all

//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
Have a nice evening,




kentares
Gargl Kark likes this.
Top
User avatar
kentares
Posts: 676
Location: Houston

Re: Mining cart house guide

Post by kentares »

Good evening, everyone,

Code: Select all

//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--
// ----------------------------------------------------------------------------
//
:geek:

Please have a nice evening,




kentares
User avatar
kentares
Posts: 676
Location: Houston

Re: Mining cart house guide

Post by kentares »

Good evening, everyone,

Code: Select all

//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,




kentares
User avatar
kentares
Posts: 676
Location: Houston

Re: Mining cart house guide

Post by kentares »

Good afternoon, everyone,

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.

Code: Select all

//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. :geek:




kentares
User avatar
kentares
Posts: 676
Location: Houston

Re: Mining cart house guide

Post by kentares »

Bad Religion wrote: November 25th, 2017, 7:39 pm i need 2k each ruby and diamond if any of you have, ill pay 150gp each
Good afternoon, Bad Religion,

This is way over due; but I do have the required amount of Rubies and Diamonds if you're still in need. Free of charge for your patience.

Thank you and please let me know,



kentares
mota
Posts: 1

Re: Mining cart house guide

Post by mota »

Image

And so it begins.. again..

Thanks for all the info on how to do this guys ! <3
kentares and Gargl Kark like this.
Top
User avatar
kentares
Posts: 676
Location: Houston

Re: Mining cart house guide

Post by kentares »

Code: Select all

//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. :geek:
Gargl Kark likes this.
Top
User avatar
kentares
Posts: 676
Location: Houston

Re: Mining cart house guide

Post by kentares »

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.

Thank you,




kentares
User avatar
kentares
Posts: 676
Location: Houston

Re: Mining cart house guide

Post by kentares »

:geek:

Code: Select all

//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.




kentares
Shallan likes this.
Top
Post Reply