What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal

Monk Addon - Switch to high dps 1h weapon prior to casting sweeping winds

I found that if i use fire storm wind, it doesn't continue wind with high probability, but cyclone wind works much better. I guess it works good only for specifically skill combination because of the code plot.
 
Download the latest version before you post here that you have issues.
This issue has been dealt with already.

Sir I don't know why you are raging at me but I don't mind, however the issue is not fixed sir.

[20:59:27.657 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:27.759 N] [Trinity]The Armor [pants_norm_base_flippy-29629] [Legs] = (TRASH)
[20:59:27.765 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:27.829 N] [Trinity]Warlock's Parapet [HelmCloth_norm_base_flippy-19924] [WizardHat] = (TRASH)
[20:59:27.836 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:27.927 N] [Trinity]Spined Brace [Gloves_norm_base_flippy-19888] [Gloves] = (TRASH)
[20:59:27.934 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:27.991 N] [Trinity]Prey Cabal [XBow_norm_base_flippy_07-15997] [Crossbow] = (TRASH)
[20:59:27.997 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:28.067 N] [Trinity]Barber Trial [Helm_norm_base_flippy-14980] [VoodooMask] = (TRASH)
[20:59:28.072 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:28.151 N] [Trinity]Guardian Defiance [Bracers_norm_base_04-29627] [Bracer] = (TRASH)
[20:59:28.156 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:28.189 N] [Trinity]Stalwart Point [ceremonialDagger_norm_base_flippy_04-27989] [CeremonialDagger] = (TRASH)
[20:59:28.194 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:28.221 N] [Trinity]Occult Dawn [Wand_norm_base_flippy_07-31310] [Wand] = (TRASH)
[20:59:28.227 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:28.289 N] [Trinity]High Haven [Helm_norm_base_flippy-10717] [Helm] = (TRASH)
[20:59:28.295 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:28.341 N] [Trinity]Vile Horror [Axe_norm_base_flippy_06-31277] [Axe] = (TRASH)
[20:59:28.347 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:28.427 N] [Trinity]Avenger's Robe [chestArmor_norm_base_flippy-26526] [Cloak] = (TRASH)
[20:59:28.433 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:28.473 N] [Trinity]Bowman's Hate [handXBow_norm_base_flippy_07-15296] [HandCrossbow] = (TRASH)
[20:59:28.478 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:28.549 N] [Trinity]Prime Demolisher [Helm_norm_base_flippy-17099] [Helm] = (TRASH)
[20:59:28.555 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:28.635 N] [Trinity]Eclipse Insolence [chestArmor_norm_base_flippy-14933] [Cloak] = (TRASH)
[20:59:28.641 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:28.724 N] [Trinity]Defiant Meridian [Belt_norm_base_flippy-24269] [Belt] = (TRASH)
[20:59:28.730 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:28.790 N] [Trinity]Foe's Scar [twoHandedSword_norm_base_flippy_04-15994] [Sword] = (TRASH)
[20:59:28.796 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:28.885 N] [Trinity]Pummel Killer [Gloves_norm_base_flippy-18109] [Gloves] = (TRASH)
[20:59:28.892 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:28.943 N] [Trinity]Brigand's Pillar [Staff_norm_base_flippy_07-29020] [Staff] = (TRASH)
[20:59:28.949 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:28.997 N] [Trinity]Fulminating Slasher [Sword_norm_base_flippy_08-18613] [Sword] = (TRASH)
[20:59:29.003 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:29.050 N] [Trinity]Champion's Chasm [Axe_norm_base_flippy_06-35456] [Axe] = (TRASH)
[20:59:29.055 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:29.111 N] [Trinity]Strife Harvest [twoHandedAxe_norm_base_flippy_05-10754] [Axe] = (TRASH)
[20:59:29.117 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:29.203 N] [Trinity]Courier's Scar [Belt_norm_base_flippy-15995] [MightyBelt] = (TRASH)
[20:59:29.209 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:29.290 N] [Trinity]Severe Gage [Gloves_norm_base_flippy-12138] [Gloves] = (TRASH)
[20:59:29.296 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:29.359 N] [Trinity]Unyielding Crown [HelmCloth_norm_base_flippy-11606] [WizardHat] = (TRASH)
[20:59:29.368 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:29.458 N] [Trinity]Mage's Award [orb_norm_base_flippy_04-9574] [Orb] = (TRASH)
[20:59:29.465 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:29.554 N] [Trinity]Deviant Crushers [Boots_norm_base_flippy-32678] [Boots] = (TRASH)
[20:59:29.561 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:29.600 N] [Trinity]Devastator's Dragon [mightyWeapon_2H_norm_base_flippy_03-15297] [MightyWeapon] = (TRASH)
[20:59:29.607 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:29.638 N] [Trinity]Fissure Lock [ceremonialDagger_norm_base_flippy_03-15971] [CeremonialDagger] = (TRASH)
[20:59:29.644 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:29.728 N] [Trinity]Serpent Skin Slayer [Belt_norm_base_flippy-11604] [Belt] = (TRASH)
[20:59:29.734 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:29.818 N] [Trinity]Bramble Armor [Bracers_norm_base_05-11579] [Bracer] = (TRASH)
[20:59:29.824 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:29.855 N] [Trinity]Harsh Wand [Wand_norm_base_flippy_06-29613] [Wand] = (TRASH)
[20:59:29.866 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:48.850 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:48.969 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
[20:59:51.514 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.
This is with the latest full folder delete, full extract, and deleted all assemblies sir. Thank you kind sir.
 
little problem report

Fixed a rare issue with swap being stuck due to deadly reach 18% buff dropping while whole swap sequence is in progress

https://www.dropbox.com/s/un839sezh6v6hhd/MonkFix-1.0.1b-ComboStrike.rar

only for people using combination strike.

Hello tesslerc,

I use these since some days:
GilesTrinity-1.7.1.7-Swap1.0.1b
MonkFix-1.0.1b-ComboStrike

with the build you suggested:
Fists of Thunder - Thunderclap
Deadly Reach - Foresight
Serenity - Ascension
Mantra of Conviction - Overawe
Blinding Flash - Faith in the Light
Sweeping Winds - Cyclone

Passives:
One with Everything
Combination Strike
Fleet Footed

this worked good, no more problems with the swaping (like in 1.0.1).
I run act3 BigRed-B mp3 with ~2 dph.

yesterday I switched to act2 for some keyhunting:
ModdedAct2Key (based on [A2+-+Inferno]Key-Farm+1.0..0+Karatefylla).
here bot died more often (also mp3), 4-8 dph, which I thought is stange;
but I thought ok, for some act2 keys it must be ;-)


when I came home today, I found this:

main hand empty!
1h weapon (monk fist) in upper left corner (skorn's place)
shield in offhand
skorn in stash!

(at least not sold ;-) - it was 50m)

I had protected only the upper left corner and below, not the bottom right 3*2 any more.

Now to the log files:
I have seen the DB log files contain now a lot 'personal' info, written from Trinity (at least with swap debug output on, like I have).
They contain item ids, owner ids, "[Trinity] <itemname> [<itemcodes>] = (TRASH)" lines.

I think alone from the (TRASH) lines and the game drop logs that blizz probably have, the acc can be determined.


Sorry when this is too paranoid ;-)

I would try to PM or email you the logs, I hope you don't mind.


Best regards,
?Golem
 
Golem, np.
Seems weird.
Could be it died during a swap that will cause some problems.
i have made a fix for this issue, but haven't had time to upload yet.
once i get home i will upload this fix for the public.
 
Could be it died during a swap that will cause some problems.
...
That sounds logical, the bot died more in act2, so more chances to fail-swap than before in act3.

Another thing: I saw that the right-bottom corner is used for item pickup (just before town run).
What if the bot is attacked (after pickup into the last space, and before tp) from a fresh mob group,
and in/for that fight a swap is needed?
 
pickup into the last space just before tp

the bot usually leaves bottom right corner empty.
by chance I have just watched one of the rare "pickup into the last space just before tp",
and pressed the print button.

I have send you the screenshot and the log file.


This "pickup one item too much" reminds me to some other infamous bug:
you know that Trinity compares the potions to 99 (when you have cap at 100 selected).
But sometimes you have 100 pots.
And in very rare cases you get 101 pickup'd.
There are many reports from people that complained about having got 2 stacks of potions.
Maybe you also had this?

So: can it be that 2 threads or instances are picking up??
Or that Trinity and Demonbuddy are picking?
Maybe DB picks items in rare cases???(when it should not, when it should have delegated picking to Trinity).


Just some ideas about "pickup into the bottom right corner sometimes".
 
First off a small intro to DB (just so understand how it works - and maybe it will help you help me find the problem):

Trinity replaces alot of DB core functions using "hooks" meaning it takes over the whole Behavior Tree replacing it with Trinity logic.
Anyway what happens is trinity "asks" DB how many items have been picked up and all that crap and it calculates if there is room to pickup.
What happens is DB has memory read issues, thats why it sometimes thinks we don't have any potions picked up even though we have 100 and thus creates a new stack - here it thinks we have 1 item or more less than what we really have, that way it picks up an item and places it in the bottom right corner.

Due to that the bottom right corner must not be protected, so weaponswap "tells" trinity not to pickup in the bottom right corner (treat as if protected) but if something is there it will dispose of it in the town run.

Town run logic:
It checks if an item is in a protected slot or if it is being used by WeaponSwap and if none of the two - it will include in the town run.

Weapon Swap:
False pickup: If an item is placed in the bottom right corner and it isn't the offhand - it will initiate town run (thats why it must not be protected so we can remove that item).
Startup: finds the items we told it to and saves their id's and checks bottom right corner to see if item is UN-ID and if it is an item we can place in the offhand (incase of crash during swap - it will know which item is the correct one).



i keep seing this in the log:
[12:03:36.876 N] [Trinity][WeaponSwap][Swapper] For some reason bottom right corner isn't protected, initializing town run to clear it up.

Meaning for some reason trinity didn't clear up that spot EVER (happened way to many times - or it could have thought it has DPS gear on when it doesn't so it has offhand in bottom right corner but it thinks it shouldn't be there - fixed in latest test tweak which i will upload soon enough).

And then this shows up:
[12:38:16.370 N] [Trinity][Swapper] Unable to swap - there is no weapon in the top left corner.

Which i have no idea how this is even possible... :\
Went over the whole log and it just seems impossible. I'll look into EXTRA error handling tomorrow to make sure the skorn is place in the top left corner after each swap, and to do extra checks after death to ensure we have the right set on.
 
I would surmise there is some funky memory issues with DB/Trinity.

I've been using your swap via CE 1.7.1.7 for quite some time and it pretty much works perfect. After many hours running AFK, I came back with my helm and amulet removed, wielding a weapon and a shield (instead of both weapons), Skorn remained where it should be. Not quite sure why my helm and amulet were removed and I was now using a shield, but 98% of the time, it's flawless. Thankfully my stuff is too good to sell it would appear or else I'd be out a few pieces :P
 
Thank you very much for this good+long explanation!

Startup: finds the items we told it to and saves their id's and checks bottom right corner to see if item is UN-ID and if it is an item we can place in the offhand (incase of crash during swap - it will know which item is the correct one).
...

Could this be a problem? That the bot thinks it is a normal startup, but it's after crash with items wrong positioned?

new idea: What about "hardcode" the good items?
Like: at startup, write the good items in a file "swapitems.locked", ONLY IF that file does not exist!

When the user buys new (swap-)items, he must delete this file before next startup.

Ok, one step more that the user has to make right, but I see a lot advantage of such extra effort:
bot always knows the "real good" items, can do all the checks safely (like not selling this),
can ALWAYS put the right items in place.
User can look in the file and be 100% sure this good stuffs is protected, etc.

You can ask for that file and see if user had put the items wrong at first startup :cool::rolleyes:

Please think about that ...


BTW: I currently swap only the weapon; but I would like to buy all items double, and swap all.
(at first only the non-inna slots).
Want to try the potential, I think there is a lot to gain, even with items that are not so expensive.
But when the bot messes all items around ... :rolleyes::rolleyes::rolleyes:
(I Better do not think about that.)
 
Thank you very much for this good+long explanation!



Could this be a problem? That the bot thinks it is a normal startup, but it's after crash with items wrong positioned?

new idea: What about "hardcode" the good items?
Like: at startup, write the good items in a file "swapitems.locked", ONLY IF that file does not exist!

When the user buys new (swap-)items, he must delete this file before next startup.

Ok, one step more that the user has to make right, but I see a lot advantage of such extra effort:
bot always knows the "real good" items, can do all the checks safely (like not selling this),
can ALWAYS put the right items in place.
User can look in the file and be 100% sure this good stuffs is protected, etc.

You can ask for that file and see if user had put the items wrong at first startup :cool::rolleyes:

Please think about that ...


BTW: I currently swap only the weapon; but I would like to buy all items double, and swap all.
(at first only the non-inna slots).
Want to try the potential, I think there is a lot to gain, even with items that are not so expensive.
But when the bot messes all items around ... :rolleyes::rolleyes::rolleyes:
(I Better do not think about that.)


Well thing is items like helmet / pants / boots and anything that isn't a WEAPON just swaps places.
How the hell the skorn got to a place that isn't top left corner i have NO IDEA as this is impossible.

And it does error check on game start and sees if it crashed during swap / what ever and works accordingly.
 
https://www.dropbox.com/s/k4u79sy8rcxjcp1/WeaponSwap-1.0.1c.rar

This adds a little check after death to see if it tried to swap during death - meaning it didn't really swap but it thinks it did -> Fixes this bug.
Added XP/hour to the log (not the stupid shit DB shows).

Will add EXTRA error checks later on today or tomorrow when i get time to work on it - will make it validate each item in it's location and if not move them to the proper place.
 
Last edited:
Thanx for posting your fix!
When I came back today, shield was in rightmost corner. Ofc with broken swaping, bot was contantly dying.
So I will try the fix now.
(for the keyhunt I run with higher mp than I would normally ==> die more is good for this test :rolleyes:).


ATTENTION all weapon-only swapers: that 1.0.1c swaps also hands, rings and neck!
change back to weapon-only is trivial, anyway here the 1.0.1c fix swaping only the weapon:
View attachment WeaponSwap-1.0.1c-only-swap-the-weapon.zip

Tesserc, have you thought about my proposal using a file "swapitems.locked"?
 
Last edited:
https://www.dropbox.com/s/k4u79sy8rcxjcp1/WeaponSwap-1.0.1c.rar

This adds a little check after death to see if it tried to swap during death - meaning it didn't really swap but it thinks it did -> Fixes this bug.
.

1.0.1c fix is not enough:
I found a blue trash shield in the rightmost corner.
Put it manually to the middle of inv.
A minute later the blue trash shield was again in the rightmost corner.
Salvaged it and restarted.(stop+start button in DB)

Now a blue chest is in the rightmost corner.
Have now closed DB for complete restart.
 
Thing is item id's reset after every new game so i need to see if i can work with GUID and if they are constant or if there is some other way to do this.
Thing is it's really weird that you have so many bugs :\ i haven't seen these errors ever :(

Could be you are running with REALLY high latency?
anyway i'll take a look into heavier checks ( i just wanted to fast upload a quick fix )

Edit

Btw accidentily uploaded my private weaponswap file - i fixed the file so it should swap by default only the weapons.
 
Running checks now to see if ACDGuid is kept after game changes.
I'll look into serializing the items into a file if it works.

But it will need a lot of user side intervention to RESET the file each time you change to new items.

- EDIT -

Ofc ACDGuid changes between each game.
Meaning it won't work this way :\
ill look into alternative options tomorrow.
 
Last edited:
thank you sooo much for all your efforts

Thing is it's really weird that you have so many bugs :\ i haven't seen these errors ever :(
Just try dying a lot: run inferno mp10,:rolleyes::rolleyes:
[maybe with some gear replaced with lower (depending how strong your monk is).]

And ofc I need to buy better stuff for mp>0
I wanted to buy all new items twice, prepared for the swap-method.
But for that the swaping has to work.

Could be you are running with REALLY high latency?
Lowest latency I saw today was 190ms, highest was 990ms.
So yes, and the latency is varying much.


But it will need a lot of user side intervention to RESET the file each time you change to new items.

The user shall not edit the file with new items, just delete it.
And put the new items at the correct places.(has to do anyway).
Bot at next start writes a new file if (and only if) it does not exist.
I think this is way better than edit the file, too much can go wrong.
(Too much work to explain which item codes or whatever has to be entered, in which format, etc.)

---

I had several new swap failures, looks like the 1.0.1c fix is worse for me than 1.0.1b
Also I saw that CheckAfterDeath() throws exceptions("Ausnahme"):


Code:
[01:52:58.947 N] Player died
[01:52:58.947 N] ProfileOrderManager.OnPlayerDied, Resetting caches.
[01:52:58.947 D] Resetting current behavior.
[01:52:58.952 D] System.Reflection.TargetInvocationException: Ein Aufrufziel hat einen Ausnahmefehler verursacht. ---> System.IndexOutOfRangeException: Der Index war außerhalb des Arraybereichs.
   bei GilesTrinity.Swap.WeaponSwap.CheckAfterDeath()
   bei GilesTrinity.GilesTrinity.GilesTrinityOnDeath(Object src, EventArgs mea)
   --- Ende der internen Ausnahmestapelüberwachung ---
   bei System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
   bei System.RuntimeMethodHandle.InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
   bei System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   bei System.Delegate.DynamicInvokeImpl(Object[] args)
   bei System.Delegate.DynamicInvoke(Object[] args)
   bei Zeta.CommonBot.GameEvents.(Delegate , Object[] ) --> System.IndexOutOfRangeException: Der Index war außerhalb des Arraybereichs.
   bei GilesTrinity.Swap.WeaponSwap.CheckAfterDeath()
   bei GilesTrinity.GilesTrinity.GilesTrinityOnDeath(Object src, EventArgs mea)
[01:52:58.992 N] Clicked revive button

I will email you the screenshots and full logs. Just that you have full logs in case you want to check something.

I will buy stonger item pairs soon, I am too tired now.

ill look into alternative options tomorrow.

That would be great!!
As title says: thank you sooo much for all your efforts
 
about CheckAfterDeath() throws exceptions

in CheckAfterDeath() is:
mainID[rows.Length - 2]

that seams wrong to me
row is:
private static int[] rows = new int[] { };
for the weapon-only-swapper
so index gets negative here

for the "multi-swapper" with items in rows it wont get negative
that explains why you didn't get an exception.

Try mp10 with weapon-only-swap (rows={}), and see :D (SCNR)

maybe
mainID[mainID.Length - 2]
was intended here??
 
Last edited:
was working file for an hour, i come back and 1 of my monks is using the skorn permanently and not having cyclone up.

I used the 1.0.1c weapon swap only btw
 
was working file for an hour, i come back and 1 of my monks is using the skorn permanently and not having cyclone up.

I used the 1.0.1c weapon swap only btw
Yo, 1.0.1c weapon swap is not (always) working.

Every ~hour* my monk puts some shit into right bottom corner.(with the rows->mainID typo fix, too).
Sometimes also 1 item is leftover in the middle of the inventory.
This happens without dying, too.
The bot somehow recognises this and makes an extra townrun; BUT it will not sell these 2 items.

So there is another problem independent from dying.

*) sometimes it's every 5 minutes, happened now 2 times while writing this.

I will give up keyhunting for now, this is not AFK-able.
(it worked better with 1.0.1/b and act3 CH, but the swap never worked 100% for me.)


Best Regards,
?Golem
 
Back
Top