דף הבית מחשבים וטכנולוגיה תוכנה הכנת רובוט למשחק אוטומטי ב-FarmVille
הכנת רובוט למשחק אוטומטי ב-FarmVille
אלעד כהן 14/08/10 |  צפיות: 2870

מבוא
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.



 


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

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

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

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

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

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

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

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

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

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