Dec 6

AutoPlayer עבור Farmvilla

קטגוריה: Fun, Hacking, סקריפטים

gamebig_farmville1-300x229[1]

זה התחיל מסלידה מהמשחק, והתגלגל לניסוי, ואחריו קריאת אתגר, והיום זה כבר הפך לפרוייקט צדדי שאני נהנה לצפות בו מהצד.

למי שלא מכיר או לא יודע על מה מדובר, Farmvilla הוא משחק דפדפן די מוכר ברשת החברתית Facebook. אחיין שלי הצליח לשכנע אותי לנסות את המשחק, ואני כהרגלי משתעמם די מהר מפעולות שחוזרות על עצמם.

אחרי תקופה קצרה עם המשחק הזה, מצאתי את עצמי עושה חישובים כמו חישוב נצילות ובאיזה יבולים כדאי להשקיע, בונה טבלות ב-EXCEL וחושב כבר להעסיק עובדים שיעשו את העבודה השחורה בשבילי. ואז ראיתי את הניגודיות שעל מנת להרוויח במשחק אני צריך דווקא להשקיע ביבול הזול יותר שגודל מהר, מאשר מהיבול היקר ואיטי. אך אליה וקוץ בה, יבול מהיר גם מתקלקל מהר יותר אם לא קוצרים אותו בזמן, מה שמחייב להיות מול המחשב בזמן הקציר.

ואז נדלקה הנורה, להעסיק את העובד הטוב בעולם למלאכה…




מי יכול לעשות את העבודה המחזורית והמשעממת הזאת יותר טוב מתוכנית קטנה ושדונית, שכל מטרה יצירת היא לעשות את אותה עבודה שוב ושוב…

אחרי כמה דקות של חשיבה, ושירבוטים הגעתי לתבנית שבא אני הולך להפעיל את התוכנית הקטנה שלי.

  • יצרתי שדה מלבני בשביל פשטות הפעולה של הסקריפט
  • את החקלאי נעלתי במרכז השדה כדי לזרז את כל הפעולות
  • בגלל חוסר העקביות של ההודעות הקופצות – אני מבצע כל פעולה בנפרד (קצירה \ חרישה \ וזירעה מחדש)

מקווה שזה יעזור למשהו, ואשמח לקבל הצעות לשיפור ולראות מה אחרים יעשו עם הרעיון.

הקוד (נכתב ב-AutoIT)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 
$ZOOM_X = 950 ;
$ZOOM_Y = 686 ; 
 
; Press Esc to terminate scrip
 
HotKeySet("{ESC}", "Terminate")
Func Terminate()
Exit 0
EndFunc
 
$speed = 50
 
HotKeySet("{UP}", "SpeedUp")
Func SpeedUp()
$speed = $speed + 10
EndFunc
 
HotKeySet("{DOWN}", "SpeedDown")
Func SpeedDown()
if $speed >= 10 Then
$speed = $speed - 10
EndIf
EndFunc
 
$SKIP = 0
HotKeySet("{RIGHT}", "Skip")
Func Skip()
$SKIP = $SKIP + 1
EndFunc
 
WinWaitActive("FarmVille")
MouseClick("left", $ZOOM_X, $ZOOM_Y, 3, 1) ; Click to zoom
 
$FULL_X = $ZOOM_X+30
$FULL_Y = $ZOOM_Y
MouseClick("left", $FULL_X, $FULL_Y, 1, 0)
Sleep(2000)
 
$START_X = 195 ;
$START_Y = 456 ;
 
$SIZE = 22 ; Rabin
 
$DX = 24.75
$DY = 12.063
 
For $MORE_WORK=1 To 1
 
For $J = 1 To $SIZE
$X = $START_X
$Y = $START_Y 
 
For $I = 1 To $SIZE
If (($J == Round($SIZE/2)+1) AND ($I == Round($SIZE/2))) Then
$X+=$DX
$Y+=$DY
ContinueLoop(1)
Else
If ($J >= $SKIP) Then ; skip rows
MouseClick("left", $X, $Y, 1, 0)
sleep($speed)
endif
EndIf
$X+=$DX
$Y+=$DY
 
Next
 
$START_X += $DX
$START_Y -= $DY
 
Next
Next ; MORE_WORK
 
;MsgBox(0, "Done", ":)")


פוסטים קשורים או דומים:

שתף עם אחרים:
  • Digg
  • del.icio.us
  • Google Bookmarks
  • StumbleUpon
  • Facebook
  • Live
Print
3 תגובות

3 תגובות עד כה

  1. משה מאשקלון January 19th, 2010 16:45
  2. The IceMan January 24th, 2010 2:03

    תודה, לא העלתי את הרשימה שלי באמת

    http://spreadsheets.google.com/pub?key=t9GcSWUSLHYLTDs-PLFKitw&single=true&gid=0&output=html

    למה נועדו שאר הקבצים בתיקיה ?

  3. גרסה חדשה February 2nd, 2010 22:28

    http://cid-20bf7e3cb82f300c.skydrive.live.com/self.aspx/Public/farmville/Seed%5E4s%20%5E0%20Tree%5E4s.xlsx

    שאר הקבצים זה תוכנות לאוטומטצייה, ועוד לינקים, farmville helper 1.7 זה פריצה בלעדית {חדשה ברשת, לא הייתה עד שבאתי .

השאר תגובה