Results 1 to 8 of 8

Thread: Riath's LOOTER (EasyUO)

  1. #1

    Riath's LOOTER v1.4 (EasyUO)

    This works for corpses, dungeon chests, T-Map chests, SOS chests... Any container. If you find one it won't open, please post in a reply or PM me.

    When the hotkey is pressed, this script will do the following:
    * Find a corpse OR container within 2 tiles.
    * Check the Z-Axis of the corpse/container to avoid crashes.
    * Loot the gold.
    * Perform a [ga command.
    * Identify the remaining items.
    * Loot any items that have Pre-AOS attributes (these sell for great gold at vendors, often more than the gold that was on the creature in the first place).
    * Claim the corpse.

    Default hotkey is F12 - can be changed within the user variables. Also, if you get issues with timing or lag, increase the delay variables in increments of 5 (10 becomes 15, etc).

    Code:
    ;Hotkey-Activated Looter by Riath D'Ersines
    ;Loots gold, system- and user-defined items, graball's stacks, ID's remaining items and loots those with Pre-AOS properties for vendor sale
    ;DO NOT use at champs or where you expect to run across PLAYER corpses. I left remains as lootable in order to loot brigands and the like.
    ;Inspired by Catnip's Item ID / Looter
    ;Special thanks to Piriformis for lag testing :)
    ;
    ;VERSION 1.4 - Made Z-Axis a user variable (Thanks Piriformis). Formatting improvements.
    ;VERSION 1.3 - Added Loot ID's for Paragon Chests and Prism of Light keys (Thanks Piriformis)
    ;VERSION 1.2 - Added Container and Loot ID's
    ;VERSION 1.1 - Fixed a grab issue (Yes, it does [ga twice. Intentional.)
    ;VERSION 1.0 - Initial Release
    ;
    ;
    ;=======================================================================
    ;
    ;
    ;user defined variables
    set %hotkey f12              ;Enter what you'd like to use as a hotkey
    set %lootbag N/A            ;Enter NONE to use your main pack
    set %dragdropdelay 10
    set %objdelay 10
    set %iddelay 20
    set %loot SVH_HEJ_EWH_JPE_ETH_CPF_QUF_EU_WY_ATS_BZGB_CMF_DAG_DUN_DWR_DYM_ETH_EWH_
              +EWR_FIL_FWR_GHH_GWR_HAG_HEJ_HTD_JPE_JWI_KDF_NZG_OFT_OMF_OWK_OZG_POF_QCK_
              +QUF_QZG_REE_RQF_SVH_TWN_TZG_UDF_UXF_UZG_XVK_VRD_VFM_YJM_YWK_XZY_ZSL_NKI_
              +QPF_BIG_OZF_RZF_ZFM_MIG_PZF_LZF_VQE_VMK_TLH_UFG_TIN_RVH_TKG_ABN_SBN_DAN_
              +KUF_JUF_KZF_JZF_MZF_WZF_RZF_SZF_NZF_DUF_TZF_UZF_YZF_IUF_HVF_UVF_FVF_HBN_
              +EVF_OVF_VUF_GVF_RVF_BVF_kym_pym_sym_tym_wym_AUL_BUL_cul_dul_EUL_FUL_GUL_
              +hul_iul_JUL_KUL_LUL_MUL_nul_oul_PUL_QUL_RUL_SUL_tul_UUL_vul_wul_XUL_YUL_
              +zul_avl_gvl_fvl_ivl_hvl_cvl_NTL_otl_ptl_qtl_rtl_stl_ttl_utl_VTL_wtl_XTL_
              +YTL_ZTL_qxl_pxl_zxl_nxl_wxl_vxl_yxl_xxl_zfj_byl_cyl_dyl_eyl_fyl_gyl_hyl_
              +iyl_jyl_kyl_VVF_NVF_DEH_ZVF_OYM_JJG_EUO_LCR_GCR_MYM_LYM_OYM_NYM_IYM_CZM_
              +HYM_KYM_JYM_UYM_TYM_WYM_VYM_QYM_PYM_SYM_RYM_FCR_DCR_GCR_MCR_ZBR_NCR_KCR_
              +OCR_JCR_CCR_ZBR_LCR_ICR_HCR_ACR_YQD_FKF_BUD_IIF_IKF_HIF_OXM_BXM_DXM_UBM_
              +TBN_CNL_YVH_AYL_GRD_UJG_LWL_IJG_CWL_
    set %zaxisdiff 4                      ;# of tiles higher or lower the corpse can be to try to loot
    ;
    ;
    ;==============DO NOT MODIFY BEYOND THIS POINT============================
    ;
    ;
    IGNOREITEM RESET
    
    if %lootbag = NONE
        set %lootbag #backpackid
    
    if %lootbag = N/A
        {
        display ok Please target your loot bag now!
        set #targcurs 1
        settarg:
             if #targcurs = 1
                  goto settarg
             set %lootbag #ltargetid
        }
    
    ;programloop
    start:
    onhotkey %hotkey
    {
    loop:
    event exmsg #charid 3 0 FINDING CORPSE/CONTAINER!
    gosub findcorpse
    event exmsg #charid 3 0 LOOTING GOLD!
    gosub lootgold
    event exmsg #charid 3 0 GRABBING!
    gosub grab
    event exmsg #charid 3 0 LOOTING ITEMS!
    gosub lootitems
    event exmsg #charid 3 0 IDENTIFYING!
    gosub identify
    event exmsg #charid 3 0 LOOTING ID'D ITEMS!
    gosub lootpreaos
    event exmsg #charid 3 0 CLAIMING CORPSE!
    gosub claim
    event exmsg #charid 3 0 DONE!
    }
    goto start
    
    ;find corpse and test for z-axis
    sub findcorpse
        finditem YFM_CKF_LKF_ZJF_JIF_HIF_KIF_IIF_CUD_HKF_VMF_BUD_KUD_BKF_ZTD_TMF_UMF_WMF G_2
        set %corpse #findid
        if #findz - #charposz < %zaxisdiff
             {
             if #findcnt > 0
                  {
                  set #lobjectid %corpse
                  event macro 17
                  wait %objdelay
                  return
                  }
             event exmsg #charid 3 0 NO CORPSE FOUND!
             GOTO start
             }
        event exmsg #charid 3 0 CORPSE IS TOO HIGH OR LOW TO LOOT!
        goto start
        
    
    ;manually loot gold
    sub lootgold
        goldloop:
             finditem POF C_ , %corpse
             if #findcnt > 0
                  {
                  Exevent Drag #findid #findstack
                  wait %dragdropdelay
                  Exevent Dropc %lootbag
                  wait %dragdropdelay
                  goto goldloop
                  }
             return
    
    
    ;grab all
    sub grab
        event macro 1 0 [ga
        target
        set #ltargetid %corpse
        set #ltargetkind 1
        event macro 22
        wait %objdelay
        event macro 1 0 [ga
        target
        set #ltargetid %corpse
        set #ltargetkind 1
        event macro 22
        wait %objdelay
        return
        
    
    ;loot defined items
    sub lootitems
        lootloop1:
             finditem %loot C_ , %corpse
             if #findcnt > 0
                  {
                  Exevent Drag #findid #findstack
                  wait %dragdropdelay
                  Exevent Dropc %lootbag
                  wait %dragdropdelay
                  goto lootloop1
                  }
             return
                  
    
    ;ID remaining items
    sub identify
        identifyloop:
             finditem * C_ , %corpse
             if #findcnt > 0
                  {
                  set #ltargetid #findid
                  set #ltargetkind 1
                  set %jstart #jIndex + 1
                  event macro 13 3
                  target 3s
                  event macro 22
                  wait %iddelay
                  set %jend #jIndex
                  for %ji %jstart %jend
                       {
                       scanJournal %ji
                       if not_certain in #journal || must_wait in #journal
                       goto identifyloop
                       }
                  ignoreitem #findid
                  goto identifyloop
                  }
             ignoreitem reset
             return
                  
    
    ;loot all pre-aos
    sub lootpreaos
        IGNOREITEM RESET
        lootloop2:
             finditem * C_ , %corpse
             if #findcnt > 0
                  {
                  event property #findid
                  wait %objdelay
                  if Durable in #property || Substantial in #property || Massive in #property || Fortified in  #property || Indestructible in #property || Vanquishing in #property || Ruin in #property || Might in #property || Force in #property || Power in #property
                       {
                       Exevent Drag #findid #findstack
                       wait %dragdropdelay
                       Exevent Dropc %lootBag
                       wait %dragdropdelay
                       goto lootloop2
                       }
                  else
                       {
                       ignoreitem #findid
                       goto lootloop2
                       }
                  }
             return
    
    
    ;claim
    sub claim
        set #ltargetid %corpse
        set #ltargetkind 1
        event macro 1 0 [cl
        target 3s
        event macro 22 0
        wait %objdelay
        return

    THIS code is an experimental modification I made to the looter. It does everything the looter does, as well as the following:
    * Casts Mirrors
    * Bandaids you as needed
    * Auto attacks / All Kill's any enemy that targets you or that you attack. Fresh mirrors are automatically told to attack as well.

    Give it a try if you're feeling adventurous!!! Feedback is needed before I can consider it "released".

    Code:
    ;HUNTER by Riath D'Ersines - Hotkey Utilized Necessary Task Effort Reducer
    ;
    ;Auto attacks and "All Kill" enemies that attack you or that you attack.
    ;Bandage self as needed.
    ;Casts Mirrors as needed (to deactivate, just be mounted 'til I find a better fix)
    ;Loots gold.
    ;Loots system- and user-defined items
    ;[GA's corpse
    ;Loots skill jewelry above a user-defined threshhold
    ;ID's remaining items and loots those with Pre-AOS properties for vendor sale
    ;
    ;DO NOT use at champs or where you expect to run across PLAYER corpses. I left remains as lootable in order to loot brigands and the like.
    ;Inspired by Catnip's Item ID / Looter and CEOMedic
    ;Special thanks to Piriformis for lag testing :)
    ;
    ;VERSION 0.2 - Beta Release
    ;VERSION 0.1 - Beta Release
    ;
    ;
    ;=======================================================================
    ;
    ;
    ;user defined variables
    set %hotkey f12          ;Enter what you'd like to use as a hotkey
    set %lootbag N/A        ;Enter NONE to use your main pack
    set %dragdropdelay 10
    set %objdelay 10
    set %iddelay 20
    set %container YFM_CKF_LKF_ZJF_JIF_HIF_KIF_IIF_CUD_HKF_VMF_BUD_KUD_BKF_ZTD_TMF_UMF_
                   +WMF
    set %loot SVH_HEJ_EWH_JPE_ETH_CPF_QUF_EU_WY_ATS_BZGB_CMF_DAG_DUN_DWR_DYM_ETH_EWH_
              +EWR_FIL_FWR_GHH_GWR_HAG_HEJ_HTD_JPE_JWI_KDF_NZG_OFT_OMF_OWK_OZG_POF_QCK_
              +QUF_QZG_REE_RQF_SVH_TWN_TZG_UDF_UXF_UZG_XVK_VRD_VFM_YJM_YWK_XZY_ZSL_NKI_
              +QPF_BIG_OZF_RZF_ZFM_MIG_PZF_LZF_VQE_VMK_TLH_UFG_TIN_RVH_TKG_ABN_SBN_DAN_
              +KUF_JUF_KZF_JZF_MZF_WZF_RZF_SZF_NZF_DUF_TZF_UZF_YZF_IUF_HVF_UVF_FVF_HBN_
              +EVF_OVF_VUF_GVF_RVF_BVF_kym_pym_sym_tym_wym_AUL_BUL_cul_dul_EUL_FUL_GUL_
              +hul_iul_JUL_KUL_LUL_MUL_nul_oul_PUL_QUL_RUL_SUL_tul_UUL_vul_wul_XUL_YUL_
              +zul_avl_gvl_fvl_ivl_hvl_cvl_NTL_otl_ptl_qtl_rtl_stl_ttl_utl_VTL_wtl_XTL_
              +YTL_ZTL_qxl_pxl_zxl_nxl_wxl_vxl_yxl_xxl_zfj_byl_cyl_dyl_eyl_fyl_gyl_hyl_
              +iyl_jyl_kyl_VVF_NVF_DEH_ZVF_OYM_JJG_EUO_LCR_GCR_MYM_LYM_OYM_NYM_IYM_CZM_
              +HYM_KYM_JYM_UYM_TYM_WYM_VYM_QYM_PYM_SYM_RYM_FCR_DCR_GCR_MCR_ZBR_NCR_KCR_
              +OCR_JCR_CCR_ZBR_LCR_ICR_HCR_ACR_YQD_FKF_BUD_IIF_IKF_HIF_OXM_BXM_DXM_UBM_
              +TBN_CNL_YVH_AYL_GRD
    set %jewelry UJG_LWL_IJG_CWL_
    set %minskill 10
    set %zaxisdiff 4     ;#of tiles allowed corpse to be higher or lower to loot
    ;
    ;===================EXPERIMENTAL OPTIONS==================================
    ;
    set %huntmode #true
    set %mirrordelay 50
    set %bandaiddelay 15
    ;
    ;==============DO NOT MODIFY BEYOND THIS POINT============================
    ;
    IGNOREITEM RESET
    
    if %lootbag = NONE
        set %lootbag #backpackid
    
    if %lootbag = N/A
        {
        display ok Please target your loot bag now!
        set #targcurs 1
        settarg:
             if #targcurs = 1
                  goto settarg
             set %lootbag #ltargetid
        }
    
    ;programloop
    start:
        if %huntmode = #true
             {
             gosub mirrors
             gosub attack
             gosub healthcheck
             }
        onhotkey %hotkey
             {
             loop:
                  gosub checkweight
                  gosub findcorpse
                  gosub lootgold
                  gosub grab
                  gosub lootitems
                  gosub jewelry
                  gosub identify
                  gosub lootpreaos
                  gosub claim
        }
    
    goto start
    
    ;check weight against max weight or max pack weight
    sub checkweight
        if #maxweight > 550
             set %maxweight 450
        else
             set %maxweight #maxweight - 100
        if #weight > %maxweight
             {
             event exmsg #charid 3 0 TOO HEAVY! UNLOAD LOOT!
             goto start
             }
        return
        
    ;find corpse and test for z-axis
    sub findcorpse
        event exmsg #charid 3 0 FINDING CORPSE/CONTAINER!
        finditem %container G_2
        set %corpse #findid
        if #findz - #charposz < %zaxisdiff
             {
             if #findcnt > 0
                  {
                  set #lobjectid %corpse
                  event macro 17
                  wait %objdelay
                  return
                  }
             event exmsg #charid 3 0 NO CORPSE FOUND!
             GOTO start
             }
        event exmsg #charid 3 0 CORPSE IS TOO HIGH OR LOW TO LOOT!
        goto start
        
    
    ;manually loot gold
    sub lootgold
        goldloop:
             event exmsg #charid 3 0 LOOTING GOLD!
             finditem POF C_ , %corpse
             if #findcnt > 0
                  {
                  Exevent Drag #findid #findstack
                  wait %dragdropdelay
                  Exevent Dropc %lootbag
                  wait %dragdropdelay
                  goto goldloop
                  }
             return
    
    
    ;grab all
    sub grab
        event exmsg #charid 3 0 GRABBING!
        event macro 1 0 [ga
        target
        set #ltargetid %corpse
        set #ltargetkind 1
        event macro 22
        wait %objdelay
        event macro 1 0 [ga
        target
        set #ltargetid %corpse
        set #ltargetkind 1
        event macro 22
        wait %objdelay
        return
        
    
    ;loot defined items
    sub lootitems
        lootloop1:
    
             finditem %loot C_ , %corpse
             if #findcnt > 0
                  {
                  event exmsg #charid 3 0 LOOTING ITEMS!
                  Exevent Drag #findid #findstack
                  wait %dragdropdelay
                  Exevent Dropc %lootbag
                  wait %dragdropdelay
                  goto lootloop1
                  }
             finditem %jewelry C_ , %corpse
             if #findcnt > 0
                  {
                  event sxmsg #charid 3 0 LOOTING +SKILL JEWELRY!
                  set %threshhold %minskill
                  event property #findid
                  while %threshhold < 25
                       {
                       set %threshhold %threshhold + 1
                       set %skill + , %threshhold
                       if %threshhold in #property
                            {
                            Exevent Drag #findid #findstack
                            wait %dragdropdelay
                            Exevent Dropc %lootbag
                            wait %dragdropdelay
                            goto lootloop1
                            }
                       }
                  ignoreitem #findid
                  goto lootloop1
                  }
             return
    
    
    ;ID remaining items
    sub identify
        identifyloop:
    
             finditem * C_ , %corpse
             if #findcnt > 0
                  {
    
                  event exmsg #charid 3 0 IDENTIFYING!
                  set #ltargetid #findid
                  set #ltargetkind 1
                  set %jstart #jIndex + 1
                  event macro 13 3
                  target 3s
                  event macro 22
                  wait %iddelay
                  set %jend #jIndex
                  for %ji %jstart %jend
                       {
                       scanJournal %ji
                       if not_certain in #journal || must_wait in #journal
                       goto identifyloop
                       }
                  ignoreitem #findid
                  goto identifyloop
                  }
             ignoreitem reset
             return
                  
    
    ;loot all pre-aos
    sub lootpreaos
        IGNOREITEM RESET
        lootloop2:
    
             finditem * C_ , %corpse
             if #findcnt > 0
                  {
    
                  event property #findid
                  wait %objdelay
                  if Durable in #property || Substantial in #property || Massive in #property || Fortification in  #property || Indestructable in #property || Vanquishing in #property || Ruin in #property || Might in #property || Force in #property || Power in #property || Guarding in #property || Fortified in #property || Defense in #property
                       {
                       event exmsg #charid 3 0 LOOTING ID'D ITEMS!
                       Exevent Drag #findid #findstack
                       wait %dragdropdelay
                       Exevent Dropc %lootBag
                       wait %dragdropdelay
                       goto lootloop2
                       }
                  else
                       {
                       ignoreitem #findid
                       goto lootloop2
                       }
                  }
             return
    
    
    ;claim
    sub claim
        event exmsg #charid 3 0 CLAIMING CORPSE!
        set #ltargetid %corpse
        set #ltargetkind 1
        event macro 1 0 [cl
        target 3s
        event macro 22 0
        wait %objdelay
        event exmsg #charid 3 0 DONE LOOTING!
        return
    
    sub mirrors
        set %maxmirrors #maxfol
        if #maxfol = 7
             {
             set %maxmirrors 6
             }
        if #maxfol = 5
             {
             set %maxmirrors 4
             }
        ;event exmsg #charid 3 0 MAX MIRRORS %maxmirrors
        if #followers < %maxmirrors
             {
             event macro 15 252
             wait %mirrordelay
             }
    
    
    sub attack
        if #enemyid = N/A
             {
             return
             }
        if #enemyid = %enemy
             {
             return
             }
        set %enemy #enemyid
        event macro 1 0 All kill
        target
        set #ltargetid %enemy
        event macro 22
        event macro 27
        return
    
    sub healthcheck
        if #hits < #maxhits
             {
             finditem ZLF c_ #backpackid
             set #lobjectid #findid
             event macro 17
             target
             event macro 23
             wait %bandaiddelay
             }
        return
    Attached Files Attached Files
    Last edited by Riath D'Ersines; 12-24-2016 at 11:14 PM. Reason: Update

  2. #2
    If anyone has a comprehensive list of Dungeon Loot item types, I'll add them in. Otherwise, I'll just add them to my own copy and update this one periodically with the additions.

  3. #3
    Things to add to the looter

    ;BUD ;IIF ;IKF ;HIF Paragon Chest

    ;OXM ;BXM ;DXM ;UBM ;TBN ;SBN Prisim of Light Keys
    ;DAN ;ABN ;HBN Shimmering Crystals - Prism of Light
    Last edited by Piriformis; 12-23-2016 at 01:16 AM.

  4. #4
    I'll get 'em added. For future reference, it makes my job easier if you post them in this format: ###_###_###_###_ etc. Just sayin'

  5. #5
    Original post has been updated to add an experimental version of the looter that also attacks enemies, heals, and casts mirrors. If you try any of my scripts, please leave feedback so I have an idea of what needs to be fixed/altered/added/removed. Thank you in advance!!!

  6. #6
    was having trouble getting it to work with easy uo may have been the version i was using it should it matter ?
    Smile Each Morning Because You Were Given The Gift Of Today

  7. #7
    Member Vita's Avatar
    Join Date
    Feb 2013
    Location
    Live In A Mushroom
    Posts
    37
    yes i was have trouble to

  8. #8
    downloaded it but i also am having trouble getting it to work hope i can find out why cause it sounds like just what i need

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •