מערכת Occupation
• מצרכים
1. מחשב
2. סובלנות
3. קצת ידע בהוספת דברים לסורס ,למסד הנתונים,עריכת NPC
• תאימות המערכת
המערכת נבנתה ונבדקה בגרסא ה62GMS אך מתאימה גם לשלל גרסאות המאוחרות של GMS )75,83)
• מבוא
מערכת Occupations או עבודות משניות היא בעצם מערכת שמוסיפה עלילה למשחק.
אתם קובעים מה סיפור של כל עבודה ומה האפשרויות שלה.
אני יראה איך לעשות מערכת הכי בסיסית שאפשר רק הRates שונים.
מערכת זאת נותנת לשחקן להחליט מה היה עתידו במשחק לדוגמא יש עבודה משנית דוגמן שהRates שלו בינוניים לא הכי גבוהים אבל תוסיפו לו NX על כל רמה או כל סיפור אחר שתרצו.
• תוכן עניינים
1. הוספת המערכת לסורס
2. הוספת המערכת למסד הנתונים
3. הוספת עבודה משנית
4. עריכת הNPC
• הוספת המערכת לסורס
בקובץ MapleCharacter.java הוסיפו את המשתנה:
קוד:
public int occupation;
הוסיפו בפונקציה loadCharFromDB את זה
קוד:
ret.occupation=rs.getInt("occupation");
הוסיפו את הפונקציות הבאות
הראשונה מגדירה את הOccupation
קוד:
public void setOccupation(int occupation){ try { Connection con = DatabaseConnection.getConnection(); PreparedStatement ps = con.prepareStatement("update characters set `occupation` = ? where `id` =? "); ps.setInt(1,occupation); ps.setInt(2,getId()); ps.executeUpdate(); ps.close(); } catch (SQLException e) { System.out.println("Error Getting Default: " + e); } }
השנייה מחזירה את המספר של ה Occupation 0 זה כלום וכל שאר המספרים אתם קובעים
קוד:
public int getOccupation(){ return occupation;}
בפונקציות הבאות אתם קובעים את הRates של הOccupations:
קוד:
public int getExpRate(){ int exp = 0; switch(getOccupation()){ case 1:exp = 50; ;break; } return exp;}
פה קובעים כמה היה הrate של ה EXP כל occupation זה מספר 0 זה בלי עכשיו יש לכם פה את השורה הזאת זה ל occupation מספר 1 (זה לא אומר שזה היה השם שלו זה הID שלו פשוט)
קוד:
case 1:exp = 50; ;break;
פה אתם קובעים ל occupation שאידי שלו 1 את הRate של הEXP כדי להוסיף הוסיפו את אותה שורה מתחת רק שנו את ה 50 ואת ה 1 ל אידי של הoccupation השני שלכם וכך אלה
פה פונקציה שקובעת את הכסף בנוי אותו דבר כמו הEXP שימו לב להוסיף אותה ולערוך כמו הExp:
קוד:
public int getMesoRate(){ int meso = 0; switch(getOccupation()){ case 1:meso = 30 ;break; } return meso;}
פה פונקציה שקובעת את הDROP בנוי אותו דבר כמו הEXP והמסוס שימו לב להוסיף אותה ולערוך כמו הExp והמסוס:
קוד:
public int getDropRate(){ int drop = 0; switch(getOccupation()){ case 1:drop = 10 ;break; } return drop;}
עד לפה סימנו עם הקובץ MapleCharacter.java
עכשיו בקובץ MapleMonster.java חפשו את זה:
קוד:
ChannelServer.getInstance(killer.getClient().getCh annel()).getExpRate()
ושנו ל:
קוד:
killer.getExpRate()
עכשיו בקובץ MapleMap.java זה יופיע כמה פעמים אז תשנו את הכל חפשו את זה:
קוד:
ChannelServer.getInstance(dropOwner.getClient().ge tChannel()).getMesoRate()
ושנו לזה:
קוד:
dropOwner.getMesoRate()
שנו את כל הפעמים שזה מופיע ובאותו קובץ חפשו את זה :
קוד:
cserv.getDropRate()
ושנו לזה
קוד:
dropOwner.getDropRate()
אם אין לכם Occupation ולא הגדרת בפונקציות שהוספתם כלום לאידי 0 אז אתם לא תקבלו EXP DROP ו MESO
שמרו את הכל סגרו וקמפלו
• הוספת המערכת למסד הנתונים
הריצו את זה בMysql:
קוד:
ALTER TABLE `characters` ADD COLUMN `occupation` INTEGER DEFAULT 0 ;
• עריכת הNPC
בחלק זה אנחנו עורכים את הNPC שתבחרו ובוא נבחר את השמות לOCCUPATION
אז כנסו לJS של הNPC שלכם הדביקו את הקוד הבא:
קוד:
var status = 0;var text ="Hello I am the Occupation mangmant please choose youre occupation:\r\n"; function start() { status = -1; action(1, 0, 0);} function action(mode, type, selection) { if (mode == -1) { cm.dispose(); } else { if (status == 1 && mode == 0 ) { cm.dispose(); return; } if (mode == 1) status++; else status--; if (status == 0) {if(cm.getPlayer().getOccupation() != 0){cm.sendOk("you have choosen youre Occupation already");cm.dispose();return;}cm.sendSimple(text) ;}else if(status == 1){cm.getPlayer().setOccupation(selection);cm.disp ose(); } }}
עכשיו כדי להוסיף את העבודות שלנו תעשו ככה
חפשו את השורה
קוד:
cm.sendSimple(text);
הוסיפו לפני זה את השורה :
קוד:
text += "#L1#Youre occupation name#l\r\n"
עכשיו פה אתם קובעים את האידי של כל OCCUPATION ואת השם אז כדי שתרשמו לכם את זה איפה שה1 זה האידי ואיפה ש " Youre occupation name" שם שמים את השם כל פעם שאתם רוצים להוסיף אתם מוסיפים אסור שתהיה התנגשות באידים
• תוספת(לא חובה)
תוספת נחמדה היא לקבל NX כל רמה שאתה עולה בOCCUPATION מסוים אז שימו לב כנסו ל MapleCharacter.java וחפשו את הפונקציה levelUp והוסיפו שם את בדיקה הבאה ב 1 שימו את האידי של ה Occupation שאתם רוצים ואם אתם רוצים לשנות את הכמות פשוט תשנו את ה 15 לכמות שלכם
קוד:
if(getOccupation() == 1) modifyCSPoints(1,15);
• קרדיט לפורום אחר.








ציטוט ההודעה