איך לשים פקודות
בוא ניקח לדוגמא את הפקודה הזאת: [/CENTER]
קוד PHP:} else if (splitted[0].equalsIgnoreCase("@clear")) {
if (splitted.length == 2) {
if (splitted[1].equalsIgnoreCase("all")) {
clearSlot(c, 1);
clearSlot(c, 2);
clearSlot(c, 3);
clearSlot(c, 4);
clearSlot(c, 5);
} else if (splitted[1].equalsIgnoreCase("equip")) {
clearSlot(c, 1);
} else if (splitted[1].equalsIgnoreCase("use")) {
clearSlot(c, 2);
} else if (splitted[1].equalsIgnoreCase("etc")) {
clearSlot(c, 3);
} else if (splitted[1].equalsIgnoreCase("setup")) {
clearSlot(c, 4);
} else if (splitted[1].equalsIgnoreCase("cash")) {
clearSlot(c, 5);
} else {
mc.dropMessage("@clear " + splitted[1] + " does not exist!");
}
}
אימפורטס:קוד PHP:
import net.sf.odinms.client.IItem;
import java.util.List;
import net.sf.odinms.server.MapleInventoryManipulator;
עכשיו יש את הפקודה עצמה ולמטה את האימפורטס שצריך.
קודם כל נתעסק עם הפקודה.
נעתיק את הפקודה:קוד PHP:} else if (splitted[0].equalsIgnoreCase("@clear")) {
if (splitted.length == 2) {
if (splitted[1].equalsIgnoreCase("all")) {
clearSlot(c, 1);
clearSlot(c, 2);
clearSlot(c, 3);
clearSlot(c, 4);
clearSlot(c, 5);
} else if (splitted[1].equalsIgnoreCase("equip")) {
clearSlot(c, 1);
} else if (splitted[1].equalsIgnoreCase("use")) {
clearSlot(c, 2);
} else if (splitted[1].equalsIgnoreCase("etc")) {
clearSlot(c, 3);
} else if (splitted[1].equalsIgnoreCase("setup")) {
clearSlot(c, 4);
} else if (splitted[1].equalsIgnoreCase("cash")) {
clearSlot(c, 5);
} else {
mc.dropMessage("@clear " + splitted[1] + " does not exist!");
}
}
עכשיו נכנס לקובץ PlayerCommands.java [פקודות לשחקנים] או לGMCommands[פקודות לג'יאמים],
שנמצא בsrc/net/sf/odinms/client/messages/commands
עכשיו יש לנו המון דברים שם נכון?
לדוגמא בוא נחפש את הפקודה save@
ככה זה נראה אצלי:קוד PHP:} else if (splitted[0].equals("@save")) {
if (!player.getCheatTracker().Spam(900000, 0)) { // 15 minutes
player.saveToDB(true, true);
mc.dropMessage("Saved.");
} else {
mc.dropMessage("You cannot save more than once every 15 minutes.");
}
אז פשוט אחרי ה{
[כלומר הסיום] נוסיף את הפקודה שלנו וזה יהיה אמור להיראות כך:קוד PHP:} else if (splitted[0].equals("@save")) {
if (!player.getCheatTracker().Spam(900000, 0)) { // 15 minutes
player.saveToDB(true, true);
mc.dropMessage("Saved.");
} else {
mc.dropMessage("You cannot save more than once every 15 minutes.");
}
} else if (splitted[0].equalsIgnoreCase("@clear")) {
if (splitted.length == 2) {
if (splitted[1].equalsIgnoreCase("all")) {
clearSlot(c, 1);
clearSlot(c, 2);
clearSlot(c, 3);
clearSlot(c, 4);
clearSlot(c, 5);
} else if (splitted[1].equalsIgnoreCase("equip")) {
clearSlot(c, 1);
} else if (splitted[1].equalsIgnoreCase("use")) {
clearSlot(c, 2);
} else if (splitted[1].equalsIgnoreCase("etc")) {
clearSlot(c, 3);
} else if (splitted[1].equalsIgnoreCase("setup")) {
clearSlot(c, 4);
} else if (splitted[1].equalsIgnoreCase("cash")) {
clearSlot(c, 5);
} else {
mc.dropMessage("@clear " + splitted[1] + " does not exist!");
}
}
הצלחתם?
יופי.
עכשיו איך מוסיפים Imports.
בפקודה שלקחנו יש לנו כמה אימפורטים חשובים כדי שהפקודה תעבוד.קוד PHP:import net.sf.odinms.server.MapleInventoryManipulator;
import net.sf.odinms.client.IItem;
import java.util.List;
עכשיו בואו נעלה לתחילת הקובץ של הפקודות ונמצא שורות כגון:קוד PHP:import java.rmi.RemoteException;
import net.sf.odinms.client.MapleCharacter;
אלו אימפורטים,אני לא אסביר בשביל מה צריך אותן,אבל חייב אותן כדי שהפקודות יעבדו.
עכשיו הIMPORT האחרון ברשימה שלי הואאז פשוט אחריו אני אוסיף את האימפורטים שצריך וזה יהיה אמור לצאת ככה:קוד PHP:import net.sf.odinms.tools.StringUtil;
קוד PHP:import net.sf.odinms.server.MapleInventoryManipulator;
import net.sf.odinms.client.IItem;
import java.util.List;
import net.sf.odinms.tools.StringUtil;
*הערה*לא כדאי לשים IMPORT כלשהוא אם כבר יש לכם אותו כי זה יעשה לכם שגיאה בקומפיילר, אז תבדקו לפני אם יש לכם או אין לכם את הIMPORT שאתם הולכים לשים.
עכשיו יש חלק שחייב לעשות אותו ברוב הריפאקים כדי שהפקודה תעבוד.
תרדו ממש למטה ואתם תראו שורות כגון:זוכרים שאחרי הפקודה save הוספנו פקודה clear?קוד PHP:new CommandDefinition("save", 0),
new CommandDefinition("expfix", 0),
אז פשוט נשנה את מה שיש פה לזה:
[CENTER][יכול להיות שאצלכם המבנה של השורה יהיה שונה אז פשוט תעתיקו כמו שאצלכם]קוד PHP:new CommandDefinition("save", 0),
new CommandDefinition("clear", 0),
new CommandDefinition("expfix", 0),
תקמפלו וזהו
קרדיט למתכנת היקר שלי אבישי![]()



ספוילר: 