Jump to content

Recommended Posts

Posted

Yeah I have no idea how they are detecting it. It seemed to come on slowly that things were not working but then would work again. It is not really that big of a deal to me. Farmville was taking up too much of my time. It is a big effort to farm that many plots.

Well, I am not going to erase my 1x1 plots so I will report here my opinion if (or when) they detect me. In fact, maybe it would be nice of them if they suspend my account because there are many games that are better then farmville and if I can't cheat, I will not play it that's for sure.

As of farming many plots, I use autoclicker like http://www.glsoft.co.uk/gridclicker/index.shtml or http://rapidshare.com/files/300804063/Farmingtime.rar and sometimes I use this bot http://farmvillebot.net/...

  • Replies 501
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

Posted

Well, I am not going to erase my 1x1 plots so I will report here my opinion if (or when) they detect me. In fact, maybe it would be nice of them if they suspend my account because there are many games that are better then farmville and if I can't cheat, I will not play it that's for sure.

As of farming many plots, I use autoclicker like http://www.glsoft.co.uk/gridclicker/index.shtml or http://rapidshare.com/files/300804063/Farmingtime.rar and sometimes I use this bot http://farmvillebot.net/...

I agree. Farmville is too slow for me to use their small farms. I do use a script to farm. I modified my own version of one of the earlier scripts on here that suits me. Still... with my farm size if everything goes perfectly and I don't get the stupid out of sync or your farm has been enhanced errors it takes almost 40 minutes to harvest/plow/plant on a farm that size and that is using modified XML files to speed things up. If things go out of sync then it usually takes me over an hour to harvest and replant. I really did waste a lot of time on this game.

Posted

Yeah I have no idea how they are detecting it. It seemed to come on slowly that things were not working but then would work again. It is not really that big of a deal to me. Farmville was taking up too much of my time. It is a big effort to farm that many plots.

Well, one other more benign possibility is that your farm is too complicated. The more objects on your farm, the slower it is to load. Combine that with more server interaction and the fact that Zygna is telling the truth when they say they're not releasing the expansions because their network can't handle it and it may just be unintentional that you're unable to access the game. How that information helps, I don't know. But perhaps if they get more FarmVille servers, you'll again have access. Also, if you have a slow computer, that could also be the problem, though honestly I think the game can run on slow machines, just not efficiently.

Posted

@TimeHorse

That will work if you wish to follow me on Twitter... :)

I really appreciate your great effort you have spent for writing this script.. I have been looking for an automation script for a while to save time and relax my hand and yours is like the best fitting at the moment.. So thank you very much..

My pleasure!

BTW, I got some things to ask you..

As I could follow the previous posts, you know there exists a bug in your latest script about seeding. When I click [END] it opens the market window and waits, then I move over buy button, it move back and forth the market and buy button.. When I move mouse out of the buy button (as you said), it starts seeding. Will you fix it? And once, while this bug loop happening and mouse was not out of the buy button, I Alt+TAB'ed to the script window and read sth like "not red enough" and a code similar to a color code. Can you tell me the logic of checking the color of the pixel? If you do not check, what would possibly happen? And one more thing, there is a select option PPW. What do you mean by withering?

Ah! Yes! Well, I've given hints about this but I may as well spell it out. I'm not happy with the current seed selection code. It only allows you to target a seed on the first page and typically I need something like Blackberries way over on page 3. So, I've been trying to rewrite this routine so that you select your seed from a combo box in the clicker interface and train it just by setting it to the next arrow instead of the buy button. At least, that's how I expect it to work in theory.

The long and short of this is, I need to rewrite the seed code anyway, so rather than try and fix this bug I'm planning to change the code to be more robust. Sorry this is causing such inconvenience at the moment. It's just that detecting screen changes right now is very inefficient and I hope to come up with a technique a bit more reliable.

Again, a bit more details for the curious, the buy button has 2 states: normal and highlighted. When the mouse is over the button, it is highlighted. Now, when you do a screen capture to figure out whether the dialog has been loaded and the buy button is present, if the mouse happens to be in your capture area, it will get counted as part of the captured image. What's more, although the button state is tied to the presence of the mouse, the game can sometime lag so that the button may remain "active" when the mouse has moved away and it may remain normal for a bit after the mouse moves over it. Also, if the mouse is hovering over where the button will appear when the dialog is loaded, the button may remain inactive because the game fails to detect that the mouse is there. This lag between the 2 button states means that it's hard for the clicker to determine when the dialog is loaded and when the button is there. What the tool does now is repeatedly move the mouse away to see if the state of the button becomes normal and thus that the dialog is loaded. It then moves the mouse back, which may be to just above the button, and thus it keeps activating the button and deactivating it without ever properly detecting it. It doesn't want to click until the dialog is fully loaded to make sure it clicks the button and not something else by accident. The best solution, IMHO, is to not trigger the dialog loaded event based on the button but rather base it on some aspect of the market dialog that doesn't change based on mouse position (unless the mouse is over it, then it might capture the mouse as described above). This is my tentative long-term solution and with the training point being the arrow, it makes things independent of seed. There is one problem though I have, which is the click area of the arrow is slightly shorter than that of a seed. So, if set from seed, the position relative to the next arrow may not be within the arrow. Conversely, the top and bottom pointy bits of the next arrow extend beyond the range of the buy buttons, so it the point is set there, the buy buttons offset will be wrong. Finally, the next button is only active from the right half if the arrow; the left half of the arrow stem is not clickable. If the user sets the point there, nothing in the seed selection would work. So, it makes training for seed selection tricky.

Now, in answer to your next question, I think that message is left over from a previous delete run. It will print out messages like "Not enough red" when it's trying to determine if the plot you're trying to delete is grass. It's more of a debug message than anything else. And as I said, it should be a message left over from a previous delete. The only message I can thing of from Seeding is the error when it can't select the dialog.

Finally, earlier in this thread you come across people talking about using a hacked gameSettings.xml and the Fiddler2 software to change the maturation times of, for instance, soybeans to something really small, like 1 second. The result of this is, when you plant a soybean crop, in 1 second it's mature and ready for harvest (but if you try to harvest it you'll get a sync error from the Zygna server) and then after a second second, it will have withered. You don't get the money for a withered crop, but you got the experience from planting and a plow-and-plant of soybeans is worth §30 for 3 Exp. Once withered, the crop can be plowed over and reseeded, then wither, then repeat again and again to convert coins into experience. That's the basic idea behind PPW.

Hope this helps and sorry to everyone about the delay with the seed selection fix. If anyone wants to volunteer to help, it would be appreciated!

Posted

Well, one other more benign possibility is that your farm is too complicated. The more objects on your farm, the slower it is to load. Combine that with more server interaction and the fact that Zygna is telling the truth when they say they're not releasing the expansions because their network can't handle it and it may just be unintentional that you're unable to access the game. How that information helps, I don't know. But perhaps if they get more FarmVille servers, you'll again have access. Also, if you have a slow computer, that could also be the problem, though honestly I think the game can run on slow machines, just not efficiently.

I considered that possibility but I don't think that is it. I can see from fiddler when it fails. It always failed before when I got certain popups for achieving a mastery. Now when I open it I get the popup about cranberries and new decorations and I get that popup every time and it fails right after that. I don't believe that a 20x20 farm even hacked would cause too much performance. I could fill the same farm with nothing but trees which only take up 1x1 and I can do that without any hacks.

I was hoping that they were penalizing me in some way and that after enough time passed it would work again. It has been four days since it last work and I am starting to think it might never work. I have a feeling if I could somehow get past the daily coin raffle (i tried modifying xml to no luck) I could get my farm working again.

Posted (edited)

Updated after the change in market, soybeans changed from 5th to 4th place

also put in so you can choose if you want to go with 1,2 or 3 squares for this

Posted Image

Just to let you know, with 3 squares it takes aprox 19sec to plow, plant, delete with costs 90coins and you gain 9xp, that is 2 seconds per xp...

Short explain on soybean deletemethod...

Its the best exp/money in the game! (except architec ribbon) ...

and it will give you 1xp/10coin

I have gone from 15000xp to 45000xp in 3days using this method

As a fella who just wants to have an auto-soybean planter/deleter, how might I take your script and use it? I have a g15 keyboard and have spent the last 2 hours trying to figure out how to write it myself, but I'm realizing I'm in over my head. Perhaps there is a quick way to utilize your script without being script-savvy? Any help is appreciated.

Edited by Hoshana
Posted

My soybean script, which I'm currently migrating over to AutoIt, takes advantage of the immediate withering trick using the xml. Because it uses that, I had to expand it to 4x4, because even though the wither is supposed to be immediate, it's not. So I have to give the plots more time between planting and re-plowing, so the 4x4 allows them that.

I tried it with three plots, and most of the cycles were spent doing nothing, waiting for the plants to wither. With the 4x4, I still get some random plants that haven't withered by the time the re-plow click comes by, by it's a small percentage.

With this, I'm getting about 10,000XP in a half hour. MUCH better than the old way using the delete.

I'll post the script here once I get it migrated.

(Also, this delay makes it impossible to use the wither technique in the Coin Fountain trick. Because once you try to re-plow a plant that hasn't withered, the cycle gets screwed up and the next coin fountain doesn't happen. Too bad, because this would make levelling up with free coins much faster.)

And I was using Fiddler2 last night to replace the xml, so unless they've changed something since then, it should work.

BTW, is there a tutorial anywhere for determining where to click based on pixel mappings? (how to created the mappings and how to search for them?) I see another user here has created a script that does this for Farmville, but the script has been obsfucated.

Posted

I don't mind if my script is going out of fashion, but I will point out it does do deletions and was originally a PPD script, but I amended it to support the PPW method HockeyHound described and I too prefer. My script doesn't have the best GUI but I've found it easy to train and certainly could handle Soybeans since they're still on the first page. The latest official release is available here: http://timehorse.pastebin.com/f75b0aeba -- just compile it with AutoIt. You will want to change the $zoom value from 0.33 to 0.5 if you don't hack the gameSettings.xml, but we all recommend hacking gameSettings -- version 7398 as of this morning -- since then you can change the plow, plant and wither time as well as the length of the game day. As for zoom, I find that the game has a nasty habit of kicking you out of full-screen mode when you get some facebook dialog, so I like to run it windowed and so to fit my full 20x20 in the game window I change the game's defaultZoom to 0.33 in the gameSettings so that the clicker can handle the full screen. If you want to only deal with a small area of the farm and run it at a higher resolution, just change my $zoom to the value you use in the game: 0.50 for max zoom out, 2.00 for totally zoomed in, 1.50 and 1.00 for the levels in the middle. It also has adjustable timeouts so that you can either wait a long time for plowing, planting and withering, or make it near instantaneous. It also allows for pausing and skipping to the next step. A near-full description of its features can be read here.

Of course, it's not perfect. It sometimes has problems selecting a seed, as you will see many times reported here and can only select a seed in the first page. I'm working on fixing that, making the dialog detection more robust, hopefully modifying the delete code to verify that it only deletes the selected crop and not your precious baby elephant, allow it to click 1x1 farm plots, allow it to build 1x1 farm plots, change the clicking order to match the northward, west to east pattern to match the building of 1x1 plots and other features listed above. I am currently working on seed selection though, as that currently has the most issues associated with it. Then, probably work on automating the 1x1 farm builder routine to take the tedium out of this process of building the mythical 79x79 farm!

So, take it or leave it. I'll answer any support questions you have here. I still look forward to and anticipate great things from HockeyHound's script so feel free to wait for it as so far I've seen some good things come out of HockeyHound so expect a nice tool! In the mean time, though, feel free to use my bot. It's open source, actively developed and supported here.

Good luck!

Posted (edited)

BTW, is there a tutorial anywhere for determining where to click based on pixel mappings? (how to created the mappings and how to search for them?) I see another user here has created a script that does this for Farmville, but the script has been obsfucated.

Not sure what you're trying to do here, HockeyHound, but the three relevant AutoIt functions are:

PixelGetColor

PixelSearch

PixelChecksum

The later is buggy and I've never used PixelSearch but plan to add it in the next release to solve some offset issues.

PixelGetColor will tell you the RGB colour of the pixel at the given screen position. IIRC, you can pass it an HWND to be relative to the client coordinates but I generally use it in absolute, screen coordinates.

PixelSearch you give it a search rectangle (and HWND) and the RGB colours of the pixel you require. Supposedly, it will look through that box and find the location of the first pixel that matches your colour. Very handy for finding the edges of things like play areas or dialog boxes, or so I'm lead to believe.

PixelChecksum, like PixelSearch, takes a rectangle (and HWND) and returns a checksum over all the pixels in that region (ignore the step parameter). It apparently uses the Adler algorithm but I and others have reported its propensity for returning 0x80000000 without any other error which clearly is against all odds of being correct. I've looked at the AutoIt 3.1.0.0 code and can't find anything suspicious with the code except for a cast to a floating-point double of the return object. But, since we're in AutoIt 3.3.0.0 now, and this version is closed-source, I can't say the bug was introduced later.

Hope this helps but if not, I'll be happy to help further.

Edited by TimeHorse
Posted

Does Fiddler2 still work? My changed gamesettings.xml seems to be working but server not requesting the file I think..

Did you try a forced refresh by clicking the "Refresh" button on your browser while holding {SHIFT}? This does not work for {SHIFT}+{F5}, nor does it work for {CTRL}+{SHIFT}+{R}, but a mouse click on refresh while holding {SHIFT} seems to do the trick for me when it's failing to load.

Also, make sure you checked the autoresponder checkbox to activate your script. Good luck.

Posted

TimeHorse, I don't think my script will replace yours. I was just pointing out that mine wouldn't work with the three plots, because of the delay in the withering.

And I appreciate your open script. New to AutoIt, I need all the help I can get.

Posted (edited)

Did you try a forced refresh by clicking the "Refresh" button on your browser while holding {SHIFT}? This does not work for {SHIFT}+{F5}, nor does it work for {CTRL}+{SHIFT}+{R}, but a mouse click on refresh while holding {SHIFT} seems to do the trick for me when it's failing to load.

Also, make sure you checked the autoresponder checkbox to activate your script. Good luck.

It changed after several reloads.. Thanx anyway..

And willing to see your modified script.. No pressure but push.. :) At ease mate..

BTW, your GUI is one of the handiest and nicest, do not mind it, but i have an opinion. You can put small buttons next to the coordinates, so that, it will be easier to assign a specific coordinate than skipping one to another.. What do you think?

Edited by ToysRUs
Posted (edited)

TimeHorse, how far along are you in accessing seeds not on the first page? I have an idea how to do that, and I'd like to modify your script to incorporate it.

I've updated my pastebin account with the latest repository version: http://timehorse.pastebin.com/f611b2fb

Basically, I've already modified the GUI for seed selection, and have a translation function to get page, row and column. Of course, this method hard-codes the seed list since there's no XML parsing in AutoIt (I don't know even if there are network facilities to download the relevant gameSettings).

What I still need is to make a new version of get_crc that does not hard-code the capture area or just call PixelChecksum directly. I have calculated some offsets but haven't rewritten the handle dialog routines to use new check coordinates.

My design would entail the following as yet to be written:

1) Have a new CRC function with custom areas (PixelChecksum but then that's buggy but still the best)

2) Change the third home training position to the next arrow

3) Change the dialog test routine to confirm 3 Checksum regions:

a ) The Market banner

b ) The "seeeds" button with it active

c ) The "All" button with it active

4) Rewrite the wait for dialog to use these

5) Add capture areas for the text region (not graphic area as those load late) before going to the next page and verifying that that checksum changes to confirm the page is turned.

6) Use PixelSearch to move the click areas from vague offsets from training point 3 to absolute co-ordinates that would be consistent regardless of where the click occurred.

7) Use PixelSearch to find the dialog in the first place and eliminate the need for the 3rd click point.

[if I can do 7, then I'd probably get rid of click point 1 as well since we know the multi-tool is always offset from the bottom center of the play area and if I can find the play area, I should be able to find the multi-tool regardless of full-screen or windowed. At least, in theory.]

A simpler but not guaranteed solution would be to just click the next arrow with pauses in between but as I said, if the game was slow, this could be dangerous, so using PixelChecksum -- assuming it works -- is best IMHO.

So, that would be my approach but I'm happy for you to take a whack at it, HockeyHound!

As for your Wither timings, what I do is set a timeout value for plow, plant and reap, and you could just extend that concept to your withering. Like, have some variable that stores the wither time per crop, and when you're finished planting, just "Sleep" for that amount of time using a wait cycle like I've used. Unfortunately, my clicker only clicks in rectangular regions, so I can see why it wouldn't suit your needs as is.

Also, I want to get the northward clicking mode into position to help build 1x1 farms -- I already have a setting to make the assumed plot size 1x1 instead of 4x4.

Edited by TimeHorse
Posted

It changed after several reloads.. Thanx anyway..

And willing to see your modified script.. No pressure but push.. :) At ease mate..

BTW, your GUI is one of the handiest and nicest, do not mind it, but i have an opinion. You can put small buttons next to the coordinates, so that, it will be easier to assign a specific coordinate than skipping one to another.. What do you think?

Not a bad idea, though I know those co-ordinate labels are actually busting up against the box wall so there's not much room next to them for buttons. OTOH, I suppose I could as a new key combination, though it might be a double-combo. Maybe:

{HOME} (Start Training)

[1234] {Skip to step 1, 2, 3 or 4]

That way, it'd be up to you to set up the screen conditions necessary for the click point region to be visible and it would only set that one point.

Either {HOME} or {SHIFT}+{HOME} could trigger it, but in the later case, you might want to click {SHIFT}+{HOME} but then want to type the number 1, 2 3 or 4 and that click would be captured rather than output; however, in some ways associating it with {SHIFT}+{HOME} makes more sense since {SHIFT}+{HOME} is already a mouse position logger, so tying that log into a click point position may be the most intuitive approach.

Posted (edited)

I've updated my pastebin account with the latest repository version: http://timehorse.pastebin.com/f611b2fb

Basically, I've already modified the GUI for seed selection, and have a translation function to get page, row and column. Of course, this method hard-codes the seed list since there's no XML parsing in AutoIt (I don't know even if there are network facilities to download the relevant gameSettings).

What I still need is to make a new version of get_crc that does not hard-code the capture area or just call PixelChecksum directly. I have calculated some offsets but haven't rewritten the handle dialog routines to use new check coordinates.

My design would entail the following as yet to be written:

1) Have a new CRC function with custom areas (PixelChecksum but then that's buggy but still the best)

2) Change the third home training position to the next arrow

3) Change the dialog test routine to confirm 3 Checksum regions:

a ) The Market banner

b ) The "seeeds" button with it active

c ) The "All" button with it active

4) Rewrite the wait for dialog to use these

5) Add capture areas for the text region (not graphic area as those load late) before going to the next page and verifying that that checksum changes to confirm the page is turned.

6) Use PixelSearch to move the click areas from vague offsets from training point 3 to absolute co-ordinates that would be consistent regardless of where the click occurred.

7) Use PixelSearch to find the dialog in the first place and eliminate the need for the 3rd click point.

[if I can do 7, then I'd probably get rid of click point 1 as well since we know the multi-tool is always offset from the bottom center of the play area and if I can find the play area, I should be able to find the multi-tool regardless of full-screen or windowed. At least, in theory.]

A simpler but not guaranteed solution would be to just click the next arrow with pauses in between but as I said, if the game was slow, this could be dangerous, so using PixelChecksum -- assuming it works -- is best IMHO.

So, that would be my approach but I'm happy for you to take a whack at it, HockeyHound!

Sounds like our ideas are similar, but I'm not sure there's a need for training on the arrow button. From the tests I've done, the offset between the market button and the arrow button remains consistent (along with the offsets to all the buy buttons). Of course, the user would have to be instructed to be sure they select the center of the market button.

Here's the numbers I'm consistently getting, all based off of the center of the market button:

Center of Arrow Button: +26, -224

Center of Buy Button 1: -512, -210

Center of Buy Button 2: -375, -210

Center of Buy Button 3: -238, -210

Center of Buy Button 4: -101, -210

Center of Buy Button 5: -512, -14

Center of Buy Button 6: -375, -14

Center of Buy Button 7: -238, -14

Center of Buy Button 8: -101, -14

And you can throw in center of the Accept Button too: -381, -170

So, like you're doing, you can hardcode the page and position for each seed into the code, and depending on which seed is chosen, perform the clicks to get to it.

I'm not really knowledgeable about the pixel checking yet, but I don't think the extra second wait is that big of a deal in the normal harvest-plow-plant cycle. The timing may have more of an impact on the soybean delete, since it hits the seed selection on each loop.

And of course, my way wouldn't take into account any extraneous popups that occur while the script is running.

As for your Wither timings, what I do is set a timeout value for plow, plant and reap, and you could just extend that concept to your withering. Like, have some variable that stores the wither time per crop, and when you're finished planting, just "Sleep" for that amount of time using a wait cycle like I've used. Unfortunately, my clicker only clicks in rectangular regions, so I can see why it wouldn't suit your needs as is.

I did play around with the pause between the plant and plow cycles, and it did help, but it's still not 100%. The delay got so long that it made the script run just about as slow as the old delete method.

Also, I want to get the northward clicking mode into position to help build 1x1 farms -- I already have a setting to make the assumed plot size 1x1 instead of 4x4.

Good luck with that. If you don't get shut down, I may give it a try. ;-)

BTW, do your calculations on how long it will take you to achieve all the mastery ribbons take into account the fact that they're adding new crops all the time? I have the feeling you're fighting an uphill battle my friend.

Edited by hockeyhound
Posted

BTW, do your calculations on how long it will take you to achieve all the mastery ribbons take into account the fact that they're adding new crops all the time? I have the feeling you're fighting an uphill battle my friend.

:)

Well, I've over 1066 plots in my farm now, and including the new Squashes and Cranberries and Poinsettias -- oh, wait, that's going to be the December update! I should finish sometime in January, but I can always add more plots, and will probably add 200 or so more by hand tonight, so the time is always decreasing. I'm hammering Blackberries and am close, but then there's Green Tea and Acorn Squash to master as those are almost as bad!

Posted

:)

Well, I've over 1066 plots in my farm now, and including the new Squashes and Cranberries and Poinsettias -- oh, wait, that's going to be the December update! I should finish sometime in January, but I can always add more plots, and will probably add 200 or so more by hand tonight, so the time is always decreasing. I'm hammering Blackberries and am close, but then there's Green Tea and Acorn Squash to master as those are almost as bad!

Perhaps it is an uphill battle but on my other farmville account I use just for massive farming and no decorating I have over 3000 plots. I have 17 masteries so far and 8 million coins. Assuming I don't get locked out of that one I should get most of the masteries but I don't think I will waste my time on blueberries, raspberries, and blackberries because it is just so much effort and over 26,000 plots have to be farmed for blackberries.

Posted

Center of Arrow Button: +26, -224

Center of Buy Button 1: -512, -210

Center of Buy Button 2: -375, -210

Center of Buy Button 3: -238, -210

Center of Buy Button 4: -101, -210

Center of Buy Button 5: -512, -14

Center of Buy Button 6: -375, -14

Center of Buy Button 7: -238, -14

Center of Buy Button 8: -101, -14

And you can throw in center of the Accept Button too: -381, -170

So, like you're doing, you can hardcode the page and position for each seed into the code, and depending on which seed is chosen, perform the clicks to get to it.

Well, dialogs always appear in the center of the screen, but you're right that "Accept" could be calculated relative to the seed dialog. However, the multi-tool button is always at the bottom of the screen and in full-screen mode this is positioned differently than the dialog. So where as the Multi-tool could be calculated, the dialog offsets are on a different set of offsets.

My calculations are stored in the file:

; Abs NW Next: (1081, 532)
; Abs NW Seeds: (426, 310)
; Abs SE Seeds: (486, 337)
; Abs NW "All": (478, 346)
; Abs SE "All": (567, 367)
; Abs NW Market: (679, 249)
; Abs SE Market: (849, 281)
Const $seed_x_offset = 137
Const $seed_y_offset = 195
Const $forward_page_x_offset = 535
Const $forward_page_y_offset = -18
Const $forward_button_colour = 7361594;0x0070543A

Thus, buttons have a fixed offset from one another, 137 pixels per column, 195 pixels per row. relative to one another, and the next buttons active area is 535 pixels to the right and 18 pixels down from the Strawberries buy button. The other coordinates in comments are in absolute coordinate basis with the first one being the top-left corner of the active area of the next arrow, and the others of the dialog areas I discussed earlier.

The offsets seem pretty solid though there may be a 1 pixel to the right difference between the second and third columns on just the top row. At least, that's what I recall: just columns 2 and 3 between just row 1, which I don't think is significant.

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

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