Progressive Stealing (script)

From Elanthipedia
Jump to navigation Jump to search

This script is nearly 15,000 lines long now and Elanthipedia doesn't seem very happy about allowing that to be pasted here, so instead a link below to the copy at the DragonRealms Script Repository is provided. As of right now, we do not support traveling to different provinces, but after we finish Therengia we may try linking that with Zoluren and Ilithi for those of you with high survivals, and who need a large run.

As of January 19, 2010, Challeirra is still actively building and improving this script, so please send an email with any bugs, or post on the discussion page. Feedback is highly appreciated, especially regarding success levels and instances where you may be getting caught (so we should adjust the default items). Suggestions and requests for additional features will be given high consideration because we want the user experience to be as good as possible.

Progressive Stealing Script

Introduction for New Users

This script can be started in many, many locations in major cities and a few clans and villages. It will check your skill level, ensure that you are ready to make a run (not wearing armor or holding anything), and take you on a stealing loop throughout your province, stopping at each location to hide, sneak in, and steal an appropriate item, with a number of attempts based on several different factors. You can choose whether to simply drop items, or stow them for the script to pawn and/or bin. (If you choose this option, the script will first verify that your bags don't contain anything that you will later be pawning.) When it gets back to where it started, or when your experience is mind locked, the script will take you to the pawn shop to get rid of your goods and, if you are a thief, take the ones that can't be sold and drop them in the thief bin. Thieves will also make use of various special abilities including Khris, tunnels, and SLIP SNEAK if applicable. Thieves have an option of SLIPping items into containers as well, set at the top of the script or through the command line.

This script is highly reactive to many situations you will encounter while stealing. It uses an advanced method of travel which does not get caught up by failure to move due to RT. It can notice if you have been arrested and end up in jail, or have your hand cut off due to getting caught in a clan, and recover from both of these situations. If arrested, it pleads for you, pays your debt and collects your items if necessary, ensures that you have everything from your sack, and starts up again at the next shop that was on your route. If your hand is chopped off, it will take you to the nearest auto-empath and get healed -- unless you're an empath, in which case you'll go to a good mana spot and heal yourself up -- before resuming at the next shop on your route. If you get engaged in combat for some reason, it will continue to retreat until you successfully move away from the threat, and continue on its way. If you encounter stealable NPCs along your route, you will automatically stop to steal from them before continuing on.

Furthermore, there are many ways to customize your scripting experience. Several toggles are included at the top of the script, which allow you to choose whether to include clans on your route, whether to have the script automatically log out upon death or any stun that isn't clan justice, and whether to MARK or do POWER perception or PERCeive health (or none of the above) at each shop. From the command line, you can run the option PROFIT, which will try to select items of greater pawning value instead of learning value, and you can override the settings for DROP/STOW, MARK/POWER/PERC/STEAL, and PUT/SLIP by entering the one(s) you want. In addition, you can start the script using the modifiers EASY, HARD, LESS, or MORE to adjust your the items or quantities you steal across the board. The number of modifiers you can use used to be limited, but now you can add as many as you want (using too many difficulty or quantity adjustments can break the script, but you would have to go way beyond the parameters of normal script usage). Usage for this is .(scriptname) <toggle1> <toggle2> <toggle3> ...

Some help pages will be shown the first time you run the script. View these again with .(scriptname) HELP. Also you can start the script in any location and if it is not a valid starting location, you will be given a list of your options. If you stop the script or it breaks before getting to the pawning segment and you still want it to clean out your bags, you can now run the script with the options PAWN or BIN at the appropriate locations.

List of functions

Intelligent Design

  • Progressive items and quantities automatically set based on your skill level (this is where we need more data)
  • Usable by any class, but thieves will utilize class features including all applicable Khris, slip sneak, and tunnels (non-thieves won't bother attempting these)
  • Checks for armor before starting and ensures your bags don't contain any items that you will later be pawning
  • Each province or island loops, so you can start anywhere in the region, but will stop and go to pawn when you arrive back at your starting location
  • Intelligent Pawning/binning system for stolen goods (only tries to steal things you tried to steal; and does not repeatedly try to sell things the pawnbroker refuses; remembers what you've stolen and not yet sold so you can pawn it later if you stop the script for some reason or it crashes)
  • Thieves bin anything that won't pawn (except in Aesry)
  • Exp check at each shop to pawn/bin early if mind locked
  • Skips any shops where you have nothing set to steal
  • Automatically displays HELP pages on first run only

Customizable

  • Preset but easily adjustable items to be stolen
  • Command line toggles to adjust item difficulty (EASY, HARD) and quantity of items stolen (LESS, MORE)
  • Command line PROFIT option to try to select items that will pawn for higher cash value
  • Command line PAUSE option to have script wait for user confirmation in each shop before stealing
  • Toggle to include MARK, PERC health, or POWER at each shop (default is simply STEAL)
  • Toggle whether to DROP all items or STOW and pawn/bin them
  • Toggle whether thieves should PUT or SLIP items into their containers if stowing
  • Toggle for thieves to use Khri Skulk before the normal progression of Khri attempts
  • Command line use of DROP, STOW, MARK, POWER, PERC, STEAL, PUT, SLIP, or SKULK will override top-of-script variables
  • Toggle to choose whether to include clans in stealing route
  • Toggle whether stun (if not due to clan justice) and/or death will instantly log you out
  • Additional toggles can be added on request

Reactive

  • Knows whether you act or move as expected, and retries if you get stuck due to roundtime
  • Reacts to arrest, death, and being stunned at any time
  • If arrested, pleads, pays debt and gets sack if necessary, retrieves items from sack, and picks up where it left off as if nothing happened
  • If caught by clan justice (when they chase you down and cut off your hand), automatically heals up (if empath) or goes to the auto-empath for healing, then resumes where it left off
  • Retreats if engaged anywhere and immediately runs to the next shop
  • Automatically steals from mobile NPCs you encounter while traveling between shops
  • Skips any shops that are closed for the night

Start Locations

  • Crossing inside any shop, inside gates, or outside bank (16 shops)
  • Arthe Dale inside any shop or inside gate (13 shops)
  • Tiger Clan inside any shop or inside gate (3 shops)
  • Leth Deriel inside any shop, inside gates, or town center (10 shops)

.....(total of 42 possible shops per Zoluren run if you have thief tunnels)

  • Shard inside any shop (including south bridge and outside east gate), bank, or inside gates (22 shops)
  • Fayrin's Rest area (3 shops)
  • Horse Clan inside any shop tent (except potter) or inside path (6 shops)
  • SCC inside weapon or leather shop or inside gate (2 shops)

.....(total of 33 possible shops per Ilithi run)

  • Haven inside any shop, bank, inside gates, or by naphtha cart (20 shops)
  • Ratha inside any shop, lower bank, or outside sewers (14 shops)
  • Aesry inside any shop, outside bank, or inside gate (17 shops)
  • Determines your province and lists all available start locations for it if you start anywhere that isn't one
  • If you are at a pawn shop or thief bin, the PAWN or BIN functions may be run directly

How to Edit the Items You Steal

Find the item sections like the one below. The first three letters (ZOL) are the province code. RANK will be followed by various numbers depending on the skill level, but you can read the skill level in the first variable below it, so find the one that corresponds to your ranks. Each item is set in a variable based on the storecode, for example ADbard is the Arthe Dale bard shop, Ctann is the Crossing tannery, Cbath is the Crossing bathhouse, and so on. If applicable, the shop will have a spot for the location you need to steal the item FROM, such as in the bathhouse, where the towel is on a stand. An item setting that ends in a "P" (you can insert new ones - CarmP is present in this example) will override the normal item if the PROFIT toggle is used when running the script. Finally, the base quantity of each item you steal (before MORE or LESS adjustments) is set here as well.

    ZOL.RANK.6:
        setVariable skillrange 200-249
        setvariable ADbard itharr's
        setvariable ADbardQuant 2
        setvariable ADodd earring
        setvariable ADoddQuant 2
        setvariable ADthread pattern
        setvariable ADthreadQuant 2
        setvariable ADfash trousers
        setvariable ADfashQuant 2
        setvariable ADweap <nothing>
        setvariable ADweapQuant 0
        setvariable Ctann shears
        setvariable CtannQuant 2
        setvariable Cstit blouse
        setvariable CstitQuant 2
        setVariable Carm leather aventail
        setVariable CarmP leather gloves
        setVariable CarmQuant 2
        setvariable Cbath towel
        setvariable CbathItemLoc on stand
        setvariable CbathQuant 2

Skipping Shops

You will bypass a shop which has <nothing> set as the item. An empty variable or incorrect item will NOT skip it; you will end up sneaking in and trying to steal, and then leave when it fails to find an item. Also if you set it to <nothing>, the quantity for that shop is then irrelevant.

Common Script Bugs

  1. If you run into a pawning/binning problem in which you start seeing negative numbers and the script does not immediately correct it, you may need to manually recalibrate two variables: SellItemCount and BinItemCount. SellItemCount is incremented by 1 each time you attempt to steal from a shop. BinItemCount will normally be set either 1) = to SellItemCount if you have not pawned before binning, or 2) incremented by 1 each time something is rejected by the pawn broker. If all else fails, set them to 0 and clean out your bags manually.
  2. Be aware that if the script does not move on from its loop immediately after one circuit, then it means we've lost the start location variable for some reason, and letting it continue to run is probably not going to resolve this or ever stop the loop (important for thieves because you're going to get caught if this happens). This can also occur if the match text we have used for the shop changes from day to night and we didn't know and aren't using a match that works for both.
  3. If for some reason you seem to be just running by all the shops without actually going in to try to steal anything (and it's not due to having all the items for your skill bracket as yet unset), then we've probably forgotten an instance where we need to deactivate the MOVEON feature that happens when you are mind locked, have your hand chopped off, or reach the shop you started at.

Version Notes

1.56

  • Fixed (another) bug preventing stealing in Leth if starting in Crossing
  • Fixed Ratha sewer guarding bug (not retreating one yet)

1.55

  • Adjusted script response for hands being unexpectedly full when stealing
  • Minor adjustments to comments/messaging

1.54

  • Fixed bug in which the first shop entered after traveling between Crossing and Leth would be mistaken for the starting location

1.53

  • Fixed bug which (rarely) triggered accidental retreat attempts
  • Fixed bug which would fail to recognize not being engaged if retreat was attempted

1.52

  • Fixed bug where stealing only once in a shop (with STOW setting, not DROP) could cause a label error with message ending in .-1.
  • Adjusted a couple of items in Shard and Haven 300+ brackets, also one at Haven 250-299

1.51

  • Fixed infinite loop of pawning/binning
  • Fixed error if sneak variable is set to "sneak" or "nosneak" instead of YES or NO
  • Fixed one cause of thieves accidentally slipping an item out and then back into your container
  • Fixed duplicate SLIP sneak label
  • Script currently set to skip Arthe Dale tart boutique due to bugs

1.50

  • Fixed the widespread INV ARMOR bug due to changes in the INVENTORY command
  • Significant cleanup of primary stealing engine (especially reduction in STOW functions)
  • Fixed another MM power perception issue
  • Fixed a bug that resulted in a mistaken arrest match

1.49

  • Added toggle whether to sneak into shops or not (and command-line override SNEAK or NOSNEAK)
  • Shard cleric shop added
  • Some Shard items edited. Shard 300+ bracket being made easier, anticipating addition of higher brackets soon
  • Fixed another justice bug for debts greater than 5k

1.48

  • Moon mage PP corrections
  • Another correction to Riverhaven numbering near cleric shop
  • Fixed justice bug only applicable to debts over 5000 copper
  • Using DROP option will no longer add new saved item variables

1.47

  • Upgraded moon mage power perception based on Mozzik's recommendations
  • Thief concentration pause for khri now based on actual amount of concentration
  • Added additional bag checks and expanded container warning
  • Bug fix for case of having saved too many items without pawning/binning for script to handle
  • Fixed bug at post-arrest sack checking and allowed for manual correction if script is unable to retrieve everything
  • Adjusted some more trivial tarts

1.46

  • Fixed numbering near Riverhaven cleric shop.

1.45

  • Fix for Shard bug when starting at east or west gate at night

1.44

  • Altered thief khri; skulk is now only used if you set the top-of-script variable or enter SKULK in command line
  • Added command line option, PAUSE, to have script wait in each shop for user confirmation before stealing (overrides mark, power, and perc)
  • Changed some tart grabs in the Arthe Dale tart boutique
  • Added match to prevent repeat trivial grabs (not sure how we neglected this before)

1.43

  • Fixed Riverhaven start locations broken by renumbering in 1.42
  • Fixed bug in Arthe Dale tart boutique

1.42

  • Fixed bug from update 1.38 that broke moon mage power perception
  • Fixed Ratha storecodes to match case-sensitive variables
  • Improved handling of situations where both your hands are unexpectedly full
  • Implemented Aesry alternate pawn drop bucket
  • Adjusted items for Aesry clothing shop

1.41

  • Haven guild-finding bug fix, upgrade, and now should allow thieves without CONTACT GUILD to search and find it (untested)
  • Binning bug fix for lack of BinItemCount variable
  • "BinOrBucket" variable now auto-corrects for maximum flexibility, permitting BIN feature to be used at bins, buckets, baskets, receptacles, or holes
  • Fixed bug at Riverhaven City Togs shop
  • Fixed bug for accidentally slipping an item out of your container, instead of into it
  • Minor item change, Riverhaven
  • Significant renumbering of Riverhaven travel

1.40

  • Consolidated variables to one block with explanations below for ease of replacement
  • Added additional jail check before returning a movement error
  • Corrected Riverhaven variables RHtog to RHtog1

1.39

  • Fixed bug when using DROP setting (replaced incorrectly removed labels)

1.38

  • Rewrote difficulty/quantity adjustments and eliminated restriction on number of soft toggles (you can break script by entering too many difficulty/quantity modifiers, but you have to go way beyond the parameters of normal script usage to do so)
  • Added ability to enter a soft-toggle to override the top-of-script variables DROP/STOW, MARK/POWER/PERC/STEAL, and PUT/SLIP
  • For non-thieves using pawn shops without trash buckets, script will now take you to the nearest other bucket to dump trash (Haven implemented, Aesry coming soon)
  • Fixed and tested thief binning via non-thief bucketing (uses same system)

1.37

  • Fixed one thief bin bug
  • Fixed infinite loop if error occurred during binning

1.36

  • Added user variable for thieves to choose to SLIP items into their containers
  • Fixed pawn/bin bug due to missing % at SellItemCount variable
  • Another bug fix for short races to enter shops that tall races have to kneel for
  • Updated a few items in Shard
  • Fixed bug for missing start location if the starting shop is closed for the night

1.35

  • Added PROFIT toggle to prefer items that pawn over ones that don't
  • Soft toggle adjustment to permit two modifiers as well as PROFIT toggle
  • Major pawning/binning rewrite; only items you actually attempt to steal will be pawned/binned
  • Switched to setting store items in central engine using nested variables
  • Switched to using INFO to determine class
  • Fixed bug at Riverhaven City Togs shop (1.34 fix used incorrect entrance)
  • Fix for short races to enter shops that require tall races to kneel
  • Eliminated redundant bagcheck code; bagcheck now checks for stored pawn items

1.34

  • Fixed bug at Riverhaven City Togs shop
  • Fixed bug - forgot to set TravelOrShop variable in internal setup
  • Fixed bug at Leth start location (Morikai's accidentally switched to wicker)
  • Fixed direct BIN option for thieves

1.33

  • Eliminated travel debug messaging
  • Simplified start location settings
  • Added more versatile travel/shop variable switch

1.32

  • Aesry justice completed and first attempt at items set
  • Correction to start location numbering in two shops in Leth
  • Correction to Shard justice directions
  • Eliminated startholds and startresumes due to change in startlocation processing
  • Moved most counter sets above labels and compacted settings outside shops except night-closing ones

1.31

  • Fixed another hide/slip sneak bug from Feta's Kitchen in Arthe Dale
  • Added Aesry with 17 shops (bare bones - no items set, justice not yet implemented)

1.30

  • Corrected duplicate labels SHARD.412 and RATHA.LOWER.FREE2

1.29

  • Added 5 potential stops in Riverhaven (Seli's Armory, Bantheld's Ironworks, and back rooms of cleric, bard, and City Togs)
  • Naphtha is now stolen from the cart in Riverhaven
  • Added case for attempting to steal and finding your hands full

1.28

  • Added 8 potential stops in Arthe Dale (Feta's Kitchen, Yulugri Wala x2, and Tart Boutique x5)
  • Added option to run PAWN or BIN directly: .(scriptname) <option>

1.27

  • Eliminated mobile NPC testing whispers

1.26

  • Added STEAL match "nailed to the ground" for Marachek's Oak slip sneak problem
  • Label correction at SHARD.233

1.25

  • Added setting for !RoomBrief so that matches in the rooms work
  • Added echo when script switches type of power perception
  • Couple of minor touchups such as renaming DifficultyA and DifficultyB to Difficulty and Quantity

1.24

  • Fixed bug of getting stuck in stealing loop when stealing more than 2 items from a shop where you can't hide
  • Added missing match to Ratha pawnshop
  • Adjusted item in Ratha bait shop
  • Fixed ending bug after thief binning in Ratha

1.23

  • Label correction at CROSS.138

1.22

  • Fixed match for RT during POWER phase
  • Added moon mage POWER perception cycling
  • Added dangerous MARKing match: looks your way suspiciously
  • Correction to Haven thief guild directions
  • Correction to Ratha pawn shop directions
  • Improved label error response (script says it had an error, instead of displaying the help pages)
  • Script tracks arrest and reminds user to restart gweths/albredine if applicable

1.21

  • Script will now attempt to lower instruments instead of just dropping them.

1.20

  • Added RT match during DROPping of items

1.19

  • Fixed Haven justice system to pay debt in lirums instead of kronars

1.18

  • Revamp of new settings report
  • Disabled ability to enter more than 2 soft toggles
  • Corrected typo that broke script if user applied two conflicting toggles (LESS/MORE, EASY/HARD)

1.17

  • Riverhaven tobacco shop required additional match for inability to stand in the small space

1.16

  • Added Riverhawn pawn shop as start location
  • Added settings report each time script is run to remind user of their settings and toggles
  • The reminder about toggles only shows if user has not used any toggles this run

1.15

  • Fixed problem from 1.12 where the first shop you start in would activate the end of your loop, go to pawn, and end

1.14

  • Added explanation message for failure upon using EASY toggle with too low of ranks

1.13

  • Eliminated perpetual loop of trying to hide when you get pointed out, as the most common causes of this (NPCs) will not change (or at least not quickly) with multiple attempts

1.12

  • Changed startlocation to contain %storecode% from the first store visited, and startlocation check is now done during SHOPCHECK (no longer fails if the room description changes)
  • Reduction of redundancy in empath self-healing
  • Removed unnecessary startlocation setting during empath self-healing in Horse Clan

1.11

  • Stole bug report from another script and thereby added additional class match against WM fake spell prep
  • Added the failure label for thieves in Haven who don't have CONTACT GUILD so we don't take them to bin

1.10

  • Fixed bug that always broke upon start due to a missing "/" from a matchre I changed in 1.09 (oops)

1.09

  • Fixed broken match during Zoluren start location check, and divided startlocation match tables in half

1.08

  • Added toggle whether to DROP all stolen items or STOW them to pawn and bin at the end.

1.07

  • Improved bagcheck match to eliminate false positives on the "OK" condition.

1.06

  • Fixed bug where script would break in Crossing for thieves who started in Leth due to not resetting citycode
  • Improved Crossing auto-empath function and fixed resuming from there to "go arch" since there is no "out"
  • Added automatic toggle to turn off clan option if you are not set to steal anything from there (mainly eliminates pawn attempts for these items)

1.05

  • Bug fix: incorrect NPC stealing label effectively disabled NPC stealing and broke script if NPCs turned off
  • Took out some seemingly unnecessary pauses and rounded significant ones to whole numbers

1.04 and earlier

  • Updated many items based on Elanthipedia lists -- tendency toward easy items (toggle HARD if needed)
  • Added Crossing pawnshop fork to skip pawning Tiger Clan items if clan option is off
  • Removed duplicate ARMORCHECK label
  • Added %itemlocation to MARK attempts for items in or on something
  • If user sets PERC (health) when they can't really use it, it will switch to POWER
  • If user is set to POWER at each shop and can't use POWER either, it will be turned off also
  • Improved matches for MARKing
  • Added match and label to stop humming during class check
  • Added match for ranger signing during class check
  • Added match for non-empath magic user in spell prep portion of class check
  • Set toggle (%npcoption) to skip stealing from NPCs while traveling if exp is full or hand is cut off
  • Fixed bug that caused movement error if you have the clan option turned off
  • Added match to fix the problem where you can't hide in the tannery and get stuck
  • Added match for being unable to stow items that are too wide or too long
  • Added match to drop instruments twice because they don't like to be dropped
  • Fixed issue where we only set %slipoption in the thief section so non-thieves couldn't enter shops