Crafters & keybinding & commands fix + updated MobBook info
Fixed player receiving DOT even if protected on Orbis Tower <B2>, added HPbar on Rombot, fixed keybinding issue with clashing skill-item id's, fixed some mischeckings on NPC crafters, fixed "travelling events" sending players to random spawnpoints when arriving, fixed hair&face commands, fixed dispel effect not showing to others, updated drop data on mobbook.
This commit is contained in:
@@ -40,8 +40,8 @@ function takeoff() {
|
||||
}
|
||||
|
||||
function arrived() {
|
||||
Plane_to_CBD.warpEveryone(CBD_docked.getId());
|
||||
Plane_to_KC.warpEveryone(KC_docked.getId());
|
||||
Plane_to_CBD.warpEveryone(CBD_docked.getId(), 0);
|
||||
Plane_to_KC.warpEveryone(KC_docked.getId(), 7);
|
||||
|
||||
scheduleNew();
|
||||
}
|
||||
|
||||
@@ -61,10 +61,10 @@ function takeoff() {
|
||||
}
|
||||
|
||||
function arrived() {
|
||||
Boat_to_Orbis.warpEveryone(Orbis_Station.getId());
|
||||
Orbis_Boat_Cabin.warpEveryone(Orbis_Station.getId());
|
||||
Boat_to_Ellinia.warpEveryone(Ellinia_docked.getId());
|
||||
Ellinia_Boat_Cabin.warpEveryone(Ellinia_docked.getId());
|
||||
Boat_to_Orbis.warpEveryone(Orbis_Station.getId(), 0);
|
||||
Orbis_Boat_Cabin.warpEveryone(Orbis_Station.getId(), 0);
|
||||
Boat_to_Ellinia.warpEveryone(Ellinia_docked.getId(), 1);
|
||||
Ellinia_Boat_Cabin.warpEveryone(Ellinia_docked.getId(), 1);
|
||||
Orbis_docked.broadcastShip(true);
|
||||
Ellinia_docked.broadcastShip(true);
|
||||
Boat_to_Orbis.broadcastEnemyShip(false);
|
||||
|
||||
@@ -94,8 +94,8 @@ function takeoff() {
|
||||
}
|
||||
|
||||
function arrived() {
|
||||
Cabin_to_Orbis.warpEveryone(Orbis_Station.getId());
|
||||
Cabin_to_Leafre.warpEveryone(Leafre_Station.getId());
|
||||
Cabin_to_Orbis.warpEveryone(Orbis_Station.getId(), 0);
|
||||
Cabin_to_Leafre.warpEveryone(Leafre_Station.getId(), 0);
|
||||
|
||||
Orbis_docked.broadcastShip(true);
|
||||
Leafre_docked.broadcastShip(true);
|
||||
|
||||
@@ -72,8 +72,8 @@ function takeoff() {
|
||||
}
|
||||
|
||||
function arrived() {
|
||||
Genie_to_Orbis.warpEveryone(Orbis_Station.getId());
|
||||
Genie_to_Ariant.warpEveryone(Ariant_docked.getId());
|
||||
Genie_to_Orbis.warpEveryone(Orbis_Station.getId(), 0);
|
||||
Genie_to_Ariant.warpEveryone(Ariant_docked.getId(), 1);
|
||||
Orbis_docked.broadcastShip(true);
|
||||
Ariant_docked.broadcastShip(true);
|
||||
|
||||
|
||||
@@ -58,4 +58,4 @@ function playerDisconnected(eim, player) {
|
||||
|
||||
function cancelSchedule() {}
|
||||
|
||||
function dispose(eim) {}
|
||||
function dispose(eim) {}
|
||||
|
||||
@@ -5,13 +5,12 @@ var rideTo = new Array(103000310, 103000100);
|
||||
var trainRide = new Array(103000301, 103000302);
|
||||
var myRide;
|
||||
var returnMap;
|
||||
var exitMap;
|
||||
var map;
|
||||
var docked;
|
||||
var timeOnRide = 10; //Seconds
|
||||
var onRide;
|
||||
|
||||
function init() {
|
||||
}
|
||||
function init() {}
|
||||
|
||||
function setup() {
|
||||
var eim = em.newInstance("KerningTrain_" + em.getProperty("player"));
|
||||
@@ -26,26 +25,38 @@ function playerEntry(eim, player) {
|
||||
} else {
|
||||
myRide = 1;
|
||||
}
|
||||
docked = eim.getEm().getChannelServer().getMapFactory().getMap(rideTo[myRide]);
|
||||
returnMap = eim.getMapFactory().getMap(returnTo[myRide]);
|
||||
onRide = eim.getMapFactory().getMap(trainRide[myRide]);
|
||||
player.changeMap(onRide, onRide.getPortal(0));
|
||||
player.getClient().getSession().write(MaplePacketCreator.getClock(timeOnRide));
|
||||
eim.schedule("timeOut", timeOnRide * 1000);
|
||||
|
||||
exitMap = eim.getEm().getChannelServer().getMapFactory().getMap(rideTo[myRide]);
|
||||
returnMap = eim.getMapFactory().getMap(returnTo[myRide]);
|
||||
onRide = eim.getMapFactory().getMap(trainRide[myRide]);
|
||||
player.changeMap(onRide, onRide.getPortal(0));
|
||||
player.getClient().getSession().write(MaplePacketCreator.getClock(timeOnRide));
|
||||
eim.schedule("timeOut", timeOnRide * 1000);
|
||||
}
|
||||
|
||||
function timeOut() {
|
||||
onRide.warpEveryone(docked.getId());
|
||||
function timeOut(eim) {
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player, success) {
|
||||
eim.unregisterPlayer(player);
|
||||
player.changeMap(success ? exitMap.getId() : returnMap.getId(), 0);
|
||||
}
|
||||
|
||||
function end(eim) {
|
||||
var party = eim.getPlayers();
|
||||
for (var i = 0; i < party.size(); i++) {
|
||||
playerExit(eim, party.get(i), true);
|
||||
}
|
||||
eim.dispose();
|
||||
}
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
return 0;
|
||||
playerExit(eim, player, false);
|
||||
}
|
||||
|
||||
function cancelSchedule() {}
|
||||
|
||||
function dispose(eim) {
|
||||
eim.cancelSchedule();
|
||||
}
|
||||
function dispose(eim) {}
|
||||
|
||||
@@ -86,6 +86,7 @@ function setup(channel) {
|
||||
eim.getInstanceMap(270050300).resetPQ(level);
|
||||
|
||||
var mob = MapleLifeFactory.getMonster(8820000);
|
||||
mob.disableDrops();
|
||||
eim.getInstanceMap(270050100).spawnMonsterOnGroundBelow(mob, new java.awt.Point(0, -42));
|
||||
|
||||
eim.startEventTimer(eventTime * 60000);
|
||||
|
||||
@@ -18,6 +18,9 @@
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
importPackage(Packages.tools);
|
||||
|
||||
var exitMap;
|
||||
var startMap;
|
||||
var otherMap;
|
||||
|
||||
@@ -38,8 +38,8 @@ function takeoff() {
|
||||
}
|
||||
|
||||
function arrived() {
|
||||
Subway_to_KC.warpEveryone(KC_docked.getId());
|
||||
Subway_to_NLC.warpEveryone(NLC_docked.getId());
|
||||
Subway_to_KC.warpEveryone(KC_docked.getId(), 0);
|
||||
Subway_to_NLC.warpEveryone(NLC_docked.getId(), 0);
|
||||
scheduleNew();
|
||||
}
|
||||
|
||||
|
||||
@@ -55,8 +55,8 @@ function takeoff() {
|
||||
}
|
||||
|
||||
function arrived() {
|
||||
Train_to_Orbis.warpEveryone(Orbis_Station.getId());
|
||||
Train_to_Ludibrium.warpEveryone(Ludibrium_Station.getId());
|
||||
Train_to_Orbis.warpEveryone(Orbis_Station.getId(), 0);
|
||||
Train_to_Ludibrium.warpEveryone(Ludibrium_Station.getId(), 0);
|
||||
Orbis_docked.broadcastShip(true);
|
||||
Ludibrium_docked.broadcastShip(true);
|
||||
scheduleNew();
|
||||
|
||||
@@ -18,6 +18,9 @@
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
importPackage(Packages.tools);
|
||||
|
||||
var exitMap;
|
||||
var startMap;
|
||||
var otherMap;
|
||||
|
||||
@@ -62,7 +62,7 @@ function goingDownNow() {
|
||||
function isUpNow() {
|
||||
em.setProperty("goingDown", "false"); // clear
|
||||
em.getChannelServer().getMapFactory().getMap(222020200).resetReactors();
|
||||
em.getChannelServer().getMapFactory().getMap(222020111).warpEveryone(222020200);
|
||||
em.getChannelServer().getMapFactory().getMap(222020111).warpEveryone(222020200, 0);
|
||||
|
||||
goDown();
|
||||
}
|
||||
@@ -70,7 +70,7 @@ function isUpNow() {
|
||||
function isDownNow() {
|
||||
em.setProperty("goingUp", "false"); // clear
|
||||
em.getChannelServer().getMapFactory().getMap(222020100).resetReactors();
|
||||
em.getChannelServer().getMapFactory().getMap(222020211).warpEveryone(222020100);
|
||||
em.getChannelServer().getMapFactory().getMap(222020211).warpEveryone(222020100, 4);
|
||||
|
||||
goUp();
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
function start(pi) {
|
||||
var map = pi.getClient().getChannelServer().getMapFactory().getMap(922000000);
|
||||
map.clearDrops();
|
||||
map.resetReactors();
|
||||
map.shuffleReactors();
|
||||
|
||||
|
||||
@@ -159,9 +159,9 @@ function action(mode, type, selection) {
|
||||
else{
|
||||
if (mats instanceof Array) {
|
||||
for(var i = 0; complete && i < mats.length; i++)
|
||||
if (!cm.haveItem(mats[i], matQty[i]))
|
||||
if (!cm.haveItem(mats[i], matQty[i] * qty))
|
||||
complete = false;
|
||||
}else if (!cm.haveItem(mats, matQty))
|
||||
}else if (!cm.haveItem(mats, matQty * qty))
|
||||
complete = false;
|
||||
}
|
||||
if (!complete)
|
||||
|
||||
@@ -195,10 +195,10 @@ function action(mode, type, selection) {
|
||||
{
|
||||
if (mats instanceof Array) {
|
||||
for(var i = 0; complete && i < mats.length; i++)
|
||||
if (!cm.haveItem(mats[i], matQty[i]))
|
||||
if (!cm.haveItem(mats[i], matQty[i] * qty))
|
||||
complete = false;
|
||||
}
|
||||
else if (!cm.haveItem(mats, matQty))
|
||||
else if (!cm.haveItem(mats, matQty * qty))
|
||||
complete = false;
|
||||
}
|
||||
if (!complete)
|
||||
|
||||
@@ -187,10 +187,10 @@ function action(mode, type, selection) {
|
||||
{
|
||||
if (mats instanceof Array) {
|
||||
for(var i = 0; complete && i < mats.length; i++)
|
||||
if (!cm.haveItem(mats[i], matQty[i]))
|
||||
if (!cm.haveItem(mats[i], matQty[i] * qty))
|
||||
complete = false;
|
||||
}
|
||||
else if (!cm.haveItem(mats, matQty))
|
||||
else if (!cm.haveItem(mats, matQty * qty))
|
||||
complete = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -227,10 +227,10 @@ function action(mode, type, selection) {
|
||||
{
|
||||
if (mats instanceof Array) {
|
||||
for(var i = 0; complete && i < mats.length; i++)
|
||||
if (!cm.haveItem(mats[i], matQty[i]))
|
||||
if (!cm.haveItem(mats[i], matQty[i] * qty))
|
||||
complete = false;
|
||||
}
|
||||
else if (!cm.haveItem(mats, matQty))
|
||||
else if (!cm.haveItem(mats, matQty * qty))
|
||||
complete = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -26,174 +26,183 @@ function start() {
|
||||
}
|
||||
|
||||
function action(mode, type, selection) {
|
||||
if (mode == 1)
|
||||
status++;
|
||||
else
|
||||
if (mode == -1) {
|
||||
cm.dispose();
|
||||
if (status == 0) {
|
||||
var selStr = "Yes, I do own this forge. If you're willing to pay, I can offer you some of my services.#b"
|
||||
var options = new Array("Refine a mineral ore","Refine a jewel ore","I have Iron Hog's Metal Hoof...","Upgrade a claw");
|
||||
for (var i = 0; i < options.length; i++){
|
||||
selStr += "\r\n#L" + i + "# " + options[i] + "#l";
|
||||
} else {
|
||||
if (mode == 0 && type > 0) { // hope types 2 & 3 works as well, as 1 and 4 END CHAT
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
cm.sendSimple(selStr);
|
||||
}
|
||||
else if (status == 1) {
|
||||
selectedType = selection;
|
||||
if (selectedType == 0){ //mineral refine
|
||||
var selStr = "So, what kind of mineral ore would you like to refine?#b";
|
||||
var minerals = new Array ("Bronze","Steel","Mithril","Adamantium","Silver","Orihalcon","Gold");
|
||||
for (var i = 0; i < minerals.length; i++){
|
||||
selStr += "\r\n#L" + i + "# " + minerals[i] + "#l";
|
||||
}
|
||||
equip = false;
|
||||
cm.sendSimple(selStr);
|
||||
}
|
||||
else if (selectedType == 1){ //jewel refine
|
||||
var selStr = "So, what kind of jewel ore would you like to refine?#b";
|
||||
var jewels = new Array ("Garnet","Amethyst","Aquamarine","Emerald","Opal","Sapphire","Topaz","Diamond","Black Crystal");
|
||||
for (var i = 0; i < jewels.length; i++){
|
||||
selStr += "\r\n#L" + i + "# " + jewels[i] + "#l";
|
||||
}
|
||||
equip = false;
|
||||
cm.sendSimple(selStr);
|
||||
}
|
||||
else if (selectedType == 2){ //foot refine
|
||||
var selStr = "You know about that? Not many people realize the potential in the Iron Hog's Metal Hoof... I can make this into something special, if you want me to.";
|
||||
equip = false;
|
||||
cm.sendYesNo(selStr);
|
||||
}
|
||||
else if (selectedType == 3){ //claw refine
|
||||
var selStr = "Ah, you wish to upgrade a claw? Then tell me, which one?#b";
|
||||
var claws = new Array ("Blood Gigantic#k - Thief Lv. 60#b","Sapphire Gigantic#k - Thief Lv. 60#b","Dark Gigantic#k - Thief Lv. 60#b");
|
||||
for (var i = 0; i < claws.length; i++){
|
||||
selStr += "\r\n#L" + i + "# " + claws[i] + "#l";
|
||||
}
|
||||
equip = true;
|
||||
cm.sendSimple(selStr);
|
||||
}
|
||||
if (equip)
|
||||
if (mode == 1)
|
||||
status++;
|
||||
}
|
||||
else if (status == 2 && mode == 1) {
|
||||
selectedItem = selection;
|
||||
if (selectedType == 0){ //mineral refine
|
||||
var itemSet = new Array(4011000,4011001,4011002,4011003,4011004,4011005,4011006);
|
||||
var matSet = new Array(4010000,4010001,4010002,4010003,4010004,4010005,4010006);
|
||||
var matQtySet = new Array(10,10,10,10,10,10,10);
|
||||
var costSet = new Array(300,300,300,500,500,500,800);
|
||||
item = itemSet[selectedItem];
|
||||
mats = matSet[selectedItem];
|
||||
matQty = matQtySet[selectedItem];
|
||||
cost = costSet[selectedItem];
|
||||
else
|
||||
status--;
|
||||
|
||||
if (status == 0) {
|
||||
var selStr = "Yes, I do own this forge. If you're willing to pay, I can offer you some of my services.#b"
|
||||
var options = new Array("Refine a mineral ore","Refine a jewel ore","I have Iron Hog's Metal Hoof...","Upgrade a claw");
|
||||
for (var i = 0; i < options.length; i++){
|
||||
selStr += "\r\n#L" + i + "# " + options[i] + "#l";
|
||||
}
|
||||
|
||||
cm.sendSimple(selStr);
|
||||
}
|
||||
else if (selectedType == 1){ //jewel refine
|
||||
var itemSet = new Array(4021000,4021001,4021002,4021003,4021004,4021005,4021006,4021007,4021008);
|
||||
var matSet = new Array(4020000,4020001,4020002,4020003,4020004,4020005,4020006,4020007,4020008);
|
||||
var matQtySet = new Array(10,10,10,10,10,10,10,10,10);
|
||||
var costSet = new Array (500,500,500,500,500,500,500,1000,3000);
|
||||
item = itemSet[selectedItem];
|
||||
mats = matSet[selectedItem];
|
||||
matQty = matQtySet[selectedItem];
|
||||
cost = costSet[selectedItem];
|
||||
else if (status == 1) {
|
||||
selectedType = selection;
|
||||
if (selectedType == 0){ //mineral refine
|
||||
var selStr = "So, what kind of mineral ore would you like to refine?#b";
|
||||
var minerals = new Array ("Bronze","Steel","Mithril","Adamantium","Silver","Orihalcon","Gold");
|
||||
for (var i = 0; i < minerals.length; i++){
|
||||
selStr += "\r\n#L" + i + "# " + minerals[i] + "#l";
|
||||
}
|
||||
equip = false;
|
||||
cm.sendSimple(selStr);
|
||||
}
|
||||
else if (selectedType == 1){ //jewel refine
|
||||
var selStr = "So, what kind of jewel ore would you like to refine?#b";
|
||||
var jewels = new Array ("Garnet","Amethyst","Aquamarine","Emerald","Opal","Sapphire","Topaz","Diamond","Black Crystal");
|
||||
for (var i = 0; i < jewels.length; i++){
|
||||
selStr += "\r\n#L" + i + "# " + jewels[i] + "#l";
|
||||
}
|
||||
equip = false;
|
||||
cm.sendSimple(selStr);
|
||||
}
|
||||
else if (selectedType == 2){ //foot refine
|
||||
var selStr = "You know about that? Not many people realize the potential in the Iron Hog's Metal Hoof... I can make this into something special, if you want me to.";
|
||||
equip = false;
|
||||
cm.sendYesNo(selStr);
|
||||
}
|
||||
else if (selectedType == 3){ //claw refine
|
||||
var selStr = "Ah, you wish to upgrade a claw? Then tell me, which one?#b";
|
||||
var claws = new Array ("Blood Gigantic#k - Thief Lv. 60#b","Sapphire Gigantic#k - Thief Lv. 60#b","Dark Gigantic#k - Thief Lv. 60#b");
|
||||
for (var i = 0; i < claws.length; i++){
|
||||
selStr += "\r\n#L" + i + "# " + claws[i] + "#l";
|
||||
}
|
||||
equip = true;
|
||||
cm.sendSimple(selStr);
|
||||
}
|
||||
if (equip)
|
||||
status++;
|
||||
}
|
||||
else if (selectedType == 2){ //special refine
|
||||
var itemSet = new Array(4011001,1);
|
||||
var matSet = new Array(4000039,1);
|
||||
var matQtySet = new Array (100,1);
|
||||
var costSet = new Array (1000,1)
|
||||
item = itemSet[0];
|
||||
mats = matSet[0];
|
||||
matQty = matQtySet[0];
|
||||
cost = costSet[0];
|
||||
}
|
||||
|
||||
var prompt = "So, you want me to make some #t" + item + "#s? In that case, how many do you want me to make?";
|
||||
|
||||
cm.sendGetNumber(prompt,1,1,100)
|
||||
}
|
||||
|
||||
else if (status == 3) {
|
||||
if (equip)
|
||||
{
|
||||
else if (status == 2 && mode == 1) {
|
||||
selectedItem = selection;
|
||||
qty = 1;
|
||||
}
|
||||
else
|
||||
qty = selection;
|
||||
|
||||
last_use = false;
|
||||
|
||||
if (selectedType == 3){ //claw refine
|
||||
var itemSet = new Array (1472023,1472024,1472025);
|
||||
var matSet = new Array(new Array (1472022,4011007,4021000,2012000),new Array (1472022,4011007,4021005,2012002),new Array (1472022,4011007,4021008,4000046));
|
||||
var matQtySet = new Array (new Array (1,1,8,10),new Array (1,1,8,10),new Array (1,1,3,5));
|
||||
var costSet = new Array (80000,80000,100000)
|
||||
item = itemSet[selectedItem];
|
||||
mats = matSet[selectedItem];
|
||||
matQty = matQtySet[selectedItem];
|
||||
cost = costSet[selectedItem];
|
||||
if (selectedItem != 2)
|
||||
last_use = true;
|
||||
}
|
||||
|
||||
var prompt = "You want me to make ";
|
||||
if (qty == 1)
|
||||
prompt += "a #t" + item + "#?";
|
||||
else
|
||||
prompt += qty + " #t" + item + "#?";
|
||||
|
||||
prompt += " In that case, I'm going to need specific items from you in order to make it. Make sure you have room in your inventory, though!#b";
|
||||
|
||||
if (mats instanceof Array){
|
||||
for (var i = 0; i < mats.length; i++) {
|
||||
prompt += "\r\n#i"+mats[i]+"# " + matQty[i] * qty + " #t" + mats[i] + "#";
|
||||
if (selectedType == 0){ //mineral refine
|
||||
var itemSet = new Array(4011000,4011001,4011002,4011003,4011004,4011005,4011006);
|
||||
var matSet = new Array(4010000,4010001,4010002,4010003,4010004,4010005,4010006);
|
||||
var matQtySet = new Array(10,10,10,10,10,10,10);
|
||||
var costSet = new Array(300,300,300,500,500,500,800);
|
||||
item = itemSet[selectedItem];
|
||||
mats = matSet[selectedItem];
|
||||
matQty = matQtySet[selectedItem];
|
||||
cost = costSet[selectedItem];
|
||||
}
|
||||
} else {
|
||||
prompt += "\r\n#i"+mats+"# " + matQty * qty + " #t" + mats + "#";
|
||||
}
|
||||
|
||||
if (cost > 0) {
|
||||
prompt += "\r\n#i4031138# " + cost * qty + " meso";
|
||||
}
|
||||
cm.sendYesNo(prompt);
|
||||
} else if (status == 4) {
|
||||
var complete = true;
|
||||
|
||||
if(!cm.canHold(item, qty)) {
|
||||
cm.sendOk("Check your inventory for a free slot first.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
else if (cm.getMeso() < cost * qty) {
|
||||
cm.sendOk("Cash only, no credit.");
|
||||
cm.dispose();
|
||||
return;
|
||||
} else {
|
||||
if (mats instanceof Array) {
|
||||
for(var i = 0; complete && i < mats.length; i++)
|
||||
if (!cm.haveItem(mats[i], matQty[i]))
|
||||
complete = false;
|
||||
else if (selectedType == 1){ //jewel refine
|
||||
var itemSet = new Array(4021000,4021001,4021002,4021003,4021004,4021005,4021006,4021007,4021008);
|
||||
var matSet = new Array(4020000,4020001,4020002,4020003,4020004,4020005,4020006,4020007,4020008);
|
||||
var matQtySet = new Array(10,10,10,10,10,10,10,10,10);
|
||||
var costSet = new Array (500,500,500,500,500,500,500,1000,3000);
|
||||
item = itemSet[selectedItem];
|
||||
mats = matSet[selectedItem];
|
||||
matQty = matQtySet[selectedItem];
|
||||
cost = costSet[selectedItem];
|
||||
}
|
||||
else if (!cm.haveItem(mats, matQty))
|
||||
complete = false;
|
||||
else if (selectedType == 2){ //special refine
|
||||
var itemSet = new Array(4011001,1);
|
||||
var matSet = new Array(4000039,1);
|
||||
var matQtySet = new Array (100,1);
|
||||
var costSet = new Array (1000,1)
|
||||
item = itemSet[0];
|
||||
mats = matSet[0];
|
||||
matQty = matQtySet[0];
|
||||
cost = costSet[0];
|
||||
}
|
||||
|
||||
var prompt = "So, you want me to make some #t" + item + "#s? In that case, how many do you want me to make?";
|
||||
|
||||
cm.sendGetNumber(prompt,1,1,100)
|
||||
}
|
||||
|
||||
if (!complete)
|
||||
cm.sendOk("I cannot accept substitutes. If you don't have what I need, then I won't be able to help you.");
|
||||
else {
|
||||
if (mats instanceof Array) {
|
||||
for (var i = 0; i < mats.length; i++){
|
||||
cm.gainItem(mats[i], -matQty[i] * qty);
|
||||
|
||||
else if (status == 3) {
|
||||
if (equip)
|
||||
{
|
||||
selectedItem = selection;
|
||||
qty = 1;
|
||||
}
|
||||
else
|
||||
qty = selection;
|
||||
|
||||
last_use = false;
|
||||
|
||||
if (selectedType == 3){ //claw refine
|
||||
var itemSet = new Array (1472023,1472024,1472025);
|
||||
var matSet = new Array(new Array (1472022,4011007,4021000,2012000),new Array (1472022,4011007,4021005,2012002),new Array (1472022,4011007,4021008,4000046));
|
||||
var matQtySet = new Array (new Array (1,1,8,10),new Array (1,1,8,10),new Array (1,1,3,5));
|
||||
var costSet = new Array (80000,80000,100000)
|
||||
item = itemSet[selectedItem];
|
||||
mats = matSet[selectedItem];
|
||||
matQty = matQtySet[selectedItem];
|
||||
cost = costSet[selectedItem];
|
||||
if (selectedItem != 2)
|
||||
last_use = true;
|
||||
}
|
||||
|
||||
var prompt = "You want me to make ";
|
||||
if (qty == 1)
|
||||
prompt += "a #t" + item + "#?";
|
||||
else
|
||||
prompt += qty + " #t" + item + "#?";
|
||||
|
||||
prompt += " In that case, I'm going to need specific items from you in order to make it. Make sure you have room in your inventory, though!#b";
|
||||
|
||||
if (mats instanceof Array){
|
||||
for (var i = 0; i < mats.length; i++) {
|
||||
prompt += "\r\n#i"+mats[i]+"# " + matQty[i] * qty + " #t" + mats[i] + "#";
|
||||
}
|
||||
} else {
|
||||
cm.gainItem(mats, -matQty * qty);
|
||||
prompt += "\r\n#i"+mats+"# " + matQty * qty + " #t" + mats + "#";
|
||||
}
|
||||
cm.gainMeso(-cost * qty);
|
||||
cm.gainItem(item, qty);
|
||||
cm.sendNext("Phew... I almost didn't think that would work for a second... Well, I hope you enjoy it, anyway.");
|
||||
|
||||
if (cost > 0) {
|
||||
prompt += "\r\n#i4031138# " + cost * qty + " meso";
|
||||
}
|
||||
cm.sendYesNo(prompt);
|
||||
} else if (status == 4) {
|
||||
var complete = true;
|
||||
|
||||
if(!cm.canHold(item, qty)) {
|
||||
cm.sendOk("Check your inventory for a free slot first.");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
else if (cm.getMeso() < cost * qty) {
|
||||
cm.sendOk("Cash only, no credit.");
|
||||
cm.dispose();
|
||||
return;
|
||||
} else {
|
||||
if (mats instanceof Array) {
|
||||
for(var i = 0; complete && i < mats.length; i++)
|
||||
if (!cm.haveItem(mats[i], matQty[i] * qty))
|
||||
complete = false;
|
||||
}
|
||||
else if (!cm.haveItem(mats, matQty * qty))
|
||||
complete = false;
|
||||
}
|
||||
|
||||
if (!complete)
|
||||
cm.sendOk("I cannot accept substitutes. If you don't have what I need, then I won't be able to help you.");
|
||||
else {
|
||||
if (mats instanceof Array) {
|
||||
for (var i = 0; i < mats.length; i++){
|
||||
cm.gainItem(mats[i], -matQty[i] * qty);
|
||||
}
|
||||
} else {
|
||||
cm.gainItem(mats, -matQty * qty);
|
||||
}
|
||||
cm.gainMeso(-cost * qty);
|
||||
cm.gainItem(item, qty);
|
||||
cm.sendNext("Phew... I almost didn't think that would work for a second... Well, I hope you enjoy it, anyway.");
|
||||
}
|
||||
cm.dispose();
|
||||
}
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,7 @@ var NLC = false;
|
||||
var em;
|
||||
|
||||
function start() {
|
||||
cm.sendSimple("Pick your destination.\n\r\n#L0##bKerning City Subway#l\r\n#L1##bKerning square Shopping Center (Get on the subway)#l\n\n\r\n#L2#Enter Contruction Site#l\r\n#L3#New Leaf City#l");
|
||||
cm.sendSimple("Pick your destination.\n\r\n#L0##bKerning Square Shopping Center#l\n\n\r\n#L1#Enter Contruction Site#l\r\n#L2#New Leaf City#l");
|
||||
}
|
||||
|
||||
function action(mode, type, selection) {
|
||||
@@ -25,17 +25,13 @@ function action(mode, type, selection) {
|
||||
}
|
||||
if (status == 1) {
|
||||
if (selection == 0) {
|
||||
cm.warp(103000101);
|
||||
cm.dispose();
|
||||
return;
|
||||
} else if (selection == 1) {
|
||||
var train = cm.getEventManager("KerningTrain");
|
||||
train.newInstance("KerningTrain");
|
||||
train.setProperty("player", cm.getPlayer().getName());
|
||||
train.startInstance(cm.getPlayer());
|
||||
cm.dispose();
|
||||
return;
|
||||
} else if (selection == 2) {
|
||||
} else if (selection == 1) {
|
||||
if (cm.haveItem(4031036) || cm.haveItem(4031037) || cm.haveItem(4031038)) {
|
||||
text += " You will be brought in immediately. Which ticket you would like to use?#b";
|
||||
for (var i = 0; i < 3; i++) {
|
||||
@@ -50,7 +46,7 @@ function action(mode, type, selection) {
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
} else if (selection == 3) {
|
||||
} else if (selection == 2) {
|
||||
if (!cm.haveItem(4031711) && cm.getPlayer().getMapId() == 103000100) {
|
||||
cm.sendOk("It seems you don't have a ticket! You can buy one from Bell.");
|
||||
cm.dispose();
|
||||
|
||||
51
scripts/npc/1052109.js
Normal file
51
scripts/npc/1052109.js
Normal file
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
This file is part of the OdinMS Maple Story Server
|
||||
Copyright (C) 2008 Patrick Huy <patrick.huy@frz.cc>
|
||||
Matthias Butz <matze@odinms.de>
|
||||
Jan Christian Meyer <vimes@odinms.de>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation version 3 as published by
|
||||
the Free Software Foundation. You may not use, modify or distribute
|
||||
this program under any other version of the GNU Affero General Public
|
||||
License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/* Trash Can
|
||||
|
||||
*/
|
||||
|
||||
var status;
|
||||
|
||||
function start() {
|
||||
status = -1;
|
||||
action(1, 0, 0);
|
||||
}
|
||||
|
||||
function action(mode, type, selection) {
|
||||
if (mode == -1) {
|
||||
cm.dispose();
|
||||
} else {
|
||||
if (mode == 0 && type > 0) {
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
if (mode == 1)
|
||||
status++;
|
||||
else
|
||||
status--;
|
||||
|
||||
if(status == 0) {
|
||||
cm.sendOk("Just a trash can sitting there.");
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -64,9 +64,9 @@ function action(mode, type, selection) {
|
||||
rock.startInstance(cm.getPlayer());
|
||||
cm.dispose();
|
||||
return;
|
||||
} else {
|
||||
cm.sendOk("#rVIP#k? Yeah that is funny #rMr. VIP#k, now get lost before I call security.");
|
||||
}
|
||||
} else {
|
||||
cm.sendOk("#rVIP#k? Yeah that is funny #rMr. VIP#k, now get lost before I call security.");
|
||||
}
|
||||
}
|
||||
cm.dispose();
|
||||
}
|
||||
|
||||
@@ -139,10 +139,10 @@ function action(mode, type, selection) {
|
||||
{
|
||||
if (mats instanceof Array) {
|
||||
for(var i = 0; pass && i < mats.length; i++)
|
||||
if (!cm.haveItem(mats[i], matQty[i]))
|
||||
if (!cm.haveItem(mats[i], matQty[i] * qty))
|
||||
pass = false;
|
||||
}
|
||||
else if (!cm.haveItem(mats, matQty))
|
||||
else if (!cm.haveItem(mats, matQty * qty))
|
||||
pass = false;
|
||||
/*if (mats instanceof Array) {
|
||||
for(var i = 0; pass && i < mats.length; i++)
|
||||
|
||||
@@ -19,39 +19,50 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
var toMap = new Array(211040200, 220050300, 220000000,240030000);
|
||||
var toMap = new Array(211040200, 220050300, 220000000, 240030000);
|
||||
var inMap = new Array(211000000, 220000000, 221000000, 240000000);
|
||||
var cost = new Array(10000, 25000, 25000, 65000);
|
||||
var location;
|
||||
var status = 0;
|
||||
|
||||
var status;
|
||||
|
||||
function start() {
|
||||
|
||||
for (var i = 0; i < toMap.length; i ++) {
|
||||
if (inMap[i] == cm.getPlayer().getMap().getId()) {
|
||||
location = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
cm.sendNext("Hello there! This taxi will take you to dangerous places in Ossyria faster than an arrow! We go from #m" + inMap[location] + "# to #b#m"+toMap[location]+"##k on this Ossyria Continent! It'll cost you #b"+ cost[location] +" meso#k. I know it's a bit expensive, but it's well worth passing all the dangerous areas!");
|
||||
status = -1;
|
||||
action(1, 0, 0);
|
||||
}
|
||||
|
||||
function action(mode, type, selection) {
|
||||
if (mode == -1)
|
||||
if (mode == -1) {
|
||||
cm.dispose();
|
||||
else if (mode == 0)
|
||||
cm.sendNext("Hmm, please think this over. It's not cheapr, but you will NOT be disappointed with our premier service!");
|
||||
else
|
||||
status++;
|
||||
if (status == 1)
|
||||
cm.sendYesNo("Would you like to pay meso#k to travel to the #b#m"+toMap[location]+"##k?");
|
||||
else if (status == 2) {
|
||||
if (cm.getMeso() < cost[location]) {
|
||||
cm.sendNext("You don't seem to have enough mesos. I am terribly sorry, but I cannot help you unless you pay up. Bring in the mesos by hunting more and come back when you have enough.");
|
||||
} else {
|
||||
cm.warp(toMap[location]);
|
||||
cm.gainMeso(-cost[location]);
|
||||
} else {
|
||||
if (mode == 0 && type > 0) {
|
||||
cm.sendNext("Hmm, please think this over. It's not cheap, but you will NOT be disappointed with our premier service!");
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
if (mode == 1)
|
||||
status++;
|
||||
else
|
||||
status--;
|
||||
|
||||
if(status == 0) {
|
||||
for (var i = 0; i < toMap.length; i ++) {
|
||||
if (inMap[i] == cm.getPlayer().getMap().getId()) {
|
||||
location = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
cm.sendNext("Hello there! This taxi will take you to dangerous places in Ossyria faster than an arrow! We go from #m" + inMap[location] + "# to #b#m"+toMap[location]+"##k on this Ossyria Continent! It'll cost you #b"+ cost[location] +" meso#k. I know it's a bit expensive, but it's well worth passing all the dangerous areas!");
|
||||
}
|
||||
else if (status == 1)
|
||||
cm.sendYesNo("Would you like to pay #b"+ cost[location] +" mesos#k to travel to the #b#m"+toMap[location]+"##k?");
|
||||
else if (status == 2) {
|
||||
if (cm.getMeso() < cost[location]) {
|
||||
cm.sendNext("You don't seem to have enough mesos. I am terribly sorry, but I cannot help you unless you pay up. Bring in the mesos by hunting more and come back when you have enough.");
|
||||
} else {
|
||||
cm.warp(toMap[location]);
|
||||
cm.gainMeso(-cost[location]);
|
||||
}
|
||||
cm.dispose();
|
||||
}
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ function action(mode, type, selection) {
|
||||
return;
|
||||
}
|
||||
|
||||
cm.warp(922000009);
|
||||
cm.warp(922000009, 0);
|
||||
if(!(cm.isQuestStarted(3239) && cm.haveItem(4031092, 10))) cm.removeAll(4031092);
|
||||
cm.dispose();
|
||||
}
|
||||
@@ -36,9 +36,14 @@ function action(mode, type, selection) {
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
if(cm.getWarpMap(922000000).countPlayers() == 0) {
|
||||
cm.warp(922000000, 0);
|
||||
if(!(cm.isQuestStarted(3239) && cm.haveItem(4031092, 10))) cm.removeAll(4031092);
|
||||
} else {
|
||||
cm.sendOk("Someone else is already attempting the parts. Wait for them to finish before you enter.");
|
||||
}
|
||||
|
||||
cm.warp(922000000);
|
||||
if(!(cm.isQuestStarted(3239) && cm.haveItem(4031092, 10))) cm.removeAll(4031092);
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,9 +92,9 @@ function action(mode, type, selection) {
|
||||
else {
|
||||
if (mats instanceof Array) {
|
||||
for(var i = 0; complete && i < mats.length; i++)
|
||||
if (!cm.haveItem(mats[i], matQty[i]))
|
||||
if (!cm.haveItem(mats[i], matQty[i] * qty))
|
||||
complete = false;
|
||||
}else if (!cm.haveItem(mats, matQty))
|
||||
}else if (!cm.haveItem(mats, matQty * qty))
|
||||
complete = false;
|
||||
}
|
||||
if (!complete)
|
||||
|
||||
@@ -246,13 +246,13 @@ function action(mode, type, selection) {
|
||||
for(var i = 0; complete && i < mats.length; i++)
|
||||
{
|
||||
if (matQty[i] * qty == 1) {
|
||||
if (!cm.haveItem(mats[i]))
|
||||
if (!cm.haveItem(mats[i] * qty))
|
||||
{
|
||||
complete = false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (!cm.haveItem(mats[i],matQty[i]*qty)) complete=false;
|
||||
if (!cm.haveItem(mats[i],matQty[i] * qty)) complete=false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -210,7 +210,7 @@ function action(mode, type, selection) {
|
||||
if (mats instanceof Array) {
|
||||
for(var i = 0; complete && i < mats.length; i++)
|
||||
{
|
||||
if (matQty[i] == 1) {
|
||||
if (matQty[i] * selection == 1) {
|
||||
if (!cm.haveItem(mats[i]))
|
||||
{
|
||||
complete = false;
|
||||
|
||||
51
scripts/npc/2040031.js
Normal file
51
scripts/npc/2040031.js
Normal file
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
This file is part of the OdinMS Maple Story Server
|
||||
Copyright (C) 2008 Patrick Huy <patrick.huy@frz.cc>
|
||||
Matthias Butz <matze@odinms.de>
|
||||
Jan Christian Meyer <vimes@odinms.de>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation version 3 as published by
|
||||
the Free Software Foundation. You may not use, modify or distribute
|
||||
this program under any other version of the GNU Affero General Public
|
||||
License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/* Document Roll
|
||||
* Chloe's House (220000304)
|
||||
*/
|
||||
|
||||
var status;
|
||||
|
||||
function start() {
|
||||
status = -1;
|
||||
action(1, 0, 0);
|
||||
}
|
||||
|
||||
function action(mode, type, selection) {
|
||||
if (mode == -1) {
|
||||
cm.dispose();
|
||||
} else {
|
||||
if (mode == 0 && type > 0) {
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
if (mode == 1)
|
||||
status++;
|
||||
else
|
||||
status--;
|
||||
|
||||
if(status == 0) {
|
||||
cm.sendOk("A document roll on the ground.");
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -261,10 +261,10 @@ function getStimID(equipID){
|
||||
return 4130012;
|
||||
case 146: //xbow
|
||||
return 4130013;
|
||||
case 148: // Knuckle
|
||||
return 4130016;
|
||||
case 149:
|
||||
return 4130017;
|
||||
case 148: // Knuckle
|
||||
return 4130016;
|
||||
case 149:
|
||||
return 4130017;
|
||||
case 133: //dagger
|
||||
return 4130014;
|
||||
case 147: //claw
|
||||
|
||||
@@ -67,7 +67,7 @@ function action(mode, type, selection) {
|
||||
} else {
|
||||
cm.gainMeso(-150);
|
||||
}
|
||||
cm.warp(104000000);
|
||||
cm.warp(104000000, 0);
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
72
scripts/npc/9000013.js
Normal file
72
scripts/npc/9000013.js
Normal file
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
This file is part of the OdinMS Maple Story Server
|
||||
Copyright (C) 2008 Patrick Huy <patrick.huy@frz.cc>
|
||||
Matthias Butz <matze@odinms.de>
|
||||
Jan Christian Meyer <vimes@odinms.de>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation version 3 as published by
|
||||
the Free Software Foundation. You may not use, modify or distribute
|
||||
this program under any other version of the GNU Affero General Public
|
||||
License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/* Author: Xterminator, Moogra
|
||||
NPC Name: Tony
|
||||
Map(s): Maple Road: Southperry (60000)
|
||||
Description: Event Assistant
|
||||
*/
|
||||
var status = 0;
|
||||
|
||||
function start() {
|
||||
cm.sendNext("Hey, I'm #bTony#k, if you're not busy and all ... then can I hang out with you? I heard there are people gathering up around here for an #revent#k but I don't want to go there by myself ... Well, do you want to go check it out with me?");
|
||||
}
|
||||
|
||||
function action(mode, type, selection) {
|
||||
if (mode < 1) {
|
||||
cm.dispose();
|
||||
} else {
|
||||
status++;
|
||||
if (status == 1) {
|
||||
cm.sendSimple("Huh? What kind of an event? Well, that's...\r\n#L0##e1.#n#b What kind of an event is it?#k#l\r\n#L1##e2.#n#b Explain the event game to me.#k#l\r\n#L2##e3.#n#b Alright, let's go!#k#l");
|
||||
} else if (status == 2) {
|
||||
if (selection == 0) {
|
||||
cm.sendNext("All this month, MapleStory Global is celebrating its 3rd anniversary! The GM's will be holding surprise GM Events throughout the event, so stay on your toes and make sure to participate in at least one of the events for great prizes!");
|
||||
cm.dispose();
|
||||
} else if (selection == 1) {
|
||||
cm.sendSimple("There are many games for this event. It will help you a lot to know how to play the game before you play it. Choose the one you want to know more of! #b\r\n#L0# Ola Ola#l\r\n#L1# MapleStory Maple Physical Fitness Test#l\r\n#L2# Snow Ball#l\r\n#L3# Coconut Harvest#l\r\n#L4# OX Quiz#l\r\n#L5# Treasure Hunt#l#k");
|
||||
} else if (selection == 2) {
|
||||
cm.sendNext("Either the event has not been started, you already have the #bScroll of Secrets#k, or you have already participated in this event within the last 24 hours. Please try again later!");
|
||||
cm.dispose();
|
||||
}
|
||||
} else if (status == 3) {
|
||||
if (selection == 0) {
|
||||
cm.sendNext("#b[Ola Ola]#k is a game where participants climb ladders to reach the top. Climb your way up and move to the next level by choosing the correct portal out of the numerous portals available. \r\n\r\nThe game consists of three levels, and the time limit is #b6 MINUTES#k. During [Ola Ola], you #bwon't be able to jump, teleport, haste, or boost your speed using potions or items#k. There are also trick portals that'll lead you to a strange place, so please be aware of those.");
|
||||
cm.dispose();
|
||||
} else if (selection == 1) {
|
||||
cm.sendNext("#b[MapleStory Physical Fitness Test] is a race through an obstacle course#k much like the Forest of Patience. You can win it by overcoming various obstacles and reach the final destination within the time limit. \r\n\r\nThe game consists of four levels, and the time limit is #b15 MINUTES#k. During [MapleStory Physical Fitness Test], you won't be able to use teleport or haste.");
|
||||
cm.dispose();
|
||||
} else if (selection == 2) {
|
||||
cm.sendNext("#b[Snowball]#k consists of two teams, Maple Team and Story Team, and the two teams duke it out to see #bwhich team rolled the snowball farther and bigger in a limited time#k. If the game cannot be decided within the time period, then the team that rolled the snowball farther wins. \r\n\r\nTo roll up the snow, attack it by pressing #bCtrl#k. All long-ranged attacks and skill-based attacks will not work here, #bonly the close-range attacks will work#k. \r\n\r\nIf a character touches the snowball, he/she'll be sent back to the starting point. Attack the snowman in front of the starting point to prevent the opposing team from rolling the snow forward. This is where a well-planned strategy works, as the team will decide whether to attack the snowball or the snowman.");
|
||||
cm.dispose();
|
||||
} else if (selection == 3) {
|
||||
cm.sendNext("#b[Coconut Harvest]#k consists of two teams, Maple Team and Story Team, and the two teams duke it out to see #bwhich team gathers up the most coconuts#k. The time limit is #b5 MINUTES#k. If the game ends in a tie, an additional 2 minutes will be awarded to determine the winner. If, for some reason, the score stays tied, then the game will end in a draw. \r\n\r\nAll long-range attacks and skill-based attacks will not work here, #bonly the close-range attacks will work#k. If you don't have a weapon for the close-range attacks, you can purchase them through an NPC within the event map. No matter the level of character, the weapon, or skills, all damages applied will be the same.\r\n\r\nBeware of the obstacles and traps within the map. If the character dies during the game, the character will be eliminated from the game. The player who strikes last before the coconut drops wins. Only the coconuts that hit the ground counts, which means the ones that do not fall off the tree, or the occasional explosion of the coconuts WILL NOT COUNT. There's also a hidden portal at one of the shells at the bottom of the map, so use that wisely!");
|
||||
cm.dispose();
|
||||
} else if (selection == 4) {
|
||||
cm.sendNext("#b[OX Quiz]#k is a game of MapleStory smarts through X's and O's. Once you join the game, turn on the minimap by pressing #bM#k to see where the X and O are. A total of #r10 questions#k will be given, and the character that answers them all correctly wins the game. \r\n\r\nOnce the question is given, use the ladder to enter the area where the correct answer may be, be it X or O. If the character does not choose an answer or is hanging on the ladder past the time limit, the character will be eliminated. Please hold your position until [CORRECT] is off the screen before moving on. To prevent cheating of any kind, all types of chatting will be turned off during the OX Quiz.");
|
||||
cm.dispose();
|
||||
} else if (selection == 5) {
|
||||
cm.sendNext("#b[Treasure Hunt]#k is a game in which your goal is to find the #btreasure scrolls#k that are hidden all over the map #rin 10 minutes#k. There will be a number of mysterious treasure chests hidden away, and once you break them apart, many items will surface from the chest. Your job is to pick out the treasure scroll from those items. \r\nTreasure chests can be destroyed using #bregular attacks#k, and once you have the treasure scroll in possession, you can trade it for the Scroll of Secrets through an NPC that's in charge of trading items. The trading NPC can be found on the Treasure Hunt map, but you can also trade your scroll through #bVikin#k of Lith Harbor.\r\n\r\nThis game has its share of hidden portals and hidden teleporting spots. To use them, press the #bup arrow#k at a certain spot, and you'll be teleported to a different place. Try jumping around, for you may also run into hidden stairs or ropes. There will also be a treasure chest that'll take you to a hidden spot, and a hidden chest that can only be found through the hidden portal, so try looking around.\r\n\r\nDuring the game of Treasure Hunt, all attack skills will be #rdisabled#k, so please break the treasure chest with the regular attack.");
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -169,9 +169,9 @@ function action(mode, type, selection) {
|
||||
else{
|
||||
if (mats instanceof Array) {
|
||||
for(var i = 0; complete && i < mats.length; i++)
|
||||
if (!cm.haveItem(mats[i], matQty[i]))
|
||||
if (!cm.haveItem(mats[i], matQty[i] * qty))
|
||||
complete = false;
|
||||
}else if (!cm.haveItem(mats, matQty))
|
||||
}else if (!cm.haveItem(mats, matQty * qty))
|
||||
complete = false;
|
||||
}
|
||||
if (!complete)
|
||||
|
||||
@@ -150,10 +150,10 @@ function action(mode, type, selection) {
|
||||
{
|
||||
if (mats instanceof Array) {
|
||||
for(var i = 0; complete && i < mats.length; i++)
|
||||
if (!cm.haveItem(mats[i], matQty[i]))
|
||||
if (!cm.haveItem(mats[i], matQty[i] * qty))
|
||||
complete = false;
|
||||
}
|
||||
else if (!cm.haveItem(mats, matQty))
|
||||
else if (!cm.haveItem(mats, matQty * qty))
|
||||
complete = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
//Perion Maple TV
|
||||
|
||||
function start() {
|
||||
action(1, 0, 0);
|
||||
}
|
||||
|
||||
function action(mode, type, selection) {
|
||||
cm.dispose(); //What the fuck
|
||||
}
|
||||
@@ -6,10 +6,6 @@
|
||||
Script: commands.js
|
||||
*/
|
||||
|
||||
/*
|
||||
Please, keep the commands organized!
|
||||
*/
|
||||
|
||||
var status;
|
||||
|
||||
var comm_lv6 = [];
|
||||
@@ -73,7 +69,7 @@ function writeSolaxiaCommandsLv5() { //Developer
|
||||
addCommand("debugreactors", "");
|
||||
addCommand("debugcoupons", "");
|
||||
addCommand("debugplayercoupons", "");
|
||||
addCommand("debugtimer", "");
|
||||
addCommand("debugtimer", "");
|
||||
}
|
||||
|
||||
function writeSolaxiaCommandsLv4() { //SuperGM
|
||||
@@ -92,7 +88,7 @@ function writeSolaxiaCommandsLv4() { //SuperGM
|
||||
addCommand("zakum", "");
|
||||
addCommand("horntail", "");
|
||||
addCommand("pinkbean", "");
|
||||
addCommand("pap", "");
|
||||
addCommand("pap", "");
|
||||
addCommand("pianus", "");
|
||||
addCommand("playernpc", "");
|
||||
addCommand("face", "");
|
||||
@@ -115,19 +111,20 @@ function writeSolaxiaCommandsLv3() { //GM
|
||||
addCommand("music", "");
|
||||
addCommand("monitor", "");
|
||||
addCommand("monitors", "");
|
||||
addCommand("ignore", "");
|
||||
addCommand("ignore", "");
|
||||
addCommand("ignored", "");
|
||||
addCommand("pos", "");
|
||||
addCommand("togglecoupon", "");
|
||||
addCommand("chat", "");
|
||||
addCommand("fame", "");
|
||||
addCommand("giftnx", ""); //Ronan, muda esse comando para "givenx", faz mais sentido. XD
|
||||
addCommand("vp", ""); //Ronan, muda esse comando para "givevp", faz mais sentido. XD
|
||||
addCommand("givenx", "");
|
||||
addCommand("givevp", "");
|
||||
addCommand("givems", "");
|
||||
addCommand("id", "");
|
||||
addCommand("expeds", "");
|
||||
addCommand("kill", "");
|
||||
addCommand("seed", "");
|
||||
addCommand("killall", "");
|
||||
addCommand("killall", "");
|
||||
addCommand("notice", "");
|
||||
addCommand("rip", "");
|
||||
addCommand("openportal", "");
|
||||
@@ -139,12 +136,12 @@ function writeSolaxiaCommandsLv3() { //GM
|
||||
addCommand("warpsnowball", "");
|
||||
addCommand("ban", "");
|
||||
addCommand("unban", "");
|
||||
addCommand("healmap", "");
|
||||
addCommand("healmap", "");
|
||||
addCommand("healperson", "");
|
||||
addCommand("hurt", "");
|
||||
addCommand("killmap", "");
|
||||
addCommand("night", "");
|
||||
addCommand("npc", "");
|
||||
addCommand("npc", "");
|
||||
}
|
||||
|
||||
function writeSolaxiaCommandsLv2() { //JrGM
|
||||
@@ -177,7 +174,7 @@ function writeSolaxiaCommandsLv2() { //JrGM
|
||||
addCommand("search", "");
|
||||
addCommand("jail", "");
|
||||
addCommand("unjail", "");
|
||||
addCommand("job", "");
|
||||
addCommand("job", "");
|
||||
addCommand("unbug", "");
|
||||
}
|
||||
|
||||
@@ -208,7 +205,7 @@ function writeSolaxiaCommandsLv0() { //Common
|
||||
addCommand("online", "");
|
||||
addCommand("gm", "");
|
||||
addCommand("bug", "");
|
||||
// addCommand("points", ""); //Caso for usar o comando @points, a linha ja foi adicionada, basta remover os //
|
||||
//addCommand("points", "");
|
||||
addCommand("joinevent", "");
|
||||
addCommand("leaveevent", "");
|
||||
addCommand("bosshp", "");
|
||||
@@ -246,7 +243,7 @@ function action(mode, type, selection) {
|
||||
|
||||
if (status == 0) {
|
||||
var sendStr = "There are all available commands for you:\r\n\r\n#b";
|
||||
for(var i = 0; i < cm.getPlayer().gmLevel(); i++) {
|
||||
for(var i = 0; i <= cm.getPlayer().gmLevel(); i++) {
|
||||
sendStr += "#L" + i + "#" + levels[i] + "#l\r\n";
|
||||
}
|
||||
|
||||
@@ -255,18 +252,21 @@ function action(mode, type, selection) {
|
||||
var lvComm, lvDesc;
|
||||
|
||||
if(selection == 0) {
|
||||
lvComm = comm_lv0;
|
||||
lvDesc = desc_lv0;
|
||||
} else if(selection == 1) {
|
||||
lvComm = comm_lv1;
|
||||
lvDesc = desc_lv1;
|
||||
} else if(selection == 1) {
|
||||
} else if(selection == 2) {
|
||||
lvComm = comm_lv2;
|
||||
lvDesc = desc_lv2;
|
||||
} else if(selection == 2) {
|
||||
} else if(selection == 3) {
|
||||
lvComm = comm_lv3;
|
||||
lvDesc = desc_lv3;
|
||||
} else if(selection == 3) {
|
||||
} else if(selection == 4) {
|
||||
lvComm = comm_lv4;
|
||||
lvDesc = desc_lv4;
|
||||
} else if(selection == 4) {
|
||||
} else if(selection == 5) {
|
||||
lvComm = comm_lv5;
|
||||
lvDesc = desc_lv5;
|
||||
} else {
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
function enter(pi) {
|
||||
pi.openNpc(1052125); //It is actually suppose to open the npc, because it leads to a boss map
|
||||
return true;
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
function enter(pi) {
|
||||
pi.playPortalSound();
|
||||
pi.warp(103040300,0);
|
||||
return true;
|
||||
pi.warp(103040300,1);
|
||||
return true;
|
||||
}
|
||||
@@ -1,4 +1,6 @@
|
||||
function enter(pi) {
|
||||
pi.warp(910320000, 2);
|
||||
//pi.warp(910320000, 2); event not implemented
|
||||
|
||||
pi.warp(103000103, 1);
|
||||
return true;
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
function enter(pi) {
|
||||
pi.openNpc(1052007);
|
||||
pi.warp(103000101, 3);
|
||||
return true;
|
||||
}
|
||||
@@ -8,7 +8,7 @@ function end(mode, type, selection) {
|
||||
} else {
|
||||
if(qm.haveItem(4031092, 10)) {
|
||||
if(qm.canHold(4031092)) {
|
||||
qm.sendOk("Well done! You brought back all the #t4031092# the were missing. Here, get this scroll as a token of my gratitude...");
|
||||
qm.sendOk("Well done! You brought back all the #t4031092# that were missing. Here, get this scroll as a token of my gratitude...");
|
||||
qm.gainItem(4031092, -10);
|
||||
|
||||
rnd = Math.floor(Math.random() * 4);
|
||||
|
||||
Reference in New Issue
Block a user