מה הפקודה עושה? מוחקת את כל הדברים שיש לכם בתיק
למשל תעשו את הפקודה @clear all זה ימחק לכם הכל
אם תעשה @clear equip זה ימחוק רק תEQUIP
טוב נתחיל,זאת הפקודה.
קוד 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 שאתם הולכים לשים.
עכשיו יש חלק שחייב לעשות אותו ברוב הריפאקים כדי שהפקודה תעבוד.
תרדו ממש למטה ואתם תראו שורות כגון:
קוד PHP:
new CommandDefinition("save", 0),
new CommandDefinition("expfix", 0),
זוכרים שאחרי הפקודה save הוספנו פקודה clear?
אז פשוט נשנה את מה שיש פה לזה:
קוד PHP:
new CommandDefinition("save", 0),
new CommandDefinition("clear", 0),
new CommandDefinition("expfix", 0),
[CENTER][יכול להיות שאצלכם המבנה של השורה יהיה שונה אז פשוט תעתיקו כמו שאצלכם]
תקמפלו וזהו
קרדיט לאבישי המתכנת שלי