x
בניית אתרים בחינם
הפוך לדף הבית
הוסף למועדפים
   

Sופר Cארס

האתר מס' 1 ברשת למידע על מכוניות!!

 

בניית משחק!!!


 

 

בניית משחק

תמיד רציתם לבנות משחק ולא ידעתם איך אז יש לי פתרון בשבילכם בתוכנה rmxp התוכנה אצמה מסובכת מאוד אך גם קלה מאוד אחרי שאתם מבינים גם בעוד מאה שנה אני לא יצליח לרשום לכם את כל האפשרויות של התוכנה ולכן אני יעשה כל פעם מדריך מדריך אז היום דבר ראשון אני יתן לכם לינק להורדת התוכנה ומילון מושגים כדי שתבינו מה אני מתכוון במדריכים שלי אוקי
הורדה-
http://lain.zerofacade.com/atziluth/files/RMXP_1-01_postality_enhanced_2.exe

עכשיו למילון מושגים
כללי:
RM = RPG Maker
RM2K = RPG Maker 2000
RM2K3 = RPG Maker 2003
RMXP = RPG Maker XP
משאבים = כל מה שצריך בשביל התוכנה. זה כולל צ'ארסטים, צ'יפסטים, תמונות, מנגינות ועוד ועוד. כל מה שנמצא ב-RTP.
סקריפט = מערכת מוכנה. אם זה CBS ואם זה CMS, השם הכללי של הדברים האלו זה סקריפטים.
לדוגמה, אם אתם מבקשים מערכת קרבות פעילה להורדה, תגידו "אני רוצה סקריפט של ABS".

מערכות:
DBS = מערכת הקרבות הבסיסית של התוכנה.
CBS = מערכת קרבות מותאמת אישית. כל מערכת קרבות שהיא לא המערכת הבסיסית של התוכנה היא CBS.
ABS = מערכת קרבות פעילה. זו מערכת שבה הקרבות מתבצעים על המפה ולא במפה נפרדת לקרבות.
זה מה שחלקכם מכנים "מערכת קרבות כמו בירושת גוקו".
DMS = תפריט בסיסי של התוכנה, ללא שינויים.
CMS = תפריט מותאם אישית. כל תפריט שאתם עושים בעצמכם הוא CMS.

משאבים ועוד:
צ'ארסט = קובץ של דמות. כל הדמויות שאתם משתמשים בהן בשביל המשחק.
צ'יפסט = קובץ של מפה. כל התמונות שאתם משתמשים בהן בשביל המשחק.
דאטה-בייס = מרכז הנתונים של התוכנה. שם יש את רשימת הגיבורים, האנימציות של הקרבות, common events ועוד.
ואריאבל = Variable. משתנה בתוכנה שאתם יכולים להציב בו כל מספר.
סוויץ' = Switch. עוד סוג של משתנה, אבל יותר פשוט - רק עם ON ו-OFF.
בינתיים אלו כל המונחים שכדאי לכם לשנן.

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

נושא ראשון:שינוי מסך הפתיחה
תיכנסו לתיקיה של המשחק שלכם בדרך כלל זה
המסמכים שלי-->RPGXP-->שם המשחק שלכם
אוקי עכשיו התיקיה של המשחק שלכם פתוחה עכשיו לכו לפוטושופ או שתחפשו תמונות באינטרנט למסך הפתיחה שלכם
אינה אתר טוב-
כאן
עכשיו בתקיה של המשחק תיכנסו לGraphics ואז לTitles שם תשמרו את המסך הפתיחה שלכם
עכשיו כנסו לתוכנה ופתחו את המשחק שלכם ואז תלחצו F9 כנסו לsystem ואז יש שם כאלה ריבועים אז בריבוע השני איפה שרשום title screen
תלחצו על החץ ושתנו למסך הפתיחה שלכם
עכשיו המסך הפתיחה שונה אפשר לבדוק את זה ע'י לחיצה על game--->test play
שזה נימצא למעלה בסרגל איפה שfile

נושא שני: איש שידבר איתך ויגיד לך סתם למשל היי
אוקי כנסו למשחק שלכם ואז כנסו בסרגל של הfile ל mode ואז לevent layer
עכשיו לחצו פעמיים על אחת המשבצות שבא תירצו שיהיה האיש שידבר איתכם
נפתח לכם חלון עכשיו בצד שמאל יש ריבוע כזה שרשום מעליו Graphics אז תלחצו שם פעמיים ואז תבחרו את הדמות שתדבר איתכם עכשיו לחצו אוקי ואז יש לכם בצד ימין כזה סימן <> תילחצו עליו ואז עלmessage
שם תרשמו את מה שאתם רוצים שהוא יגיד לכם וזהו עכשיו תעשו טסט פליי game--->test play

נושא שלישי:איך משנים את דמות המשחק שלך

לחצו F9 ואז תבחרו בלשונית hero ואז יש לכם כזה ריבוע שיש עליו את הצארסט(ספרייט)של השחקן שלכם
תלחצו דאבל קליק ואז תשנו את זה לדמות שאתם רוצים לשנות עכשיו כשאתם בוחרים צארסט אז
שימו לב למספר והשם שלו עכשיו נבחר למשל את מספר 010 עכשיו לחצו אוקי ואז בריבוע השני
battle graphic תבחרו את מספר 010 שזה יהיה תואם התמונה הזאת זאת התמונה שלכם בקרב
עכשיו תעשו טסט פליי כבר אתם יודעים איך וזהו

נושא רביעי:קרבות
אוקי כנסו למשחק שלכם ואז כנסו בסרגל של הfile ל mode ואז לevent layer
עכשיו לחצו פעמיים על אחת המשבצות שבא תירצו שיהיה המפלצת/אויב
עכשיו בצד שמאל יש כזה ריבוע תילחצו עליו ותבחרו מפלצת
עכשיו למשל בחרתם רוח רפאים אז תלחצו אישור ואז יש לכם דבר כזה <>
תילחצו על זה לכו בחלון שנפתח לכם לדף שלוש ויש שם כפתור(פקודה) enemy encounter
תילחצו עליו עכשיו נכון בחרנו רוח אז תבחרו ב ghost*2 עכשיו זה אומר שבקרב יהיו שתי רוחות רפאים
אם אתם רוצים רוח רפאים אחת אז אפשר ללחוץ F9 (דאטבייס) אז ל monster group
עכשיו סימו לב שבצד שמאל למטה יש כפתור array size תילחצו עליו ותרשמו 33 עכשיו בצד שמאל יש לכם עד 33 תילחצו על 33 ולמעלה איפה שיש את הname תרשמו ghost*1
עכשיו בצד ימין למעלה יש כזה חלון תבחרו בghost ותלחצו add
עכשיו אוקי ותחזרו למה שעשינו קודם רק שהפעם תבחרו בghost*1

נושא חמישי: פקודות

מה זה פקודה למשל אתם רוצים שאתם תילכו ואז יהיה איש שיתן לכם כסף או איש שימכור לכם חפצי ועוד מלא דברים המשחק כולו בנוי מפקודות מי שלא יודע פקודות לא יכול להצליח בבניית המשחק כדי לעשות פקודה לחצו בסרגל של הfile ל mode ואז לevent layer
עכשיו לחצו פעמיים על אחת המשבצות שבא תירצו שיהיה האירוע(פקודה) עכשיו תילחצו על הסימן הזה <> ככה מכניסים פקודות אלו הם הפקודות
MESSAGE-תוכלו להישתמש בזה כאשר תירצו לכתוב הודעה רגילה.
יש אפשרויות מיוחדת לעשות נגיד צבע.
SHOW CHOICES-נגיד כתבתם הודעה כזאתי:"העם תירצה להיצטרף אלינו ולהילחם ברשע?"(XD) בזכות הSHOW CHOICES תוכלו להחליט עם כן או לא.
מה שתיצתרכו לעשות זה לכתוב YES וNO איפו שתירצו.במה שיוצא לכם תיכתבו מה יקרה.
INPUT NUMBER-גם הפקודה הזאתי מקשרת להודעה.בפקודה הזאתי תוכלו להכניס מספר.זה יכול להיות כל דבר.מספר סודי...המספר מדוייק רק עם הוואריבל.
MESSAGE DISPLAY OPTIONS-הפקודה הזאתינותנת לכם את האפשרות לבחור
כיצד יראה חלון ההודעה.DISPLAY POSITION שבתוך זה יחליט את הגובה.
והSHOW WINDOW יחליט עם תירצו שההודעה תהיה שקופה או לא.
KEY INPUT PROCCESING-בעזרת הפקודה הזו תוכלו ללחוץ על איזהשהו מקש.
את המקש יחליט וואריבל.
WAIT-בפקודה הזאתי תוכלו להישתמש כאשר תירצו שיחכו קצת בין הודעה להודעה...הפקודה פועלת על פריימים.
COMMENT-הפקודה הזאתי היא לא פקודה משמעותית...
אלה פקודה שבעזרתה תוכלו לזכור דברים.
הCOMMENT שם תיזכורת.
CONDITIONAL BRUNCH-הפקודה הזאתי היא "פורק".
הפקודה הזאתי שולטת ב"עם" של התוכנה.
נגיד עם לחצתם על המקש הזה מהשהו יקרה...
עם החיים שלכם מעטים מהשהו יקרה...
עם אתם לא מבינים את מה שיש בפקודה תלכו למדריך מפורט
של NIGHT WOLF על הCONDITIONAL BRUNCH.
LOOP-הLOOP היא פקודה שמה שתשימו בתוכה יחזור על עצמו כל הזמן.
END LOOP-הEND LOOP יעצור את הפקודה LOOP.
END EVENT PROCCESING-הפקודה הזאתי תעצור את כל האירועה ולא תיתן לי להמשיך.
ERASE EVENT-הפקודה הזאתי תימחוק את האירועה.
COMMON EVENT-הפקודה הזאתי תיקר אלקומון אבנט מהדאטאבייס.
LABEL-זהו סימון.כאשר תשימו אותו איפושהו תוכלו להפעיל את האירועה משם שוב.
JUMP TO LABEL-תוכלו לקפוץ לLABEL שלכם.זה יתחיל את האירועה מהLABEL.
SWITCH OPERATION-בעזרת הפקודה הזאתי תוכלו להפעיל סוויצ'ים.
נגיד מישהו אמר מהשהו ועכשיו הוא צריך לשתוק אתם עושים את הסוויץ' על ON,
ואז בעמוד הבא עושים משמאל למעלה את הסוויץ!
VARIABLE OPERATIONS-פועל כמו הסוויץ' רק שכאן הוא לא על ON וOFF אלה על מספרים.וואריבל אחד יכול לסכוך 10 סוויצ'ים!
LOCAL SWITCH OPERATION-הפקודה הזאתי היא כמו הסוויץ' הרגיל.
רק שכאן יש רק 4 (איזה מניאקים הא?=\).
TIMER OPERATIONS-הפקודה הזאתי יכולה לעשות לכם זמן.
נגיד יש לכם 5 דקות ללכת לשם ולתת את הכסף...
CHANGE MONEY-לפי הכותרת של הפקודה אפשר להבין שזה משנה את הכסף.
תוכלו להגדיל/להקטנין את הסכום בעזרתהINCREASE והDECREASE.
הסכום יכול גם להישלט בעזרת וואריבל.
CHANGE ITEMS-כאן תוכלו לשנות את הפריטים שלכם.
להגדיל או להקטין.
CHANGE WEAPONS-כאן תוכלו להחליף את הנשקים שלכם.לקחת עוד נשק,או להוציא אותו.
CHANGE DEFENSE ITEMS-כאן תוכלו לשנות את פריטי ההגנה (מגן,שיריון...)
CHANGE PARTY-בעזרת הפקודה הזו תוכלו להוסיף/להוציא חברי צוות.
CHANGE WINDOW SKIN-כאן תוכלו לשנות את הסיסטם.הסיסטם הוא מין לוח כזה שבעזרתו יש להודעות רקע וכ'ו ...
CHANGE BATTLE BGM-כאן תוכלו לשנות את מוזיקת הקרב (מוזקית הרקע).
CHANGE VICTORY ME-תוכלו לשנות את קריאת הניצחוןן שלכם.
ALLOW/DISSALLOW SAVING-תוכלו להרשות/לא להרשות לשמור במשחק.
ALLOW DISSALLOW MAIN MENU-כאן תוכלו להרשות/לא להרשות להיכנס לטפרית הראשי.
ALLOW DISSALLOW ENCOUNTERS-כאן תוכלו לאפשר/לא לאפשר את הקרב הרנדומלי (כעילו קרב על כל משבצת שאולי יקרה).
TELEPORT-תוכלו לעבור למפה אחרת בעזרת הפקודה הזאתי.
CHANGE EVENT LOCATION-כאן תוכלו לשנות את מיקומו של כל אירועה במפה.
SCROLL MAP-בעזרת הפקודה הזאתי תוכלו להיסתקל יותר למעטה מהרגיל.
(נגיד אתם צריכים לראות מהשהו תוכלו להישתמש בזה).
CHANGE MAP SETTINS-כאן תוכלו לשנות את מאפייני המפה.לשנות לה את הפנורמה...
TINT FOG-בעזרת הפקודה הזאתי תוכלו לשנות את הצבע של הFOG (נגיד שמיים
ראו במאפייני המפה).
CHANGE FOG OPACITY-כאן תוכלו לשנות את הראיה של הFOG (נגיד שיראו אותו חזק מאוד ולכמה זמן...)
SHOW ANIMATION-בעזרת הפקודה הזאתי תוכלו להראות באטל אנימיישין.
(אנימציה של התקפה,ריפוי...)
CHANGE HERO TRANSPARENCY-כאן תוכלו להחליט עם הגיבור יהי השקוף או לא.
MOVE EVENT-כאן תוכלו להזיז כל אירועה שתירצו!תוכלו לקפוץ איתו,ללכת באלכסון...
PROCEED WITH MOVEMENT-יזוז עם איבנט אחר...
PREPARE TRANSITION-הפקודה הזאתי עושה שכל הדברים יתחילו להופיע לא בווט אחד.
EXECUTE TRANSITION-הפקודה הזאתי מחליטה איך יופיעו ל החלקים (כמו ההודעה).
TINT SCREEN-תוכלו לשנות את הגדרת הצבע לזמן מה.
FLASH SCREEN-תוכלו לעשות שהמסך יתחיל לבהוק.
SNAKE SCREEN-המסך יתחיל לנוע מצד לצד במהירות ובכוח שתירצו.
SHOW PICTURE-תוכלו להראות תמונה.ולקבוע איפו היא תהיה.
MOVE PICTURE-תוכלו להזיז את התמונה (נגיד מצד ימין לשמאל).
ROTATE PICTURE-תוכלו להפוך את התמונה.
TINT PICTURE-תוכלו לעשות את התמונה שחורה יותר,בהירה יותר לזמן
שתיקבעו.
ERASE PICTURE-תוכלו למחוק תמונה שתירצו.תכניסו מספר של התמונה
שאתם רוצים למחוק והיא תימחק!
WEATHER EFFECTS-כאן תוכלו לקבוע את מזג האוויר.
PLAY BGM-כאן תוכלו להשמיע מוזיקת רקע.
FADE OUT BGM-תוכלו לעשות שהמוזיקה תנמיך עד שתעלם.
PLAY BGS-תוכלו לעשות כל מיני קולות רקע.נגיד מפל מים...
FADE OUT BGS-תוכלו להנמיך את קולות הרקע עד שיעלמו.
MEMORIZE BGM/BGS-תוכלו "להקפיא" את המוזיקה או את קולות הרקע.
PLAY MEMORIZED BGM/BGS-תוכלו להשמיע שוב את המוזיקה/קולות הרקע.
PLAY ME-תוכלו להשמיע קטע מוזיקלי קצר.
PLAY SE-תוכלו להשמיע צלילים יחידים.
STOP SE-תוכלו לעצור את הצלילים היחידים.
ENEMY ENCOUTER-תוכלו לקבוע את האוייבים שיהיה "במיקרה" במפה.
OPEN SHOP WINDOW-תוכלו לפתוח חנות!רקתכניסו את הפריטים שאתם רוצים שיהיו!
ENTER HERO NAME-תוכלו לעשות אפשרות של הכנסת שם לגיבור!
תוכלו לקבוע את מספר האוטיות ואת ברירת המחדל.
CHANGE HP-תתוכלו לשנות את מספר החיים שלכם.
תוכלו לשנות למי שתירצו.
CHANGE SP-תוכלו לשנות את נקודות המנה שלכם למי שתרצו
מהצוות.
CHANGE STATUS-תוכלו לשים סטטוס לכל אחד מהחבורה (נגיד סטטוס POISON שזה מרעיל).
COMPLETE HEALING-תוכלו לרפוא את כל קבוצתכם או אחד מהם.
CHANGE EXPERINCE POINTS-תוכלו לשנות את מספר נקודות הניסיון שלכם.
(בעזרת הנקודות הללו תוכלו לעלות דרגות).
CHANGE LEVEL-תוכלו לשנות את דרגתם של כמה אנשים מהקבצה שלכם או של איש אחד.
CHANGE BASE STATISTIC-תוכלו לשנות את הדטטוס שלכם.נגיד את נקודות הכוח (STRENGTH) או את החיים (MAX HP)...
CHANGE SKILLS-תוכלו לשנות את המתקפות המיוחדות שלכם.
תוכלו לשנות אותן לאחד מחברי הקבוצה.
CHANGE EQUIPPED ITEMS-תוכלו לשנות את הפריטים המחוזקים/לחזק את הגיבור עם הפריטים.
CHANGE HERO NAME-תוכלו לשנות את שם הגיבור לאחד אחר.
CHANGE HERO CLASS-תוכלו לשנות את העבודה של הגיבור (נגיד עם הוא לוחם (FIGHTER) אז תוכלו לשנות אותו לMAGE).
CHANGE HERO GRAPHICS-תוכלו לשנות את הספרייטים של הגיבור
ואת תמונת הקרב שלו.
CHANGE MONSTER HP-תוכלו לשנות את החיים של כל מפלצת.
CHANGE MONSTER SP-תוכלו לשנות את המנה של כל מפלצת.
CHANGE MONSTER STATUS-תוכלו לשנות את הסטטוס של האויב (נגיד תעשו שהוא ימות חח).
COMPLETELY HEAL MONSTER-תוכלו לרפא את כל המפלצות או רק אחת...
SHOW HIDDEN MONSTER-תוכלו להראות מפלצת מוחבאת בתוך הקרב.
TRANSFORM MONSTER-תוכלו להפוך מפלצת אחת לאחרת (חזקה או חלשה יותר).
SHOW BATTLE ANIMATION-תוכלו להראות בקרב אנימציה של התקפה,פריט...
DEAL DAMAGE-תוכלו להחליט כמה התקפה תוריד.או לגיבור/גיבורים,
או למפלצת/מפלצות.
END BATTLE-תוכלו לסיים את הקרב מיד.
OPEN MAIN MENU-תוכלו לפתוח את הטפרית הראשי.
OPEN SAVE MENU-תוכלו לפתוח את טפרית השמירה.
GAME OVER-המשחק יגמר בהפסד...
RETURN TO TITLE SCREEN-תוכלו לחזור למסך הפתיחה.
CALL SCRIPT-תוכלו לקרוא לסקריפט מיוחד ברובי.

 

 

 

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

קוד:
# HP/SP/EXPƒQ?[ƒW•\?¦ƒXƒNƒ?ƒvƒg Ver 1.00
# ”z•z?³?EƒTƒ|?[ƒgURL
# http://members.jcom.home.ne.jp/cogwheel/

#==============================================================================
# ?¡ Game_Actor
#------------------------------------------------------------------------------
# ?@ƒAƒNƒ^?[‚?ˆµ‚₪ƒNƒ‰ƒX‚?‚·?B‚±‚?ƒNƒ‰ƒX‚? Game_Actors ƒNƒ‰ƒX ($game_actors)
# ‚?“?•”‚??g—p‚³‚??AGame_Party ƒNƒ‰ƒX ($game_party) ‚©‚?‚??Q??‚³‚?‚?‚·?B
#==============================================================================

class Game_Actor < Game_Battler
def now_exp
  return @exp - @exp_list[@level]
end
def next_exp
  return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
end
end

#==============================================================================
# ?¡ Window_Base
#------------------------------------------------------------------------------
# ?@ƒQ?[ƒ€’†‚?‚·‚ׂ?‚?ƒEƒBƒ“ƒhƒE‚?ƒX?[ƒp?[ƒNƒ‰ƒX‚?‚·?B
#==============================================================================

class Window_Base < Window
#--------------------------------------------------------------------------
# ?? HP ƒQ?[ƒW‚?•`‰?
#--------------------------------------------------------------------------
# ƒIƒ?ƒWƒiƒ‹‚?HP•`‰?‚? draw_actor_hp_original ‚?–¼‘O•??X
alias :draw_actor_hp_original :draw_actor_hp
def draw_actor_hp(actor, x, y, width = 144)
  # •??”rate‚? ?»??‚?HP/MHP‚?‘?“?
  if actor.maxhp != 0
    rate = actor.hp.to_f / actor.maxhp
  else
    rate = 0
  end
  # plus_x:X??•W‚?ˆ?’u•??³ rate_x:X??•W‚?ˆ?’u•??³(%) plus_y:Y??•W‚?ˆ?’u•??³
  # plus_width:•?‚?•??³ rate_width:•?‚?•??³(%) height:?c•?
  # align1:•`‰?ƒ^ƒCƒv1 0:?¶‹l‚? 1:’†‰›‘µ‚¦ 2:‰E‹l‚?
  # align2:•`‰?ƒ^ƒCƒv2 0:??‹l‚? 1:’†‰›‘µ‚¦ 2:‰?‹l‚?
  # align3:ƒQ?[ƒWƒ^ƒCƒv 0:?¶‹l‚? 1:‰E‹l‚?
  plus_x = 0
  rate_x = 0
  plus_y = 29
  plus_width = 0
  rate_width = 100
  height = 7
  align1 = 1
  align2 = 2
  align3 = 0
  # ƒOƒ‰ƒf?[ƒVƒ‡ƒ“??’? grade1:‹?ƒQ?[ƒW grade2:??ƒQ?[ƒW
  # (0:‰¡‚?ƒOƒ‰ƒf?[ƒVƒ‡ƒ“ 1:?c‚?ƒOƒ‰ƒf?[ƒVƒ‡ƒ“ 2:??‚?‚?ƒOƒ‰ƒf?[ƒVƒ‡ƒ“(?ƒ?d)?j
  grade1 = 1
  grade2 = 0
  # ?F??’??Bcolor1:?O˜g?Ccolor2:’†˜g
  # color3:‹?ƒQ?[ƒWƒ_?[ƒNƒJƒ‰?[?Ccolor4:‹?ƒQ?[ƒWƒ‰ƒCƒgƒJƒ‰?[
  # color5:??ƒQ?[ƒWƒ_?[ƒNƒJƒ‰?[?Ccolor6:??ƒQ?[ƒWƒ‰ƒCƒgƒJƒ‰?[
  color1 = Color.new(0, 0, 0, 192)
  color2 = Color.new(255, 255, 192, 192)
  color3 = Color.new(0, 0, 0, 192)
  color4 = Color.new(64, 0, 0, 192)
  color5 = Color.new(80 - 24 * rate, 80 * rate, 14 * rate, 192)
  color6 = Color.new(240 - 72 * rate, 240 * rate, 62 * rate, 20)
  # •??”sp‚?•`‰?‚·‚?ƒQ?[ƒW‚?•?‚?‘?“?
  if actor.maxhp != 0
    hp = (width + plus_width) * actor.hp * rate_width / 100 / actor.maxhp
  else
    hp = 0
  end
  # ƒQ?[ƒW‚?•`‰?
  gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
              width, plus_width + width * rate_width / 100,
              height, hp, align1, align2, align3,
              color1, color2, color3, color4, color5, color6, grade1, grade2)
  # ƒIƒ?ƒWƒiƒ‹‚?HP•`‰??ˆ—?‚???‚??o‚µ
  draw_actor_hp_original(actor, x, y, width)
end
#--------------------------------------------------------------------------
# ?? SP ƒQ?[ƒW‚?•`‰?
#--------------------------------------------------------------------------
# ƒIƒ?ƒWƒiƒ‹‚?SP•`‰?‚? draw_actor_sp_original ‚?–¼‘O•??X
alias :draw_actor_sp_original :draw_actor_sp
def draw_actor_sp(actor, x, y, width = 144)
  # •??”rate‚? ?»??‚?SP/MSP‚?‘?“?
  if actor.maxsp != 0
    rate = actor.sp.to_f / actor.maxsp
  else
    rate = 1
  end
  # plus_x:X??•W‚?ˆ?’u•??³ rate_x:X??•W‚?ˆ?’u•??³(%) plus_y:Y??•W‚?ˆ?’u•??³
  # plus_width:•?‚?•??³ rate_width:•?‚?•??³(%) height:?c•?
  # align1:•`‰?ƒ^ƒCƒv1 0:?¶‹l‚? 1:’†‰›‘µ‚¦ 2:‰E‹l‚?
  # align2:•`‰?ƒ^ƒCƒv2 0:??‹l‚? 1:’†‰›‘µ‚¦ 2:‰?‹l‚?
  # align3:ƒQ?[ƒWƒ^ƒCƒv 0:?¶‹l‚? 1:‰E‹l‚?
  plus_x = 0
  rate_x = 0
  plus_y = 29
  plus_width = 0
  rate_width = 100
  height = 7
  align1 = 1
  align2 = 2
  align3 = 0
  # ƒOƒ‰ƒf?[ƒVƒ‡ƒ“??’? grade1:‹?ƒQ?[ƒW grade2:??ƒQ?[ƒW
  # (0:‰¡‚?ƒOƒ‰ƒf?[ƒVƒ‡ƒ“ 1:?c‚?ƒOƒ‰ƒf?[ƒVƒ‡ƒ“ 2:??‚?‚?ƒOƒ‰ƒf?[ƒVƒ‡ƒ“(?ƒ?d)?j
  grade1 = 1
  grade2 = 0
  # ?F??’??Bcolor1:?O˜g?Ccolor2:’†˜g
  # color3:‹?ƒQ?[ƒWƒ_?[ƒNƒJƒ‰?[?Ccolor4:‹?ƒQ?[ƒWƒ‰ƒCƒgƒJƒ‰?[
  # color5:??ƒQ?[ƒWƒ_?[ƒNƒJƒ‰?[?Ccolor6:??ƒQ?[ƒWƒ‰ƒCƒgƒJƒ‰?[
  color1 = Color.new(0, 0, 0, 192)
  color2 = Color.new(255, 255, 192, 192)
  color3 = Color.new(0, 0, 0, 192)
  color4 = Color.new(0, 64, 0, 192)
  color5 = Color.new(14 * rate, 80 - 24 * rate, 80 * rate, 192)
  color6 = Color.new(62 * rate, 240 - 72 * rate, 240 * rate, 192)
  # •??”sp‚?•`‰?‚·‚?ƒQ?[ƒW‚?•?‚?‘?“?
  if actor.maxsp != 0
    sp = (width + plus_width) * actor.sp * rate_width / 100 / actor.maxsp
  else
    sp = (width + plus_width) * rate_width / 100
  end
  # ƒQ?[ƒW‚?•`‰?
  gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
              width, plus_width + width * rate_width / 100,
              height, sp, align1, align2, align3,
              color1, color2, color3, color4, color5, color6, grade1, grade2)
  # ƒIƒ?ƒWƒiƒ‹‚?SP•`‰??ˆ—?‚???‚??o‚µ
  draw_actor_sp_original(actor, x, y, width)
end
#--------------------------------------------------------------------------
# ?? EXP ƒQ?[ƒW‚?•`‰?
#--------------------------------------------------------------------------
# ƒIƒ?ƒWƒiƒ‹‚?EXP•`‰?‚? draw_actor_sp_original ‚?–¼‘O•??X
alias :draw_actor_exp_original :draw_actor_exp
def draw_actor_exp(actor, x, y, width = 144)
  # •??”rate‚? ?»??‚?exp/nextexp‚?‘?“?
  if actor.next_exp != 0
    rate = actor.now_exp.to_f / actor.next_exp
  else
    rate = 1
  end
  # plus_x:X??•W‚?ˆ?’u•??³ rate_x:X??•W‚?ˆ?’u•??³(%) plus_y:Y??•W‚?ˆ?’u•??³
  # plus_width:•?‚?•??³ rate_width:•?‚?•??³(%) height:?c•?
  # align1:•`‰?ƒ^ƒCƒv1 0:?¶‹l‚? 1:’†‰›‘µ‚¦ 2:‰E‹l‚?
  # align2:•`‰?ƒ^ƒCƒv2 0:??‹l‚? 1:’†‰›‘µ‚¦ 2:‰?‹l‚?
  # align3:ƒQ?[ƒWƒ^ƒCƒv 0:?¶‹l‚? 1:‰E‹l‚?
  plus_x = 0
  rate_x = 0
  plus_y = 29
  plus_width = 0
  rate_width = 100
  height = 7
  align1 = 1
  align2 = 2
  align3 = 0
  # ƒOƒ‰ƒf?[ƒVƒ‡ƒ“??’? grade1:‹?ƒQ?[ƒW grade2:??ƒQ?[ƒW
  # (0:‰¡‚?ƒOƒ‰ƒf?[ƒVƒ‡ƒ“ 1:?c‚?ƒOƒ‰ƒf?[ƒVƒ‡ƒ“ 2:??‚?‚?ƒOƒ‰ƒf?[ƒVƒ‡ƒ“(?ƒ?d)?j
  grade1 = 1
  grade2 = 0
  # ?F??’??Bcolor1:?O˜g?Ccolor2:’†˜g
  # color3:‹?ƒQ?[ƒWƒ_?[ƒNƒJƒ‰?[?Ccolor4:‹?ƒQ?[ƒWƒ‰ƒCƒgƒJƒ‰?[
  # color5:??ƒQ?[ƒWƒ_?[ƒNƒJƒ‰?[?Ccolor6:??ƒQ?[ƒWƒ‰ƒCƒgƒJƒ‰?[
  color1 = Color.new(0, 0, 0, 192)
  color2 = Color.new(255, 255, 192, 192)
  color3 = Color.new(0, 0, 0, 192)
  color4 = Color.new(64, 0, 0, 192)
  color5 = Color.new(80 * rate, 80 - 80 * rate ** 2, 80 - 80 * rate, 192)
  color6 = Color.new(240 * rate, 240 - 240 * rate ** 2, 240 - 240 * rate, 192)
  # •??”exp‚?•`‰?‚·‚?ƒQ?[ƒW‚?•?‚?‘?“?
  if actor.next_exp != 0
    exp = (width + plus_width) * actor.now_exp * rate_width /
                                                        100 / actor.next_exp
  else
    exp = (width + plus_width) * rate_width / 100
  end
  # ƒQ?[ƒW‚?•`‰?
  gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
              width, plus_width + width * rate_width / 100,
              height, exp, align1, align2, align3,
              color1, color2, color3, color4, color5, color6, grade1, grade2)
  # ƒIƒ?ƒWƒiƒ‹‚?EXP•`‰??ˆ—?‚???‚??o‚µ
  draw_actor_exp_original(actor, x, y)
end
#--------------------------------------------------------------------------
# ?? ƒQ?[ƒW‚?•`‰?
#--------------------------------------------------------------------------
def gauge_rect(x, y, rect_width, width, height, gauge, align1, align2, align3,
              color1, color2, color3, color4, color5, color6, grade1, grade2)
  case align1
  when 1
    x += (rect_width - width) / 2
  when 2
    x += rect_width - width
  end
  case align2
  when 1
    y -= height / 2
  when 2
    y -= height
  end
  # ˜g•`‰?
  self.contents.fill_rect(x, y, width, height, color1)
  self.contents.fill_rect(x + 1, y + 1, width - 2, height - 2, color2)
  if align3 == 0
    if grade1 == 2
      grade1 = 3
    end
    if grade2 == 2
      grade2 = 3
    end
  end
  if (align3 == 1 and grade1 == 0) or grade1 > 0
    color = color3
    color3 = color4
    color4 = color
  end
  if (align3 == 1 and grade2 == 0) or grade2 > 0
    color = color5
    color5 = color6
    color6 = color
  end
  # ‹?ƒQ?[ƒW‚?•`‰?
  self.contents.gradation_rect(x + 2, y + 2, width - 4, height - 4,
                                color3, color4, grade1)
  if align3 == 1
    x += width - gauge
  end
  # ??ƒQ?[ƒW‚?•`‰?
  self.contents.gradation_rect(x + 2, y + 2, gauge - 4, height - 4,
                                color5, color6, grade2)
end
end

#------------------------------------------------------------------------------
# ?@BitmapƒNƒ‰ƒX‚??V‚½‚?‹@”\‚?’?‰?‚µ‚?‚·?B
#==============================================================================

class Bitmap
#--------------------------------------------------------------------------
# ?? ‹??`‚?ƒOƒ‰ƒf?[ƒVƒ‡ƒ“•\?¦
#    color1 : ƒXƒ^?[ƒgƒJƒ‰?[
#    color2 : ƒGƒ“ƒhƒJƒ‰?[
#    align  :  0:‰¡‚?ƒOƒ‰ƒf?[ƒVƒ‡ƒ“
#              1:?c‚?ƒOƒ‰ƒf?[ƒVƒ‡ƒ“
#              2:??‚?‚?ƒOƒ‰ƒf?[ƒVƒ‡ƒ“?i?ƒ?d‚?‚?‚«’?ˆ??j
#--------------------------------------------------------------------------
def gradation_rect(x, y, width, height, color1, color2, align = 0)
  if align == 0
    for i in x...x + width
      red  = color1.red + (color2.red - color1.red) * (i - x) / (width - 1)
      green = color1.green +
              (color2.green - color1.green) * (i - x) / (width - 1)
      blue  = color1.blue +
              (color2.blue - color1.blue) * (i - x) / (width - 1)
      alpha = color1.alpha +
              (color2.alpha - color1.alpha) * (i - x) / (width - 1)
      color = Color.new(red, green, blue, alpha)
      fill_rect(i, y, 1, height, color)
    end
  elsif align == 1
    for i in y...y + height
      red  = color1.red +
              (color2.red - color1.red) * (i - y) / (height - 1)
      green = color1.green +
              (color2.green - color1.green) * (i - y) / (height - 1)
      blue  = color1.blue +
              (color2.blue - color1.blue) * (i - y) / (height - 1)
      alpha = color1.alpha +
              (color2.alpha - color1.alpha) * (i - y) / (height - 1)
      color = Color.new(red, green, blue, alpha)
      fill_rect(x, i, width, 1, color)
    end
  elsif align == 2
    for i in x...x + width
      for j in y...y + height
        red  = color1.red + (color2.red - color1.red) *
                ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
        green = color1.green + (color2.green - color1.green) *
                ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
        blue  = color1.blue + (color2.blue - color1.blue) *
                ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
        alpha = color1.alpha + (color2.alpha - color1.alpha) *
                ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
        color = Color.new(red, green, blue, alpha)
        set_pixel(i, j, color)
      end
    end
  elsif align == 3
    for i in x...x + width
      for j in y...y + height
        red  = color1.red + (color2.red - color1.red) *
              ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
        green = color1.green + (color2.green - color1.green) *
              ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
        blue  = color1.blue + (color2.blue - color1.blue) *
              ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
        alpha = color1.alpha + (color2.alpha - color1.alpha) *
              ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
        color = Color.new(red, green, blue, alpha)
        set_pixel(i, j, color)
      end
    end
  end
end
end

#==============================================================================
# ?¡ Spriteƒ‚ƒWƒ…?[ƒ‹
#------------------------------------------------------------------------------
# ?@ƒAƒjƒ??[ƒVƒ‡ƒ“‚???—?‚??s‚₪ƒ‚ƒWƒ…?[ƒ‹‚?‚·?B
#==============================================================================

module RPG
class Sprite < ::Sprite
  def damage(value, critical)
    dispose_damage
    if value.is_a?(Numeric)
      damage_string = value.abs.to_s
    else
      damage_string = value.to_s
    end
    bitmap = Bitmap.new(160, 48)
    bitmap.font.name = "Arial Black"
    bitmap.font.size = 32
    bitmap.font.color.set(0, 0, 0)
    bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
    bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
    bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
    bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
    if value.is_a?(Numeric) and value < 0
      bitmap.font.color.set(176, 255, 144)
    else
      bitmap.font.color.set(255, 255, 255)
    end
    bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
    if critical
      bitmap.font.size = 20
      bitmap.font.color.set(0, 0, 0)
      bitmap.draw_text(-1, -1, 160, 20, "CRITICAL", 1)
      bitmap.draw_text(+1, -1, 160, 20, "CRITICAL", 1)
      bitmap.draw_text(-1, +1, 160, 20, "CRITICAL", 1)
      bitmap.draw_text(+1, +1, 160, 20, "CRITICAL", 1)
      bitmap.font.color.set(255, 255, 255)
      bitmap.draw_text(0, 0, 160, 20, "CRITICAL", 1)
    end
    @_damage_sprite = ::Sprite.new
    @_damage_sprite.bitmap = bitmap
    @_damage_sprite.ox = 80 + self.viewport.ox
    @_damage_sprite.oy = 20 + self.viewport.oy
    @_damage_sprite.x = self.x + self.viewport.rect.x
    @_damage_sprite.y = self.y - self.oy / 2 + self.viewport.rect.y
    @_damage_sprite.z = 3000
    @_damage_duration = 40
  end
  def animation(animation, hit)
    dispose_animation
    @_animation = animation
    return if @_animation == nil
    @_animation_hit = hit
    @_animation_duration = @_animation.frame_max
    animation_name = @_animation.animation_name
    animation_hue = @_animation.animation_hue
    bitmap = RPG::Cache.animation(animation_name, animation_hue)
    if @@_reference_count.include?(bitmap)
      @@_reference_count[bitmap] += 1
    else
      @@_reference_count[bitmap] = 1
    end
    @_animation_sprites = []
    if @_animation.position != 3 or not @@_animations.include?(animation)
      for i in 0..15
        sprite = ::Sprite.new
        sprite.bitmap = bitmap
        sprite.visible = false
        @_animation_sprites.push(sprite)
      end
      unless @@_animations.include?(animation)
        @@_animations.push(animation)
      end
    end
    update_animation
  end
  def loop_animation(animation)
    return if animation == @_loop_animation
    dispose_loop_animation
    @_loop_animation = animation
    return if @_loop_animation == nil
    @_loop_animation_index = 0
    animation_name = @_loop_animation.animation_name
    animation_hue = @_loop_animation.animation_hue
    bitmap = RPG::Cache.animation(animation_name, animation_hue)
    if @@_reference_count.include?(bitmap)
      @@_reference_count[bitmap] += 1
    else
      @@_reference_count[bitmap] = 1
    end
    @_loop_animation_sprites = []
    for i in 0..15
      sprite = ::Sprite.new
      sprite.bitmap = bitmap
      sprite.visible = false
      @_loop_animation_sprites.push(sprite)
    end
    update_loop_animation
  end
  def animation_set_sprites(sprites, cell_data, position)
    for i in 0..15
      sprite = sprites[i]
      pattern = cell_data[i, 0]
      if sprite == nil or pattern == nil or pattern == -1
        sprite.visible = false if sprite != nil
        next
      end
      sprite.visible = true
      sprite.src_rect.set(pattern % 5 * 192, pattern / 5 * 192, 192, 192)
      if position == 3
        if self.viewport != nil
          sprite.x = self.viewport.rect.width / 2
          sprite.y = self.viewport.rect.height - 160
        else
          sprite.x = 320
          sprite.y = 240
        end
      else
        sprite.x = self.x + self.viewport.rect.x -
                    self.ox + self.src_rect.width / 2
        sprite.y = self.y + self.viewport.rect.y -
                    self.oy + self.src_rect.height / 2
        sprite.y -= self.src_rect.height / 4 if position == 0
        sprite.y += self.src_rect.height / 4 if position == 2
      end
      sprite.x += cell_data[i, 1]
      sprite.y += cell_data[i, 2]
      sprite.z = 2000
      sprite.ox = 96
      sprite.oy = 96
      sprite.zoom_x = cell_data[i, 3] / 100.0
      sprite.zoom_y = cell_data[i, 3] / 100.0
      sprite.angle = cell_data[i, 4]
      sprite.mirror = (cell_data[i, 5] == 1) 
     sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
      sprite.blend_type = cell_data[i, 7]
    end
  end
end
end

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

רמת ידע נדרשת: מעל נוב, ידע כללי על הכפתורים ועל סרגל הכלים.

לחצו בסרגל הכלים על Event Layer ולאחר מכן לחיצה כפולה על הריבוע המבוקש.
עכשיו היכנסו לתפריט האפשרויות ע"י לחיצה כפולה על הסימן <>.
לכו ללשונית 3, הכפתור הכי שמאלי למטה הוא שינוי הדמות.

שימו לב איזו דמות תשנו-דמות מספר אחת היא הראשית.
כדי לשנות, בחרו את הדמות שברצונכם לשנות באפשרות הראשונה בחלון השינוי,
לאחר מכן לחצו על החץ המופנה ימינה באפשרות השניה בחלון, שם תבחרו את הספרייט שאליו תשנו (כדי שדמות נוספת תהיה ברשימה, שימרו אותה בתוך תיקיית המשחק, בתיקייה Graphics, בתיקיית המשנה Characters).
כמובן שאתם חייבים לשנות דמות קרב, זאת תעשו באפשרות מספר 3, כדי להוסיף עוד דמות קרב לרשימה, במקום לשמור ב-Characters שמרו ב-Battlers או משהו דומה לשם..

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

לכל אלה שלא ידעו-תהינו.

logo בניית אתרים בחינם