כניסה למערכת מאמרים

               אין חשבון עדיין?

אינטרנט ומחשבים

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

  • PDF
דירוג משתמש: / 0
גרועהכי טוב 

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




עוד כתבות :

» רובוט ניקוי – שימושי, חסכוני ויעיל

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

» הקמת אתר בפייסבוק לעסקים

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

» משחק יניב

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

» יניב בפייסבוק

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

» יניב משחק שמשחקים בכל טיול

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

» הכנת עמוד Like בפייסבוק

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

» הכנת זחלן-רשת (Web Spider) בפלאש

מהו זחלן-רשת?זחלן-רשת הוא תוכנת מחשב שסורקת אתרי-אינטרנט בזה אחר זה ומבצעת פעולות המבוססות על התוכן הנמצא בדפי-האתרים. המעבר של זחלן-הרשת מאתר לאתר מבוצע ע"י זיהוי הקישורים החיצוניים (קישורים לאתרים אחרים) שנמצאים באתר הנוכחי שנסרק. לדוגמא, זחלן-הרשת מתחיל מכתובת של אתר אינטרנט ומבצע את הפעולות הבאות: קבלת קוד ה-HTML של העמוד הראשי באתר, ניתוח קוד ה-HTML, שליפת...

» זכיה במשחק 'על כל הקופה' באמצעות ניצול של חור אבטחה

המשחק 'על כל הקופה' הוא עם מעל ל-300,000 משתמשים. מטרת המשחק היא לענות נכונה על מספר השאלות הגבוה ביותר, ברגע ששחקן טועה, המשחק נגמר. במידה והשחקן בוחר בתשובה הנכונה הוא מתקדם לשאלה הבאה, לכל שאלה מופיעות מספר תשובות כאשר רק אחת מהן נכונה (בדומה לשעשועון הטריוויה ''). למשחק יש שתי גירסאות: גירסא בה משחקים בשביל כיף וגירסא בה משחקים בשביל כסף אמיתי. בגירסת הכסף...

» זיהוי רובוטים במשחקים מרובי-משתתפים

מהו משחק מרובה-משתתפים?משחק מרובה-משתתפים (הנכתב ע"י  למשל) הוא כל משחק בו משתתף יותר משחקן אחד בו-זמנית (לדוגמא: , שש בש ובינגו).אפשר לחלק משחקים מרובי-משתתפים לשתי קבוצות: הקבוצה הראשונה מכילה משחקים בהם משתתפים שני שחקנים בלבד (לדוגמא: שחמט, שש בש ודמקה) והקבוצה השנייה מכילה משחקים בהם משתתפת קבוצת שחקנים (לדוגמא: פוקר ובינגו). במשחקים מרובי-משתתפים כל...