Files
sweetgum-server/scripts/npc/world0/2090004.js
ronancpl 972517e7b2 source
Source for my MapleSolaxiaV2 (v83 MapleStory).
2015-11-02 23:17:21 -02:00

146 lines
5.9 KiB
JavaScript

/* Author: aaroncsn(MapleSea Like)(Incomplete)
NPC Name: Mr. Do
Map(s): Mu Lung: Mu Lung(2500000000)
Description: Potion Creator
*/
importPackage(Packages.client);
var status = 0;
var selectedType = -1;
var selectedItem = -1;
var item;
var mats;
var matQty;
function start() {
status = -1;
action(1, 0, 0);
}
function action(mode, type, selection) {
if (mode == 1)
status++;
else
cm.dispose();
if (status == 0 && mode == 1) {
if (cm.isQuestActive(3821)) {
cm.forceCompleteQuest(3821);
cm.sendNext("Quest complete.");
cm.dispose();
return;
}
var selStr = "I am a man of many talents. Let me know what you'd like to do. #b"
var options = new Array("Make a medicine","Make a scroll","Donate medicine ingredients","I want to forfeit the restoration of Portrait Scroll...");
for (var i = 0; i < options.length; i++){
selStr += "\r\n#L" + i + "# " + options[i] + "#l";
}
cm.sendSimple(selStr);
} else if (status == 1 && mode == 1) {
selectedType = selection;
var selStr;
var items;
if (selectedType == 0){ //Make a medicine
cm.sendNext("If you want to make a medicine, you must study the Book on Herbal Medicine first. Nothing is more dangerous than practicing a medicine without proper knowledge.");
cm.dispose();
return;
}
else if(selectedType == 1){//Make a scroll
selStr = "What kind of scrolls are you interested in making?#b";
items = new Array("Scroll for One-Handed Sword for ATT", "Scroll for One-Handed Axe for ATT", "Scroll for One-Handed BW for ATT",
"Scroll for Dagger for ATT","Scroll for Wand for Magic Att.","Scroll for Staff for Magic Att.",
"Scroll for Two-handed Sword for ATT.","Scroll for Two-handed Axe for ATT","Scroll for Two-handed BW for ATT",
"Scroll for Spear for ATT","Scroll for Pole Arm for ATT","Scroll for Bow for ATT","Scroll for Crossbow for ATT ",
"Scroll for Claw for ATT","Knuckle Attack Power Scroll","Gun Attack Power Scroll#k");
}
else if(selectedType == 2){//Donate medicine ingredients
selStr = "So you wish to donate some medicine ingredients? This is great news! Donations will be accepted in the unit of #b100#k. The donator will receive a marble that enables one to make a scroll. Which of these would you like to donate? #b";
items = new Array("Acorn","Thimble","Needle Pouch","Necki Flower","Necki Swimming Cap","Broken Piece of Pot","Ginseng-Boiled Water","Straw Doll","Wooden Doll","Bellflower Root","100-Year-Old Bellflower",
"Old Paper","Yellow Belt","Broken Deer Horn","Red Belt","Peach Seed","Mr. Alli's Leather","Cat Doll","Mark of the Pirate","Captain Hat#k");
}
else {//I want to forfeit the restoration of Portrait Scroll...
cm.dispose();
return;
}
for (var i = 0; i < items.length; i++){
selStr += "\r\n#L" + i + "# " + items[i] + "#l";
}
cm.sendSimple(selStr);
}
else if (status == 2 && mode == 1){
selectedItem = selection;
if (selectedType == 1){ //Scrolls
var itemSet = new Array(2043000,2043100,2043200,2043300,2043700,2043800,2044000,2044100,2044200,2044300,2044400,2044500,2044600,2044700,2044800,2044900);
var matSet = new Array(new Array(4001124,4010001),new Array(4001124,4010001),new Array(4001124,4010001),new Array(4001124,4010001),new Array(4001124,4010001),
new Array(4001124,4010001),new Array(4001124,4010001),new Array(4001124,4010001),new Array(4001124,4010001),new Array(4001124,4010001),new Array(4001124,4010001),
new Array(4001124,4010001),new Array(4001124,4010001),new Array(4001124,4010001),new Array(4001124,4010001),new Array(4001124,4010001));
var matQtySet = new Array(new Array(100, 10),new Array(100, 10),new Array(100, 10),new Array(100, 10),new Array(100, 10),new Array(100, 10),new Array(100, 10),
new Array(100, 10),new Array(100, 10),new Array(100, 10),new Array(100, 10),new Array(100, 10),new Array(100, 10),new Array(100, 10),new Array(100, 10),
new Array(100, 10));
item = itemSet[selectedItem];
mats = matSet[selectedItem];
matQty = matQtySet[selectedItem];
var prompt = "You want to make #t" + item + "#? In order to make #t" + item +"#,You'll need #b100 Dr. Do's Marbles#k and #b10 Steel Ores.#k";
if (mats instanceof Array){
for(var i = 0; i < mats.length; i++){
prompt += "\r\n#i"+mats[i]+"# " + matQty[i] + " #t" + mats[i] + "#";
}
}
else {
prompt += "\r\n#i"+mats+"# " + matQty + " #t" + mats + "#What do you think? Would you like to make on right now?";
}
cm.sendYesNo(prompt);
}
else if(selectedType == 2){
status = 3;
var itemSet = new Array(4000276,4000277,4000278,4000279,4000280,4000291,4000292,4000286,4000287,4000293, 4000294,4000298,4000284,4000288,4000285,4000282,4000295,4000289,4000296,4031435);
item = itemSet[selectedItem];
var prompt = "Are you sure you want to donate #b100 #t " + item + "##k?";
cm.sendYesNo(prompt);
}
} else if (status == 3 && mode == 1) {
var complete = false;
if (mats instanceof Array) {
for(var i = 0; i < mats.length; i++) {
if (matQty[i] == 1) {
if (!cm.haveItem(mats[i])) {
complete = false;
}
}
else {
var count = 0;
var iter = cm.getInventory(4).listById(mats[i]).iterator();
while (iter.hasNext()) {
count += iter.next().getQuantity();
}
if (count < matQty[i])
complete = false;
}
}
}
else {
var count = 0;
var iter = cm.getInventory(4).listById(mats).iterator();
while (iter.hasNext()) {
count += iter.next().getQuantity();
}
if (count < matQty)
complete = false;
}
if (!complete || !cm.canHold(2044900))
cm.sendOk("Please make sure you are neither lacking ingredients or lacking space in your use inventory.");
else {
if (mats instanceof Array) {
for (var i = 0; i < mats.length; i++){
cm.gainItem(mats[i], -matQty[i]);
}
}
else
cm.gainItem(mats, -matQty);
}
cm.dispose();
}
}