יכול להיות שתראו את זה בRZ כי אני יפרסם, אבל זה אני עשיתי, אני nugyyman שם אז שלא תחשבו שהעתקתי...
אז ככה:
בעיקרון זה מערכת jail רגילה, אתם שולחים שחקן למפה מסויימת שבה הוא לא יכול לעשות פקודות. מה שנוח פה זה שאתם יכולים לשנות את המפה דרך world.pro ללא קימפול, וזה ישנה לכם בכל המקומות הנחוצים ולא רק בפקודה עצמה.
ברור שאחרי ההוספה של כל זה צריך לקמפל..
נתחיל ?
net.sf.odinms.client.MapleCharacter.java תוסיפו את זה אחרי הפונקצייה האחרונה:
net.sf.odinms.net.channel.ChannelServer.java תוסיפו את הדברים הבאים (אתם תבינו לבד איפה להוסיף כל דבר):קוד PHP:public boolean inJail() {
return getMapId() == c.getChannelServer().getJailMap();
}
שימו לב שברוב הריפאקים תצתרכו להוסיף את הבא פעמיים:קוד PHP:private int jailMap;
קוד PHP:jailMap = Integer.parseInt(props.getProperty("net.sf.odinms.world.jailMap"));
net.sf.odinms.client.messages.CommandProcessor תוסיפו את זה בפונקצייה ProcessCommand:קוד PHP:public int getJailMap() {
return jailMap;
}
כמובן הפקודה(תוסיפו את זה בקובץ פקודות שלכם):קוד PHP:if (c.getPlayer().inJail() && gmLevel < 2) {
c.getPlayer().dropMessage("Sorry, but you can't use that command while you in jail.");
ואם צריך תוסיפו למטה:קוד PHP:} else if (splitted[0].equals("!jail")) {
MapleCharacter victim = cserv.getPlayerStorage().getCharacterByName(splitted[1]);
if (victim != null) {
c.getPlayer().changeMap(c.getChannelServer().getJailMap(), 0);
player.dropMessage(victim.getName() + " has been jailed!");
victim.dropMessage("You've been jailed bitch.");
} else {
player.dropMessage(splitted[1] + " not found!");
}
ובworld.pro תוסיפו:קוד PHP:new CommandDefinition("jail", 3),
ד"א המפה ששמתי פה היא מפה שהיא אפשר לעבור בה channel או להכנס לCS וכד', אם אתם רוצים לשנות למפה שכן אפשר אז פשוט תוסיפו את זה בhandlers שאתם רוצים בnet.sf.odinms.net.channle.handler:קוד:# Jail Map. net.sf.odinms.world.jailMap=920011200
קוד PHP:if (c.getPlayer().inJail() && gmLevel < 2) {
c.getPlayer().dropMessage("Sorry, but you can't use that command while you in jail.");



ציטוט ההודעה







ספוילר: 




