תכנות: הכנת רובוט למשחק אוטומטי ב-FarmVille [מתחיל]

פורום זה יאגד בתוכו מאמרים ומדריכים בנושאים השונים שיכתבו על ידי חברי הקהילה. המאמרים יקבלו תיוג מילות מפתח, דירוג רמת קושי ודירוג הקהילה. תוכלו למצוא פה מדריך פלאש, ActionScript, MXML, מאמר בנושא תלת מימד, עיצוב, צד שרת וגם Mobile.

תכנות: הכנת רובוט למשחק אוטומטי ב-FarmVille [מתחיל]

הודעהעל ידי elad ב 02 יולי 2010, 09:17

תמונה

מבוא

FarmVille הוא המשחק הפופולרי ביותר בפייסבוק, מטרת המשחק היא להקים חווה משגשת.
במהלך המשחק, השחקן רוכש שתילים, שותל אותם וקוצר לאחר פרק זמן מסויים. במידה והשחקן לא יבצע את הקצירה בזמן, השתילים יתרקבו והשחקן לא ירוויח מטבעות עבורם.
פעולות אלו (רכישת שתיל, שתילתו וקצירתו) חוזרות על עצמן במהלך המשחק ומזכות את השחקן במטבעות.
בחלק הבא אסביר איך להכין רובוט שיבצע את הפעולות האלו באופן אוטומטי.
כדי להכין רובוט צריך להבין מה קורה מאחורי הקלעים כאשר פעולות במשחק מתרחשות.
למשחק יש שני חלקים: צד הלקוח (נכתב בשפת ActionScript 3) וצד השרת (נכתב בשפת php), הנתונים נשלחים ומתקבלים בפורמט amf. ארכיטקטורה זו מאפשרת לשלוח אובייקטים מורכבים ולקבל אובייקטים מורכבים בחזרה.

הסבר הקוד של הרובוט

ניתן להוריד את קוד המקור של הרובוט מהקישור הבא: http://www.gamedevstudio.co.il/FarmVill ... mVille.rar

הרובוט הוא אפליקציית פלאש שכתובה בשפת ActionScript 3. ממשק המשתמש מורכב מכפתור אחד ומשורת מצב. בלחיצה על הכפתור, הרובוט מתחיל לפעול ומתחבר לעמוד המשחק בפייסבוק (שם המשתמש והסיסמא לאתר פייסבוק נלקחים מתוך קובץ Cookie שנשמר במחשב, לכן בעת כניסה לפייסבוק חשוב לבחור באפשרות 'ביצוע כניסה אוטומטית בפעם הבאה' כדי שקובץ Cookie יישמר במחשב).
ההודעות שנשלחות מהמשחק אל השרת מכילות נתונים שנמצאים במשתני ה-Flash Vars (משתנים שמוגדרים בקוד טעינת קובץ SWF וקובץ ה-SWF יכול להשתמש בהם).
אפשר להגיע לכל משתני ה-Flash Vars ע"י טעינת מספר עמודי HTML בסדר מסויים, אותם העמודים שהיו נטענים לשחקן במידה והיה נכנס למשחק באמצעות הדפדפן.

תמונה

פירוט משתני ה-Flash Vars:
flashRevision – גירסת המשחק
token – מזהה ה-Session הנוכחי של השחקן במשחק
fb_sig_time – אחד המשתנים שאתר פייסבוק מעביר לכל אפליקציה שנטענת בתוכו
master_id – המספר המזהה של המשתמש בפייסבוק
app_url – כתובת צד-השרת של המשחק, אליה נשלחות כל ההודעות במהלך המשחק

מלבד משתנים אלו, יש משתנה נוסף בשם g_world, משתנה זה מוגדר בקוד JavaScript בעמוד ה-HTML שבו נמצאים ה-Flash Vars ומכיל מידע על כל האובייקטים שנמצאים בחווה (כגון שתילים, עצים וחיות). ערך המשתנה g_world מקודד בקידוד Base64 ולכן צריך להפוך את המחרוזת המקודדת למערך של אובייקטים.

תמונה

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

תמונה

כל הודעה שנשלחת לשרת מכילה אובייקט חתימה, אובייקט זה מאפשר לשרת לזהות מי ביצע את הבקשה. אובייקט החתימה מכיל את משתני ה-Flash Vars.

תמונה

המאמר פורסם באנגלית במגזין ffdmag בחודש יולי, 2010

קישור למאמר המקורי
elad
 
הודעות: 242
הצטרף: 21 מרץ 2010, 12:43
מיקום: נס-ציונה

Re: תכנות: הכנת רובוט למשחק אוטומטי ב-FarmVille [מתחיל]

הודעהעל ידי tamagoti ב 20 יולי 2011, 16:18

צריך להיות בשביל זה מחובר לפייסבוק כן ?
ומה קורה אם נגמר הכסף ואין מספיק לשתילם ?
tamagoti
 
הודעות: 13
הצטרף: 20 יולי 2011, 16:14


חזור אל מאמרים ומדריכים לפלאש ומעבר

 


  • שרשורים בנושאים דומים
    תגובות
    צפיות
    הודעה אחרונה

מי מחובר

משתמשים הגולשים בפורום זה: אין משתמשים רשומים ואורח אחד

cron