אתר מאמרים
מעגל הכותבים אתר מאמרים קהילתי
שלום אורח!
מאמרים » תוכנה » הכנת רובוט למשחק אוטומטי ב-FarmVille

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

מחבר המאמר:
פורסם בקטגוריה: תוכנה
המאמר נקרא 698 פעמים
תאריך פרסום:
גרסת הדפסה | 0 תגובות
פורסם באתר Circle: אתר מאמרים קהילתי



מבוא

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

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

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

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

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

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

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

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

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


אודות מחבר המאמר:

המאמר נכתב ע"י אלעד כהן - מתכנת פלאש בחברת GAME DEV LTD (גיימדב בע"מ) העוסקת בפיתוח אפליקציות לפייסבוק, פיתוח אפליקציות לאייפון ופיתוח משחקי מחשב.


דירוג המאמר: 1.0

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

עד כה לא נרשמו כל תגובות למאמר הכנת רובוט למשחק אוטומטי ב-FarmVille. רוצה להיות הראשון?

הוספת תגובה חדשה


שם מלא:


כתובת דוא"ל:


תוכן התגובה

הקלידו את הקוד שבתמונה

Visual CAPTCHA


מאמרים נוספים בנושא תוכנה

למה כדאי לך ללמוד שפת C?
ניהול תזרים מזומנים
בדיקות תוכנה, QA ומה שביניהם
פיתוח אפליקציות לאנדרואיד
תוכנת תיווך
מערכת בדיקה אופטית מבוססת עיבוד תמונה לזיהוי פגמים בייצור יריעות
מודעות דרושים JAVA למשרות הייטק
מי צריך קופה רושמת?
על איחזור מידע בתוכנה להנהלת חשבונות
על קלות התנועה (נוויגציה) בתוכנה להנהלת חשבונות
שירותים אשר ניתן לקבל באמצעות מיקור חוץ
מערכת ראייה ממוחשבת בענף המזון המעובד
פתרונות מחשוב
תקנות חישוב שטחים
חישוב שטחים

הנך נמצא כאן: הכנת רובוט למשחק אוטומטי ב-FarmVille.

פרסם את מאמריך באתר! פרסם את מאמריך באתר!
תהנה מחשיפה מקצועית בחינם ואפשר לאלפי גולשים פוטנציאליים להיחשף לדעותיך.
פרסם מאמר.
דרושים בתחום הכתיבה | תנאי שימוש ומדיניות פרטיות | תוכן המפרסמים באתר מופץ ברשיון ייחוס-איסור יצירות נגזרות של Creative Common License.
כל הזכויות שמורות © Circle.co.il 2009-2012 - מאמרים להפצה חופשית מאת מעגל הכותבים.