M're Undefined

Technical Manager at one of the market researcher company in KL who does blogging on his free time. Love cats very much. Always fascinated with new technology (as well as spending money on it)

 

When designing My FarmVille Helper App, I want to make it as generic as possible, where the user can customize every aspect of how the automation should be executed. The easier way to do is to allow user to enter the pattern of how the mouse movement should be, depending on how the farm is laid out. So this blog entry with explain on how this pattern system works.

When working on the blocks of land in FarmVille, the direction of how to traverse the mouse always either to the right or to the left. To traverse to left, use the command l, and to traverse to the right, use the command r. And to apply the action to the block, use the command x.

Let’s take above for example. Here, we are traversing to the right, and there are 4 blocks of land. The command for this will be

rxxxx

Please note that the direction command only needs to be called once. The application will remember the last direction that we set.

In the above example, we are traversing to left, and there are 4 blocks of land. The command for this will be

lxxxx

We can also traversing vertically, either upwards (use the command u) or down (use the command d). The vertical commands only will be executed once, and the application won’t remember like what we have for r and l earlier. Confused? Let’s see an example.

Let say I want to traverse my lands like below.

If I give a command of rxxxxdxxxx, what this will do is the mouse will traverse 4 blocks to the right (i.e. rxxxx) then go down by 1 block (i.e. d). What about the last xxxx? Like I said earlier, d and u commands are executed only once, so xxxx after d will not traverse 4 blocks down, but instead it will still traverse 4 blocks to the right. Remember, the application will remember your last used horizontal command (i.e. r or l). So, the correct commands for the above is

rxxxxd
lxxxx

The next thing that I want to explain is how to handle gaps between block on My FarmVille Helper App. But before that, let see how gaps look like in FarmVille.

The smallest gap that you can make between 2 blocks of land is 1/4 of the size of 1 land block. Meaning, for 1 block of land, there will be 4 gaps in between. Gaps can be entered by specifying the direction of the gap that you want to have (i.e. r, l, u or d) followed by the denominator of how many gaps you want. l1 mean 1 gap to the left, r3 means 3 gaps to the right, d5 mean 5 gaps to the bottom etc. Let’s look at an example.

The command for the above traversal will be

rxxr1xxd
lxxl1xx

Pay a close attention to the command that I underline below for the 1 gap to the right at first row, and 1 gap to the left at the second row.

What about vertical gap? Let’s look at the following example.

The command for the above traversal is

rxxxxd1
lxxxx

Pay a close attention to the command that I underline below that denotes having gap of 1 downwards.

Let’s look at another example. The second block of the second row is not really a land block, but it’s a decoration. So, there will be gap of 1 land block here. As stated previously, 4 gaps will be equal to 1 land block.

So the command for the above traversal is

rxr5x

Why r5? There’s another gap after the monster decoration, thus making total number of gaps is 5.

Let’s look at more complex example. Can you work out how the commands for this will look like? Try first, then check with my answer below just to make sure that you get the concept of this ;)

The command for the above traversal will be

rxxxxr1xd1
lxl5xxxd
rxxxxr1xd
lxl1xl8xd
rxr8xr1x

Easy stuffs huh!

When you enter those command in the application, you will see the mouse movement, and it does nothing. This is good when setting up for the first time so that you can make sure that the mouse pointers are traversing correctly through all of your land blocks. And, when you are ready for some action, you can specify what you want to do. Below are the available commands that you can use

move (default)
plow
seed
harvest

Usually, when you are doing these actions manually for real, there’s a delay between your mouse clicks. So can also specify how long that the program have to wait (in milliseconds) between mouse clicks. The command to use is

p200

which denotes that you want to pause for 200 milliseconds between mouse clicks. p200 is usually enough, but if you have a lot of things on your farm, or computer is slow, you might need to try and error the value that works best with you. You will understand this better towards the end of this blog entry.

Now for the ultimate test. Below is how my farm looks like at the moment (hehe) and I have already put an arrow on how the traversal should be done (click on the image to see bigger version). Try to work out on how the commands will look like, and compare the one that you work out with my answer below.

The command for the above traversal will be

p200
seed
rxxxxr1xxxxr1xxxxr1xxd
lxxl1xxxxl1xxxxl1xxxxd
rxxxxr1xxxxr1xxxxr1xxd
lxxl1xxxxl1xxxxl1xxxxd1

rxxxxr1xxxr5xxxxr1xxd
lxxl1xxxxl1xxxxl1xxxxd
rxxxxr1xr8xr1xxxxr1xxd
lxxl1xxxxl1xl8xl1xxxxd1
ll18

rxr1xxxxr1xxxxr1xxxxr1xxxxr1xxxxd
lxxxxl1xxxxl1xxxxl1xxxxl1xxxxl1xd
rxr1xxxxr1xxxxr1xxxxr1xxxxr1xxxxd
lxxxxl1xxxxl1xxxxl1xxxxl1xxxxl1xd1

rxr1xxxxr1xxxxr1xxxxr1xxxxr1xxxxd
lxxxxl1xxxxl1xxxxl1xxxxl1xxxxl1xd
rxr1xxxxr1xxxxr1xxxxr1xxxxr1xxxxd
lxxxxl1xxxxl1xxxxl1xxxxl1xxxxl1xd1

rxr1xxxxr1xxxxr1xxxxr1xxxxr1xxxxd
lxxxxl1xxxxl1xxxxl1xxxxl1xxxxl1x

Finally, let’s see this in action. Click the play button below to play the movie. The loading speed can be slow at times. If it slow, just pause the video after you click the play button, and let it download the rest of the movie first before continue playing it again.

Get the Flash Player to see this player.


So, when the software will be available to public? To be honest, I don’t know. There are still a few more tweaks that I’d like to do. It will be priced at USD99.99 per download. Just kidding. It will be free. So stay tuned ;)

My FarmVille Helper App: Preview

After revealed about a week and half ago, now I have a working prototype for My FarmVille Helper App already.

GUI is still shabby, but the functionality behind it is 95% completed, where the remaining 5% is for the little minor tweaks that I’d like to do. There are 4 main components to My FarmVille Helper Help. Click below to find out more.

  • Crops automation
  • Animals automation (blog entry is coming soon)
  • Trees automation (blog entry is coming soon)
  • Mouse automation (blog entry is coming soon)

I’m making myself busy again this weekend with another “Weekend Programming Project”. After the launch of the My FarmVille Helper, I want something more. My FarmVille Helper is good to manage the planting session, knowing which session will rip soon, or will wilt soon. But you still have to do all the dirty work of plowing, seeding and harvesting, and is quite nerves breaking if you have big farm.

This is when I’m thinking of the extension of My FarmVille Helper – My FarmVille Helper App. This is just still an idea which as you can see below, at the moment I’m still designing the coordinate system in FarmVille Helper App, and I’ve been playing around with the codes that control mouse movement.

I’m so excited to finish up this new project, and as always, my application should be generic enough to be used with any FarmVille design, and not limiting to how I arrange my farm.

I’m glad to announce the relaunching of My FarmVille Helper that I’ve been working since the beginning of last month to public.

I guess a few may have noticed that My FarmVille Helper has to be taken down 5 hours after I made it available to the public. Been contacted by the representative from Zynga Game Network Inc that my application may have legal issue with the use of official FarmVille logo. To folks in Zynga, teribbly sorry about that.

Well, I have rebranded My FarmVille Helper and it’s up and running again. Most of the bugs that I faced during my personal alpha release has been fixed. Feedbacks on this beta release is really appreciated.

Register one here

FarmVille Helper Beta is nearing the time where it will be released to public. But until then, please have a look at the following sneak preview first, if you ever interested in it ;)

The login screen. The overall look shares the same theme as TagMe! Control Panel. Well, why reinvented the wheel if you have the working one already lying around to be used.

Upon logging in, this will be the home screen that you will see,

where you can delete your account information as you wish. The same as TagMe!, timezone field is the most important one as all the planting sessions time will revolve around this.

You can add the planting session by selected the seed that you use, as well as the date and the time that you finished with the planting sessions.

All of you planting sessions can be viewed and managed from this screen. Guessing when your crops will be fully grown is the thing of the past. Now you can precisely know when to login to your FarmVille Farm to harvest your crops.

FarmVille Helper has already been released to public

Register one here

After almost 1 week I’ve been playing with FarmVille, I quickly realize that things can get really messy especially remembering when to harvest. Since each crops has different lifetime before it can be harvested, it ended up us having to manage several mini sessions of plowing and seeding, and having to keep checking so that the fully grown crops are not wilted, especially those that are having short lifetime.

In the game, when you hover the mouse on the crop, you will see the percentage of the grow progress displayed. But it doesn’t tell you on how long it will take before the crop is fully grown.

The formula to calculate the percentage of the Grow Progress can be derived as follows.

And to work out the time when the crop will be fully grown (i.e. End Time), the following formula can be used.

But often, we lost track of when that particular crop was first being planted (i.e. Start Time). Since we know the progress, lets rearrange the Grow Progress formula like so.

Now, lets substitute the Start Time in End Time formula with this, and I will have the following.

With this, now I can calculate the estimated time when my crop will be fully grown by time cost that it required for the crop to fully grown, the progress of grow and the current time when I’m looking at the progress.

Even though it’s workable, but this kind of chores easily tire me up. The problem with me is, when I’m addicted to something, I started to have an obsession with it if things are not efficient. It would be great if someone out there created a program that allows us to manage this. After looking for a while, I didn’t come across anything like it. So why not created one myself? Hhmm.. Sound like a good idea :D

So introducing, My FarmVille Helper. This is just a simple web application that I created using PHP and host it on my hosting account. The way that it works is, every time I start doing a new planting in FarmVille, I will record that session of what seed that I plant, and the date and time that I start the planting.

And I can track all of my planting sessions at this summary page. It will show the info of my crop plantations

  • What kind of seed
  • Date and time that I start planting
  • Time cost for the crop to fully grown
  • The date and time when the crop will be fully grown
  • The remaining time before the crop will be fully grown
  • The percentage progress (this will be the same as what shown in FarmVille)
  • The remaining time before the crop wilts (after it fully grown)

The UI is still shabby at the moment, but it does what it suppose to do. That’s what I call getting organized ;)

FarmVille Helper has already been released to public

Register one here

Friend Updates