Multi World NPCs + patch on Player interactions

Made NPCs now work properly on multiworld system. Solved multiple issues
regarding Player Shops not giving back items properly when owner exits.
Added restriction on changing channels at FM rooms, preventing shop
owner entering Cash Shop.
This commit is contained in:
ronancpl
2017-05-28 22:11:39 -03:00
parent d0396e4c36
commit 7f178a3d80
548 changed files with 340 additions and 164 deletions

56
scripts/npc/1012000.js Normal file
View File

@@ -0,0 +1,56 @@
var status = 0;
var maps = [104000000, 102000000, 101000000, 103000000, 120000000];
var cost = [1000, 1000, 800, 1000, 800];
var selectedMap = -1;
var mesos;
function start() {
cm.sendNext("Hello, I drive the Regular Cab. If you want to go from town to town safely and fast, then ride our cab. We'll glady take you to your destination with an affordable price.");
}
function action(mode, type, selection) {
if (mode == -1) {
cm.dispose();
} else {
if (status == 1 && mode == 0) {
cm.dispose();
return;
} else if (status >= 2 && mode == 0) {
cm.sendNext("There's a lot to see in this town, too. Come back and find us when you need to go to a different town.");
cm.dispose();
return;
}
if (mode == 1)
status++;
else
status--;
if (status == 1) {
var selStr = "";
if (cm.getJobId() == 0)
selStr += "We have a special 90% discount for beginners.";
selStr += "Choose your destination, for fees will change from place to place.#b";
for (var i = 0; i < maps.length; i++)
selStr += "\r\n#L" + i + "##m" + maps[i] + "# (" + (cm.getJobId() == 0 ? cost[i] / 10 : cost[i]) + " mesos)#l";
cm.sendSimple(selStr);
} else if (status == 2) {
cm.sendYesNo("You don't have anything else to do here, huh? Do you really want to go to #b#m" + maps[selection] + "##k? It'll cost you #b"+ (cm.getJobId() == 0 ? cost[selection] / 10 : cost[selection]) + " mesos#k.");
selectedMap = selection;
} else if (status == 3) {
if (cm.getJobId() == 0) {
mesos = cost[selectedMap] / 10;
} else {
mesos = cost[selectedMap];
}
if (cm.getMeso() < mesos) {
cm.sendNext("You don't have enough mesos. Sorry to say this, but without them, you won't be able to ride the cab.");
cm.dispose();
return;
}
cm.gainMeso(-mesos);
cm.warp(maps[selectedMap], 0);
cm.dispose();
}
}
}