
מכיוון שמחירי חפצים, ציוד ונשקים ב-RPG Maker VX נקבעים על ידי יוצר המשחק במסך בסיס הנתונים (Database) – התוכנה אינה מאפשרת לשנות מחירים אלו תוך כדי המשחק.
כדי לפתור את הבעיה כתבתי קטע קוד (script) מיוחד המאפשר, באמצעות שינוי משתנים ע"י הפקודה Control Variables, לשנות במהלך המשחק את מחירי הקניה או המכירה של פריטים.
בשביל מה זה טוב?
היכולת לשנות מחירים תוך כדי המשחק פותחת פתח לאפשרויות חדשות רבות. כך, לדוגמה, אתם יכולים לגרום לסוחר מסוים למכור פריטים בהנחה לשחקנים שהשלימו עבורו משימה כלשהי, או למכור במחיר יקר יותר לשחקן שפגע בו או במישהו המקורב אליו. אפשר גם, כמו בסדרת משחקי Fable, לגרום לכך שהמחירים יהיו שונים בערים שונות, באופן כללי או במסגרת "מבצע הנחות", וכך לעודד את השחקנים לעסוק במסחר ולשקול היכן כדאי להם לקנות או למכור חפצים שצברו. אפשרויות נוספות יכולות להיות שינוי מחירים כתוצאה מאירועים שונים בעולם המשחק דוגמת עליית מחירים באזור מוכה קרבות שהאספקה אליו הפכה להיות בעייתית, או ירידת מחירים מרגע שנפתח נתיב מסחר חדש, דוגמת גשר שהתמוטט ותוקן על ידי השחקן או שלום שהושכן בין כפרים יריבים. רעיון נוסף הוא שינוי המחיר בהתאם לשלב בו נמצא השחקן באופן שהסוחרים ידרשו מחירים גבוהים יותר מקבוצה שנראית חזקה ועשירה מאשר מהשחקן החלש של תחילת המשחק.
התקנה והוראות שימוש
מכיוון שקטע הקוד נכלל בטלאי העברית החל מגרסה 1.5 והלאה, אין צורך להתקין אותו אלא פשוט להשתמש בו על ידי שינוי משתנה מספר 81 – המשפיע על המחיר בו יימכרו פריטים לשחקנים, ומשתנה מספר 82 המשפיע על המחיר בו יסכימו סוחרים לקנות פריטים מהשחקנים. זאת באמצעות שימוש בפקודה Control Variables, כשהמשתנים מייצגים את השינוי באחוזים מהמחיר הרגיל.
נדגים באמצעות שמעון ורמי, הסוחרים המתחרים מהשוק המקומי שהצגנו במדריכים קודמים. רמי, כסוחר חדש המנסה לבסס את מעמדו בשוק מול שמעון הוותיק, מספר ללקוחותיו כי המחירים אצלו זולים מאלו של שמעון ומציע את כל הסחורה שלו בחצי מחיר (כלומר ב-50 אחוז הנחה).
נתחיל בהצגת משפטי הפתיחה של רמי ללקוחות שניגשים אליו. באמצעות הפקודה Show Text נציג לדוגמה את הטקסט " שלום גיברת, מה תרצי מהחנות שלי? הכל בחצי מחיר…".
כעת נבחר ממסך תפריט פקודות האירוע את הפקודה Control Variables (שליטה על משתנים). בחלונית שתפתח נלחץ על סימן שלוש הנקודות (…) שמימין למשבצת הלבנה העליונה כדי לבחור אצת המשתנה שאת ערכו נצטרך לקבוע. בחלון שיפתח עכשיו נבחר מצד שמאל את השורה התחתונה בה מופיעים המספרים 0081-0100. כעת נסמן בצד הימני את המשתנה 0081 ובשדה Name (שם) שבתחתית החלון נקבע שם שיעזור לנו לזכור את משמעות המשתנה – לדוגמה "מחירי מכירה". נלחץ על כפתור האישור (OK) ונוודא שבמסך אליו חזרנו מסומנות האפשרויות הבאות: תחת הכותרת העליונה Variable (משתנה) האפשרות Single (משתנה בודד), תחת הכותרת האמצעית Operation (סוג הפעולה) האפשרות Set (קביעת ערך), תחת הכותרת התחתונה Operand (נשוא הפעולה) האפשרות Constant (מספר קבוע). כעת נרשום בשדה הלבן שמימין לאפשרות Constant את המספר 50. אם עקבתם אחרי ההוראות המסך שלכם צריך להראות כמו בתמונה הזאת. כעת נלחץ על כפתור האישור (OK) לסיום.
מה שעשינו כעת הוא לקבוע שהמשתנה מספר 0081, שקראנו לו "מחירי מכירה" יקבל את הערך 50. המשמעות היא שהחנות מוכרת ב-50 אחוז מהמחיר הרגיל, כלומר בחצי מחיר.
כעת נגדיר את החנות עצמה על ידי הפקודה Shop Processing (ניהול חנות) הנמצאת בצד שמאל למעלה בלשונית 3 של תפריט פקודות האירוע, ונזכור להוסיף מספר מוצרים בחנות על ידי לחיצה כפולה עם העכבר על אחת השורות הריקות שבאפור לבן ובחירת חפץ (Item), נשק (Weapon) או שריון (Armor) על ידי סימון האפשרות המתאימה ולחיצה על החץ הקטן שמימין לשדה הלבן כדי לבחור מתוך רשימת הפריטים המוגדרים במשחק (כדי ללמוד איך להגדיר פריטים במשחק ראו במדריך הזה).
לסיום לא נשכח להחזיר את מחירי המכירה לרמה הרגילה (אחרת כל החנויות ימכרו מעכשיו בחצי מחיר, גם זאת של שמעון) שוב באמצעות הפקודה Control Variable כשהפעם נקבע למשתנה 0081 את הערך 100 (100 אחוז מהמחיר הרגיל – כלומר המחיר הרגיל ללא שינוי).
אם פעלתם בדיוק לפי ההוראות – רשימת פקודות האירוע של רמי צריכה להראות כמו בתמונה הזאת.
סיכום
שינוי המשתנה מספר 0081 יגרום לשינוי המחירים בהם השחקנים יכולים לקנות פריטים מהחנויות באחוזים מהמחיר הרגיל. כך אם נקבע את הערך 50 במשתנה 0081 המחירים יהיו 50 אחוזים (כלומר חצי) מהמחיר הרגיל, אם נקבע את הערך 200 המחירים יהיו 200 אחוזים (כלומר פי שתיים) מהמחיר הרגיל, ואם נקבע את הערך 100 המחיר יהיה המחיר הרגיל.
המשתנה מספר 0082 המשפיע על המחירים בהם השחקנים יכולים למכור פריטים לחנויות (ולכן כדאי לקרוא לו "מחירי קניה") מתנהג דומה וקובע את מחיר הקניה באחוזים מהמחיר הסטנדרטי שקבוע בבסיס הנתונים (Database). צריך רק לזכור שבאופן רגיל במשחק (כלומר אם לא היינו משתמשים בקטע הקוד החדש) המחירים שבהם השחקנים יכולים למכור פריטים הם 50 אחוז ממחיר הפריט. כלומר, אם נקבע את הערך 50 במשתנה 0082 בעצם לא שינינו כלום. כדי שהחנות תציע לקנות במחיר גבוה מהרגיל אנחנו צריכים לקבוע ערך גדול מ-50. כך, לדוגמה, אם נקבע את הערך 75, החנות תסכים לקנות פריטים מהשחקנים ב-75 אחוז מהמחיר בו היא מוכרת.
מגבלה נוספת היא שסוחרים אף פעם לא יסכימו לקנות פריט מהשחקן ביותר מ-90 אחוז מהמחיר שבו הם מוכרים לו את אותו פריט. אחרי הכל הם רוצים להרוויח ובוודאי לא לחלק סתם כסף לשחקנים. ולכן אם לדוגמה קבענו שרמי מוכר הכל בחצי מחיר (50 אחוז) הוא לא יקנה פריטים ביותר מ-45 אחוז מהמחיר הרגיל, גם אם נקבע למשתנה 0082 ערך גבוה יותר, לדוגמה 75.
