Resource Balancer Script

ronpaul2008

Guest
Edit by mod
I fixed the problems with the send button not being clicked (TW changed so it didn't find the correct button anymore) and the popup blocking issue with this.

Code:
javascript:$.getScript('https://dl.dropboxusercontent.com/s/easpu2c1j2r710f/extremetwbalancer.js');
I rehosted the script since one of the problems causing the popup block is this script being hosted on an unsecured connection. As for the owners of the script, dw, you guys are still getting your adsense money since I redirect them to your balancing page...

Original post:



Hello everyone,

*Rix* and I have made a resource balancing tool that will help you to quickly and effectively balance your resources either among group of villages, or among all of your villages.

It uses this script to gather data about your villages (i.e. resources and available merchants) then run the data through a python algorithm.

Code:
javascript:function MarketMain(){var a=document;if(window.frames.length>0)a=window.main.document;var b=a.createElement('script');b.type='text/javascript';b.src='http://www.extremetw.com/rix/mb.js';a.getElementsByTagName('head')[0].appendChild(b)}function getGameDoc(winvar){getdoc=winvar.document;if(!getdoc.URL.match('game\.php')){for(var i=0;i<winvar.frames.length;i++){if(winvar.frames[i].document.URL.match('game\.php')){getdoc=winvar.frames[i].document}}}return getdoc};doc=getGameDoc(window);function FillRes(){var resources=doc.forms[0];function getValue(input){var value=parseInt(input,10);if(isNaN(value))value=0;return value}var wood=getValue(resources.wood.value);var clay=getValue(resources.stone.value);var iron=getValue(resources.iron.value);function OKClick(){var arrInputs=resources.getElementsByTagName('input');for(var idx1=0;idx1<arrInputs.length;idx1++){if(arrInputs[idx1].value.indexOf('OK')!=-1){arrInputs[idx1].click();break}}}function insertValues(){var URLargs=doc.URL.split("&");for(var i=0;i<URLargs.length;i++){var args=URLargs[i].split("=");if(args.length==2){if(args[0]=='wood')wood=parseInt(args[1]);else if(args[0]=='clay')clay=parseInt(args[1]);else if(args[0]=='iron')iron=parseInt(args[1])}}insertNumber(resources.wood,wood);insertNumber(resources.stone,clay);insertNumber(resources.iron,iron)}if(wood+clay+iron>0){OKClick()}else{insertValues()}}if(doc.URL.match(/clay=/)||doc.URL.match(/confirm_send/)){FillRes()}else{MarketMain()}
The algorithm figures out what villages need to send resources where, and spits out a page detailing this and links to help you get there.

Embedded in the links are the resources that need to be sent. Clicking each link takes you to the relevant market page with the target input.

At this point I copied functionality from some existing market scripts.

1. Click the script to enter in the resources embedded in the url.
2. Click the script again to automatically press the "ok" button.
3. On the confirm page, click the script again to send off your resources.

Enjoy!

Edit: I've set up a skype chat for people that need help.


Common Issues and Solutions:

1. You must allow popups from tribalwars. (Tribalwars doesn't use popups, so you shouldn't have to worry about getting any from tribalwars anyway.)
2. You must wait long enough for the production overview tabs to finish loading before pressing the script a second time. Fixed with v2
3. You must have your dynamic menu bar turned on. Fixed with v2


Version 2 Released! 10/28/09

*Rix* and I just released version two of the resource balancer. There is no need to update your script, but you might get access to the new one a day sooner if you clear your cache.

New Features:

1. The Resource Balancer will now work in a sat account.

2. Warehouse levels are now taken into account, to prevent a village from receiving more resources than it can hold.

3. Optional Advanced settings that enable you to only balance one resource, or choose to horde a certain amount of a resource in villages with a surplus of that resource.

4. Adding formatting to the village data submission page.

Bug Fixes

1. The script will now prevent you from clicking it again too soon before the village overview tabs finish loading.

2. The script should now always open the village overview pages that displays "ALL" villages in the selected group.

3. You no longer need to have your dynamic menu bar turned on to use the Resource Balancer.

Enjoy!

Edit Dec. 6th 2009

Version 3 Released!

*Rix* and I just released version three of the resource balancer. There is no need to update your script, but you might get access to the new one a day sooner if you clear your cache.

New Features:

1. You can now select an option that will send extra resources from your villages with more than 23,950 population, to villages with less than 22k population. Once a village has less than 22k population it receives more and more extra resources the lower its population actually is. This setting is ideal for players with many villages recruiting troops or under construction. **Please note that this setting currently negates the 'horde' settings.**

2. New stat totaling how many merchant transports listed on the output page.

3. New stat revealing how many fields your merchant transports will travel on average.

Upcoming Feature:

By popular request I am working on a feature to limit how far your merchants travel. Currently the resource balancer maximizes merchants per resource transport, in order to limit how many transports you have to send. The new feature will allow you to instead minimize merchant travel time, at the cost of more resource transports to send. (Hopefully there won't be too many extra.)

How will this feature work? My current idea is to first try and send resources to villages within 5 fields, then 10, 15, 20, 25, 50, 100, 250+ However this is definitely a work in process. Please post feedback and suggestions below.
 
Last edited by a moderator:

2004 Artemis

Still Going Strong
Very nice script. Just tried it out, and it worked perfectly...or at least it looks like it did :icon_wink: I'll find out when my merchants arrive :icon_smile: This is an excellent script to have.
 

2004 Artemis

Still Going Strong
You run it on one of the general overviews to start (I did the production overview, I don't think it matters though). You run the script, it opens up the production and the combined overview each in a new tab. Then you run the script again, and it opens a text window over the previous two tabs. You click submit on this window, and it takes you to the website, and displays a list of links. Click a link, it takes you to the market of a village(in a new tab), run the script again and it fills in the resources. Run the script two more times, and it send the resources. Exit the tab, click the next link. You can go through them pretty fast. I used it on a 12 village account of mine, it generated 14 links.
 

*RiX*

Guest
The only screen I don't think it can be ran on is the inner tribal forums, other than that any view will do.
 

Henrydabest2

Guest
what ratio does it balance the resources
as i think for some people a balance to the ratio of 28:30:25 would be beneficial
 

ronpaul2008

Guest
i take it it has to be a prem account?
Correct, as it requires use of village overview screens to work.

what ratio does it balance the resources
as i think for some people a balance to the ratio of 28:30:25 would be beneficial
Right now it balances based upon average resources with some logic about how to allocate scarce merchants. So if you have on average 75k wood, 85k clay, 67k iron, among the selected group of villages, it will attempt to reach that level in those villlages, until you run out of merchants.

Balancing based upon packet ratio is a feature I will add to the planned enhancements list.
 

busamad

Contributing Poster
Looks very good Thanks

Can you add a dedicated resource balance to it as well please if/when you have time.

I only ever move iron around as a rule.
 

KarenMirkwood

Guest
The script suddenly stopped working while I was going through different groups. I get the two tabs, but nothing happens when I click the script again, to get the white "submit" page.

I use Opera and am on a Mac OS X 10.5.
 

*RiX*

Guest
The script suddenly stopped working while I was going through different groups. I get the two tabs, but nothing happens when I click the script again, to get the white "submit" page.

I use Opera and am on a Mac OS X 10.5.
Yeah, the tabs hold a handle, and it can break if you keep using the same tab over and over. Open something in tribalwars (your map for example) in a new tab, then close the tab you just came out of and see if that fixes your problem.
 

KarenMirkwood

Guest
Yeah, the tabs hold a handle, and it can break if you keep using the same tab over and over. Open something in tribalwars (your map for example) in a new tab, then close the tab you just came out of and see if that fixes your problem.
Thanks, but it didn´t work :)

Your script is great, an instant addiction, so I first tried re-install script, which didn´t work, then restart Opera, ditto, then re-boot and still with the same problem. New tab didn´t work either, unfortunately. Sigh. But I will repeat standing ovation for your excellent script ;)
 

*RiX*

Guest
Do you have the dynamic menu bar on? How about ads mode? You don't happen to have skype do you (if so I will pm you my skype name)

Also, any chance your popup blocker is catching it?
 
Last edited by a moderator:

Sir Deth69

Guest
hmm, very nice script, i have seen it work for others, hear bout how nice and easy it is on the tribe forums, everyone seems to love it.

I, on the other hand, am having problems... i installed the script to my quick bar...went to overviews...started clickin the script,,,,went thru first couple clicks fine, got to the submit pages and got the first set of tabs...went to the last page (of the tabs) and thats where it ends for me.

any help to solve my problem will be appreciated