wow the xp occupation is much to high o,o
Printable View
wow the xp occupation is much to high o,o
sorry to ask a noob question, whats occupation anyway? LOL.
oh ya, found small bug, the ap automatic reset when rebirth, not stays there. lols.... is it fixed?
I have a few requests for the next rev if you have some time :D
1: !htcurse (or something similar so it forces everyone to jump to the left for a while that way we can move a map for events)
2: !giveeventpoints & @eventpoints < so the gms can give and take event points from players making my life easier cause I suck at coding commands xD
3: add a feature to change ur occ rates in the silent.prop maybe? :D
4: occupation levels? rofl just though id ask
Ill post the event npc and econ one im making as soon as i get the time to make em >_<
Also just wondering but are you goin to re-enable buying mercants in the cs? Because I was shooting for an econ and Im about to get stuck using the mts which i dont mind i just kinda wanted the shops.
Keep up the good work and thanks for al your time and effort :D
@off topic:
Spoiler:
all i want is weddings, ring effects, and a few commands
!mute <player>
!mutemap
!unmute <player>
!unmutemap
!cb (opens chalkboard) Or fix @goafk cause it's still not working.
!charinfo
!spy
!setrebirths [user] [amount]
!fakechar [num] - Creates a clone of you [num] times.
Just to name a few
See i did that, got over 1000 errors and failed completly.
how about an npc that summons mobs/bosses in the fms and a vipjob picker npc that only lets you use it after a number of rebirths
This is the batch error I get when I try to do a player command;
PHP Code:SilentSource has started:
World Launched
Login Launched
Listening on port 8484
Channel Launched
SilentSource Active
Channel 1: Listening on port 7575
Channel 1 is online.
IoSession with /127.0.0.1:54827 opened.
IoSession with /5.178.226.238:54837 opened.
Jun 22, 2010 1:01:10 PM client.messages.CommandProcessor reloadCommands
SEVERE: THROW
java.lang.ClassNotFoundException: client.messages.commands.NonGmsCommands
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at sun.misc.Launcher$ExtClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at client.messages.CommandProcessor.reloadCommands(CommandProcessor.java
:181)
at client.messages.CommandProcessor.<init>(CommandProcessor.java:64)
at client.messages.CommandProcessor.<clinit>(CommandProcessor.java:53)
at net.channel.handler.GeneralchatHandler.handlePacket(GeneralchatHandle
r.java:32)
at net.MapleServerHandler.messageReceived(MapleServerHandler.java:106)
at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.mess
ageReceived(DefaultIoFilterChain.java:734)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessage
Received(DefaultIoFilterChain.java:429)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(Def
aultIoFilterChain.java:51)
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.mes
sageReceived(DefaultIoFilterChain.java:812)
at org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutpu
tImpl.flush(ProtocolCodecFilter.java:346)
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(Prot
ocolCodecFilter.java:221)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessage
Received(DefaultIoFilterChain.java:429)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(Def
aultIoFilterChain.java:51)
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.mes
sageReceived(DefaultIoFilterChain.java:812)
at org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFi
lterAdapter.java:119)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessage
Received(DefaultIoFilterChain.java:429)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageRece
ived(DefaultIoFilterChain.java:416)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(Abstract
PollingIoProcessor.java:638)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(Abstr
actPollingIoProcessor.java:598)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(Abstr
actPollingIoProcessor.java:587)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$400(Ab
stractPollingIoProcessor.java:61)
at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run
(AbstractPollingIoProcessor.java:969)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnabl
e.java:64)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Fix for boat 2 orbis:
1032007.js
Boats.jsCode:var status = 0;
var cost = 5000;
function start() {
status = -1;
action(1, 0, 0);
}
function action(mode, type, selection) {
if (mode == -1) {
cm.dispose();
} else {
if (status >= 0 && mode == 0) {
cm.sendNext("You must have some business to take care of here, right?");
cm.dispose();
return;
}
if (mode == 1)
status++;
else
status--;
if (status == 0) {
cm.sendYesNo("Hello, I'm in charge of selling tickets for the ship ride to Orbis Station of Ossyria. The ride to Orbis takes off every 15 minutes, beginning on the hour, and it'll cost you #b"+cost+" mesos#k. Are you sure you want to purchase a #bTicket to Orbis (Regular)#k?");
}
else if (status == 1) {
if (cm.getMeso() < cost) {
cm.sendNext("Are you sure you have #b"+cost+" mesos#k? If so, then I urge you to check your etc. inventory, and see if it's full or not.");
cm.dispose();
} else {
cm.gainMeso(cost);
cm.gainItem(4031045, 1);
cm.dispose();
}
}
}
}
Fix for Mulung Dojo (enter)Code:importPackage(net.sf.odinms.client);
importPackage(net.sf.odinms.tools);
importPackage(net.sf.odinms.server.life);
//Time Setting is in millisecond
var closeTime = 240000; //The time to close the gate
var beginTime = 300000; //The time to begin the ride
var rideTime = 600000; //The time that require move to destination
var invasionTime = 60000; //The time that spawn balrog
var Orbis_btf;
var Boat_to_Orbis;
var Orbis_Boat_Cabin;
var Orbis_docked;
var Ellinia_btf;
var Ellinia_Boat_Cabin;
var Ellinia_docked;
function init() {
Orbis_btf = em.getChannelServer().getMapFactory().getMap(200000112);
Ellinia_btf = em.getChannelServer().getMapFactory().getMap(101000301);
Boat_to_Orbis = em.getChannelServer().getMapFactory().getMap(200090010);
Boat_to_Ellinia = em.getChannelServer().getMapFactory().getMap(200090000);
Orbis_Boat_Cabin = em.getChannelServer().getMapFactory().getMap(200090011);
Ellinia_Boat_Cabin = em.getChannelServer().getMapFactory().getMap(200090001);
Orbis_docked = em.getChannelServer().getMapFactory().getMap(200000100);
Ellinia_docked = em.getChannelServer().getMapFactory().getMap(101000300);
Orbis_Station = em.getChannelServer().getMapFactory().getMap(200000111);
OBoatsetup();
EBoatsetup();
scheduleNew();
}
function scheduleNew() {
Ellinia_docked.setDocked(true);
Orbis_Station.setDocked(true);
Ellinia_docked.broadcastMessage(MaplePacketCreator.boatPacket(true));
Orbis_Station.broadcastMessage(MaplePacketCreator.boatPacket(true));
Boat_to_Orbis.setDocked(false);
Boat_to_Ellinia.setDocked(false);
em.setProperty("docked", "true");
em.setProperty("entry", "true");
em.setProperty("haveBalrog","false");
em.schedule("stopentry", closeTime);
em.schedule("takeoff", beginTime);
}
function stopentry() {
em.setProperty("entry","false");
Orbis_Boat_Cabin.resetReactors();
Ellinia_Boat_Cabin.resetReactors();
}
function takeoff() {
em.setProperty("docked","false");
var temp1 = Orbis_btf.getCharacters().iterator();
while(temp1.hasNext()) {
temp1.next().changeMap(Boat_to_Ellinia, Boat_to_Ellinia.getPortal(0));
}
var temp2 = Ellinia_btf.getCharacters().iterator();
while(temp2.hasNext()) {
temp2.next().changeMap(Boat_to_Orbis, Boat_to_Orbis.getPortal(0));
}
Ellinia_docked.setDocked(false);
Orbis_Station.setDocked(false);
Ellinia_docked.broadcastMessage(MaplePacketCreator.boatPacket(false));
Orbis_Station.broadcastMessage(MaplePacketCreator.boatPacket(false));
em.schedule("invasion", invasionTime);
em.schedule("arrived", rideTime);
}
function arrived() {
var temp1 = Boat_to_Orbis.getCharacters().iterator();
while(temp1.hasNext()) {
temp1.next().changeMap(Orbis_docked, Orbis_docked.getPortal(0));
}
var temp2 = Orbis_Boat_Cabin.getCharacters().iterator();
while(temp2.hasNext()) {
temp2.next().changeMap(Orbis_docked, Orbis_docked.getPortal(0));
}
var temp3 = Boat_to_Ellinia.getCharacters().iterator();
while(temp3.hasNext()) {
temp3.next().changeMap(Ellinia_docked, Ellinia_docked.getPortal(0));
}
var temp4 = Ellinia_Boat_Cabin.getCharacters().iterator();
while(temp4.hasNext()) {
temp4.next().changeMap(Ellinia_docked, Ellinia_docked.getPortal(0));
}
Boat_to_Orbis.killAllMonsters(false);
Boat_to_Ellinia.killAllMonsters(false);
scheduleNew();
}
function invasion() {
var numspawn;
var chance = Math.floor(Math.random() * 10);
if(chance <= 5)
numspawn = 0;
else
numspawn = 2;
if(numspawn > 0) {
for(var i=0; i < numspawn; i++) {
Boat_to_Orbis.spawnMonsterOnGroudBelow(MapleLifeFactory.getMonster(8150000), new java.awt.Point(485, -221));
Boat_to_Ellinia.spawnMonsterOnGroudBelow(MapleLifeFactory.getMonster(8150000), new java.awt.Point(-590, -221));
}
Boat_to_Orbis.setDocked(true);
Boat_to_Ellinia.setDocked(true);
Boat_to_Orbis.broadcastMessage(MaplePacketCreator.boatPacket(true));
Boat_to_Ellinia.broadcastMessage(MaplePacketCreator.boatPacket(true));
Boat_to_Orbis.broadcastMessage(MaplePacketCreator.musicChange("Bgm04/ArabPirate"));
Boat_to_Ellinia.broadcastMessage(MaplePacketCreator.musicChange("Bgm04/ArabPirate"));
em.setProperty("haveBalrog","true");
}
}
function OBoatsetup() {
em.getChannelServer().getMapFactory().getMap(200090011).getPortal("out00").setScriptName("OBoat1");
em.getChannelServer().getMapFactory().getMap(200090011).getPortal("out01").setScriptName("OBoat2");
}
function EBoatsetup() {
em.getChannelServer().getMapFactory().getMap(200090001).getPortal("out00").setScriptName("EBoat1");
em.getChannelServer().getMapFactory().getMap(200090001).getPortal("out01").setScriptName("EBoat2");
}
function cancelSchedule() {
}
2091005.js
Code:importPackage(Packages.server.maps);
var belts = Array(1132000, 1132001, 1132002, 1132003, 1132004);
var belt_level = Array(25, 35, 45, 60, 75);
var belt_points = Array(200, 1800, 4000, 9200, 17000);
var status = -1;
var selectedMenu = -1;
function start() {
if (isRestingSpot(cm.getPlayer().getMap().getId())) {
cm.sendSimple("I'm surprised you made it this far! But it won't be easy from here on out. You still want the challenge?\r\n\r\n#b#L0#I want to continue#l\r\n#L1#I want to leave#l\r\n#L2#I want to record my score up to this point#l");
} else if (cm.getPlayer().getLevel() >= 25) {
if (cm.getPlayer().getMap().getId() == 925020001) {
cm.sendSimple("My master is the strongest person in Mu Lung, and you want to challenge him? Fine, but you'll regret it later.\r\n\r\n#b#L0#I want to challenge him alone.#l\r\n#L1#I want to challenge him with a party.#l\r\n\r\n#L2#I want to receive a belt.#l\r\n#L3#I want to reset my training points.#l\r\n#L4#I want to receive a medal.#l\r\n#L5#What is a Mu Lung Dojo?#l");
} else {
cm.sendYesNo("What, you're giving up? You just need to get to the next level! Do you really want to quit and leave?");
}
} else {
cm.sendOk("Hey! Are you mocking my master? Who do you think you are to challenge him? This is a joke! You should at least be level #b25#k.");
cm.dispose();
}
}
function action(mode, type, selection) {
if (mode == -1) {
cm.dispose();
} else if (cm.getPlayer().getMap().getId() == 925020001) {
if (mode >= 0) {
if (status == -1)
selectedMenu = selection;
status++; //there is no prev.
if (selectedMenu == 0) { //I want to challenge him alone.
if (!cm.getPlayer().hasEntered("dojang_Msg") && !cm.getPlayer().getFinishedDojoTutorial()) { //kind of hackish...
if (status == 0) {
cm.sendYesNo("Hey there! You! This is your first time, huh? Well, my master doesn't just meet with anyone. He's a busy man. And judging by your looks, I don't think he'd bother. Ha! But, today's your lucky day... I tell you what, if you can defeat me, I'll allow you to see my Master. So what do you say?");
} else if (status == 1) {
if (mode == 0) {
cm.sendNext("Haha! Who are you trying to impress with a heart like that?\r\nGo back home where you belong!");
} else {
for (var i = 0 ; i < 39; i++) { //only 32 stages, but 38 maps
if(cm.getClient().getChannelServer().getMapFactory().getMap(925020000 + 100 * i).getCharacters().size() > 0) {
cm.sendOk("Someone is already in Dojo");
cm.dispose();
return;
}
}
cm.warp(925020010, 0);
cm.getPlayer().setFinishedDojoTutorial();
}
cm.dispose();
}
} else if (cm.getPlayer().getDojoStage() > 0) {
if (status == 0) {
cm.sendYesNo("The last time you took the challenge by yourself, you went up to level " + cm.getPlayer().getDojoStage() + ". I can take you there right now. Do you want to go there?");
} else {
cm.warp(mode == 1 ? cm.getPlayer().getDojoStage() : 925020100, 0);
cm.getPlayer().setDojoStage(0);
cm.dispose();
}
} else {
cm.getClient().getChannelServer().getMapFactory().getMap(925020100).resetReactors();
cm.getClient().getChannelServer().getMapFactory().getMap(925020100).killAllMonsters();
cm.warp(925020100, 0);
cm.dispose();
}
} else if (selectedMenu == 1) { //I want to challenge him with a party.
var party = cm.getPlayer().getParty();
if (party == null || party.getLeader().getId() != cm.getPlayer().getId()) {
cm.sendNext("Where do you think you're going? You're not even the party leader! Go tell your party leader to talk to me.");
cm.dispose();
//} else if (party.getMembers().size() == 1) {
} else if (party.getMembers().isEmpty() != 0) {
cm.sendNext("You're going to take on the challenge as a one-man party?");
} else {
cm.getClient().getChannelServer().getMapFactory().getMap(925020100).resetReactors();
cm.getClient().getChannelServer().getMapFactory().getMap(925020100).killAllMonsters();
cm.warpParty(925020100);
cm.dispose();
}
cm.dispose();
} else if (selectedMenu == 2) { //I want to receive a belt.
if (mode < 1) {
cm.dispose();
return;
}
if (status == 0) {
var selStr = "You have #b" + cm.getPlayer().getDojoPoints() + "#k training points. Master prefers those with great talent. If you obtain more points than the average, you can receive a belt depending on your score.\r\n";
for (var i = 0; i < belts.length; i++)
selStr += "\r\n#L" + i + "##i" + belts[i] + "# #t" + belts[i] + "#l";
cm.sendSimple(selStr);
} else if (status == 1) {
var belt = belts[selection];
var level = belt_level[selection];
var points = belt_points[selection];
if (cm.getPlayer().getDojoPoints() > points) {
if (cm.getPlayer().getLevel() > level)
if (cm.haveItem(belt) && !cm.haveItem(1132004)) {
cm.sendNext("You have this belt already. You must reset your points to get another one");
} else {
cm.gainItem(belt, 1);
}
else
cm.sendNext("In order to receive #i" + belt + "# #b#t" + belt + "##k, you have to be at least over level #b" + level + "#k and you need to have earned at least #b" + points + " training points#k.\r\n\r\nIf you want to obtain this belt, you need #r" + points + "#k more training points.");
} else
cm.sendNext("In order to receive #i" + belt + "# #b#t" + belt + "##k, you have to be at least over level #b" + level + "#k and you need to have earned at least #b" + points + " training points#k.\r\n\r\nIf you want to obtain this belt, you need #r" + points + "#k more training points.");
cm.dispose();
}
} else if (selectedMenu == 3) { //I want to reset my training points.
if (status == 0) {
cm.sendYesNo("You do know that if you reset your training points, it returns to 0, right? Although, that's not always a bad thing. If you can start earning training points again after you reset, you can receive the belts once more. Do you want to reset your training points now?");
} else if (status == 1) {
if (mode == 0) {
cm.sendNext("Do you need to gather yourself or something? Come back after you take a deep breath.");
} else {
cm.getPlayer().setDojoPoints(0);
cm.sendNext("There! All your training points have been reset. Think of it as a new beginning and train hard!");
}
cm.dispose();
}
} else if (selectedMenu == 4) { //I want to receive a medal.
if (status == 0) {
cm.sendYesNo("You haven't attempted the medal yet? If you defeat one type of monster in Mu Lung Dojo #b100 times#k you can receive a title called #bxx Vanquisher#k. It looks like you haven't even earned the #b#t1142033##k... Do you want to try out for the #b#t1142033##k?");
} else if (status == 1) {
if (mode == 0) {
cm.sendNext("If you don't want to, that's fine.");
cm.dispose();
} else {
if (cm.c.getPlayer().getDojoStage() > 37) {
cm.sendNext("You have complete all medals challenges.");
} else if (cm.getPlayer().getVanquisherKills() < 100)
cm.sendNext("You still need #b" + (100 - getVanquisherStage()) + "#k in order to obtain the #b#t" + (1142033 + cm.getPlayer().getVanquisherStage()) + "##k. Please try a little harder. As a reminder, only the mosnters that have been summoned by our Master in Mu Lung Dojo are considered. Oh, and make sure you're not hunting the monsters and exiting!#r If you don't go to the next level after defeating the monster, it doesn't count as a win#k.");
else {
cm.sendNext("You have obtained #b#t" + (1142033 + cm.getPlayer().getVanquisherStage()) + "##k.");
cm.gainItem(1142033 + cm.getPlayer().getVanquisherStage(), 1);
cm.getPlayer().setVanquisherStage(cm.c.getPlayer().getVanquisherStage() + 1);
cm.getPlayer().setVanquisherKills(0);
}
}
cm.dispose();
}
} else if (selectedMenu == 5) { //What is a Mu Lung Dojo?
cm.sendNext("Our master is the strongest person in Mu Lung. The place he built is called the Mu Lung Dojo, a building that is 38 stories tall! You can train yourself as you go up each level. Of course, it'll be heard for someone at your level to reach the top.");
cm.dispose();
}
} else
cm.dispose();
} else if (isRestingSpot(cm.getPlayer().getMap().getId())) {
if (selectedMenu == -1)
selectedMenu = selection;
status++;
if (selectedMenu == 0) {
cm.warp(cm.getPlayer().getMap().getId() + 100, 0);
cm.dispose();
} else if (selectedMenu == 1) { //I want to leave
if (status == 0) {
cm.sendAcceptDecline("So, you're giving up? You're really going to leave?");
} else {
if (mode == 1) {
cm.warp(925020000);
} else {//probably insult the user
}
cm.dispose();
}
} else if (selectedMenu == 2) { //I want to record my score up to this point
if (status == 0) {
cm.sendYesNo("If you record your score, you can start where you left off the next time. Isn't that convenient? Do you want to record your current score?");
} else {
if (mode == 0) {
cm.sendNext("You think you can go even higher? Good luck!");
} else {
cm.sendNext("I recorded your score. If you tell me the next time you go up, you'll be able to start where you left off.");
cm.getPlayer().setDojoStage(cm.getPlayer().getMap().getId());
}
cm.dispose();
}
}
} else {
if (mode < 1) {
cm.sendNext("Stop changing your mind! Soon, you'll be crying, begging me to go back.");
} else {
cm.warp(925020001, 0);
}
cm.dispose();
}
}
function isRestingSpot(id) {
return (id / 100 - 9250200) % 6 == 0;
}
Well thank you arcon =) your help is greatly appreciated
so is pvp going to be on the next update?