this plugin doesnt restart game.game crash if restart game too quickly
Oh an extra suggestion for whenever you get around implementing the "low HP detection" part for Nagelring, if it's possible:
- Swap a helm with a MF gem (not sure how to detect that easily on your side)
- Swap Cain Set pieces in inventory
This would allow to get up to 141% MF from just 4 items, so 14% more legendary drops, which starts being quite decent and even better on boss farming where there is just 1 kill per run to fully benefit from it.
Edit: could even skip the MF gem part, and just assume the user is smart and using a Cain Helm with the MF gem for one less item to swap (and one less thing to detect)
Hi borderjs,
Can you help me to code "Gloves of Worship" for Shrine ? Cause this gloves can increase the time for Shrine up to 10 minutes. Then the bot can swap back to original items when the 10 mins CD of Shrine is gone.
Gloves of Worship - ActorSNO: 332344
And I think "Low Health" option is not working atm.
Thank you.
My suggestion is to disable the plugin, load the profile, and re-enable the plugin. See if that helps. I haven't experienced this issue.i means if i load a profile which will restart game for a bounty, the plugin will make game crash.
[GearSwap] Item: Blackthorne's Jousting Mail - ActorSNO: 222477 ---- pants
[GearSwap] Item: Blackthorne's Spurs - ActorSNO: 222463 ---- boots
Can you implement blackthornes 2 set bonus +elite bonus? and have check boxes in config window for which item you have for the blackthorne(belt chest pants boots amulet).
and..
[GearSwap] Item: Spaulders of Zakara - ActorSNO: 298163 ---- your item become indestructible and sway just before dieing to save money from repair. The only thing might hinder this is DB performance block. But imagine if it does work you can do T6 rift boss and your DB won't reset new game from death handling (red damage armor).
The MF thing may be difficult to accomplish. I would need to be able to detect when a mob is low and they are the last one around in that group. Some elite packs have 5 mobs in them, then if you get multiple packs we are sure to run into some issues! Maybe the best way to start it would be to implement just swapping on the very last elite alive with low health and make it better from there.
Pretty easy to just add the 2 Blackthorns to the gear list. I could just add all pieces and if you just put the ones in your inventory that you want to swap it would equip them on elites. I can add checkboxes possibly as well in config when i get some time. Was thinking about the Spaulders as well, wouldn't be 100%, but may help. I could try like <10% health equip them, or 5%. But spike damage would cause it not to work.
Added all Blackthorn's to revision 7. Just put the pieces you would like to use in your inventory and you are good to go![GearSwap] Item: Blackthorne's Duncraig Cross - ActorSNO: 224189
[GearSwap] Item: Blackthorne's Notched Belt - ActorSNO: 224191
Only missing now is chest which I dont have.
You could just start by only swapping for yellow/purple elites (and goblins?) that are about to die, since these 2 types always drop the loot right after the mob dies, even if they have minions. And implement the blue elite packs later on when you find a good way to keep track of the entire pack.
....
so this gloves useless for swap
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 equiped.
- Fixed Low Health status.
- Added support for Nagelring (could add Cain's set if people provide me SNO)
works nice with nemesis bracers, beside fountain-like shrines but its rather DB problem?
getting this spammed in console however [exceptions during ReadProcessMemory or WriteProcessMemory addresses 20, 320]:
latest everythingMoving item args: <itemId:2019819677, ownerId:2017722493, InventorySlot:Bracers, column:0, row:0>
Exception while pulsing plugin GearSwap: System.Exception: Ukończono tylko część żądania ReadProcessMemory lub WriteProcessMemory, at addr: 00000020, Size: 4
w GreyMagic.ExternalProcessMemory.ReadByteBuffer(IntPtr addr, Void* buffer, Int32 count)
w GreyMagic.MemoryBase.Read[T](IntPtr addr)
w Zeta.Game.Internals.FastAttribGroupsEntry.GetAttribute[T](Int32 attribute)
w Zeta.Game.Internals.Actors.ACD.GetAttribute[T](Int32 attribute)
w Zeta.Game.Internals.Actors.ACD.GetAttribute[T](ActorAttributeType attributeType)
w Zeta.Game.Internals.Actors.DiaUnit.get_IsAttackable()
w GearSwap.gearSwap.<checkArea>b__0(DiaUnit a)
w System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
w System.Linq.Enumerable.Count[TSource](IEnumerable`1 source)
w GearSwap.gearSwap.checkArea()
w GearSwap.gearSwap.OnPulse()
w Zeta.Common.Plugins.PluginManager.PulsePlugin(IPlugin plugin)
Exception while pulsing plugin GearSwap: System.Exception: Ukończono tylko część żądania ReadProcessMemory lub WriteProcessMemory, at addr: 00000020, Size: 4
w GreyMagic.ExternalProcessMemory.ReadByteBuffer(IntPtr addr, Void* buffer, Int32 count)
w GreyMagic.MemoryBase.Read[T](IntPtr addr)
w Zeta.Game.Internals.FastAttribGroupsEntry.GetAttribute[T](Int32 attribute)
w Zeta.Game.Internals.Actors.ACD.GetAttribute[T](Int32 attribute)
w Zeta.Game.Internals.Actors.ACD.GetAttribute[T](ActorAttributeType attributeType)
w Zeta.Game.Internals.Actors.DiaUnit.get_IsAttackable()
w GearSwap.gearSwap.<checkArea>b__0(DiaUnit a)
w System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
w System.Linq.Enumerable.Count[TSource](IEnumerable`1 source)
w GearSwap.gearSwap.checkArea()
w GearSwap.gearSwap.OnPulse()
w Zeta.Common.Plugins.PluginManager.PulsePlugin(IPlugin plugin)
Exception while pulsing plugin GearSwap: System.Exception: Ukończono tylko część żądania ReadProcessMemory lub WriteProcessMemory, at addr: 00000020, Size: 4
w GreyMagic.ExternalProcessMemory.ReadByteBuffer(IntPtr addr, Void* buffer, Int32 count)
w GreyMagic.MemoryBase.Read[T](IntPtr addr)
w Zeta.Game.Internals.FastAttribGroupsEntry.GetAttribute[T](Int32 attribute)
w Zeta.Game.Internals.Actors.ACD.GetAttribute[T](Int32 attribute)
w Zeta.Game.Internals.Actors.ACD.GetAttribute[T](ActorAttributeType attributeType)
w Zeta.Game.Internals.Actors.DiaUnit.get_IsAttackable()
w GearSwap.gearSwap.<checkArea>b__0(DiaUnit a)
w System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
w System.Linq.Enumerable.Count[TSource](IEnumerable`1 source)
w GearSwap.gearSwap.checkArea()
w GearSwap.gearSwap.OnPulse()
w Zeta.Common.Plugins.PluginManager.PulsePlugin(IPlugin plugin)
Exception while pulsing plugin GearSwap: System.Exception: Ukończono tylko część żądania ReadProcessMemory lub WriteProcessMemory, at addr: 00000320, Size: 4
w GreyMagic.ExternalProcessMemory.ReadByteBuffer(IntPtr addr, Void* buffer, Int32 count)
w GreyMagic.MemoryBase.Read[T](IntPtr addr)
w Zeta.Game.Internals.FastAttribGroupsEntry.GetAttribute[T](Int32 attribute)
w Zeta.Game.Internals.Actors.ACD.GetAttribute[T](Int32 attribute)
w Zeta.Game.Internals.Actors.ACD.GetAttribute[T](ActorAttributeType attributeType)
w Zeta.Game.Internals.Actors.DiaUnit.get_IsAttackable()
w GearSwap.gearSwap.<checkArea>b__0(DiaUnit a)
w System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
w System.Linq.Enumerable.Count[TSource](IEnumerable`1 source)
w GearSwap.gearSwap.checkArea()
w GearSwap.gearSwap.OnPulse()
w Zeta.Common.Plugins.PluginManager.PulsePlugin(IPlugin plugin)
No it isn't, if it works on conduit pylons and you stick with gloves until the buff wears off.
It's 100% worth it.
ye, for conduit pylons it worth
I think it's not GearSwap issue, rather DB / trinity -> fountain shrines located in a4, where you have to go downstairs (reference image) are almost never clicked. Maybe point me to proper place to report it?Not sure why it isn't working with Fountain shrines for you, maybe its a distance thing. As for the error spamming:
DiaUnit.get_IsAttackabl e() seems to be the culprit for you. Are you sure you are using the latest DB? I wasn't getting this error. Once servers are back up I will verify.