ScriptUO
Scripting Resources & Utilities => OEUO => OpenEUO Scripts => Topic started by: KaliOfLS on January 07, 2013, 07:18:19 AM
-
Kali's Bod Sorter
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-- Script Name: KaliBodSorter.lua
-- Author: Kali of LS
-- Version: 2.61
-- Client Tested with: 7.0.29.2
-- EUO version tested with: OpenEUO 0.91.0029
-- Shard OSI / FS: OSI
-- Revision Date: February 6, 2013
-- Public Release: January 7, 2013
-- Purpose: Sort bods into books based on reward
-- Dependencies: Kalilib.lua
-- http://www.easyuo.com/forum/viewtopic.php?t=48699
-- bodsorterindex.lua
-- Attached in script thread
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
WARNING
1. This script is for openEUO!! Do not run this in EUOX!
2. If you do not have the two dependency files, this script will not run!
Features
1. Script will sort all bods in all books from user targeted bag(s).
2. Script will sort all bods into books in separate user targeted bag(s).
3. The script sorts bods based on reward outcome as described below OR user through defined index
Instructions
1. Go to easyUO and download my script library (I'm still trying to talk TM into giving me a spot in the library thread section :p ) and place in openEUO scripts directiory.
http://www.easyuo.com/forum/viewtopic.php?t=48699
2. Download and put KaliBodSorter.lua and bodsorterindex.lua into openEUO scripts folder
3. The script sorts into books based on string matching in bod book name. So have a book with the following names in the sort into container:
Smithing Bod Books
'120 Smith PS'
'60 ASH'
'30 ASH'
'Valorite Runic'
'Verite Runic'
'Agapite Runic'
'Gold Runic'
'Bronze Runic'
'Copper Runic'
'Smith Trash' --Larges that give poor rewards
'Smith Turn In' --smalls that belong to larges that give poor rewards. Ready for recycling
Tailoring
'CBD'
'120 Tailor PS'
'Horned Kit'
'Barbed Kit'
'Spined Kit'
'Tailor Trash' --same as above + Bone Smalls. Didn't feel like collecting bones long ago, but now that you can buy them... might change this
'Tailor Turn In' --same as above
note* If you wish to lump any together, simply name the book with both names, i.e. 'Spined Kit Horned Kit' will work to collect bods whose rewards are either.
If you download KaliBodIndexCreator.lua, you can use that script to create your own sorting index. I will describe it below.
4. Script Automatically calculates how many bods you can hold in your pack based on current source book's bod count, item pack count, and greatest reward book bod count.
5. Do not have a near full pack such that you couldn't hold your source books to begin with.
6. User defined variables:
--=======================================================================--
-- User defined variables
--=======================================================================--
local fName = "bodsorterindex.lua" --Index file name
local lagOffset = 0 --ms offset if you have slow connection
local MaxBookCnt = 500 --Set this to a specific value if you want less than 500 bods/book
--Optional hardcoded setup
local sBagID = nil --Bag with bodbooks to sort
local dBagID = nil --Bag(s) with reward bodbooks
--If you wish to set more than one reward bag, set it as a table:
-- { bag1ID, bag2ID, ... }
--=======================================================================--
fName is the file name of the index you wish to sort. This file MUST be placed in the SCRIPTS folder in the openEUO directory. You can add a subdirectory via naming it such: "SubDir/bodsorterindex.lua" or "SubDir/AnotherSubDir/WhyWouldIDoThis/MyIndex.sav", etc...
You can adjust the lagOffset if you experience journal message 'you must wait'... It is in ms, so 250 = 1/4 of a second.
sBagID and dBagID can be hard coded to avoid targeting setup during run time.
If you experience any 'you must wait' messages or client crashes, please start adjusting lagOffset 100-500 ms before posting. It helps me track down the bugs.
7. Script will sort tailor and smith bods at the same time.
8. Stand within 2 tiles of all bod book containing pouches you wish to use. Press play
a) First is source bag setup. For each bag you want to add, you press f2, target a bag, finally press f3 when you've added all bags.
b) Second is reward bag setup. Just like above, f2 to add a reward pouch, f3 to start the script.
9. Sit back, grab a glass of water, a pale ale (or [double] india pale ale), a gin and tonic, or a glass of hot cocoa (I will not and never advocate soda, not even diet).
------Update Details------
Updated 2-6-13
Fixed a typo in the dofile line causing the script to halt.
Updated 2-4-13
v2.60
Modified the entire empty routine to improve stability. If you find this incredibly more stable, we can play around with wait times to optimize speed.
Slowed down the emptying routine so each bod takes 200 ms longer to empty, doesn't seem like much, but if sorting 5k bods, that is 1000 seconds longer. (~15 minutes).
If you assign multiple reward bags, and you over fill a book, instead of the client crashing or the script bugging, the script will search for a reward bag that can hold the book. If it can find one, it will just stash the book there for the remainder of the sorting. If it cannot, the script will throw an error and stop.
Updated 1-20-13
v2.50
Modified two subs that would rapidly send commands to the client, potentially causing client crashes on some machines.
I've increased wait time between clicking, and added a wait between drag and drop commands.
I've added a new user defined variable, default is 500, but you may choose a smaller number of bods to be put into each reward book.
Pretty little done message when you've finished sorting :)
v2.20
Modified bag setup. Now, bags open after all bags chosen.
Modified spacing between bags so the contpos values are extremely outside the game window if you have more than a few bags.
Added a reset filter function so bod books are reset once before emptying.
Tested on 3.5k bods, no disconnects.
Updated 1-15-13
Uploaded index creator.
Modified user variables to include option for user generated index file.
Modified one line of code to see if it helps improve connection loss issues.
Updated 1-14-13
KaliBodSorter.lua
v2.0
Added multibag support. Added lag support. Added automatic bod counting for optimization of run time.
bodsorterindex.lua
Added smith/tailor specific strings, a necessary result of multi-reward bag support.
bodindexcreator.lua
used to create the most recent sorter index.
------------------------------------------------------------
Notes
I have written a bodindexcreator script that I have also supplied which will generate a default index: bodindexsorter.lua
I've also supplied KaliBodIndexCreator.lua which is a menu driven script to create an user defined index.
When I get the motivation, I plan to release an update version of this and a bod swapper for openEUO as well. If you have any problems, post in this thread AND send me a PM so that I am aware my attention is needed.
Menu Driven Index Creator
If you use KaliBodIndexCreator.lua to create a menu, you can customized the script's sorting behavior! The menu is simple and easy to use.
Script is stand alone, load it openEUO, press play.
1. You can load a previously made index for modification or start a new one.
2. Creating Bins:
You can then create bins via the 'Add Bin' button. The string in the edit box will be the string the script searches for in the BOD Book Name during sort. The first bin becomes the default bin, and all bods are initially set up to enter that bin. You can create as many bins as you'd like. If you make a mistake, just don't put any bods in that bin, and it won't be used. Furthermore, if you reload the index later, that bin will not even show up.
You can save the index at any time via the save button. If you have any unassigned bins, it will print a debug message in oEUO window.
You can return to the main menu via the return button. The script will prompt with a menu if you have unassigned bins and/or if you have not saved the index after making any changes.
3. Modifying bins
Click the button correspond to the bin you wish to modify. It will open a new window:
(http://img6.imageshack.us/img6/9600/binq.png) (http://imageshack.us/photo/my-images/6/binq.png/)
The top box is for the current bin, the bottom for all bods. There is a filter for each box on the left. You can filter the bods in the list virtually any way you'd like. You can add bods via the add button, and remove them from the bin via the remove button. The list box and buttons support multiselection for facile index creation. If you click the return button without saving, you'll be prompted to save the bin if you've made changes since the last save.
4. You all owe me a valorite runic hammer on Lake Superior.
-
Have the script running as i am typing, Would love to see it sort all bods rather than just the top 4, Spined kits sell for 400k here so not to be sniffed at :)
Working well, will let you know how i get on.
Nel.
-
Ok, I was thinking about reworking this to save spinned kits due to an increase usage with runic reforging. I'll update later when I get a chance. I'll shoot you a pm or something.
-
That's a must-do. Those spined kits are particularly useful for low-level runic reforging.
-
Updated the index and index creator files to save Spined Runic bods as well.
-
Just did 1st 400+ bods, got 350'ish turn in, 07 120 PS, 12 CBD, 15 HRK and 0 BRK, Will save the turn in and trash until it has support for SRK's. (you put in support whilst i was typing will run now)
I need to turn down the speed a little as it keeps giving the message "You must wait to perform another action" i am guessing that's just Altering "Wait 250" to "Wait 500"
Worked really fast with very few errors (Only caused by speed)
Nel.
-
Oh, that will be fixed in my updated release. I have screaming internet (24 MBit) heh.
All the drag/drops have a 1 second wait and is the mandatory wait time between actions on OSI. I have to go to work, but in the newer, uncompleted version I have a function that handles all drag drops, but in this one, there are several places that you can modify:
Lines: 354,369,391,418,425, and 433
I'd suggest adding a 1/4 of a second (change 1000 to 1250) since it seems that you are right on the cusp of this. In the future release, like I said, I have one function that will handle all drag/drops and I'll have a user defined variable at the top called LagOffset that will allow users to add an additional waiting buffer to the script waits.
Glad it seems to be working for you. I've used it about 20 times now and the rewards have always been spot on. Please tell me if find a situation in which the script was wrong.
-
Ok, Been running this for a while now. It runs really well with only 1 minor hiccup, every now and again a bod gets left behind in the bag, no biggie can just add it to the next bag.
I think a few things would make the script better (IMO)
Support for all rewards - Can pick which to upgrade to get next best rewards ect
Separate bags for each book - This way you wont have to switch out the books so often.
Overall very good script.
Nel.
-
Yeah, because of the menu bugs in oEUO, I never finished the support for user defined separation. I'm not sure if you have any script experience or not, but the bodindexcreator.lua is well organized if you look, and you can just modify those if you'd like. However, if you're patient, this week I can get around to creating the menu driven index creator that allows you to save your own index file and use it in place of my supplied one.
Yeah, I noticed today I had a bod chillin out in my backpack. This doesn't happen all the time, I will look into it and update you when I'm finished.
Since I've posted this script, I now have motivation to update it for usability and fidelity :)
Also, can you clarify:
"Separate bags for each book"?
Do you mean, allow multiple bags for full books or the books you're sorting into.
I keep alluding to a new version that I am working on, and in this new version, it allows you target multiple containers for reward books because I ran into this problem that my reward bag gets full. So I guess I really need to finish the updated version. Now priority on the list.
-
"Separate bags for each book" So PS 20 book in 1 bag, CBD in another bag and so on so if there are 8 rewards you have 8 bags, when one bodbook gets close to full you can switch it out.
As for Scripting Knowledge, i can change wait times, break them, sometimes get lucky and get the right answer... but mostly i just break scripts that i mess with. but saying that, i saved the 1st version of the script you put out, so if i look at that against the 2nd version i might be able to work out what i need to change to add the other things, we shall see :)
Nel.
p.s. i am still getting a wait time error, changing all the 1000's to 1250 or 1750 did not help, It's where the full bodbook drops into the backpack and the script tries to open the book strait away.
-
Oh wow, I just looked at the script, I am absolutely shocked this didn't even cause a problem for me, but it seems I must have lost a wait in there somewhere, on line 251, Add "wait(1250)", right underneath where you find "UO.DropC(UO.BackpackID)" (no quotes).
Also, I'm working on the index creator for you. I'll update the sorter afterwards as it is working pretty well. I also forgot to mention, you can have the bods fall into the same books if you want for isntance, if you want both bronze and gold runics in the same book, you just name the book "Bronze Runic Gold Runic".
-
That wait did the trick :), Also i dont seem to be getting the odd bod left in backpack, so that might have sorted that problem too.
I changed the count so that it takes 40 from a book instead of 20, but noticed that it takes 39 (Guessing it takes 19 when it says 20) and nearly always leaves the last bod in the book. When the message says 1 bod in book, it gives the message "you must wait to perform another action" then drops the last bod. (Again not a biggie it gets the job done eventually, but i know u guys like feedback).
Thanks again for the work you have done on this script, it's defo a time saver and i bet a lot of others will also appreciate it when they find it. :)
I wouldn't even attempt to sort out my 15+k bods without it :D
Nel.
-
Just finishing my last 400 bods and then all the bods i had that weren't in named books have been sorted (not sure how many but circa 7 - 8k i think) Took about 10 hours over 3 days to do them, still have 3.5k Smithy bods to sort, but i dont really do smithy bods so they can wait.
There was only 1 thing that really slowed me down whilst doing the sorting and that was having to change all the books in the sorted bag after every sorting process (then combine all the smaller part filled books). If possible i think 1 book per bag would be better as this would mean you would only have to change the books whenever they get full.
Overall a very good script(would give it 9.5/10 in its current state), Cant wait for the ability to sort all bods then decide which i want to discard. (will this script be posted on the other site too?)
Nel.
-
Awesome. I'm currently working on a GUI for the index creator. I'm about, I'd say, half way done with it. Since there is a total of about 600 unique bods, I'm creating a way for you to filter the bod list to make it easier for users to add items to 'bins'. The menu will work like this (Load/New Index), then it will pop a window of all the bins in your index (obviously a new one will have 0 bins). You can then create a bin, the bin will be the string that is used to match against the names of books. Then when you click the bin button, you can modify which bods are sorted into that bin.
Anyway, I'm working on the filtering aspect, and once I have that down, it shouldn't be too much more to finish it off. :) Next thing will be to make the addition for more bod reward bags.
-
Will you be able to sort books like this: 3 books for Leather ( N&E 10, N&E 15, N&E 20) 3 books for Spined ( N&E 10, N&E 15, N&E 20). To be honest I'm still trying to figure how to sort those BOD. I figure that if I organized wit multiple books it should be easier to find what I need.
P.S. Still didn't have time to your at 100%, limited internet for now :(
-
Will you be able to sort books like this: 3 books for Leather ( N&E 10, N&E 15, N&E 20) 3 books for Spined ( N&E 10, N&E 15, N&E 20). To be honest I'm still trying to figure how to sort those BOD. I figure that if I organized wit multiple books it should be easier to find what I need.
P.S. Still didn't have time to your at 100%, limited internet for now :(
Soon my pretty.
I have made some good progress into a bod index creator. Each post is further along. I've got the menu figured out. I'm just putting it all together and finishing up the tidbit functionality.
I'll tell you guys a little tasty screen shot :)
-
1 word... "Smexy"!
Nel.
-
Will you be able to sort books like this: 3 books for Leather ( N&E 10, N&E 15, N&E 20) 3 books for Spined ( N&E 10, N&E 15, N&E 20).
To be honest Ghost, the best way to do bods is the way Kali is doing it, when the bods are finished being sorted they are in (I think) 8 books, each bod in that book is smalls and larges for that reward. All you need to do then is match the smalls to the larges and fill which is easy with the bod book settings. I have approx 15k bods and this is the way i do it and it works well.
Nel.
-
I have over 4k tailor BOD only 600 are return to get turn in, because it was hard to sort then. I work on the BOD sorted and change it for tailor, but still not working the way I like. Look like I will need to post my reforged script that I work on my holiday. :)) with all those reward that will be handy.
-
I've been wanting to try because I had just organized all my BODs on Atlantic prior to the revert and I was in no hurry to do it all over again. So this script came out just at the right time and turned out to be very handy indeed!
This is the second OEUO script I've used which was also part of the incentive. I wish there was an OEUO version for every script I use. ;)
When starting the script it I was informed that I was running 4 clients and I was asked to choose which client I would like to use the BOD Sorter script on...now that is a nice feature to have in the beginning of a script. I'm constantly swapping clients so this was a very cool!
Script was super fast and didn't have any hang ups. Sometimes it left 1 BOD in the pack.
Initially I had issue because my BODs weren't set to all so it grabbed some books that were filtered with no available BODs. This is the better way to go as it let's you have more control over the sorting. There was another BOD mover/sorter that automatically set the book to ALL prior to moving any BODs that I wasn't a fan of.
Sorting BODs into 1 container is the drawback as Nellie mentioned. One 125 count item container can only hold 600 BODs so you have to swap out books that get partially full. The upside is you don't end up with a book with 400-500 BODs in it.
Thanks for sharing this Kali, it worked great and it was nice to be able to use another OEUO script.
-
Great to hear Ultima! I am really excited to finish the index creator and then update the sorting algorithms. I honestly have no idea where all your bods come from :P I have about 600 but I keep cycling them all the time. I don't get many keepers haha I must be doing something wrong.
Anyway, I might toss down a quick update to the sorter to allow you to select multiple containers. That's in my unfinished rework of the script, BUT, this is a quick fix and can be applied to the current script I think. Anyway, I'll update you guys when I toss in that feature.
As for the client choice, I spent hours trying to figure out why a script wasn't working. And then realized it's because it kept trying to use the client that wasn't logged in :)
Hahaha, So, in my library script, I have a clientmenu() function that will cycle through all the open clients, read the name of the character, and create a simple gump for you select the character. I start ALL of my scripts with this. So, if you use any of my openEUO scripts, you will be pleased haha. I'm working on a number of them. I have a lot of unpolished trainers that I write when I do stuff. My main project has been finishing a rail manager for openEUO, I've written a sloppy animal, disco, and miner that use the rail system. Nothing polished and publish worthy yet, but the disco and tamer are quite close. If you're interested in a specific script in OEUO, I have trainers for Magery/Parry/Bushi/Eval/Anatomy/Cooking/Poisoning/Chiv/Necro/Alchemy/Keg making/inscription gaining/mage book filling/recall,gate,mark crafter/cartography to 99.5 maybe some more, but they are all made very much for myself in the sense I didn't have a bunch of error checking and work very specifically to my oddball set up. Anyway, I digress, after I finish this, I'll update and post my BodSwapper for oEUO. Works Fan*friggen*tastic for smith bods... Tailor bods, eh, it still gets confused what it needs to be doing with the cloth. Rather, I'm confused on how to handle it properly.
-
Sorry guys, I got busy with real work the last few days and have also gotten kind of sick. I'll get these updates out asap.
-
You have 24 hours, Then we want to see results!
Only joking, get well Kali, the script can wait, health is a lot more important :)
Nel.
-
Get some rest. Look like ppl get sick all over.
Running the Script right now, Let see how how that go.
Try with a 100 BOD, work great on the first 30 and after it just put move the BOD around the book. I gonna check the timer. might have some lag.
2nd update. Been running since 30 min and it only took the BOD form book "tailor turn in" drop it in main pack and fill the book again. more ready to do. thx I have lot of coffee.
It doesn't seen to get all the BOD and the count get all weird.
-
I have check to ensure that all the wait (1250) are there instead of (1000). drop wait has been add too. Now I have 27 BOD left to sort and it just drop then in main pack and nothing happen after. I have also nothing that lot of the BOD have move inside other books. It seen that the small BOD have found a match for large one.
I have a bag with book" sorted" and a bag with 7 books for the rewards. All for files are in the script folder and I only run the kalibodsorter.
guest I will make more coffee, gonna be a long day..
-
Do you have all the bod reward books? I *think* this is happening because the bod sorter didn't find a book so it didn't know what to do with the bods.
Like, if you don't have "Spined Kit" named book, then any bod for that results in belonging to "Spined Kit" will be left in your pack.
-
So, I am almost done with the version 2 of the script. I took a break from the index creator because I left that script at work on my laptop :x haha, I am at home right now. Anyway, I will dump all my bods back into a book and test this script in a little bit. However, I just read your above post, and if this is truly my problem, then my index is messed up. So when I test, I will find out. However, the issues on your side could be: Make sure you have no bods in pack to start with. No Bod books in pack. Keep your pack as empty as possible. Make sure you have One bag with a full bod book to sort. Make sure you have one bag with the reward books. If you try to sort both tailor and smith at same time, I can foresee a problem that I'm fixing in version 2. The script matches 'Turn In' for smith, but name for tailor is 'Tailor Turn Ins' which will be matched by 'Turn In'. So, that will mess up :x Anyway, we live and we learn, and thus I am learning right now and fixing that for version 2. Version 2 will check if the name is Turn In, that it doesn't match Tailor. However, since soon you will be able to create your own index for sorting, one would need to be judicious when naming their bod books.
-
Looking forward to V2, I have another 6k or so bods waiting :D . I was using Snicker7's Bod filler to fill bods, but it don't do Bone bods very well, so currently doing those by hand..
Nel.
-
Correct, Bone have to been done by hand. But using UOAssist to fill the BOD is not that bad. I have.
Kali, it was the Book name that was wrong. Since like I can't follow instruction. :( Thx again.
-
Correct, Bone have to been done by hand. But using UOAssist to fill the BOD is not that bad. I have.
How do you use Assist to fill the bods?
Nel.
-
I have Bone BOB my type ( arm, helmet) If I have 60 helmet, I make 60 Helmet in main pack. with UOA I hit Record. target to BOD, target Combine and target item ( convert to target last). After u loop it. Razor work as well the macro should look like this.
Used Item
Menu selection
Target item type
-
Update 2.0
Updated 1-14-13
KaliBodSorter.lua
Added multibag support. Added lag support. Added automatic bod counting for optimization of run time.
bodsorterindex.lua
Added smith/tailor specific strings, a necessary result of multi-reward bag support.
bodindexcreator.lua
used to create the most recent sorter index.
Test it out, let me know how it works. It just sorted 750 for me in one go.
Please update as well, any issues with the default index being inaccurate.
-
Just filling the last of my 68 horned Kit bods, then will give it a whirl, if it works well i will do the full 15k bods and let you know the results :)
Nel.
-
Ran it for a total of about 4 hours today (sorted over 5k bods), with gaps in between, and am happy to say the script worked like a charm. Still not worked out how to add more books to separate into all the rewards, but for now this is working, and i still have more bods than i know what to do with, so who needs to worry about bribing :P
Thanks again Kali, Excellent script, saved me hours :D
Nel
-
Good to know it ran stable for that long! I've made some good progress on the menu index creator. Soon Nel, and I'll have that for you.
I'm a grad student writing my dissertation, so yeah... it's hard to manage coding for hours and doing that :D Sometimes I gotta stop slackin.
-
Nice to see that you guy are running with problem. I crash every time I try to run ver 2.0
I have bag on me with 200 BOD and a bag with all the reward. I F2: target the BOD bag on me, F3. F2 the reward bag and F3. Voila Crash. Not sure what I do wrong. Will still try to work it out. How to do change F2 for CTRL F2.
Ok, Now that I use my secure container to hold my BOD to sort and reward on my main pack, everything running.
-
Hi Ghost, In your edit, are you saying that you have figured out the issue?
Thanks
-
WOW, this new Version is awesome and not to mention fast. I love the fact that you load up your secure container and voila 400 BOD sorted in 20 min. I guest since I lost track :)) Thx Kali's again for sharing.
-
Yeah, I've optimized the script such that after it empties bods, it 'pre sorts' them before taking books so that way it only grabs a specific reward book once. Theoretically, it should be able to sort 400 bods in about 400 seconds + unload time (~1 sec per bod, MAX, so 400 seconds) + 2 seconds per unload cycle (let us say 400 boods takes about 10 cycles.. 40 per cycle = 20 seconds ) + 2 seconds per reward book grab (if we consider the slowest cycle would grab every book, 12 reward books, 10 cycles = 240 seconds ) = 1060 seconds for 400 bods. That's roughly 15-20 minutes. It's almost at an absolute maximum speed considering every drag/drop command has a mandatory 1 seconds wait for OSI enforced action cool down.
I started this project because Raziel's bod sorter form euo, and it just didn't work how I'd liked it too. Anyway, glad you approve :D
-
Also, let me add, this script ought to be able to handle multiple copies of the same reward book, i.e. Two books named 'Smith Turn In', so if you're sorting like 3 full source books, and happen to have over 500 of the same reward bod, it will look for a second book with that name. Finally, though, if you do not have a book, instead of wigging out and filling your pack with bods and becoming it hassle, the script will halt where it is. You can then just fix the issue, (will print what bod book you're missing in oEUO window) and press play and it will start over :D You can even leave the current bods in your pack.
-
I was starting with 2.5k boods in 5 containers and when Tailor Turn In got full i would halt the script, change the book and re-setup to run again. I will try it with 3 Turn in books and see if it works that way. still have a few more K bods to sort, might even sort out the bods that were sorted with another script for the extra challenge :P
Nel.
-
4921 bods in bags, just started the script running at 11.34 UK time. will see if it picks up the extra Tailor Turn In books in extra bags. Will let you know when it finishes and if it has any problems.
Nel.
-
Finally finished around 5pm. The game kept disconnecting, but only whilst i was running the script, at first it ran for a while then got less and less. Eventually i closed everything and restarted and it seemed to run ok again. There was no problem at all with the running of the script. It found the extra Tailor Turn In books and filled them, and only stopped working when another book i hadent anticipated filling up so fast filled up and i didnt have a spare.
So again, i say Thanks Kali for an awesome script :)
Nel.
-
Yeah, I've ran into disconnects, but that only happened twice, and I sorted something like 750 bods without a single disconnect and I was having connection issues that day. I'll monkey around with it. It might be an issue with not closing gumps, but I was certain OSI handled that on its own. (look up s7's bod filler and he makes a note about people losing connection after repeated gump opening)
Anyway, I'll see if I can find out why this is happening. The other option is that I might need to slow down the drag/drop rate. It might not enjoy the speed as much as we do.
'at first it ran for a while then got less and less' Do you mean the bod script slowed down in sorting or that the disconnects slowed down or sped up? If it's the former, I think I might know why this is happening. I'll update the script if it's the case.
I will see if I can find an elegant solution to the no reward book. One option is to plop them back into the source container, but then it becomes quite a hassle to figure out when to switch books because the rest in book one is all ones without a reward. The other option is to leave them in your pack until the scripts done, but sorting 4900 bods, you could fill your entire pack up and be stuck without being able to hold items.
-
The amount it would sort before it lost con seemed to diminish, but after i closed UO altogether and reopened it it did the last 900 without a prob.
Nel.
-
Ok, I will look into it.
-
I only changed two lines in the script, one that made it easier for users to define their index, and one that was creating an unnecessary table. I am completely shocked that this change would cause a crash. I will give it a run through when I get home to test it out. On that note, my hypothesis about opening too many gumps seems bunk. I've constantly cycled 3 bod books opening 1/second, for the last 2 hours without a single connection loss. I'll test the script out when I get home. I need more bods!! I'm working on collecting. I will have about 8 characters that can collect 3/day I think, so I will try to collect 24 bods per day for the next month, and then I'll be up to about 1000 bods. :D Then we will give it a real test, but until then, I'll recombine the ~1k I have now and test again tonight.
-
I am not sure whats doing the crashing, maybe i have too many bags open? i have 9 with bods in and 18 to sort into, of the ones that i am sorting into only 8 are on the screen, i am guessing with the spacing the last 2 bags are in my daughters bedroom :P
This is the last line i just got when UO crashed again ...User\Desktop\Stuff\OpenEUO\scripts\kalibodsorter.lua:240: attempt to perform arithmetic on a nil value.
Not sure if that means anything. or just the fact that the script closed because the client crashed.
Nel.
-
Yeah, that is because the client crashes.
I call UO.Property on your backpackID to figure out how many items are in your pack. If it cannot find your backpack, it will return nil and then I calculate 124-items, so arithmetic on a nil is because the client crashed.
Try this version, I've added debug information to try and capture the crash location. And made it so your daughter doesn't have to put up with those ridiculous backpacks in her bedroom.
-
ok will try that one, i just tried it with 3 bags to sort from, and 8 bags to sort to, it dropped about 8 bods to my bp and crashed.
Nel.
-
Anyword nel? Did it break? I just opened a bod book and shoved it's container position into the 20k, so I don't think that is the case either.
I'll be heading home soon.
Edit: Well, I just tore through 897 bods, no crash, no time out. Two source bags, Two reward bags. :-/
-
Well its a new day, will try again, see if it was just my computer playing up yesterday., nearly finished now so even with all the breaks and crashes still sorted about 10k bods yesterday, so cant complain.
Nel.
-
SO look like I miss an exciting night. So let me refill my BOD and see it I'm having the same problem as you guy with Ver 2
-
Please do so! I'd love to see if you are. I'm having a problem reproducing.. not just because I'm ugly.
-
Script move to approved library
Thank you for your submission.
If you feel the script is in the wrong section please send me a pm.
-
Hi Kali
-
Hi Kali
I have 2400 BOD to sort. I have download 2.2. have 5 chests with BOD and 4 with sorted BOD. after min the client crash, hit play again and one again 20 min later it crash again. In both case I have a tailor turn in on me wit 345 bod. that make the secure overload. So right now I have only 1 tailor turn in per secure ( 3) and rest between 2 secures. let see if that will fix the problem. It seen that you done drop the book into a new container if this one if full. I only have the kalibodsorter running. I don't index yet; not sure how to use it :))
let you know how the 1500 remain BOB go. Running then right now.
-
Hi Ghost,
I do not have a check to make sure the resulting container can hold the full book. I suggest for the very common ones like the turn in books, that you have one per bag when sorting a high volume. However, that should not cause a crash (also, if you could describe crash.. i.e. is the client crashing and you get an error message, does oEUO crash, or does the script just 'break'?) but cause the script to break because it cannot move the book back to the original reward bag.
I ran this script on 3.7k bods without a single problem. I did however, have it set up with one book/bag for the common ones, and had one bag with the higher end rewards in it.
If you are having issues with the client actually crashing, could you try increasing the lagOffset to 250 or 500? It will slow the script down by increasing wait times between drags/drops. However, that is the only command being sent to the client other than mouse clicks to empty the bod books.
If you're experiencing an actual client crash, then you're not the only one experiencing client crash issues, but I do not know how to trouble shoot it since I cannot reproduce the problem on my machine. I will ask some experienced scripters if they could try the script to see if they can reproduce the client crashes.
-
On the third attempt, I have put all the turn in into the separate secure, same with other one and it run smooth. I'm please with the result. I forget that you put 345 bob into a book.
I crash, mean the client close completely. Guest he didn't like the msg container full :)) I have a request to ask. Can you add a display msg that tell us that we are done. And how can we only put 250 BOB in the turn in BOD. thx.
Gonna take me a few day before I can try high volume of BOD again.
-
Yes, I can add a finished message :)
250 BOB?
You mean you want to put only 250 bods into each book?
-
If anybody wants to try running this on my smithy bods, they more than welcome to PM me and i am sure we can set something up.
Nel.
-
We do need to get this sorted out. I'm going to update the script again tonight or tomorrow. Will let you know when I do. Let me know before you run a sort and I'll be sure to get it out before then.
-
Kali. Yes I would like to have only 250 BOD per book. It will make it easy to fill them. I can't unload them into my pack to fill them with S7 filler. :))
If you need help sorted Smith I have 2k bod to sort as well. No rush on those but if you required my assistance I can help.
-
Ghost, I have a s7 calling script I will pm to you. I woudl release it, but I want people to use my oEUO bod filler when I finish it :p
I will allow an option to select a max fill volume per bod. I will add an updated script much later tonight probably that will contain that, a finished message (with timer maybe), and hopefully have cleaned up the crash issue. I have 2 leads into why that crash is happening.
-
Updated 1-20-13
v2.50
Modified two subs that would rapidly send commands to the client, potentially causing client crashes on some machines.
I've increased wait time between clicking, and added a wait between drag and drop commands.
I've added a new user defined variable, default is 500, but you may choose a smaller number of bods to be put into each reward book.
Pretty little done message when you've finished sorting :)
Please test and let me know if it works. If it crashes, adjust lagOffset to 250, then try again. Then let me know the result, good or bad!
-
I have a few hundred, maybe 1k bods filled, i will give turn them in tonight, then try running it tmos.
Nel.
-
I have attempted to make my own sort list (using your wotsitcalled), going to give it a go later, see if i did it correctly, if i did it will have all the bods sorted into all the individual rewards for Tailoring.
Nel
-
Updated 2-4-13
Update 2.60
I was able to reproduce the client crash twice in a row. Indeed, it happens when the reward bags become full. I believe it happens because it will get caught in an infinite loop that constantly calls UO.Property, and that is it. Instead of throwing in an arbitrary wait that isn't always needed except to keep the client from crashing when the script is going to bug anyway, I've added error checking.
In the event that you cannot store a book back in its original bag, it will look for a bag that can accommodate it. If it finds one, then the script continues on its merry way. If it cannot, then the script throws and error and halts. Thus, it may be beneficial if you declare extra, empty bags, when you do your sorting for bod book overflow.
I also added checks to slow down the emptying function. If it's too slow, let me know, and we can tweak it to speed it up a bit as long as it doesn't start reliably producing crashes.
This script is now dependent upon my updated library script, kalilib.lua v3.00, linked in OP. You will also receive and error message if you do not update the library script.
-
Look like I'm the only one that download the 2.6 version. Better start testing the new change. :)
-
Updated 2-6-13
Fixed a typo in the dofile line causing the script to halt.
-
Thx, was going over 2.6 and 2.5 version to see why it stop. I was calling you name right about now :)) or it was me that didn't follow instruction :).
add: I'm also trying have a chest for each book now, that 10 chests . Cool 2.61 is running now since you remove the v3 ;)
-
Script was running fine for 20 min. I stop to go hunting. I came back reset all the box and now it have stop 4 time in 10 min. let see if I can do those 1064 tailor BODs :)
-
I stand correctly. Now that I complain it work . But how can I have only 250 BOD per books. is there a place in the script that I can enter a number. I have 487 bods now in turn in.
Finished!!
Sorted 1064 bods in 0:57:6!
Thx again
-
Hi Ghost,
You can set that number by changing this value here
--Under User Defined Variables
local MaxBookCnt = 500 --Set this to a specific value if you want less than 500 bods/book
I am glad it worked. Did the script crash at all?
If others weight in that it runs much more smoothly now, we can see about decreasing click time waits. The added wait time is about 15 minutes for the 1000 bods you just ran. The old one did it in 45 minutes and I'm not sure the changes I made to click are what stabilized the client. I crashed twice after changing those, each time when my bod book was to full to return to the pack. Once I added code to deal with that issue appropriately, I wasn't able to reproduce the crash.
-
Well i am happy to tell you, i ran the script with 3900 filled cloth bods, i went to work for a few hours, when i came back i had lagged out, i didnt quite finish sorting them all as i had only put 5 turn in books in there, it is doing those as i type.
I would say the script is A1 ready :)
Nel.
-
No crash last night, like I said the script just stop after he sorted a few BOD. maybe I forget or miss target the secure, Let call it human error for now. I have one book per secure. with 3 secure for turn in and 1 overflow. Now I'm waiting on Neo to test his new tailor filler. I may try to see if I can find the snippet for S7 that use multiple book.
-
I have been trying to use the multiple book script, but for me it only uses 1 book, it will fill 400 bods in 1 book, but when it changes to the next book it hangs and times out
Nel.
-
Nellie, what do you use to fill up your tailor BOD. I use S7 right now and trying to find something better until we can test NEO
-
I want to make a filler but
A) I'm collecting bones to do so.
B) Trying to shoot down our problems with my sorter first, so you guys will think that Kali is cool, I'll try is maker too :)
C) Will you guys pm me at EasyUO, and I'll send you my s7 calling script. Can't send attachments here, from what I figured out, so far.
D) When I finish my maker, will you use it?
-
I want to make a filler but
A) I'm collecting bones to do so. i have 45k'ish bones, if you want to test i can sort out something with you
B) Trying to shoot down our problems with my sorter first, so you guys will think that Kali is cool, I'll try is maker too Smiley Kali's already cool, he sorts my bods ;D
C) Will you guys pm me at EasyUO, and I'll send you my s7 calling script. Can't send attachments here, from what I figured out, so far. same name here as there as you know :D
D) When I finish my maker, will you use it? does a bear $hit in the woods?
Hope this answers your questions :D
-
Nellie, what do you use to fill up your tailor BOD. I use S7 right now and trying to find something better until we can test NEO
I use S7's but i use Timbo's script to actually fill the bods, that way you can fill 400 bods from 1 book, unfortunately it don't do bone bods, and it wont start a 2nd or 3rd book like it claims to do.
Nel
-
Thx Nellie, I forget about Timbo, nice reminder.
Kali, you have giving me the tool to do tailor gain. I have so much BOD that I need vendor to hold then :))
Question for you two. How to you combine the large. EX I have 33 large horned kit. and 458 small horned kit. I usually do it by hand, but since the large volume, i can't organize them to fill them. I'm overwhelmed with the work. I'm sure their a easy way to do this, I just dont see it. can you guy in-light me plx.
-
I place all bods in same book, set the book to the type of the large then drop the large followed by the smalls, pop these into another book, rinse and repeat till all done. I then use timbo's script to fill em all, then drop them all into my backpack and start up S7's bodfiller, dosent matter if not enuf space to make items, all bods already filled S7's script will then match up the smalls to the larges.
there might be a faster way of doing it, if so somebody else can post it but this works for me.
Nel.
-
Notice** It seems Bod Gumps have either changed size or I have published an error. Will update later when I get time. Sorry.
-
Haven't seen any changes, I did BOD Saturday all day with S7 and ur sorted V 2.61. No problem. gonna have to test that in a few.
-
Hey Kali,
So I've been eyeballing this for a couple weeks now, just waiting to have the time to sit down and really play with it. Tonight, I downloaded everything and started creating my own index so I could give it a run.
-
I have changed how i fill my bods now, and will be doing a lot of bribing, but i need to change the bod sorter, to sort out:
A, bods that already turn into Bkits, Hkits Skits and bless deeds
B, Bods that with 1 bribe can be turned into one of the above
C, Bods that with 2 bribes can be turned into 1 of the above.
H'kits and Bkits are obv what are wanted more than anything as they fetch the most Gp, all 120 tailoring scrolls with 1 bribe turn into B'kits which is good :).
Does anybody want to help me sort out a sorter to do this, i managed to sort them into all dif types of rewards, but it took me best part of a day lol, (can share it if anybody wants it).
Nel.
-
I have changed how i fill my bods now, and will be doing a lot of bribing, but i need to change the bod sorter, to sort out:
A, bods that already turn into Bkits, Hkits Skits and bless deeds
B, Bods that with 1 bribe can be turned into one of the above
C, Bods that with 2 bribes can be turned into 1 of the above.
H'kits and Bkits are obv what are wanted more than anything as they fetch the most Gp, all 120 tailoring scrolls with 1 bribe turn into B'kits which is good :).
Does anybody want to help me sort out a sorter to do this, i managed to sort them into all dif types of rewards, but it took me best part of a day lol, (can share it if anybody wants it).
Nel.
I spent about 2 hours the other day going through the entire list of bods and creating my own filters specifically for bribing. Saved it when I was done.. But now when I try to load the file I created, it's empty and doesn't work. Was highly depressing.
-
Hello!
Sorry all for the long delay in posts. Been rather busy with work.
So, for now, these are the things on my immediate scripting docket:
1. Verify bod parsing and evaluating to ensure fidelity in sorting.
2. Modifying the parse function to separate weapons from misc. helmets and shields so that they may be separated.
3. After doing so, I will need to revamp and test the hash function to ensure their are no collisions, and modify it if so.
4. Since I am already going to be looking at this in depth, I would be willing to modify the default index to include some of what users are asking for. I would want a list from the crowd.
I'm thinking about current sorting bins, but adding to it these 4 books: Smith Bribe Once, Smith Bribe Twice, Tailor Bribe Once, Tailor Bribe Twice.
What deeds would need to go into those books for you guys? Try to give quality bribes, I don't want to sort these things such that I'm bribing copper runics to bronze runics, or paying tons of money to bribe bronze runics to agapite runics. Also, I would like to avoid placing POF smalls into the bribe index.
With that being said, please feel free to give me a list of deeds you guys would like to see in bribes, and if you have a good argument, another key to add to the default index.
ManI have changed how i fill my bods now, and will be doing a lot of bribing, but i need to change the bod sorter, to sort out:
A, bods that already turn into Bkits, Hkits Skits and bless deeds
B, Bods that with 1 bribe can be turned into one of the above
C, Bods that with 2 bribes can be turned into 1 of the above.
H'kits and Bkits are obv what are wanted more than anything as they fetch the most Gp, all 120 tailoring scrolls with 1 bribe turn into B'kits which is good :).
Does anybody want to help me sort out a sorter to do this, i managed to sort them into all dif types of rewards, but it took me best part of a day lol, (can share it if anybody wants it).
Nel.
I spent about 2 hours the other day going through the entire list of bods and creating my own filters specifically for bribing. Saved it when I was done.. But now when I try to load the file I created, it's empty and doesn't work. Was highly depressing.
MeWonUo, can you describe to me what happened? I tested that creator several times. Did you save the index file? Can you find the index file on your system? If you open it up, is it blank or is there an actual table?
I'm really sorry it caused you to waste so much time.
-
I think by default it saves as a .sav file, i couldn't find that at first until i realized i had to expand the search when loading.
Nel.
-
THIS SCRIPT IS PHENOMENAL.
(All caps intentional)
-
Been looking at ToR website, and it seems the 3 most wanted rewards to bribe for (CBD HRkit BRkit) will be easy to sort without having to make a new table. All 115 Tailoring scroll bods should upgrade to a HRkit, All 120 Tailoring scrolls should upgrade to a BRkit, All 110 Tailoring scrolls should become CBD's. does this seem right to you guys?
Nel.
-
I'll look at those on ToR and make sure it's correct but good deal, I'll make those changes.
Also, I've rewritten the sub to recognize smith shields/armor from weapons so certain ones can be bribed to POF (armor/shields can but weapons can not). I'm updating the index now. I will test after work and see if I can get it posted tonight. Will need to update all scripts to reflect the expanded keys in index table and the sorting functions to provide the correct values to be hashed into those keys. Right now, I anticipate a relatively easy transition.
Also, Thanks NObama :)
EDIT: So, do we really want to dump all 120 tailors into bribes for barbed kit? Are 120s in demand at all? I might have to leave that one for the discretion of users. Essentially, they could just grab the 120 tailor book and go bribe them all to the barbed kit which is easier than filtering the 120 tailors back out of a bribe book. I'll put the 115s to Horned kit and the 110s to CBD into the bribes for certain
-
The tailor bod bribes I've currently inlcuded are:
bList = {}
bList[1] = nMat == 1 and nAmt == 20 and nQual == 1 and nItems == 3 --Small/Large Barbed 20 Normal 4 piece
bList[2] = nMat == 1 and nAmt == 15 and nQual == 2 and nItems == 3 --Small/Large Barbed 15 Exceptional 4 peice
bList[3] = nMat == 3 and nAmt == 20 and nQual == 1 and nItems == 2 --Small/Large Spined 20 Normal 5 peice
bList[4] = nMat == 2 and nAmt <= 15 and nQual == 1 and nItems == 2 --Small/Large Horned 10/15 Normal 5 piece
bList[5] = nMat == 1 and nAmt == 15 and nQual == 1 and nItems == 2 --Small/Large Barbed 15 Normal 5 piece
bList[6] = nMat == 5 and nAmt <= 15 and nQual == 2 and nItems == 2 --Small/Large Cloth 10/15 Ex. 5 piece
bList[7] = nMat == 4 and nAmt <= 15 and nQual == 2 and nItems == 2 --Small/Large Normal 10/15 Ex. 5 piece
bList[8] = nMat == 3 and nAmt == 15 and nQual == 2 and nItems == 2 --Small/Large Spined 15 Ex. 5 Piece
bList[9] = nMat == 4 and nAmt <= 15 and nQual == 1 and nItems == 1 --Small/Large Normal 10/15 Normal 6 piece
bList[10]= nMat == 3 and nAmt == 15 and nQual == 1 and nItems == 1 --Small/Large Spined 10/15 Normal 6 piece
for k,v in pairs(bList) do
if v then
return 'Tailor Bribes"'
end
end
and the smithing ones
bList = {}
bList[1] = nMat == 9 and nQual == 2 and nItems == 4 --Small/Large 10-20 Iron Shields/Armor
bList[2] = nMat == 6 and nQual == 2 and nAmt <= 15 and nItems == 4 --Small/Large 10-15 Dull Copper Shields/Armor
for k,v in pairs(bList) do
if v then
return 'Smith Bribes"'
end
end
What do you guys think?
-
My opinion:
1 - Anything that can be upgraded to Spined, Horned, Barbed Kits or CBDs should - regardless of how many times it needs to be bribed to get there. ALL of those kits are in high demand. If they aren't yet, it's only because the whole playerbase hasn't twigged to the POWER of runic reforging. POWER. Gold is no object - particularly when you can bounce around to so many unused tailors in the world (or, for some of us, to so many unused shards :P)
2 - There is probably a point at which it doesn't make sense to upgrade Spined to Barbed, or even Horned to Barbed, for reason of the above.
3 - I really, really need this addition to the script, so no one distract Kali until it's done please!
-
I just finished sorting, Sorted 3390 bods in 3:0:24. Thats 3.18 seconds per bod, if i were to do it myself, that would be minimum 20 seconds a bod so instead of 3 hours would have been 20+ hours. and UO says we dont need scripts :P
Nel.
-
First OEUO script I have ran, very very nice work. It was smooth going, did a great great job. Not a single issue at all and saved me a bunch of time and clicks. Thank you very much for this
-
Hey guys, i havent sorted bods for a while so when i came to do a little sort out this morning i get this message:
...User\Desktop\Stuff\OpenEUO\scripts\kalibodsorter.lua:162: Where the [censored] are you going to sort them?
Any idea what the problem is, i have tried using script with hard coded bags and a fresh download of the script, but get the same message with both. Could it be that we need a new Kalilib?
Nel.
-
It seems that it's not finding bod books in your sort to bags or not finding your sort to bags at all. I'll update UO and oEUO when I get time this week and see if I can see if something happened. Like changing bod book types or something with UO.Property...
-
I think it has to be the bags themselves, it didn't try to open any in either attempt.
Nel
-
Hi Nellie, Didn't get a chance to test out the script. Do me a favor and change the hardcoded bag IDs back to nil (just comment out your IDs) and run the script.
-
Hi Kali, I already did that, i re-downloaded the script and tried it, but didnt work.
-
Hi Kali, I already did that, i re-downloaded the script and tried it, but didnt work.
That message comes specifically when you have no drop bags defined during run time. Are you targeting the bags properly during set up? It should be target Bags with Bod Books to Sort and then Reward bags second. Make sure you hit f3 in between.
-
It doesn't get to that point, it starts, seems to wait for a period of time, then gives that message. doesn't ask you to target bags or press F2/F3 at any point.
wonder if this is like the Archangels fishing script where you need to clear part of your registry to clear the id's or something.
Nel.
-
Odd, well, I've written version 3.0. Just making the last changes and will test. Hopefully it w/ill clear up the issue.
-
Look forward to testing it :)
Nel.
-
I tried to create my own index to sort smith BODs into books based on whether they were platemail/ringmail/chainmail but ran into some problems. The script started fine and I was able to target my bags, but after it had emptied BODs from the source book into my backpack nothing happened - no book was moved from reward bag into my backpack. Any ideas why it was struggling with this?
-
Kali This worked great the first time I ran it. It sorted 250 bods quickly and correctly. Since then, it opens the bod book bag and the bad reward bag, pulls the bod book out, and then I see 3 flashes through the bod book menu and then it keeps putting the bod book away and pulling it back out in a loop. I have room left in my backpack and the reward bod book. This what OEUO is giving me:
152 bods left in this book
152 bods left in this book
152 bods left in this book
152 bods left in this book
152 bods left in this book
I have re-downloaded the bod sorter script and I get the same thing. Any suggestions?
-
It seems to be something with the bod reward book. When I get over 200 bods in it, it won't unload bods from new bod books, just goes into the loop until I pull out that book and replace it with an empty book.
-
Crisis,
Look on top see how many BoD you can have. Always have spare bob in chest.
local MaxBookCnt = 500 --Set this to a specific value if you want less than 500 bod
-
Ghost my max bod count is 500 as well and with the reward books and book to be sorted, I still have 35 spots left in my inventory but it keeps moving the book to be sorted back and forth between the secure and my backpack. If I remove the smith turn in book with 266 bods it works fine until the new smith turn in book hits over 200 bods yet I still have room for at least 30 items in my inventory.
-
It have to be a naming issue. It happen to me before. check the name of your book again, space or minuscule.
Also look at the Thread 1 : it will tell you if you are missing a reward book.
-
When I first started the script, I had a typo and it could not find a book. The script stopped and told me that it could not find 120 Tailor PS. The problem centers around the "Smith Turn In" bod book. When that book hits over 200 bods in it, the script starts looping and will not pull more bods from other books. If I take another bod book and empty the bods from it, then start the script, it will place those bods in the proper books. It just does not want to pull bods when that book is over 200 bods in it. It is really weird, other than that it runs well and I have sorted a lot of bods. Right now, when that happens I pull that book out and insert an empty book with the same name so I can still sort.
-
Ok. change the 120 smith PS fro 120 PS.
Weird, because I just used it last night and it work.
-
It works until that one book gets over 200 bods in it, it has to be something with total items in bag or something but for now I will keep replacing the Smith Turn In bod book with an empty one once the script starts looping.
-
I made an index that sorted all Tailoring Bods into seperate bokks (From +5 to BRSK) in one index, took me absolutely ages, i havent used it for a while, and wanted to tweak it a lil for bribes.... but then i saved it as a blank index!!! does anybody have a index set up that i could use for Tailoring... i cant bare to sort 4k bods by hand, and creating another index will take me atleast a day.
thanks in advance if anybody can help.
Nel
ICQ 76844852.
-
I just use Kali sorted. for must of the BoD but
I love his alot too because you can sort it more.
MeWon's Smith : http://www.scriptuo.com/index.php?topic=8671.0
MeWon's Tailor: http://www.scriptuo.com/index.php?topic=10213.0;topicseen
-
http://www.mediafire.com/?95gw4evnuor3fsv (http://www.mediafire.com/?95gw4evnuor3fsv)
This is my tailor index:
Smith Unsorted - In case I run across any smith BODs in my tailor books
Tailor Trash - Junk LBODs and footwear
Cloth Fill - For turn-in
Bribes - 6-part LBODs and SBODs to bump up
Studded Bone - 5-part LBODs and SBODs that can't be filled for runics
CBD Large
CBD Small
Spined Kit Large
Spined Kit Small
Horned Kit Large
Horned Kit Small
Barbed Kit Large
Barbed Kit Small
Currently untested so beware :P Hope it helps.
-
Hey, first congrats on your script, it's a great idea!
Any chance you could make it also compatible with freeshards? At least the normal runuo ones?
You would greatly reduce the % of carpal syndrome victims worldwide ;)
-
Okay, I will see about a major update soon. Much on my hands right now.
-
I would suggest to split the smith item type like
- plate
- chain
- ring
- weapon
- shield/female/helm
i group plate, chain, ring to fill large bod, weapon only good for recycle. and shield/female/helm(except plate helm) i bride up for pof and bronze/copper hammer.
-
i made a little teak to GetOrder sub so i can regroup the item types
function GetOrder(item)
--local Orders = { {"Platemail","Plate Helm"}, {"Chain"}, {"Ring"}, {"shield","blucker","Female Plate"} }
local Orders = { {"Platemail","Plate Helm"}, {"Chain"}, {"Ring"} }
local result = nil
--local offset = 5*(math.fmod(3,size))
for k,v in pairs(Orders) do
for k2,v2 in pairs(v) do
print(item)
result = string.find(item,v2)
if result ~= nil then
return k
end
end
end
return 4
end
I would also like to add 5th and 6th type but i am having trouble building the hash code additional types.
-
It's been so long and I'm still 'unemployed' so my time goes to researching positions and applying. Haven't had time to really give it a good look over again. I wanted to see if I could make it more 'customizable' friendly, but really I've given you all the power there. Did you try my index creator? It should be able to differentiate plate helm. I think you're going to hard into my script and not enough into the hash table. My hash function actually includes a collision tester. You should look at that if you're really looking to rework the hash function/table. You can simulate the types you parse with their associated value and test it for collisions. It will warn you if your hash function is invalid for your data set.
Until I figure out my future employment, I will not be able to help out with all of these situations.
-
No problem and good luck looking for job.
-
Been a while since i had this running, i managed to start it yesterday, but today it seems to not want to run... this is the error message i am getting.
...ser\Desktop\Openuo\OpenEUO\scripts\kalibodsorter.lua:61: could not open file
Thanks in advance if somebody could clear this up :)
Nel.
(posted on both site's for a better chance at getting an answer :) )
-
Hey Nel, I lost my laptop harddrive. Since i had your version saved there (I think since i tested in your building, I had hardcoded a version and sent it to you) it is now gone.
On mine, line 61 could never produce such an error. The only time an error like this happens is from a dofile on an invalid file name. That means you are probably missing one of my dependent scripts (like kalilib.lua) or you're missing the bod sorting index you want to use. your line 61 probably looks like one of these two lines.
dofile(getinstalldir().."/scripts/"..fName)
dofile(getinstalldir()..'/scripts/kalilib.lua')
and if it is the top one, then please also check the line much higher up that looks like:
fName = "Bodsorterindex.lua"
and verify that the file name is correct for the bod index you want to use.
Finally, make sure both those files are present int he openEUO root directory/scripts/ folder. If not, please change the dofile lines to reflect the appropriate location.
-
Hmm yes i have the 2 lines together, the top of which is line 61, then the line at the top is called mytailor and is a txt file. The mytailor file is in the same location as the other 5 files (4 from top of this script and Kalilib)
Nel.
-
tell me what prints with this:
print(getinstalldir()..'scripts/mytailor.txt')
and then tell me what the full path of your folder is that contains mytailor.txt
i.e.
E:\openEUO\scripts\mytailor.txt
-
I managed to get it working again, i re-downloaded the bodsorter script, and put in the bag numbers, opened the index creator and there opened the mytailor.txt and saved that as a Lua file, it then seemed to work. only thing that made it hang then was one of the books was saved as "Studded Bone" and it got stuck at a line saying it could not find that book (There were 5 in the bag). I will have to redo the whole sorting thing anyway as the one i am using throws away a lot of good bribe bods (using somebody elses as i accidentally saved over the top of mine :( ).
Thanks again for your help and Support Kali,
Nel.
-
I have just finished sorting out all the bods into separate rewards from RUG to BRK, but along the way i saved and got a file called KBS, is there any way to rename this bin or move all the contents to a new bin and delete that one (All the contents of KBS are RUG reward) been looking around and cant see how to do it, unless i restart :(
Nel.
-
Sorry Nel, Gotta ask you to clarify, don't quite understand.
You have a bod table saved as KBS or a bin in your bod table saved as KBS?
-
I think it auto saved a bin in the bod table called KBS and all that was in it was all Smithy bods and bods for Tailoring Rug rewards, so what i did was delete all the smithy rewards and saved again, a new bin was then created called KBS_Orphaned and that bin then contained all the smithy bods. The only reason i want to change then name from KBS to RUG is so i can share it. If i just keep it for myself it wont matter.
Nel.
p.s. if i had realized i could have set up a bin called RUG and set the Tailoring bods in there and i wouldn't have this problem, but i didn't know it would auto create a bin for orphaned bods.
-
Yeah, I did this to prevent someone from not setting a bod to a bin and then when the script runs, the result would be a nil key in the hash table. You should be able to open the save file in my creator, select the orphaned or KBS bin, apply the ones you want to which bins, then save it. The script auto deletes empty bins from the index. If you reopen it, the KBS_orphaned or whatever won't even show up as a bin anymore.
-
ok, cheers mate will give it a go next time i am on, Merry Christmas :)
Nel.
-
Kali
When you have a min I required your help. I'm slowly figure out how to move BOD and where I want them. I have been trying to move the Large Iron 2 parts weapons and small 20 bardiche and halbert to their own book. Can you answer this for me plx
[25102] = "Smith Trash", --Smithing Large Iron Exceptional 20 Weapons or Sheilds. How did you get the [25102] can't figure that one out. thx
-
that is a result of the hash function.
I basically assign values (I can't remember them without looking at it exactly right now)
2 for a large bod
1 for iron
# for size
2 for exceptional etc...
Then I push that into my hash function as a table {1,2,1,20,0} etc... and that hashes the table values.
Check out my bodindexcreator.lua file. It creates the hash table values and checks for collisions of those values based on the input values.
-
Okay for those of you on freeshards (specifically, this worked on demise)
I have narrowed down one style that causes problems on freeshards.
You can paste this at the very top of the ClassifySmithBods function (~line 444ish)
--DEMISE CORRECTION CODE
if not BOD[2] or not ( BOD[2]:find('Normal') or BOD[2]:find('Exceptional') ) then
table.insert(BOD,2,'Normal')
end
if not BOD[3] or not BOD[3]:find('Ingots') then
table.insert(BOD,3,'Iron Ingots')
end
-
This was build when I was doing lot of BOD and was trying to come up with a way to bride and sort them. If anyone have a better way to sort then I'm open to suggestion.
You will need to label each book with the name below. You also to replace the 2 file below with my. I sugest that you move the original file of Kali into a own folder as back up.
Enjoy
The Ghost mod book naming for Smithing
120 Smith PS
60 ASH'
30 ASH'
Valorite Runic
Verite Runic
Agapite Runic
Gold Runic
Bronze Runic
Copper Runic
Shadow Runic
Dull Runic
2 parts
POF 20
POF 90
Smith Trash --Larges that give poor rewards
Smith Turn In --smalls that belong to larges that give poor rewards. Ready for recycling
--
The Ghost mod book naming for Tailor
120 Tailor PS
Barbed Kit
Horned Kit
Spined Kit
CBD
Tailor Bribes
Tailor Trash
Bribes to Barbed
Tailor Turn In
-
6. User defined variables:
--=======================================================================--
-- User defined variables
--=======================================================================--
local fName = "bodsorterindex.lua" --Index file name
local lagOffset = 0 --ms offset if you have slow connection
local MaxBookCnt = 500 --Set this to a specific value if you want less than 500 bods/book
--Optional hardcoded setup
local sBagID = nil --Bag with bodbooks to sort
local dBagID = nil --Bag(s) with reward bodbooks
--If you wish to set more than one reward bag, set it as a table:
-- { bag1ID, bag2ID, ... }
--=======================================================================--
fName is the file name of the index you wish to sort. This file MUST be placed in the SCRIPTS folder in the openEUO directory. You can add a subdirectory via naming it such: "SubDir/bodsorterindex.lua" or "SubDir/AnotherSubDir/WhyWouldIDoThis/MyIndex.sav", etc...
You can adjust the lagOffset if you experience journal message 'you must wait'... It is in ms, so 250 = 1/4 of a second.
sBagID and dBagID can be hard coded to avoid targeting setup during run time.
First... PLEASE excuse my ignorance! I'm just learning about these scripts and there isn't exactly an easy learning curve. :) When I press play in oEUO I get this message "!C:\OpenEUO\kalibodsorter.lua:34: could not open file". I do have the file in the same folder as the oEUO.exe, but I don't see a "SCRIPTS" folder in any part of the EUO folder to place the files in. Am I overlooking something?
-
When you download oEUO, it should have been zipped with a few .dll files, the exe, and a scripts, gui, and examples folder.
This is the latest version.
http://download.easyuo.com/cheffe/openeuo/bin/openeuo_150415.zip
Alternatively, it does seem like you're using oEUO, or you wouldn't have gotten that message. You can try leaving the scripts in the oEUO folder and delete 'scripts/' from the do file line. I would suggest just checking the download again. EasyUO (EUOX) doesn't need to be in the same folder as openEUO.
Let me know if you don't understand what I mean
-
I have 3 folders in oEUO. "docs", "examples", and "gui" along with 3 .dll files: lua51, objects, and uo. Then I have your 3 files bodsortersindex.lua, kalibodsorter.lua, and kalilib.lua.
This is the section as you have written for the do file line
dofile(getinstalldir().."/scripts/"..fName)
dofile(getinstalldir()..'/scripts/kalilib.lua')
I've tried deleting the "scripts" several ways and I'm still getting errors.
-
Hah, so I just checked it, my bad. It doesn't come with a /Scripts folder any longer.
Simple fix method, just create a new folder called scripts in the oEUO directory and add it to the folder. Trust me, you'll thank me later.. well actually, I create several sub directories. I have one for my library scripts, my scripts, down loaded scripts, etc.. I have like several versions of scripts, it becomes a mad house.
Second fix, just change those lines to
dofile(getinstalldir()..fName)
dofile(getinstalldir()..'kalilib.lua')
If you already made them exactly like that, then what is the errors you're getting?
-
Alright! Time for the update! I added the "scripts" folder in oEUO and it worked with no problem. I added Ghost's index and renamed my books so I could get some of the other rewards I wanted. This thing flew through the BODs like crazy! It stopped a few times but reading the bottom of the script told me what books I needed to name in order to place rewards.
I wouldn't have been able to do this without your script... Thank you very much to both you and Ghost! If you have any idea what would cause it to hang up please let me know, but even as is I will continue to use it!
Now that that's complete... which BOD filler should I go with?
-
Hi Hi,
What were the bods that didn't get placed in a book? That is strange, I didn't have this problem, but who knows with the different index. Even in that case, it should havqe errored with a 'table index is nil' message if it couldn't find a book for it. Also, when it does 'stop', if it prints anything, please let me know and it can help me track down what is happening. Anyway, I use snicker's bod filler, I'm not sure if he's here on SUO, but I thought he was. Let me ask, because his bod filler doesn't allow one to fill bods that are in books.
He did make it 'callable' though (it is euox, not openEUO script) and I wrote a script that manages removing bods from books, calling his filling functions, and then stuffing them back in a book.
-
All the credit go the Kali, he the one with the brain to build this. I just made a few chance that were more to my favor.
I change those variable due to lag on other shard and don`t have issue anymore. and less deeds in the book so I can move then around.
local fName = "bodsorterindex.lua" --Index file name
local lagOffset = 150 --ms offset if you have slow connection
local MaxBookCnt = 300 --Set this to a specific value if you want less than 500 bods/book
--Optional
Dread , I`m still trying to come up with a chart to BoD to bride to get reward, I had started and never finish it. I was thinking of Bribe one, Bribe twice and Bribe tree time.
-
Dread , I`m still trying to come up with a chart to BoD to bride to get reward, I had started and never finish it. I was thinking of Bribe one, Bribe twice and Bribe tree time.
That'd be awesome! Please keep me in the loop when you get it finished up if you don't mind sharing. As I am using it I'm keeping notes on anything out of character. I was too excited about using it and working out what ever issues I caused by improper set up or what not to take notes before. I'm at work now, but when I get home and work through more I will share that info. Earlier today I filled a bod that was marked as 30 ASH ' and got a 105 PS. Then I did bods marked as Shadow Runic and got Dull Copper hammers as the reward. I'll go through some more later, but is this a set up issue on my end or something more?
-
Hi Hi,
What were the bods that didn't get placed in a book? That is strange, I didn't have this problem, but who knows with the different index. Even in that case, it should havqe errored with a 'table index is nil' message if it couldn't find a book for it. Also, when it does 'stop', if it prints anything, please let me know and it can help me track down what is happening.
I didn't know what I was looking for but I looked at the script and noticed an error at the bottom stating Verite Runic not available or something similar to that. That being the case I looked back through my books and noticed there was no book named that. I renamed a blank one and put it in place. That fixed that problem, and it flowed flawlessly after that.
I commented on Ghost's thread down from this one about the rewards not matching to what the book states. So far 30 ASH ' = 105 PS, and Shadow Runic = Dull copper hammer. Have you experienced this or is it something I did wrong in setting it up?
-
Well, I can't comment for the accuracy of ghosts index. Mine was based on the tower of roses table here:
http://tor.bplaced.net/bods-srw.htm
If you look at for instance, small valorite bods, 10/15 sized ones, you have a 40% chance at a dull hammer and 60% chance for a shadow hammer. In these situations it might not yield what you want/expect.
With that being said, yes, I am working on swapping my bods today and will sort my next batch. When I do, I'll try to hunt down my bugs in my next bod sorter version, which I've worked out some of the kinks already. In this version, it will grab an empty bod book and rename it for you! No more stopping because it can't find your bod book :D
-
Well, I can't comment for the accuracy of ghosts index. Mine was based on the tower of roses table here:
http://tor.bplaced.net/bods-srw.htm
If you look at for instance, small valorite bods, 10/15 sized ones, you have a 40% chance at a dull hammer and 60% chance for a shadow hammer. In these situations it might not yield what you want/expect.
With that being said, yes, I am working on swapping my bods today and will sort my next batch. When I do, I'll try to hunt down my bugs in my next bod sorter version, which I've worked out some of the kinks already. In this version, it will grab an empty bod book and rename it for you! No more stopping because it can't find your bod book :D
That's probably all it was. I wasn't thinking about the fact that I got the most probable reward out of the BOD I was turning in. I did 6 of the BODs from Shadow Runic and all came out dull copper but that could have just been a coincidence. I'm not a smart man when it comes to anything BOD related. That's why these BOD scripts are a life saver for me and I really appreciate all the help I'm receiving! Please keep me posted on your update. I'm already amazed at how great this currently works I can't wait to see how much better it can get!
-
Thanks, I appreciate the kind words on my script. Makes me feel good that other people find it as helpful. It started because I was trying to mod this old Razeil one and didn't like how it worked and how hard it was to customized. If I recall right, the think even would pull a book, drop a bod, return the book over and over again instead of dropping all the bods for that book at that time. So these were the things I wanted to focus on- making it customizable for what a person wants AND to make it more efficient. I am sure there are many ways to problem solve it, but when I wrote it at this time, I was huge into looking up information security, cryptology, and hash functions. That is the core of this script. It hashes the bods (value associated) but in hind sight, I could simply concat the values into a string, and I *may* change this.
i.e.
The bod gets assigned values for
Size (Large/Small)
Quality (Exceptional/Normal)
Material (iron/dull/etc..)
Amt (10/15/20)
Item (Ring/Chain/Plate/blah)
Imagine a small, exceptional, shadow iron ingot, 20, ringmail sleeves
And a small, exceptional, shadow iron ingot, 20, chainmail sleeves
The bod values are { 1,2,3,20,1 } and { 1,2,3,20,2 }
I hash those values
Hash( 1,2,3,20, 1 )
Hash( 1,2,3,20, 2 )
Which returns two values that are different. The sorter then looks up those hash values which are keys in the index associated with a string, that string is the name of the book.
Index[ Hash( 1,2,3,20,1 ) ] = Book For this Reward
Index[ Hash( 1,2,3,20,2 ) ] = Book for another reward
However, I realize that I could simple use
Index[ "123201" ]
Index[ "123202" ]
But alas, what's done is done and the result probably isn't any different.
What's faster, appending a value to a string or hashing a few values, I'm not entirely sure.
The issue here is that I would be calling a lot of functions
tostring(1)..tostring(2)..tostring(3)..tostring(20)..tostring(1)
veruss
sum = 0
sum = sum * 41 + 1
sum = sum * 41 + 2
sum = sum * 41 + 3
sum = sum * 41 + 20
sum = sum * 41 + 1
sum = sum % 67735
Which is faster? I don't know. tostring(1) undoubedtly is a mathmatically operation to turn the number value into the ascii (or UTF/UNICODE) value associated with it, and then string concat I have absolutely no idea since I'm unfamiliar with pascal memory management. In C++ I believe a string is a contigious block of memory so it would involve memory allocation and movement. In short, would it be worth my effort to make the sorting guts easier for others to understand and an index that is intuitive to look at? Short answer, it's fast enough so I will probably never change this aspect.
-
If the results are all the same (and it looks like it would be) - I think that time could be better spent adding those valuable updates you talked about that make the whole script that much more hands off. At the end of the day the less the user has to setup, the less problems can occur. A good example of this is Guadah's Multiskill Trainer. (http://www.scriptuo.com/index.php?topic=8208.msg70597#msg70597) (http://(http://www.scriptuo.com/index.php?topic=8208.msg70597#msg70597)) With that I just open it up and grab the required resources, pick a skill, and hit start. While it's a different beast... you get my point.
-
HI Dread
Like Kali mention I use Tower of rose for reward. I seperate both because I didn't need the one BoD that yeild 100% Dull Copper, so I made a book call Shadow that had a chance to give me shadow runic.
Don't forget that sometime the PNG can give u a bonus too.
Other the you naming the book wrong and sometime now having the expected reward, everything work fine