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

[Plugin] Giles Stash & Loot Rule Replacer

just came across an error running 1.9.2 (it started this run before you updated to 1.9.3 :p )

Killed an elite pack and 2 identical items dropped, one white, one rare ilvl 62.

I got "Tried to interact with an item too many times in a row, now trying to force a town-run." in the log, and bot promptly went to town and ran the Town run correctly, then came back and freaked out again.

Could well be one of those rare things that you just have to live with, and I might never be able to repeat it, but thought I'd let you know.
 
I noticed your plugin is blacklisting health globes. Does this prevent belphegor from using them or will it still work?
It just blacklists them from the loot engine (so the loot engine doesn't try to loot them). Belphegor uses it's own system for looking for health-globes around it's range, at least at the moment.

just came across an error running 1.9.2 (it started this run before you updated to 1.9.3 :p )
Killed an elite pack and 2 identical items dropped, one white, one rare ilvl 62.
I got "Tried to interact with an item too many times in a row, now trying to force a town-run." in the log, and bot promptly went to town and ran the Town run correctly, then came back and freaked out again.
Could well be one of those rare things that you just have to live with, and I might never be able to repeat it, but thought I'd let you know.

Probably is one of those rare/unique things - but if you could send me the log from your DemonBuddy logs folder, covering say, when the error first happened, including the town-run afterwards, and then right up to where it bugged out again the 2nd time, then I'll try and prevent it. Even if it's something ridiculously rare caused by random DB "burps" (that might well be fixed with the next DB update if all the caching-clearance is implemented), I'd still like to try and remove every possible error location as "backup/safety" to really try to reduce the chances of even the remotest error for people! :D
 
Should I still use unstucker and Notification click plugin now ?
No, they can cause more problems than they fix because they are very outdated. I don't use either of them myself - notification okclicker in particular can cause problems!
Does it work with rus client? or only with en?
Yes, read the first post! :) I will quote the bit about language though (a Ctrl+f for the word "russian" on 1st post would have found this!);
"Useful Notes on Plugin Item Filtering:
* Filters work for all and any language client - whether it be English Russian Polish or anything else!"

:D
 
hello it is fabulous that plugin, but how to be on guard that ALL of the items and legendary set? Finally, how do you configure it? thank you for your help and great job
 
New DB update... This plugin doesnt work anymore...

What doesn't work? I'm running with new DB and my plugins absolutely fine. I only have my three plugins, and of course I did what everybody should always do - which is a fresh clean install of DB in a new empty folder when updating, never rely on the auto-updater or copying files into old folder. This does mean plugins will go to default settings again if you don't back up the plugin config files from the "settings" folder - so be sure to check the plugin settings when you run it again.

What problems have you actually encountered with the new version? I need details because at the moment, all three plugins seem to be running just fine (but I have only been testing the new Db out for maybe 15 minutes so far).

hello it is fabulous that plugin, but how to be on guard that ALL of the items and legendary set? Finally, how do you configure it? thank you for your help and great job

Hey thank you. I'm not completely sure I understand your question - are you asking if legendary & set items get stashed? If so, then yes, legendary and set items are all automatically picked up and stashed :) You can configure the plugin by clicking the plugin in the "plugins" tab of DemonBuddy, and then clicking the "Config" button next to the plugin list!
 
What doesn't work? I'm running with new DB and my plugins absolutely fine. I only have my three plugins, and of course I did what everybody should always do - which is a fresh clean install of DB in a new empty folder when updating, never rely on the auto-updater or copying files into old folder. This does mean plugins will go to default settings again if you don't back up the plugin config files from the "settings" folder - so be sure to check the plugin settings when you run it again.

Haven't checked if it works yet, but on launch i'm getting:
Code:
[17:20:03.191 N] Compiler Error: c:\Users\X\Desktop\Demonbuddy\2.04\Plugins\GilesStashReplacer\GilesStashReplacer.cs(1264,50) : error CS1061: 'Zeta.Internals.Actors.ACDItem' indeholder ikke en definition til 'ParseItemTable', og der blev ikke fundet en udvidelsesmetode 'ParseItemTable', der accepterer et f?rste argument af typen 'Zeta.Internals.Actors.ACDItem' (mangler du en 'using'-direktiv eller en assemblyreference?)
[17:20:03.191 N] Compiler Error: c:\Users\X\Desktop\Demonbuddy\2.04\Plugins\GilesStashReplacer\GilesStashReplacer.cs(1428,34) : error CS1061: 'Zeta.Internals.Actors.ACDItem' indeholder ikke en definition til 'ParseItemTable', og der blev ikke fundet en udvidelsesmetode 'ParseItemTable', der accepterer et f?rste argument af typen 'Zeta.Internals.Actors.ACDItem' (mangler du en 'using'-direktiv eller en assemblyreference?)
[17:20:03.191 N] Compiler Error: c:\Users\X\Desktop\Demonbuddy\2.04\Plugins\GilesStashReplacer\GilesStashReplacer.cs(1825,26) : error CS1061: 'Zeta.Internals.Actors.ACDItem' indeholder ikke en definition til 'ParseItemTable', og der blev ikke fundet en udvidelsesmetode 'ParseItemTable', der accepterer et f?rste argument af typen 'Zeta.Internals.Actors.ACDItem' (mangler du en 'using'-direktiv eller en assemblyreference?)
[17:20:03.191 N] Compiler Error: c:\Users\X\Desktop\Demonbuddy\2.04\Plugins\GilesStashReplacer\GilesStashReplacer.cs(1908,30) : error CS1061: 'Zeta.Internals.Actors.ACDItem' indeholder ikke en definition til 'ParseItemTable', og der blev ikke fundet en udvidelsesmetode 'ParseItemTable', der accepterer et f?rste argument af typen 'Zeta.Internals.Actors.ACDItem' (mangler du en 'using'-direktiv eller en assemblyreference?)
[17:20:03.191 N] Compiler Error: c:\Users\X\Desktop\Demonbuddy\2.04\Plugins\GilesStashReplacer\GilesStashReplacer.cs(2046,30) : error CS1061: 'Zeta.Internals.Actors.ACDItem' indeholder ikke en definition til 'ParseItemTable', og der blev ikke fundet en udvidelsesmetode 'ParseItemTable', der accepterer et f?rste argument af typen 'Zeta.Internals.Actors.ACDItem' (mangler du en 'using'-direktiv eller en assemblyreference?)
[17:20:03.191 N] Compiler Error: c:\Users\X\Desktop\Demonbuddy\2.04\Plugins\GilesStashReplacer\GilesStashReplacer.cs(2059,30) : error CS1061: 'Zeta.Internals.Actors.ACDItem' indeholder ikke en definition til 'ParseItemTable', og der blev ikke fundet en udvidelsesmetode 'ParseItemTable', der accepterer et f?rste argument af typen 'Zeta.Internals.Actors.ACDItem' (mangler du en 'using'-direktiv eller en assemblyreference?)
[17:20:03.191 N] Compiler Error: c:\Users\X\Desktop\Demonbuddy\2.04\Plugins\GilesStashReplacer\GilesStashReplacer.cs(2359,30) : error CS1061: 'Zeta.Internals.Actors.ACDItem' indeholder ikke en definition til 'ParseItemTable', og der blev ikke fundet en udvidelsesmetode 'ParseItemTable', der accepterer et f?rste argument af typen 'Zeta.Internals.Actors.ACDItem' (mangler du en 'using'-direktiv eller en assemblyreference?)
[17:20:03.191 N] Compiler Error: c:\Users\X\Desktop\Demonbuddy\2.04\Plugins\GilesStashReplacer\GilesStashReplacer.cs(2600,30) : error CS1061: 'Zeta.Internals.Actors.ACDItem' indeholder ikke en definition til 'ParseItemTable', og der blev ikke fundet en udvidelsesmetode 'ParseItemTable', der accepterer et f?rste argument af typen 'Zeta.Internals.Actors.ACDItem' (mangler du en 'using'-direktiv eller en assemblyreference?)
[17:20:03.191 N] Compiler Error: c:\Users\X\Desktop\Demonbuddy\2.04\Plugins\GilesStashReplacer\GilesStashReplacer.cs(2632,22) : error CS1061: 'Zeta.Internals.Actors.ACDItem' indeholder ikke en definition til 'ParseItemTable', og der blev ikke fundet en udvidelsesmetode 'ParseItemTable', der accepterer et f?rste argument af typen 'Zeta.Internals.Actors.ACDItem' (mangler du en 'using'-direktiv eller en assemblyreference?)
[17:20:03.191 N] Compiler Error: c:\Users\X\Desktop\Demonbuddy\2.04\Plugins\GilesStashReplacer\GilesStashReplacer.cs(2946,22) : error CS1061: 'Zeta.Internals.Actors.ACDItem' indeholder ikke en definition til 'ParseItemTable', og der blev ikke fundet en udvidelsesmetode 'ParseItemTable', der accepterer et f?rste argument af typen 'Zeta.Internals.Actors.ACDItem' (mangler du en 'using'-direktiv eller en assemblyreference?)
[17:20:03.191 N] Compiler Error: c:\Users\X\Desktop\Demonbuddy\2.04\Plugins\GilesStashReplacer\GilesStashReplacer.cs(3822,18) : error CS1061: 'Zeta.Internals.Actors.ACDItem' indeholder ikke en definition til 'ParseItemTable', og der blev ikke fundet en udvidelsesmetode 'ParseItemTable', der accepterer et f?rste argument af typen 'Zeta.Internals.Actors.ACDItem' (mangler du en 'using'-direktiv eller en assemblyreference?)
[17:20:03.191 N] Compiler Error: c:\Users\X\Desktop\Demonbuddy\2.04\Plugins\GilesStashReplacer\GilesStashReplacer.cs(3876,26) : error CS1061: 'Zeta.Internals.Actors.ACDItem' indeholder ikke en definition til 'ParseItemTable', og der blev ikke fundet en udvidelsesmetode 'ParseItemTable', der accepterer et f?rste argument af typen 'Zeta.Internals.Actors.ACDItem' (mangler du en 'using'-direktiv eller en assemblyreference?)
[17:20:03.191 N] Compiler Error: c:\Users\X\Desktop\Demonbuddy\2.04\Plugins\GilesStashReplacer\GilesStashReplacer.cs(3899,30) : error CS1061: 'Zeta.Internals.Actors.ACDItem' indeholder ikke en definition til 'ParseItemTable', og der blev ikke fundet en udvidelsesmetode 'ParseItemTable', der accepterer et f?rste argument af typen 'Zeta.Internals.Actors.ACDItem' (mangler du en 'using'-direktiv eller en assemblyreference?)

I know its in danish -.-' But at least it'll tell you that there are errors xD
 
Haven't checked if it works yet, but on launch i'm getting:
I know its in danish -.-' But at least it'll tell you that there are errors xD

Hi. You have an old version of Stash Replacer (pre 1.9.x versions). Please update it :)
 
with this plugin is there a way to no identify items and just stash everything it picks up unid?
 
with this plugin is there a way to no identify items and just stash everything it picks up unid?

This plugin will stash anything kept unidentified. But to keep things unidentified you need another plugin. This one here works fine for this purpose, and is fully compatible;
keep 63 ilvl unidentified (originally by Thiole, updated by Haigent).
 
Giles, is it possible to add a delay between the selling/salvaging of individual items? Even though it is doing it slower than the built in DB routine, my paranoid brain still thinks it's a bit too fast. Could you advise me about which part of GilesStashReplacer.cs I would need to edit for this effect? I don't know any C# so please explain it like I'm 5 :)

I understand that it should be in this part:

" Sell Routine replacement for smooth one-at-a-time item selling and handling"

but the actual "sell" function seems to be objSellNavigation.Interact() and I'm not at all sure how to modify this with a simple 0.5-2 second delay. Is this function native to DB, possibly found in another file, or can this modification be done in your plugin?

Edit: If the same could be done for item pickups, that would be even better! I see that function as well (possibly thisCachedDiaItem.Interact(); ?) but once again I have no idea what to modify.

Would it work to add something like before or after those "interact" calls? Do I need to use "public" or "private" for defining the random integer, and which part of the code would I define it in? Preferrably it would go outside the function so it can be re-used by all three instances (sell, salvage and pickup) but at the same time, would that make it possible for it to reroll the random number or would it only do it once, per executioon?

Random random = new Random();
int idletime = random.Next(500, 1500);

and then maybe this after/before the call?
ThreadSleep(idletime);

All in all I find DB-coding very confusing. I've only attempted making a simple farming profile without success. Is there any documentation for all the DB-functions? AFAIK functions like "ZetaDia.Me.*" are DB specific and not very well documented. How do you coders figure it all out?
 
Last edited:
Giles, is it possible to add a delay between the selling/salvaging of individual items? Even though it is doing it slower than the built in DB routine, my paranoid brain still thinks it's a bit too fast. Could you advise me about which part of GilesStashReplacer.cs I would need to edit for this effect? I don't know any C# so please explain it like I'm 5 :)

[snip snip]

Next version of Stash Replacer will have an increased delay on stashing/selling/salvaging items, and this delay will be slightly randomized between every single item. Also re-did the behavior trees for picking items up to try to reduce the errors that can crop up in logfiles from the looter trying to pick the same item up 3 times in a row in fast succession (occurs in default DB and my current version of plugin). I'd like to spend a couple of hours going through a load of items and doing more score tweaking again when I have chance, before the next version, but that's such a horrendously dull task I may leave that to another version :P

As to how we figured it all out - a combination trial and error, learn-by-example, and opening Visual Studio up, adding "demonbuddy.exe" as a reference and browsing the object tree!
 
Next version of Stash Replacer will have an increased delay on stashing/selling/salvaging items, and this delay will be slightly randomized between every single item. Also re-did the behavior trees for picking items up to try to reduce the errors that can crop up in logfiles from the looter trying to pick the same item up 3 times in a row in fast succession (occurs in default DB and my current version of plugin). I'd like to spend a couple of hours going through a load of items and doing more score tweaking again when I have chance, before the next version, but that's such a horrendously dull task I may leave that to another version :P

As to how we figured it all out - a combination trial and error, learn-by-example, and opening Visual Studio up, adding "demonbuddy.exe" as a reference and browsing the object tree!

Alright, I'm glad to hear that! While your method is already much more "human" than DB's it's still running at korean APM :) It's a shame there isn't any proper documentation, but I guess half of the fun can be the self-education. And IIRC, you never programmed *anything* before doing these plugins which is extremely impressive considering they are of such high quality.

Thanks for the reply anyway, I will continue experimenting with my random number thingy idea to see if I can get it to work :)
 
Alright, I'm glad to hear that! While your method is already much more "human" than DB's it's still running at korean APM :) It's a shame there isn't any proper documentation, but I guess half of the fun can be the self-education. And IIRC, you never programmed *anything* before doing these plugins which is extremely impressive considering they are of such high quality.
Thanks for the reply anyway, I will continue experimenting with my random number thingy idea to see if I can get it to work :)

Just hang on til most probably this evening and I expect I'll upload the new version - and save yourself the time of working out how to do it your own way! The new system looks incredibly human (not "Korean" speed APM!) plus with some realistic randomization of each delay - and if for whatever reasons you wanted to change it to "old-man-with-arthritis" RPM, it will only require tweaking a single number in a single line of code! I'll likely add a quick config option just to disable/enable the now very human-delays (so people can still have "Korean APM" if they want, but off by default). Atm all I'm doing is testing it on all my bots, testing some other changes, and weighing up if I feel motivated enough to browse through the scores of 200 items and do more tweaking (I probably won't be, I have some Orcs Must Die 2 to play :P).
 
Just hang on til most probably this evening and I expect I'll upload the new version - and save yourself the time of working out how to do it your own way! The new system looks incredibly human (not "Korean" speed APM!) plus with some realistic randomization of each delay - and if for whatever reasons you wanted to change it to "old-man-with-arthritis" RPM, it will only require tweaking a single number in a single line of code! I'll likely add a quick config option just to disable/enable the now very human-delays (so people can still have "Korean APM" if they want, but off by default). Atm all I'm doing is testing it on all my bots, testing some other changes, and weighing up if I feel motivated enough to browse through the scores of 200 items and do more tweaking (I probably won't be, I have some Orcs Must Die 2 to play :P).

Alright, great! Looking forward to seeing how you implement it so I'll learn something.
 
Giles in your plugin you should add an option to leave items unided. it would be nice not to have to wait for some of the slower plugin guys to update theirs. I want to be a "I only use Giles"
 
View attachment 50433
It seems to be off ... it's weighting items based on their unidentified names. Almost trashed the helm that I have shown.
I even tested them twice

That's DB item mis-reading - which while "fixed" in the newest DB, is only fixed if the bot is actually running. Try loading an empty routine, leaving the game, starting the bot (so it enters a game), and clicking Test - alternatively leave the game, rejoin, and restart DB and try again, see if you get the correct values (and post back with your findings please!).

Basically DB cache of items is bugged - and this is what caused a lot of item-misreads. That was the problem I'd found and traced, and the new DB now correctly clears the cache - but ONLY when leaving/resuming a game, so not while the bot is "stopped". Sadly this does mean the "test button" probably needs either a complete overhaul, or to trick DB into starting and stopping, or finding some way to force clear those caches. That can wait for a rainy day though - it'll handle the items just fine if the bot is actually running properly (so it'll stash good items/trash the bad as you would expect) - but the test button while the bot is stopped is still prone to DemonBuddy's item mis-reading problem that has existed since the very first release of DB.
 
Back
Top