After I beat the game on Expert, Master, and ground out all of my stars, I still only had about 5,800 customers. You can just replay levels over and over to get customers, but that's lot of grinding. If you were anything like me, you enjoyed the game but were probably bored of it after beating it twice.
The easiest way I found to get customers was to play the 2nd level (1-2) over and over again. This gets you 14 customers in about 2.5-3 minutes. That's still a lot of grinding.
If you want to automate the grinding though, there's a way. You can run an automation script on your computer to grind the achievement for you. According to the cheating policy and the forums this is perfectly legal on TrueAchievements. It's just like using a turbo controller but for your computer.
The automating script program I prefer is AutoHotKey (AHK). Just go to the
official AutoHotKey website, download it, and install it. (Do not go to autohotkey.com as it's not the actual website any more.)
Once the program is installed, you should save this script in a text file.
*** Spoiler - click to reveal ***
SetDefaultMouseSpeed,0
WinWaitActive, Dead Hungry Diner
global STANDARD_SLEEP := 10, SEATING_DELAY := 200, EXTRA_DELAY := 500, WALKING_DELAY := 1000, WAITING_TO_ORDER := 9500, BERRY_HARVEST := 4500, MONSTER_EAT := 7000, RED_ZOMBIE_WAITING_TO_ORDER := 4000, RED_ZOMBIE_EAT := 5000
Run()
; To stop the application at any time, simply press the Escape button
Escape::ExitApp
Run()
{
Sleep EXTRA_DELAY
Click 475,375 ; Story button
Sleep STANDARD_SLEEP
; You can add a number here to make it loop a certain amount of times.
; For example, Loop 200 to loop 200 times.
Loop
{
;;; New game selection and intro
Click 200,175 ; Level 1-2 button
Sleep STANDARD_SLEEP
Click 965,60 ; Play button
Sleep STANDARD_SLEEP
Click 950,530 ; Skip story screen
Sleep EXTRA_DELAY
Click 565,500 ; Play button
Sleep STANDARD_SLEEP
;;; Gameplay
Sleep 1000
SkipInstructionScreen()
; 1st set of monsters - 1 green, 1 green
MonstersToTablesOnePersonFirst()
SkipInstructionScreen() ; Streak instructions
ClickOnePersonTable() ; Order won't register until a table is clicked on
TakeOrdersToTree(true, false)
CollectBerries()
DeliverFood(false)
CollectMoney()
Sleep 1000 ; Extra long delay to wait for instructions in order to sync correctly
SkipInstructionScreen() ; Bigger group of zombies instructions
CleanUp()
; 2nd set of monsters - 2 green, 1 green
MonstersToTablesTwoPersonFirst()
TakeOrdersToTree(false, false)
CollectBerries()
DeliverFoodCollectMoneyCleanUp(false)
Sleep 2500 ; Extra long delay to wait for instructions in order to sync correctly
SkipInstructionScreen() ; Red guy instructions
; 3rd set of monsters - 1 green, 2 red
MonstersToTablesOnePersonFirst()
TakeOrdersToTree(false, false)
CollectBerries()
DeliverFoodCollectMoneyCleanUp(false)
Sleep 11000 ; Extra long delay to wait for instructions in order to sync correctly
SkipInstructionScreen() ; Overwhelmed instructions
; 4th set of monsters - 2 red, 1 red
MonstersToTablesTwoPersonFirst()
TakeOrdersToTree(false, true)
CollectBerries()
DeliverFoodCollectMoneyCleanUp(true)
; 5th set of monsters - 2 red, 1 red
MonstersToTablesTwoPersonFirst()
TakeOrdersToTree(false, true)
CollectBerries()
DeliverFoodCollectMoneyCleanUp(true)
; Reset for next run
Sleep 2500 ; Sleep for stage ending
Click 445,535 ; Click on stages button
}
}
; skip = 515,615
SkipInstructionScreen()
{
Click 515,615
Sleep EXTRA_DELAY
}
; Head monster = 430,555
SelectHeadMonster()
{
Click 430,555
Sleep STANDARD_SLEEP
}
; 1st table = 435,400
ClickOnePersonTable()
{
Click 435,400
Sleep STANDARD_SLEEP
}
; 2nd table = 640,360
ClickTwoPersonTable()
{
Click 640,360
Sleep STANDARD_SLEEP
}
; Tree = 895,170
ClickTree()
{
Click 895,170
Sleep STANDARD_SLEEP
}
; Buckets = 850,310
ClickBuckets()
{
Click 850,310
Sleep STANDARD_SLEEP
}
MonstersToTablesOnePersonFirst()
{
Sleep EXTRA_DELAY
SelectHeadMonster()
Sleep SEATING_DELAY
ClickOnePersonTable()
Sleep SEATING_DELAY
SelectHeadMonster()
Sleep SEATING_DELAY
ClickTwoPersonTable()
Sleep SEATING_DELAY
}
MonstersToTablesTwoPersonFirst()
{
Sleep EXTRA_DELAY
SelectHeadMonster()
Sleep SEATING_DELAY
ClickTwoPersonTable()
Sleep SEATING_DELAY
SelectHeadMonster()
Sleep SEATING_DELAY
ClickOnePersonTable()
Sleep SEATING_DELAY
}
TakeOrdersToTree(onePersonTableFirst, isRedZombies)
{
; Pick up orders and walk to tree
if (isRedZombie)
{
Sleep RED_ZOMBIE_WAITING_TO_ORDER
}
else
{
Sleep WAITING_TO_ORDER
}
if (onePersonTableFirst)
{
ClickOnePersonTable()
ClickTwoPersonTable()
}
else
{
ClickTwoPersonTable()
ClickOnePersonTable()
}
ClickTree()
}
DeliverFoodCollectMoneyCleanUp(isRedZombie)
{
DeliverFood(isRedZombie)
CollectMoney()
CleanUp()
}
DeliverFood(isRedZombie)
{
; Deliver food
ClickTwoPersonTable()
ClickOnePersonTable()
Sleep WALKING_DELAY
Sleep WALKING_DELAY
Sleep WALKING_DELAY
if (isRedZombie)
{
Sleep RED_ZOMBIE_EAT
}
else
{
Sleep MONSTER_EAT
}
}
CollectMoney()
{
ClickTwoPersonTable()
ClickOnePersonTable()
Sleep WALKING_DELAY
Sleep WALKING_DELAY
}
CleanUp()
{
ClickOnePersonTable()
ClickTwoPersonTable()
Sleep WALKING_DELAY
Sleep WALKING_DELAY
}
CollectBerries()
{
Sleep BERRY_HARVEST ; Sleep for the berries to be harvested
ClickBuckets()
}
Change the file name to have the ahk extension. For example, I named my file "Dead Hungry Diner Customers.ahk" without the quotes. Run Dead Hungry Diner in windowed mode. All of the coordinates are set for when the game is in Windowed mode so it shouldn't matter what resolution you run your computer at. Leave the game at the main menu, then double click on the script file, make Dead Hungry Diner the active window, and the script will do the rest. The script is set to only start running once Dead Hungry Diner is the active window and at any time you can press the Escape (Esc) key to stop the script.
This script WILL NOT ERASE ANYTHING. It just plays the same level (1-2) over and over again and will use whatever profile you currently have selected. As long as the profile has 1-2 unlocked (which I believe happens when you start a new game) it'll continue to run.
You'll get 14 customers about every 2.5-3 minutes. So that works out to about 280 an hour. That's the absolute maximum I could optimize it. So for 1000 customers you'll need to run the script for about 4 hours. So go do something else fun and get your achievement. :D
If you have feedback on the script, let me know. Unfortunately it doesn't seem to indent correctly in the forums so it might be hard to read. The code tag didn't seem to work. If you know how to get the code to render correctly, let me know.
If you don't like automation, then this solution is probably not for you.