Jump to content

Facebook Farmville automation


marian001
 Share

Recommended Posts

Anyone figure a way to ControlClick() coords on IE window..

Not possible. Use the IE functions.

[left][sub]We're trapped in the belly of this horrible machine.[/sub][sup]And the machine is bleeding to death...[/sup][sup][/sup][/left]

Link to comment
Share on other sites

  • Replies 501
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

timehorse

- cool i misread step two.. i thought u move the mouse over the plow tool lol.. for step two lol.

anyways when i was trying out ur recent script and set the area 20x20 and go full screen. it doesnt click on all the plot area.. only half of it is done and it is uneven. i will take a screen shot tomorrow because i wasted all of my cash doing the plant plow wither thing lol..

Link to comment
Share on other sites

timehorse

- cool i misread step two.. i thought u move the mouse over the plow tool lol.. for step two lol.

anyways when i was trying out ur recent script and set the area 20x20 and go full screen. it doesnt click on all the plot area.. only half of it is done and it is uneven. i will take a screen shot tomorrow because i wasted all of my cash doing the plant plow wither thing lol..

First of all: Oh, my! So SORRY! I think I know what the issue is actually. I'm assuming you trained it full screen since those are the click positions you want. Of course that means memorizing the order of the click-points to set, but there are only four and it sounds like you've got it! :)

Based on what you've said, I believe you need to change:

Global $zoom = 0.33

To

Global $zoom = 0.50

BTW, the reason I start with the multi tool setting first is because I want to make sure the plow tool is selected when the home (East-most point) is set since plowing a blank field requires more click-accuracy than planting, deleting or reaping. That's why I need to know the positions of the control buttons first. But, as you can see, the trainer will take you completely through one cycle, so it flows rather nicely even if the control point is the Multi Tool rather than the plow tool.

Anyway, I think the issue is one I neglected to emphasize when I said I was using my personal defaults, and that is I am using a modified gameSettings.xml which sets my default zoom to 0.33 -- normal minimum zoom in the game is 0.50, so I have it zoomed out farther when I play -- which, BTW, can cause rounding errors since the plot sizes are no longer integral. However, this zoom level allows the full 20x20 farm to be displayed in a flash window and on my slow computer I find that full screen mode tends to lock up and what with those pop-ups popping me out of full-screen I just assume leave it windowed for the clicker. As I said, though, it makes that home click point even more tricky to set because of the rounding issue at 0.33; 0.50 (normal zoom) does NOT have a rounding error since the offsets are integral. But for you, if you change the $zoom setting to that above, the click positions should work.

Oh, and as for wild clicking: believe me, using 0.33 with the wrong rounding offset or a too speedy clicker will do that to me too, so what I usually do is run the plant and then the delete using the same settings so that even though I may not get a full screen of tool use I'll the the Coin for Exp. Best to test the settings on a small plot, though, and hit Escape as soon as you see it going off the rails!

Hope that helps!

Also, I made a few more changes to the script with respect to bad PixelChecksum reads -- there's now a description in the change log: http://timehorse.pastebin.com/f7120213

It ran most of last night and netted me 5000 Exp. Not the fastest June-bug in the bunch but I sacrifice speed for accuracy. :)

Still TODO:

1) Make the zoom level configurable in the GUI to make it less confusing (combo box select 0.50, 1.00, 1.50 or 2.00 or enter your own text, i.e. 0.33)

2) Enumerate all click points BEFORE clicking and implement jump-back, jump-forward function!

3) Test and fix any problems with the Eastward click mode which was exhibiting a tendency to mix rows for columns

4) Implement code to dismiss "Help on a Farm", "New Level", "Post on Wall", "Lost Cow" messages properly (I like saving cows so automating that would be nice)

5) Detect page reloads and pause the script accordingly! Detect the gifts page and click through to Play.

(Some have already taken a crack at those last too, so I may start to integrate when I reach them.)

Jeffrey.

P.S. I really should screen cap my 0.33 Zoom.

Link to comment
Share on other sites

First of all: Oh, my! So SORRY! I think I know what the issue is actually. I'm assuming you trained it full screen since those are the click positions you want. Of course that means memorizing the order of the click-points to set, but there are only four and it sounds like you've got it! :)

Based on what you've said, I believe you need to change:

Global $zoom = 0.33

To

Global $zoom = 0.50

BTW, the reason I start with the multi tool setting first is because I want to make sure the plow tool is selected when the home (East-most point) is set since plowing a blank field requires more click-accuracy than planting, deleting or reaping. That's why I need to know the positions of the control buttons first. But, as you can see, the trainer will take you completely through one cycle, so it flows rather nicely even if the control point is the Multi Tool rather than the plow tool.

Anyway, I think the issue is one I neglected to emphasize when I said I was using my personal defaults, and that is I am using a modified gameSettings.xml which sets my default zoom to 0.33 -- normal minimum zoom in the game is 0.50, so I have it zoomed out farther when I play -- which, BTW, can cause rounding errors since the plot sizes are no longer integral. However, this zoom level allows the full 20x20 farm to be displayed in a flash window and on my slow computer I find that full screen mode tends to lock up and what with those pop-ups popping me out of full-screen I just assume leave it windowed for the clicker. As I said, though, it makes that home click point even more tricky to set because of the rounding issue at 0.33; 0.50 (normal zoom) does NOT have a rounding error since the offsets are integral. But for you, if you change the $zoom setting to that above, the click positions should work.

Oh, and as for wild clicking: believe me, using 0.33 with the wrong rounding offset or a too speedy clicker will do that to me too, so what I usually do is run the plant and then the delete using the same settings so that even though I may not get a full screen of tool use I'll the the Coin for Exp. Best to test the settings on a small plot, though, and hit Escape as soon as you see it going off the rails!

Hope that helps!

Also, I made a few more changes to the script with respect to bad PixelChecksum reads -- there's now a description in the change log: http://timehorse.pastebin.com/f7120213

It ran most of last night and netted me 5000 Exp. Not the fastest June-bug in the bunch but I sacrifice speed for accuracy. :P

Still TODO:

1) Make the zoom level configurable in the GUI to make it less confusing (combo box select 0.50, 1.00, 1.50 or 2.00 or enter your own text, i.e. 0.33)

2) Enumerate all click points BEFORE clicking and implement jump-back, jump-forward function!

3) Test and fix any problems with the Eastward click mode which was exhibiting a tendency to mix rows for columns

4) Implement code to dismiss "Help on a Farm", "New Level", "Post on Wall", "Lost Cow" messages properly (I like saving cows so automating that would be nice)

5) Detect page reloads and pause the script accordingly! Detect the gifts page and click through to Play.

(Some have already taken a crack at those last too, so I may start to integrate when I reach them.)

Jeffrey.

P.S. I really should screen cap my 0.33 Zoom.

Hi Timehorse,

first off all great job you've done.

I had the zoom problem too, but it wasn't that hard to figure out how to fix. :)

I started doing the math stuff for the screen resolution and the zoom factor. If it's okay with you I'm gonna join you with your project and post/mail the code when done, so you can include. :idea:

Regards Matthias

Link to comment
Share on other sites

Hi Timehorse,

first off all great job you've done.

I had the zoom problem too, but it wasn't that hard to figure out how to fix. :)

I started doing the math stuff for the screen resolution and the zoom factor. If it's okay with you I'm gonna join you with your project and post/mail the code when done, so you can include. :)

Regards Matthias

Absolutely! In addition to the 5 priorities I have listed, I really need to work on the help, but I'm not saying you work on anything in particular, you can work on anything you like and the best way is to go back to that pastebin page (timehorse.pastebin.com) and scroll to the end of the latest version and then just paste in your update, select a time frame (at least a day, though I go forever), choose a name and then hit send and pastebin will provide diffs and everything; I'll also check it into my svn server but I don't have public access to that as yet.

Jeffrey.

Link to comment
Share on other sites

Absolutely! In addition to the 5 priorities I have listed, I really need to work on the help, but I'm not saying you work on anything in particular, you can work on anything you like and the best way is to go back to that pastebin page (timehorse.pastebin.com) and scroll to the end of the latest version and then just paste in your update, select a time frame (at least a day, though I go forever), choose a name and then hit send and pastebin will provide diffs and everything; I'll also check it into my svn server but I don't have public access to that as yet.

Jeffrey.

:) Ah some new things to do... thx

Yeah understood, but in addition we should tell what we're working on from time to time. So we don't have double jobs. Wouldn't be that effictive.

Matthias

Link to comment
Share on other sites

:) Ah some new things to do... thx

Yeah understood, but in addition we should tell what we're working on from time to time. So we don't have double jobs. Wouldn't be that effictive.

Matthias

Absolutely! So, is there anything you had your eye on in particular, Matthias? I'm not working on it at all the moment (unless I find a new, easy bug) and that's the latest version up on pastebin so if you mod it at this point you won't step on toes. I suppose my incling though is to either work on the GIU (relatively easy) or work on the click-position issues and skip-back/forward (relatively hard) but save the dialog detection (Help Friends, New Level, etc.) for later.

BTW, with the complexities of the keystrokes involved at this point, I'm almost wondering if I should dispense with that popup and instead just compile a CHM. :)

Jeffrey.

Link to comment
Share on other sites

Absolutely! So, is there anything you had your eye on in particular, Matthias? I'm not working on it at all the moment (unless I find a new, easy bug) and that's the latest version up on pastebin so if you mod it at this point you won't step on toes. I suppose my incling though is to either work on the GIU (relatively easy) or work on the click-position issues and skip-back/forward (relatively hard) but save the dialog detection (Help Friends, New Level, etc.) for later.

BTW, with the complexities of the keystrokes involved at this point, I'm almost wondering if I should dispense with that popup and instead just compile a CHM. :)

Jeffrey.

After the screen resolution and the zoom problem. I would like to do something about the ini file problem you speaked about earlier in this thread. Because after these two things we should have something like a CORE which should run on different machines.

In my opinion it would be good if you could do something about these dialogs appearing (Help Friend, New level, etc.) so you have a really self running gadget.

The GUI itself looks fine to me at this point of time. Wouldn't change a thing so far.

Matthias

Link to comment
Share on other sites

After the screen resolution and the zoom problem. I would like to do something about the ini file problem you speaked about earlier in this thread. Because after these two things we should have something like a CORE which should run on different machines.

In my opinion it would be good if you could do something about these dialogs appearing (Help Friend, New level, etc.) so you have a really self running gadget.

The GUI itself looks fine to me at this point of time. Wouldn't change a thing so far.

Matthias

Sure, Matthias! I forgot about that, but yes, of course! Of course, now a days things are done in registry, but if simple file manipulation is what you need, there is already code for writing to a log so we could easily adapt that to reading and writing to a settings file. Personally, though, I'd recommend we use the AutoIt APIs RegRead and RegWrite; these will interface to the registry and they seem easy enough to use but feel free to implement it how you see fit. Since some of the settings are in the GUI though and some set by training, both would be handled by different events. I'd rather see an "advanced" dialog to allow a hot fix for rare-changes like Zoom so that it's all GUI but not all crammed into one interface. Things like timeouts and "playback gap" multipliers should also be configurable. I think I made all values I expect the user to change as Global declarations rather than Constant, but I could be wrong. I'll try to enumerate them at some point soon.

Also, I have been realizing that since timeouts are based on diff from a timestamp, I've not been able to pause during them, so the next fix would be to solve that problem, what I like to thing of as the rogue delete: you're in delete mode but want to pause it, but even after you pause it it still tries to delete the current cell, which can get annoying. I need a special pause waitfor which will take the current time stamp, take its own timestamp and add the 2 together so that its as if the pause paused the timer as well as the script. I have an idea how I'll do this so it's my next task on the ajenda.

Jeffrey.

Link to comment
Share on other sites

First of all: Oh, my! So SORRY! I think I know what the issue is actually. I'm assuming you trained it full screen since those are the click positions you want. Of course that means memorizing the order of the click-points to set, but there are only four and it sounds like you've got it! :)

Based on what you've said, I believe you need to change:

Global $zoom = 0.33

To

Global $zoom = 0.50

BTW, the reason I start with the multi tool setting first is because I want to make sure the plow tool is selected when the home (East-most point) is set since plowing a blank field requires more click-accuracy than planting, deleting or reaping. That's why I need to know the positions of the control buttons first. But, as you can see, the trainer will take you completely through one cycle, so it flows rather nicely even if the control point is the Multi Tool rather than the plow tool.

Anyway, I think the issue is one I neglected to emphasize when I said I was using my personal defaults, and that is I am using a modified gameSettings.xml which sets my default zoom to 0.33 -- normal minimum zoom in the game is 0.50, so I have it zoomed out farther when I play -- which, BTW, can cause rounding errors since the plot sizes are no longer integral. However, this zoom level allows the full 20x20 farm to be displayed in a flash window and on my slow computer I find that full screen mode tends to lock up and what with those pop-ups popping me out of full-screen I just assume leave it windowed for the clicker. As I said, though, it makes that home click point even more tricky to set because of the rounding issue at 0.33; 0.50 (normal zoom) does NOT have a rounding error since the offsets are integral. But for you, if you change the $zoom setting to that above, the click positions should work.

Oh, and as for wild clicking: believe me, using 0.33 with the wrong rounding offset or a too speedy clicker will do that to me too, so what I usually do is run the plant and then the delete using the same settings so that even though I may not get a full screen of tool use I'll the the Coin for Exp. Best to test the settings on a small plot, though, and hit Escape as soon as you see it going off the rails!

Hope that helps!

Also, I made a few more changes to the script with respect to bad PixelChecksum reads -- there's now a description in the change log: http://timehorse.pastebin.com/f7120213

It ran most of last night and netted me 5000 Exp. Not the fastest June-bug in the bunch but I sacrifice speed for accuracy. :)

Still TODO:

1) Make the zoom level configurable in the GUI to make it less confusing (combo box select 0.50, 1.00, 1.50 or 2.00 or enter your own text, i.e. 0.33)

2) Enumerate all click points BEFORE clicking and implement jump-back, jump-forward function!

3) Test and fix any problems with the Eastward click mode which was exhibiting a tendency to mix rows for columns

4) Implement code to dismiss "Help on a Farm", "New Level", "Post on Wall", "Lost Cow" messages properly (I like saving cows so automating that would be nice)

5) Detect page reloads and pause the script accordingly! Detect the gifts page and click through to Play.

u

(Some have already taken a crack at those last too, so I may start to integrate when I reach them.)

Jeffrey.

P.S. I really should screen cap my 0.33 Zoom.

ok i change the game setting zoom to .33 to match ur script. and it is working now thanx. but i experience a weird bug. u know when u set the cord for the buy seed option? and when i hover my mouse over the buy button and hit home.. the mouse keep clicking the buy button and the market area back and forth in a loop. i have to press esc button to get to the next step

. ok after i set all cordinate and set it to plow plant and wither and the count to 5. and hit shift + insert. the script would only plow the withered soybean and then stop .

Edited by guardianx
Link to comment
Share on other sites

ok i change the game setting zoom to .33 to match ur script. and it is working now thanx. but i experience a weird bug. u know when u set the cord for the buy seed option? and when i hover my mouse over the buy button and hit home.. the mouse keep clicking the buy button and the market area back and forth in a loop.

-- side question is there a way to train your script to plant other item that is not on the 1st page of the market pallete? such as grape wich is on 3rd screen?

Hmmm. A loop? Does it seem to do that infinitely or only a number of times? For deletions, I think I have it at 3 retries (full click retries), but I don't recall any retry for seeds. I know there are seed timeouts which are really vexing since they can kill the whole PPD/PPW/RPP sequence and blow an entire repeat mainly just because he couldn't match the crc! but I don't have any experience with it repeatedly clicking market-buy, especially during the training. BUT, the training executes the same "buy" function that a normal buy would so it's possible it's not catching the buy point properly and thus keeps trying to buy, failing then buy. But, as I said, I don't recall any such loop with buying. I'll have a closer look at the code tomorrow though to see if I can spot anything.

As for alternate screens, yes that was on my TODO list. The short solution will be to add a fifth training point. Say, at step 2 we have:

Hit HOME over the buy button to select a seed, or hit SHIFT+HOME over the next-arrow to go to a subsequent screen.

Now, if you hit SHIFT+HOME, he'll click that point and go to the next screen and count 1. Hit it again and he'll click it again and count 2, etc. When you have the right screen, mouse over the buy and hit HOME as normal. He would then remember to hit the next arrow n times then click buy. That's how it would work, but it will take a bit of time to implement but I'll look into it.

Jeffrey.

PS, with respect to PPW (Plow-Plant-Wither), how big was your PPW area? There is a 3*that size second gap between each step in that sequence which is really just Plow-Plant-Plow-Plant. Change that gap multiplier ($fast_click_compensator) to something smaller to speed that gap up. It's 3 if you want your little guy to walk the course but at least 1 to complete a full cycle with him penned. Since the clicker is faster than the actual action (which general takes 1 sec per square), the gap is there to prevent you from planting on a plot that has been marked for plowing but has yet to be.

The big question is what does the state after its first plow? Is it "Ended Plowing" or "Idle". If it's "Ended Plowing", it's in that gap state. If it's "Idle", it quit for some reason. The State is the bit of text at the top of the dialog directly under the title bar. If you can tell me the state when this happens I should be better able to diagnose the issue.

Edited by TimeHorse
Link to comment
Share on other sites

Latest Release (566): http://timehorse.pastebin.com/f28872d4d

Added more pause points so the script can be paused between deleting and clicking accept. It can not be paused in the middle of a MouseMove but most Sleep points will also check for pausing and thus when you pause during a delete, the script does not become obsessed with clicking an accept button, dragging your mouse all over the place like it used to. It'll wait until you click pause again to restart its obsession! :)

Also, I formally declared all variables with scope to make writing that user settings file easier. Anything with a Global [not Const] scope is pretty much fodder for configuration (except, of course, $dialog_pixels, obviously).

Finally, I changed the Training for Seed (step 2) so that if, after you set the seed point, if it can't find the button any more, it will assume you already clicked it and will proceed to plant and then delete it. Not sure if this will solve the infinite repeat seed click issue but it's worth a try, I suppose.

Jeffrey.

Link to comment
Share on other sites

Sure, Matthias! I forgot about that, but yes, of course! Of course, now a days things are done in registry, but if simple file manipulation is what you need, there is already code for writing to a log so we could easily adapt that to reading and writing to a settings file. Personally, though, I'd recommend we use the AutoIt APIs RegRead and RegWrite; these will interface to the registry and they seem easy enough to use but feel free to implement it how you see fit. Since some of the settings are in the GUI though and some set by training, both would be handled by different events. I'd rather see an "advanced" dialog to allow a hot fix for rare-changes like Zoom so that it's all GUI but not all crammed into one interface. Things like timeouts and "playback gap" multipliers should also be configurable. I think I made all values I expect the user to change as Global declarations rather than Constant, but I could be wrong. I'll try to enumerate them at some point soon.

Also, I have been realizing that since timeouts are based on diff from a timestamp, I've not been able to pause during them, so the next fix would be to solve that problem, what I like to thing of as the rogue delete: you're in delete mode but want to pause it, but even after you pause it it still tries to delete the current cell, which can get annoying. I need a special pause waitfor which will take the current time stamp, take its own timestamp and add the 2 together so that its as if the pause paused the timer as well as the script. I have an idea how I'll do this so it's my next task on the ajenda.

Jeffrey.

Okay sorry forgot about registry. It's just I just started AutoIt three days ago and haven't take a look at all the possiblilities. And I see these different sides of coding.

a) I make some small code for fun or because I want that tool, gadget or prog (mostly for work, some tasks you do as a projectmanager for a construction site are just stupid things like ammounting m² of something based on stupid rules like VOB in Germany and you do 500 times etc.) and I share it for free I mostly use a xml-file to store settings so everyone can see and edit easily and most of all understands what I do (most of them are not experienced with coding). And its all they need is in a folder, nothing to install or whatever.

:) I make some big code just for me on my own. I don't care it just have to work somehow.

c) I code a prog witch I takes so much time I wouldn't give for free (made once a tool which makes construction drawing of gypsum drywallacording to German or U.S. local code). Here I go for performance and make everything as bulletproof as possible to me.

See, I come from engineering and the engineer likes to share knowledge and to understand how things work. And this thread is filled with so much nice people who share some knowledge I'm interested. Thx again. And you just want to do something better and help each other.

But another part of me is the projectmanager and sitesupervisor who does worldwide constrution sites for 40 mio EURO and up. Besides this a real stressfull job you learn to set a main goal and achieve it with limited resources. And it's always about money somehow.

JabberJabber I know but I don't know how to explain the following without it to all of you. The engineer in me likes this project and due I'm having time I gonna help by what is possible by me and makes sence. But the projectmanager keeps asking himself about the main goal(can't stop that so sorry if I drive someone nuts with this). And as you said I gonna work on my own just wanna know the direction where heading :) and don't want to ask alot of stupid questions. I just want to understand your intention better.

But enough of that. The idea with the extra dialog is an good one, gonna do it with the resolution/zoom settings, gonna post it later this night. About the rest you wrote I gonna think about when I have a better view of the main goal.

Matthias

P.S. does anybody has the swf of the superstrawberries for me. can't find it.

Link to comment
Share on other sites

Okay sorry forgot about registry. It's just I just started AutoIt three days ago and haven't take a look at all the possiblilities. And I see these different sides of coding.

Ganz schönm Matthias!

The goal, simply, is:

1) Exp by Automation through coin to exp conversion automatically

2) Normal play where by a crop rotation is necessary: reap, plow, plant-the-next-seed

Both should eventually log into facebook, start up FarmVille, zoom if necessary, scroll as necessary make use of Fiddler if possible but maybe not necessary but for now let's assume fiddler and of course dismiss all dialog in a user defined mannor appropriately (accept lost animals, post or not post new levels, accept or not accept visiting other farms but the problem there is if actions are queued when visiting, they are lost!) Of course, this is a tall order, so I've broken it down into stages:

1) Take Jackalo's clicker

2) Add a delete function

3) Add more click points for automation

4) Add a trainer to make those click points easier

5) Change the click order to support unpenned petit mec

6) Set up a playback script to allow repetitions such as PPD, PPW (with Fiddler) and RPP.

Then, this leaves:

7) Add an advanced settings / set reasonable defaults / force training if never trained (the user can still accept defaults but they must at least train once) / persist settings across invocations (i.e. INI / Registry)

8) Enumerate click-points so that until the subsequent features (handle dialogs) are complete, the user can compensate for a missed dialog by backing up the script or restarting and skipping forward using a set of keystrokes

9) Fix any remaining bugs, such as the "Eastward" clicker apparently getting rows and columns mixed up and the reported infinite loop WRT seeding and SHIFT+INSERT only plowing, not planting and why does PixelChecksum sometimes return 0x80000000 even though it's not reporting an @error AFAICT

10) Handle Dialogs / Page Reloads

11) Handle pop-up messages invoked because of obsticles in the click path (such as a Baby Elephant) -- certain click directions have a tendancy to invoke a menu then click move on that menu and thus the clicker is stuck trying to move the object to invalid points instead of clicking

12) Add harvesters for trees and livestock

13) Add support for crops not on the first page (Mouse over the arrow and press SHIFT+HOME, etc as described above)

14) Add a 'wait for crop to mature' mode

15) Add a PPWR(PP[DW])* mode, as in Plow, Plant-cash-crop, Wait, Reap, then /Plow, Plant-experience-crop (i.e. Soy) and Delete-or-Wither/ repeatedly until you have just enough money left to plow and plant your cash crop and start again.

16) Reduce click points by learning more of the default game offsets, such as where is the game, find the multi tool as this offset, find the accept dialog at the center. where a given seed lay, etc.

17) CRC over the entire Delete dialog to make sure you only delete the right crop and never the wrong thing by accident (lost a picnic table that way)

18) Some kind of launch IE, go to Facebook and login type of thing

19) Any other feature request someone wants to contribute

20) Localization

I think those are the issues that still remain. Personally, I don't see it as having to do EVERYTHING listed, its just that each make the product better. But, there are a few issues with some of these:

7) The main dialog is crowded so I don't know where an advanced button could be placed. Also, although I like XML, there is no XML parser in AutoIt and WinINI is not XML, which AutoIt does support. Since AutoIt won't work for Linux or Mac it seems a Windows-only solution would not be inappropriate. Since writing an XML parser would be more work than its worth, I think it better to either work on adding Expat or SAX to the AutoIt language rather than trying to implement our own parser in AutoIt speak. That still makes, IMHO, the registry the most lucrative, but INIs are human-readable and there is support for that through IniRead, IniReadSection, IniReadSectionNames, IniWrite, IniWriteSection, IniRenameSection and IniDelete APIs. So, if you want to go that route, I suggest you use those functions.

Things like 10 & 12 are related and are partially handled by other script so they should just be integrated and the solution to 12 should help with 11.

14 leads to 15 and 13 makes that easier and 16 makes it totally automatable and in the end, I think PPWR and PPWR(PPD)* / PPWR(PPW)* will be the most common use of this tool after its current one. This, with 12, would be the ultimate automation of FarmVille, would it not?

Personally, I think 18 is a bit much, perhaps overboard but I guess it's possible especially if we tell users to not clear cookies, check remain logged in and allow password manager to store their facebook password.

Although 8 is seemingly a stop gap, it will be a long while IMHO until 10 and 11 are implemented so that true automation can be achieved. Until then, some user action will be supported and the skip-forward / -back will help a great deal. The only issue with this, though, is the "Eastward" motion: if CTRL+LEFT moves back 1 cell, and CTRL+RIGHT moves forward 1 cell and CTRL+UP back 1 row and CTRL+DOWN forward 1 row a) how do you define a row when the rows are different lengths, such as in "Eastward" and b ) typically, the user will want to move x rows and y columns, so how do you indicate that? "CTRL+LEFT" followed by an optional number? But what about 2-digits, what about no digits? Repeated CTRL+LEFT up to 20 times seems a bit much!

17 may seem a bit much too, if we gat 12-16, but I don't totally trust automation and think the user would get mighty cheesed if we deleted his or her irreplacable Elephant!

20 will require some help from volunteers, of course, but first we need to gather localized strings in 1 place.

9 is just a catch-all; there will be bugs for a while yet that need fixing.

Shame I still don't have my Trac server up and running!

Anyway, though would be the tasks still pending as I see it. I look it more as a work in progress that always has areas that can be perfected. In many ways, it's good enough now, but there is no question it could be better. Heck, if I could get it to play FarmTown too that'd be sweet, but a MUCH lower priority than even 18! I think of it more as an informal list of tickets where people can volunteer to service a ticket, contribute a new ticket (request or bug) and so on. The goal, in a word is better automation of tedious tasks.

P.S. does anybody has the swf of the superstrawberries for me. can't find it.

Ah, Super Berries. I really wish they'd bring those bad-boys back. Nothing came close giving more return on investment! 1725 coins per plot per day if harvest continuously evey 2 hours, and at that rate, as very few people would want to stay up all night just clicking their berries every 2 hours, it makes PPWR sound REALLY sweet! Edited by TimeHorse
Link to comment
Share on other sites

Hi every one here the list with patch moving so far

Screen Resolution 1280x1024

  • Zoom 1 (fully zoomed in)

    moving across rows--------x+100; y+48

    Moving across columns---x+100; y-48

  • Zoom 2

    moving across rows--------x+75; y+36

    Moving across columns---x+75; y-36

  • Zoom 3

    moving across rows--------x+50; y+24

    Moving across columns---x+50; y-24

  • Zoom 4 (fully zoomed out)

    moving across rows--------x+25; y+12

    Moving across columns---x+25; y-12

.....

other Screen Resolution let out

.....

Screen Resolution 800x640

  • Zoom 1 (fully zoomed in)

    moving across rows--------x+100; y+48

    Moving across columns---x+100; y-48

  • Zoom 2

    moving across rows--------x+75; y+36

    Moving across columns---x+75; y-36

  • Zoom 3

    moving across rows--------x+50; y+24

    Moving across columns---x+50; y-24

  • Zoom 4 (fully zoomed out)

    moving across rows--------x+25; y+12

    Moving across columns---x+25; y-12

It show that the moving factor is not set to screen resolution. But due to your info of the factor TimeHorse is using with 0.33 it seem to depend on aspect ration of the screnn (4:3 or 16:9). therfore the patch moving is the following (numbers in the breakets is the exact calc)

Screen Aspect Ratio 16:9

  • Zoom 1 (fully zoomed in)

    moving across rows--------x+66 (66); y+32 (31,68)

    Moving across columns---x+66 (66); y-32 (31,68)

  • Zoom 2

    moving across rows--------x+50 (49,5); y+24 (23,76)

    Moving across columns---x+50 (49,5); y-24 (23,76)

  • Zoom 3

    moving across rows--------x+33 (33); y+16 (15,84)

    Moving across columns---x+33 (33); y-16 (15,84)

  • Zoom 4 (fully zoomed out)

    moving across rows--------x+17 (16,5); y+8 (7,92)

    Moving across columns---x+17 (16,5); y-8 (7,92)

Gonna post the edited script from TimeHorse in half hour, please someone try with a 16:9 screen thx.

Matthias

Link to comment
Share on other sites

So here is the script from TimeHorse including Screen Aspect Ration and ZoomLevel setting.

Did add some Global variables and a new Window for the settings. Saving of your own "standard settings" will be down tomorrow.

To access the setting window press [sHIFT]+[PAUSE]

Also started to update the Help Window also will be done tomorrow. Getting started become used to function and stuff. :)

Please someone check if it works on a 16:9 screen, thx.

Matthias

P.S. about that swf of strawberries just wanna have to see the different grow stage. Didn't play FarmVille by the time the had been out there, so if someone has it please post :)

FarmVille Plant Bot Script by Timehorse v3.3.0 edited.au3

Edited by georgmatthias
Link to comment
Share on other sites

Screen Aspect Ratio 16:9

  • Zoom 1 (fully zoomed in)

    moving across rows--------x+66 (66); y+32 (31,68)

    Moving across columns---x+66 (66); y-32 (31,68)

  • Zoom 2

    moving across rows--------x+50 (49,5); y+24 (23,76)

    Moving across columns---x+50 (49,5); y-24 (23,76)

  • Zoom 3

    moving across rows--------x+33 (33); y+16 (15,84)

    Moving across columns---x+33 (33); y-16 (15,84)

  • Zoom 4 (fully zoomed out)

    moving across rows--------x+17 (16,5); y+8 (7,92)

    Moving across columns---x+17 (16,5); y-8 (7,92)

Gonna post the edited script from TimeHorse in half hour, please someone try with a 16:9 screen thx.

Matthias

Hmm. Interesting Matthias! Well, the way I set my zoom was actually 0.33 to 2.00, in steps of 0.33 defaulting to 0.33. Like this, you start at 0.33, then 0.66 the next zoom out, 0.99 then next, 1.32, 1.65, 1.98 and then it allows 1 more, 2.00. Once at 2.00, it zooms out at 1.67, 1.34, 1.01, 0.68, 0.35 and finally back to 0.33. All of these seem to be true resolution multipliers as the farm really does smoothly shrink to the indicated scale. But, the thing to observe with the non-standard resolutions, where 1 or more of the x or y offsets is not a whole number is that the farm is shrunk as a whole, it is not that the offsets are rounded to the nearest integer for each square. In your Zoomed Out example, Some columns would involve 16 pixels added to x and some 17. That is why I use the floating point multiplier and floating point offsets and round only when I finally move the mouse. If you look closely at a 0.33 zoomed farm, there are jagged lines subtley drawn across where the disjoint between the 16 and 17 lenght tile occurs.

BTW, hope this doesn't offend you Matthias, but generally in English we use the dot for separating a whole number from its fractional part and the comma for the thousands separator. I know in French on écrit «zéro virgule trente-trois­­­­­» und auf Deutsch schreibt man “nul komma drei und dreizig„, but in English, it's read and written as "zero point thirty-three" or sometimes "naught point thirty-three". The only reason I bring this up is because in English, (16,5) is normally read as 16 by 5 or x = 16 and y = 5 as in a list of 2-dimensional co-ordinates. I'm sure most of use did understand what you meant here (16.5) but for those who didn't, "," is a decimal radix in most continental European languages.

Now, as for 16:9 using different numbers than 4:3, I've not noticed by I have my mac running Busy Box Windows and it has a 16:9 display so I could verify this on him and get back to you. Great observation Matthias and thanks again for all your help!

Oh, and this reminds me, point 20) Localization! As in, make all the text loaded from the ini/registry settings and make them all localized. At the very least, between us I'm sure we could cover English, French, German and probably Italian. :)

Link to comment
Share on other sites

So here is the script from TimeHorse including Screen Aspect Ration and ZoomLevel setting.

Did add some Global variables and a new Window for the settings. Saving of your own "standard settings" will be down tomorrow.

To access the setting window press [sHIFT]+[PAUSE]

Also started to update the Help Window also will be done tomorrow. Getting started become used to function and stuff. :)

Please someone check if it works on a 16:9 screen, thx.

Matthias

P.S. about that swf of strawberries just wanna have to see the different grow stage. Didn't play FarmVille by the time the had been out there, so if someone has it please post :)

Nice work Matthias!

One thing though: the gameSettings.xml explicitly defines the zoom levels as:

2.00 for fully zoomed in

1.50 for first zoom out

1.00 for second zoom out

and

0.50 for fully zoomed out.

You seem to have defined fully zoomed out as 1. Since the game defines it as 0.50 and anyone messing with gameSetting.xml is using those units, wouldn't it be better to have the fully zoomed out value be 0.50? And thus have the default sizes be double, like they were? With the current settings, my zoom would not be 0.33, it would be 0.66 even though I specified 0.33 in the game settings and after messing with the game settings I'd have to memorize a different number scheme for the clicker. Not a hard scheme, but why not just match the game?

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...