מערכת Occupation
מצרכים
מחשב
סובלנות
קצת ידע בהוספת דברים לסורס ,למסד הנתונים,עריכת NPC
תאימות המערכת
המערכת נבנתה ונבדקה בגרסא ה62GMS אך מתאימה גם לשלל גרסאות המאוחרות של GMS )75,83)
מבוא
מערכת Occupations או עבודות משניות היא בעצם מערכת שמוסיפה עלילה למשחק.
אתם קובעים מה סיפור של כל עבודה ומה האפשרויות שלה.
אני יראה איך לעשות מערכת הכי בסיסית שאפשר רק הRates שונים.
מערכת זאת נותנת לשחקן להחליט מה היה עתידו במשחק לדוגמא יש עבודה משנית דוגמן שהRates שלו בינוניים לא הכי גבוהים אבל תוסיפו לו NX על כל רמה או כל סיפור אחר שתרצו.
תוכן עניינים
הוספת המערכת לסורס
הוספת המערכת למסד הנתונים
הוספת עבודה משנית
עריכת הNPC
הוספת המערכת לסורס
בקובץ MapleCharacter.java הוסיפו את המשתנה:
הוסיפו בפונקציה loadCharFromDB את זהקוד PHP:public int occupation;
הוסיפו את הפונקציות הבאותקוד PHP:ret.occupation=rs.getInt("occupation");
הראשונה מגדירה את הOccupation
השנייה מחזירה את המספר של ה Occupation 0 זה כלום וכל שאר המספרים אתם קובעיםקוד PHP: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);
}
}
בפונקציות הבאות אתם קובעים את הRates של הOccupations:קוד PHP:public int getOccupation(){
return occupation;
}
פה קובעים כמה היה הrate של ה EXP כל occupation זה מספר 0 זה בלי עכשיו יש לכם פה את השורה הזאת זה ל occupation מספר 1 (זה לא אומר שזה היה השם שלו זה הID שלו פשוט)קוד PHP:public int getExpRate(){
int exp = 0;
switch(getOccupation()){
case 1:exp = 50; ;break;
}
return exp;
}
פה אתם קובעים ל occupation שאידי שלו 1 את הRate של הEXP כדי להוסיף הוסיפו את אותה שורה מתחת רק שנו את ה 50 ואת ה 1 ל אידי של הoccupation השני שלכם וכך אלהקוד PHP:case 1:exp = 50; ;break;
פה פונקציה שקובעת את הכסף בנוי אותו דבר כמו הEXP שימו לב להוסיף אותה ולערוך כמו הExp:
פה פונקציה שקובעת את הDROP בנוי אותו דבר כמו הEXP והמסוס שימו לב להוסיף אותה ולערוך כמו הExp והמסוס:קוד PHP:public int getMesoRate(){
int meso = 0;
switch(getOccupation()){
case 1:meso = 30 ;break;
}
return meso;
}
עד לפה סימנו עם הקובץ MapleCharacter.javaקוד PHP:public int getDropRate(){
int drop = 0;
switch(getOccupation()){
case 1:drop = 10 ;break;
}
return drop;
}
עכשיו בקובץ MapleMonster.java חפשו את זה:
ושנו ל:קוד PHP:ChannelServer.getInstance(killer.getClient().getChannel()).getExpRate()
עכשיו בקובץ MapleMap.java זה יופיע כמה פעמים אז תשנו את הכל חפשו את זה:קוד PHP:killer.getExpRate()
ושנו לזה:קוד PHP:ChannelServer.getInstance(dropOwner.getClient().getChannel()).getMesoRate()
שנו את כל הפעמים שזה מופיע ובאותו קובץ חפשו את זה :קוד PHP:dropOwner.getMesoRate()
ושנו לזהקוד PHP:cserv.getDropRate()
אם אין לכם Occupation ולא הגדרת בפונקציות שהוספתם כלום לאידי 0 אז אתם לא תקבלו EXP DROP ו MESOקוד PHP:dropOwner.getDropRate()
שמרו את הכל סגרו וקמפלו
הוספת המערכת למסד הנתונים
הריצו את זה בMysql:
עריכת הNPCקוד PHP:ALTER TABLE `characters` ADD COLUMN `occupation` INTEGER DEFAULT 0 ;
בחלק זה אנחנו עורכים את הNPC שתבחרו ובוא נבחר את השמות לOCCUPATION
אז כנסו לJS של הNPC שלכם הדביקו את הקוד הבא:
עכשיו כדי להוסיף את העבודות שלנו תעשו ככהקוד PHP: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.dispose();
}
}
}
חפשו את השורה
הוסיפו לפני זה את השורה :קוד PHP:cm.sendSimple(text);
עכשיו פה אתם קובעים את האידי של כל OCCUPATION ואת השם אז כדי שתרשמו לכם את זה איפה שה1 זה האידי ואיפה ש " Youre occupation name" שם שמים את השם כל פעם שאתם רוצים להוסיף אתם מוסיפים אסור שתהיה התנגשות באידיםקוד PHP:text += "#L1#Youre occupation name#l\r\n"
תוספת(לא חובה)
תוספת נחמדה היא לקבל NX כל רמה שאתה עולה בOCCUPATION מסוים אז שימו לב כנסו ל MapleCharacter.java וחפשו את הפונקציה levelUp והוסיפו שם את בדיקה הבאה ב 1 שימו את האידי של ה Occupation שאתם רוצים ואם אתם רוצים לשנות את הכמות פשוט תשנו את ה 15 לכמות שלכם
קרדיטקוד PHP:if(getOccupation() == 1)
modifyCSPoints(1,15);
קרדיט ל Yakir432על הרעיון
קרדיט לי על כתיבת המדריך
קרדיט לי על כתיבת המערכת
מקווה שיעזור לכם אנשים תודה והמשך יום טוב



ציטוט ההודעה




ספוילר:
