• Visit Rebornbuddy
  • [Plugin] GearSwap

    Discussion in 'Plugins' started by borderjs, Apr 13, 2014.

    1. borderjs

      borderjs Community Developer

      Joined:
      Mar 17, 2014
      Messages:
      248
      Likes Received:
      1
      Trophy Points:
      0
      GearSwap​

      Author: borderjs


      What is GearSwap?

      GearSwap is a plugin that will automatically swap gear based on the various statuses it detects.

      Currently Supports:
      • Stone of Jordan (Left Finger) - Elite
      • Halycon's Ascent - Elite
      • Unity (Right Finger) - Elite
      • Sun Keeper (Main Hand) - Elite
      • Ice Climbers - Movement Impaired
      • Talisman of Aranoch - Cold
      • Mara's Kaleidoscope - Poison
      • The Star of Azkaranth - Fire
      • Xephirian Amulet - Lightning
      • Countess Julia's Cameo - Arcane
      • Nemesis Bracers - Shrines
      • Rogar's Huge Stone (Left Finger) - Low Health
      • Trag'oul Coils - Health Wells
      • St. Archew's Gage - 5Enemies
      • Pox Faulds - 3Enemies
      • Beckon Sail (DH)
      • Blackthorn's set - Put any 2 pieces in your inventory for 2pc bonus for elites! (Elite)
      • Nagelring (Left Finger) - Magic Find
      • Fire Walkers - Barricade
      • Harrington Waistguard - Chest
      • Sebor's Nightmare - Chest (Harrington Waistguard has priority if you have both in your bags)
      • Shi Mizu's Hoari
      • Puzzle Ring
      • Illusory Boots - Swarmed
      • Aughild's Power - Elite
      • Aughild's Spike - Elite
      • Aughild's Search - Elite
      • Aughild's Rule - Elite
      • Krede's Flame - Fire (Right Finger)

      How it Works:
      GearSwap scans the environment checking for varying statuses. After it determines the present statuses it will determine which gear to equip.

      Since several items are equipped in the same slot we must use a priority of statuses to determine which items are equipped.

      Current Priority:
      Priority list is now configurable!!
      Default Priority:
      Beckon Sail (DH)
      Shi Mizu's Hoari
      Low Health
      Magic Find
      Chest
      Movement Impaired
      Shrine
      Well
      Swarmed
      Cold
      Arcane
      Fire
      Poison
      Lightning
      Elite
      3Enemies
      5Enemies
      Barricade
      Puzzle Ring
      If you do not have all of the items listed above do not worry! The plugin will simply ignore that item and move on to the next in the priority list.

      Note - Remember to set your protected inventory slots in the bot config so your items are not stashed on town runs!
      Note - If you use Unity or Stone of Jordan all the time, you need to make sure to have Stone of Jordan on the left finger and Unity on the right. Also similarly with Rogar's Huge Stone must be on the left.

      Future versions will include:
      • Homing Pads - Teleport (will need to create XML tag to do this)
      • Merge GearSwap Extreme
      • Movement Speed Status (for when combat is disable in profile or normal difficulty)
      • Other features as requested

      Future versions will NOT include:
      • Gloves of Worship - Buff doesn't last once gloves are unequipped. Doesn't work on Pylons.

      Change Log:
      SVN Revision 23
      • Added Izual to cold and movement impaired checks.
      • Added Butcher to fire checks.
      • Added fire grates to fire checks.

      Change Log History:
      SVN Revision 22
      • Added Krede's Flame to Fire status (Right Finger)
      SVN Revision 21
      • Added Aughild's Set to Elite status.
      • Added Waller check to Swarmed status for Illusory Boots.
      • Will no longer attempt to equip unidentified items (this was done in a prior update but forgot to mention it.)
      SVN Revision 20
      • No longer will close backpack when in town when using that option.
      SVN Revision 19
      • Fixed Pox Faulds to not trigger when on cooldown.
      • Renamed Critical Health to Beckon Call (since it only was checking for Beckon Call anyways). You may need to re-disable this status if you had it disabled before.
      • Added new status Movement Impaired - Ice Climbers will now be equipped when this status is triggered along with Jailer/Frozen affixed.
      • Added new status Swarmed - By default Swarmed will be triggered when you are below 80% health and are surrounded by at least 6 mobs. These options are adjustable in the config menu.
      • Added support for Illusory Boots (Equipped when Swarmed is triggered).
      • Added option to have GearSwap open up your Backpack before equipping an item. Backpack will stay open for 1.5 seconds after item is equipped. This is disabled by default. You may not want to enable this option when playing with Blank Profile. (Note that when using this option if you open the backpack manually it will almost immediately be closed.
      • Added configuration options for all added items to the config menu.
      • Added Kulle to Arcane and Extreme cold riftboss to Cold checks.
      SVN Revision 18
      • Added Inferior items to Puzzle Ring check.
      SVN Revision 16/17
      • Code Cleanup - Separated functions and used better coding techniques. Added additional error checking and exception handling.
      • Due to better coding I have added a configuration option to allow you to determine how often GearSwap will pulse. (This used to be 1 second. I have lowered it to every .5 seconds with the option to go down to .25 if you prefer. You can also increase it to up to every 5 seconds if you would like to save on resources.)
      • Added the following statuses: Puzzle Ring, Shi Mizu's Hoari
      • Added support for the following items: Puzzle Ring, Shi Mizu's Haori, Sebor's Nightmare
      • Added the following Config Options:
        • Low Health Duration - This will determine how long you will keep your Rogar's Huge Stone equipped after you go above the Low Health
        • Percentage.
        • Pulse Interval - Explained above
        • Shi Mizu's Hoari % - Since Shi MIzu's Hoari can roll 20%-25% you will need to set your % here.
        • Puzzle Ring and Shi Mixu's Hoari enabling checkboxes.
      • Really added support for Harrington's Waistguard. Apparently I forgot to update the file to SVN/Zip file last time.
      • Added a button to reset the priority list to default in config options.
      • Fixed the handling of priority files that were missing statuses.
      • Changed how Pox Faulds works - Since cloud now disappears when you unequip the item. It will now stay equipped as long as you have the stinky buff IF there is at least 1 monster within 12 yards.
      SVN Revision 15
      • Minor bug fix that could possibly have cause swapping of gear out of priority order or gear not swapping at times at all.
      SVN Revision 14
      • Added new status Chest - Triggers whenever you are within 30 yards of a lootable object,
      • Harrington Waistguard supported - Will equip belt when Chest is triggered. Will stay equipped as long as you have the buff (since it will go away otherwise).
      SVN Revision 13
      • Added configurable priority list in config menu.
      • Distance is now configurable for Barricade in config menu.
      • Debug Logging option added.
      SVN Revision 12
      • Added status Barricade - This triggers when a destructible object is within 2. This is useful if you are running a profile that gets stuck on barricades or other objects so the bot will equip Fire Walkers.
      • Added config option for Barricade
      • Added Fire Walkers for Barricade status
      • Added config option "Ignore Elemental Statuses when Invulnerable - Having this option enabled will not check for statuses when you are invulnerable. This will keep your dps maxed when you do not need to swap in survivability gear.
      SVN Revision 10
      • Added Cain's Set.
      • Rewrote detection methods to allow for Config Menu customization.
      • Redid Config Menu - Now you can disable statuses you do not have items for.
      • Added spot in Config Menu to Edit Priority - This is not implemented yet so it will be blank for now.
      • Added better error handling.
      SVN Revision 8
      • Added Status Magic Find
      • Added slider for Magic Find in Config, adjust what percent the mob must be at before MF gear is equipped.
      • Fixed Low Health status.
      • Added support for Nagelring (could add Cain's set if people provide me SNO)
      SVN Revision 7
      • Added Blackthorns for Elite swapping. Just put 2 pieces you like in your inventory for 10% elite damage!
      SVN Revision 4
      • Fixed Statuses: 5Enemies & 3Enemies to no longer consider Scenery in count.
      SVN Revision 3
      • Fixed Statuses: 5Enemies & 3Enemies to no longer consider Allies in the count.
      • Also added Config options to enable or disable logging and to change the % in which low health ring is equipped.
      Version 8
      • Added support for 3 new conditions:
        -5Enemies - Player is surrounded by 5 enemies within 12 yards.
        -3Enemies - Player is surrounded by 3 enemies within 12 yards.
        -Critical Health - Player is under 25% health (for DH cloak)
      • Added support for 3 new items that go along with these conditions (St. Archew's Gage, Pox Faulds, Beckon Sail)
      • Created a config window for the Plugin.
        -Still in process, has no options to configure yet (but soon!).
        -Provided a Dump ActorSNO button in config menu that will allow you to quickly dump the ActorSNO of all items equipped and in your inventory. (This works much faster than the Trinity version since it only provides ActorSNO)
      Version 7c
      • Added support for final item that was missing ActorSNO (The Star of Azkaranth)
      Version 7b
      • Added support for 3 items that we were missing ActorSNO for (Talisman of Aranoch, Halycon's Ascent, and Mara's Kaleidoscope) Still need ActorSNO for The Star of Azkaranth before it will be supported if anyone has it!
      Version 7
      • Trag'oul Coils - Will no longer be equipped for Experience Shrines (doesn't work with them)
      • Fixed issue with reequipping Rare (yellow) items.
      Version 6
      • Recoded the plugin to account for non English Clients
      • Due to this recode V6 does not support every item yet. I still need ActorSNO numbers of the items above. If you have any of these items please dump the Item data with Trinity and submit the ActorSNO data for me!
      Version 5
      • Almost a complete rewrite of the plugin to make it easier to handle additional statuses and gear.
      • Added support for several new statuses: Low Health, Shrines, and Wells
      • Added support for several additional items: Unity, Sun Keeper, Ice Climbers, Trag'Oul Coils, Nemesis Bracers, Halycon's Ascent
      Version 4
      • Additional Code to cleanup when new game is started.
      Version 3
      • Fixed Mara's Kaleidoscope spelling
      • Modified how Stone of Jordan is equipped which should make that work better.
      • Added code to cleanup when the bot restarts the profile before GearSwap can equip original items. Helps with single boss kill profiles.
      • Attached a German version (Thanks kleinerMann)
      Version 2
      • Stone of Jordan support (Elite) added
      • Talisman of Aranoch Support (Cold) added
      • Mara's Kaleidoscope Support (Poison) added
      • The Star of Azkaranth Support (Fire) added
      • Xephirian Amulet Support (Lightning) added
      Version 1
      • Initial Release only Arcane supported

      If this Plugin made your life a little better feel free to buy me a beer!

      [​IMG]

      SVN Link:
      GearSwap SVN

      Run This While Playing Manually! (OPTIONAL):
      Blank Combat Routine
      If you would like to play Diablo by hand and still enjoy the benefits of GearSwap use the blank combat routine linked above along with the blank profile attached and you will be able to run any plugin you like without DB interfering with play!

      Note: You will need both the linked Blank Combat Routine AND the Blank.xml profile to play by hand.
       

      Attached Files:

      Last edited: Jun 9, 2014
    2. Kevin Spacey

      Kevin Spacey Community Developer

      Joined:
      Aug 31, 2013
      Messages:
      2,830
      Likes Received:
      11
      Trophy Points:
      38
      good job!
       
    3. inacumb

      inacumb New Member

      Joined:
      Mar 17, 2014
      Messages:
      11
      Likes Received:
      0
      Trophy Points:
      0
      Won't it be stashed during town run? Anyway, good idea :)
       
    4. ShansksKun

      ShansksKun New Member

      Joined:
      Apr 13, 2014
      Messages:
      27
      Likes Received:
      0
      Trophy Points:
      1
      You can protect the inventoryslot it is on in the bot settings, so it won't be affected by stashing/salvaging.
       
    5. Xaxus

      Xaxus New Member

      Joined:
      Apr 5, 2014
      Messages:
      11
      Likes Received:
      0
      Trophy Points:
      0
      No support for the Fire and Poison amulets?
       
    6. borderjs

      borderjs Community Developer

      Joined:
      Mar 17, 2014
      Messages:
      248
      Likes Received:
      1
      Trophy Points:
      0
      On the to do list. I do not have those amulets yet. I will work on this soon! We would need to determine a priority list. Which affix would be the worst.

      Arcane
      Fire
      Poison
      Lightning
      Cold

      Any thoughts on the order we should prioritize?
       
      Last edited: Apr 13, 2014
    7. Clownfisch

      Clownfisch Member

      Joined:
      Jan 29, 2012
      Messages:
      50
      Likes Received:
      0
      Trophy Points:
      6
      Nice Work !

      Cold
      Arcane
      Fire
      Poison
      Light

      i Would Prefered
       
    8. phobix

      phobix Member

      Joined:
      Jan 15, 2010
      Messages:
      133
      Likes Received:
      1
      Trophy Points:
      18
      Could also be used when shrines are clicked with nemisis bracers.
       
    9. xxfearxx

      xxfearxx New Member

      Joined:
      Apr 17, 2013
      Messages:
      176
      Likes Received:
      2
      Trophy Points:
      0
      would be awesome to also have it put on homing pads whenever teleporting if possible
       
    10. borderjs

      borderjs Community Developer

      Joined:
      Mar 17, 2014
      Messages:
      248
      Likes Received:
      1
      Trophy Points:
      0
      I can detect the Shrines, but I do not know of a way to differentiate between a used shrine or a shrine yet to be used. Would just be leaving the bracers on until the Shrine gets out of range of Demonbuddy. At least I do not know of a way. If someone else does would be a good idea.
       
    11. borderjs

      borderjs Community Developer

      Joined:
      Mar 17, 2014
      Messages:
      248
      Likes Received:
      1
      Trophy Points:
      0
      I am not sure of a way to detect when a player is teleporting. If someone knows of a way to detect this I could implement.
       
    12. Kevin Spacey

      Kevin Spacey Community Developer

      Joined:
      Aug 31, 2013
      Messages:
      2,830
      Likes Received:
      11
      Trophy Points:
      38
      mb we need a new tag to the profile, before UsePortalTag, to swap shoulders
       
    13. NoWayLol

      NoWayLol New Member

      Joined:
      Apr 30, 2012
      Messages:
      557
      Likes Received:
      2
      Trophy Points:
      0
      Pretty sweet! If I had any of them I'd test it, but sadly I haven't been so lucky yet. :(
      But the idea here is awesome, nice work.
       
    14. rrrix

      rrrix DEVELOPER Buddy Core Dev

      Joined:
      Jul 11, 2010
      Messages:
      3,449
      Likes Received:
      61
      Trophy Points:
      0
      Cool stuff.

      Just a note - this will only work with English clients, as the item names are not translated. There's no good reliable way that I currently know of to get a non-translated ID of a particular legendary item.
       
    15. aionskyg

      aionskyg Banned

      Joined:
      Sep 3, 2012
      Messages:
      132
      Likes Received:
      0
      Trophy Points:
      16
      good job!
       
    16. Kevin Spacey

      Kevin Spacey Community Developer

      Joined:
      Aug 31, 2013
      Messages:
      2,830
      Likes Received:
      11
      Trophy Points:
      38
      you can easy find the names of the items in the Game Guide on the off site
       
    17. timwang

      timwang Member

      Joined:
      Nov 22, 2012
      Messages:
      136
      Likes Received:
      1
      Trophy Points:
      18
      Is there a way to find the item id manually? Then put the ID into the code directly. But of course everybody need to manually change the code. Or the plug in provide an interface to let people to set the ITEM ID to the plugin if they can find it by themself manually.
       
    18. Arden

      Arden Member

      Joined:
      Jun 20, 2012
      Messages:
      114
      Likes Received:
      0
      Trophy Points:
      16
      Great job borderjs!
       
    19. borderjs

      borderjs Community Developer

      Joined:
      Mar 17, 2014
      Messages:
      248
      Likes Received:
      1
      Trophy Points:
      0
      Unfortunately the Dynamic ID used is generated as a different number every time you load the game. I wonder if we put the name as it is spelled in another language into the code if that would work. That is impossible for me to test since I do not have a non-English client.
       
    20. borderjs

      borderjs Community Developer

      Joined:
      Mar 17, 2014
      Messages:
      248
      Likes Received:
      1
      Trophy Points:
      0
      Just put out Version 2.

      Version 2
      • Stone of Jordan support (Elite) added
      • Talisman of Aranoch Support (Cold) added
      • Mara's Kaleidoscope Support (Poison) added
      • The Star of Azkaranth Support (Fire) added
      • Xephirian Amulet Support (Lightning) added

      I do not have the amulets so if someone could test them to verify they work. I tested them with other generic amulets so as long as I spelled the names correctly it should work!

      Thanks!
       

    Share This Page