Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Library] GMS-like NPC Library

Status
Not open for further replies.
Custom Title Activated
Loyal Member
Joined
Mar 17, 2009
Messages
1,911
Reaction score
538
Sparrow - [Library] GMS-like NPC Library - RaGEZONE Forums

The goal of this library is to get EVERY GMS NPC in this thread. I do hope everyone in this section contributes, even though I know this won't happen.
Please contact a moderator if you wish to have your script uploaded here

Please only post to add an NPC.

When adding an NPC please use this format. (If you don't mind)

NPC ID - NPC NAME
PHP:
function start() {
cm.sendOk("Please place your NPC code in here.");
cm.dispose();
}

Well, here goes (This library will order by NPC ID).

2007 - Maple Administrator
PHP:
/**
* @Author : iAkira
* @NPC : Maple Administrator
**/
function start() {
 cm.sendYesNo("Would you like to skip the tutorials and head straight to Lith Harbor?");
}

function action(m,t,s) {
 (m > 0 ? cm.warp(104000000) : cm.sendNext("Enjoy your trip."));
 cm.dispose();
}
1012005 - Cloy
PHP:
/*
 * @Author - Sparrow
 * @NPC - 1012005 - Cloy
 * @Map - 100000200 - Henesys Park
 */

var status;
var current;
var what = "What are the commands for "
var these = "These are the commands for "
var the = " The level mentioned next to the command shows the pet level required for it to respond.\r\n"
var level = "(level ";
var level1 = " ~ 30)";
var pets = ["Brown and Black Kitty?#l", "Brown Puppy?#l", "Pink and White Bunny?#l", "Mini Kargo?#l", "Rudolph, Dasher?#l", "Black Pig?#l", "Panda?#l", "Husky?#l", "Dino boy, Dino girl?#l", "Monkey?#l", "Turkey?#l", "White tiger?#l", "Penguin?#l", "Golden pig?#l", "Robot?#l", "Mini Yeti?#l", "Jr. Balrog?#l", "Baby Dragon?#l", "Green/Red/Blue Dragon?#l", "Black Dragon?#l", "Jr. Reaper?#l", "Porcupine?#l", "Snowman?#l", "Skunk?#l", "Baby Robo?#l", "Blue/Red/Green/Gold Robo?#l", "Gorilla Robo?#l", "Crystal Rudolph?#l", "White Duck?#l", "Sun Wu Kong?#l", "Kino?#l", "Pink Bean?#l", "Baby Tiger?#l", "Mir/Ruby?#l", "White Monkey?#l", "Toucan?#l", "Visitor Research Monkey?#l", "Pie?#l", "Cake?"];
var which = 4;

function start() {
    current = 0;
    status = -1;
    action(1,0,0);
}

function action(mode, type, selection) {
    if(mode == -1 && current > 0) {
        cm.dispose();
        return;
    } else {
        if(mode == 1) {
            status++;
        } else {
            status--;
        }
    }

    if (status == 0) {
        cm.sendNext("Hmm... are you raising one of my kinds by any chance? I perfected a spell that uses Water of Life to blow life into a doll. People call it the #bPet#k. If you have one with you, feel free to ask me questions.");

    } else if (status == 1) {
        cm.sendSimple("What do you want to know more of?#b\r\n#L1#Tell me more about Pets.#l\r\n#L2#How do I raise Pets?#l\r\n#L3#Do Pets die too?#l\r\n#L4#" + what + pets[0] + "\r\n#L5#" + what + pets[1] + "\r\n#L6#" + what + pets[2] + "\r\n#L7#" + what + pets[3] + "\r\n#L8#" + what + pets[4] + "\r\n#L9#" + what + pets[5] + "\r\n#L10#" + what + pets[6] + "\r\n#L11#" + what + pets[7] + "\r\n#L12#" + what + pets[8] + "\r\n#L13#" + what + pets[9] + "\r\n#L14#" + what + pets[10] + "\r\n#L15#" + what + pets[11] + " \r\n#L16#" + what + pets[12] + "\r\n#L17#" + what + pets[13] + "\r\n#L18#" + what + pets[14] + "\r\n#L19#" + what + pets[15] + "\r\n#L20#" + what + pets[16] + "\r\n#L21#" + what + pets[17] + "\r\n#L22#" + what + pets[18] + "\r\n#L23#" + what + pets[19] + "\r\n#L24#" + what + pets[20] + "\r\n#L25#" + what + pets[21] + "\r\n#L26#" + what + pets[22] + "\r\n#L27#" + what + pets[23] + "\r\n#L28#" + what + pets[24] + "\r\n#L29#" + what + pets[25] + "\r\n#L30#" + what + pets[26] + "\r\n#L31#" + what + pets[27] + "\r\n#L32#" + what + pets[28] + "\r\n#L33#" + what + pets[29] + "\r\n#L34#" + what + pets[30] + "\r\n#L35#" + what + pets[31] + "\r\n#L36#" + what + pets[32] + "\r\n#L37#" + what + pets[33] + "\r\n#L38#" + what + pets[34] + "\r\n#L39#" + what + pets[35] + "\r\n#L40#" + what + pets[36] + "\r\n#L41#" + what + pets[37] + "\r\n#L42#" + what + pets[38] + "\r\n#L43#" + what + pets[39] + "\r\n#L43#Please teach me about transferring pet ability points.#l#k");

    } else if (status == 2) {
        if (selection == 1) {
            current = 1;
            cm.sendNext("So you want to know more about Pets. Long ago I made a doll, sprayed Water of Life on it, and cast a spell on it to create a magical animal. I know it sounds unbelievable, but it's a doll that became an actual living thing. They understand and follow people very well.");
       } else if (selection == 2) {
            current = 2;
            cm.sendNext("Depending on the command you give, pets can love it, hate, and display other kinds of reactions to it. If you give the pet a command and it follows you well, your intimacy goes up. Double click on the pet and you can check the intimacy, level, fullness and etc...");
        } else if (selection == 3) {
            current = 3;
            cm.sendNext("Dying ... well, they aren't technically ALIVE per se, so I don't know if dying is the right term to use. They are dolls with my magical power and the power of Water of Life to become a live object. Ofcourse while it's alive, it's just a live animal...");
       } else if (selection == 4) {
            cm.sendNext(these + "#rBrown Kitty and Black Kitty#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bbad, no, badgirl, badboy#k" + level + "1" + level1 + "\r\n#bstupid, ihateyou, dummy#k" + level + "1" + level1 + "\r\n#biloveyou#k" + level + "1" + level1 + "\r\n#bpoop#k" + level + "1" + level1 + "\r\n#btalk, say, chat#k" + level + "10" + level1 + "\r\n#bcutie#k" + level + "10" + level1 + "\r\n#bup, stand, rise#k" + level + "20" + level1);
       } else if (selection == 5) {
            cm.sendNext(these + "#rBrown Puppy#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bbad, no, badgirl, badboy#k" + level + "1" + level1 + "\r\n#bstupid, ihate you, baddog, dummy#k" + level + "1" + level1 + "\r\n#biloveyou#k" + level + "1" + level1 + "\r\n#bpee#k" + level + "1" + level1 + "\r\n#btalk, say, chat#k" + level + "10" + level1 + "\r\n#bdown#k" + level + "10" + level1 + "\r\n#bup, stand, rise#k" + level + "20" + level1);
       } else if (selection == 6) {
            cm.sendNext(these + "#rPink Bunny and White Bunny#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bbad, no, badgirl, badboy#k" + level + "1" + level1 + "\r\n#bup, stand, rise#k" + level + "1" + level1 + "\r\n#biloveyou#k" + level + "1" + level1 + "\r\n#bpoop#k" + level + "1" + level1 + "\r\n#btalk, say, chat#k" + level + "10" + level1 + "\r\n#bhug#k" + level + "10" + level1 + "\r\n#bsleep, sleepy, gotobed#k" + level + "20" + level1);
       } else if (selection == 7) {
            cm.sendNext(these + "#rMini Kargo#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bbad, no, badgirl, badboy#k" + level + "1" + level1 + "\r\n#bup, stand, rise#k" + level + "1" + level1 + "\r\n#biloveyou#k" + level + "1" + level1 + "\r\n#bpee#k" + level + "1" + level1 + "\r\n#btalk, say, chat#k" + level + "10" + level1 + "\r\n#bthelook, charisma#k" + level + "10" + level1 + "\r\n#bdown#k" + level + "20" + level1 + "\r\n#bgoodboy, goodgirl#k" + level + "20" + level1);
       } else if (selection == 8) {
            cm.sendNext(these + "#rRudolph, Dasher#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bbad, no, badgirl, badboy#k" + level + "1" + level1 + "\r\n#bup, stand#k" + level + "1" + level1 + "\r\n#bstupid, ihateyou, dummy#k" + level + "1" + level1 + "\r\n#bmerryxmas, merrychristmas#k" + level + "1" + level1 + "\r\n#biloveyou#k" + level + "1" + level1 + "\r\n#bpoop#k" + level + "1" + level1 + "\r\n#btalk, say, chat#k" + level + "11" + level1 + "\r\n#blonely, alone#k" + level + "11" + level1 + "\r\n#bcutie#k" + level + "11" + level1 + "\r\n#bmush, go#k" + level + "21" + level1);
       } else if (selection == 9) {
            cm.sendNext(these + "#rBlack Pig#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bbad, no, badgirl, badboy#k" + level + "1" + level1 + "\r\n#bpoop#k" + level + "1" + level1 + "\r\n#biloveyou#k" + level + "1" + level1 + "\r\n#bhand#k" + level + "1" + level1 + "\r\n#bstupid, ihateyou, dummy#k" + level + "1" + level1 + "\r\n#btalk, chat, say#k" + level + "10" + level1 + "\r\n#bsmile#k" + level + "10" + level1 + "\r\n#bthelook, charisma#k" + level + "20" + level1);
       } else if (selection == 10) {
            cm.sendNext(these + "#rPanda#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bchill, relax#k" + level + "1" + level1 + "\r\n#bbad, no, badgirl, badboy#k" + level + "1" + level1 + "\r\n#bpoop#k" + level + "1" + level1 + "\r\n#biloveyou#k" + level + "1" + level1 + "\r\n#bup, stand, rise#k" + level + "1" + level1 + "\r\n#btalk, chat, say#k" + level + "10" + level1 + "\r\n#bletsplay#k" + level + "10" + level1 + "\r\n#bmeh, bleh#k" + level + "20" + level1 + "\r\n#bsleep#k" + level + "20" + level1);
       } else if (selection == 11) {
            cm.sendNext(these + "#rHusky#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bbad, no, badgirl, badboy#k" + level + "1" + level1 + "\r\n#bstupid, ihateyou, baddog, dummy#k" + level + "1" + level1 + "\r\n#bhand#k" + level + "1" + level1 + "\r\n#bpoop#k" + level + "1" + level1 + "\r\n#biloveyou#k" + level + "1" + level1 + "\r\n#bdown#k" + level + "10" + level1 + "\r\n#btalk, chat, say#k" + level + "10" + level1 + "\r\nb#up, stand, rise#k" + level + "20" + level1);
       } else if (selection == 12) {
            cm.sendNext(these + "#rDino boy, Dino girl#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bbad, no, badgirl, badboy#k" + level + "1" + level1 + "\r\n#biloveyou#k" + level + "1" + level1 + "\r\n#bpoop#k" + level + "1" + level1 + "\r\n#bsmile, laugh#k" + level + "1" + level1 + "\r\n#bstupid, ihateyou, dummy#k" + level + "1" + level1 + "\r\n#btalk, chat, say#k" + level + "10" + level1 + "\r\n#bcutie#k" + level + "10" + level1 + "\r\n#bsleep, nap, sleepy#k" + level + "20" + level1);
       } else if (selection == 13) {
            cm.sendNext(these + "#rMonkey#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#brest#k" + level + "1" + level1 + "\r\n#bbad, no, badboy, badgirl#k" + level + "1" + level1 + "\r\n#bpee#k" + level + "1" + level1 + "\r\n#biloveyou#k" + level + "1" + level1 + "\r\n#bup, stand#k" + level + "1" + level1 + "\r\n#btalk, chat, say#k" + level + "10" + level1 + "\r\n#bplay#k" + level + "10" + level1 + "\r\n#bmelong#k" + level + "10" + level1+ "\r\n#bsleep, gotobed, sleepy#k" + level + "10" + level1);
       } else if (selection == 14) {
            cm.sendNext(these + "#rTurkey#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bno, rudeboy, mischief#k" + level + "1" + level1 + "\r\n#bstupid#k" + level + "1" + level1 + "\r\n#biloveyou#k" + level + "1" + level1 + "\r\n#bup, stand#k" + level + "1" + level1 + "\r\n#btalk, chat, gobble#k" + level + "10" + level1 + "\r\n#byes, goodboy#k" + level + "10" + level1 + "\r\n#bsleepy, birdnap, doze#k" + level + "20" + level1 + "\r\n#bbirdeye, thanksgiving, fly, friedbird, imhungry#k(level 30)");
       } else if (selection == 15) {
            cm.sendNext(these + "#rWhite Tiger#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bbad, no, badboy, badgirl#k" + level + "1" + level1 + "\r\n#biloveyou#k" + level + "1" + level1 + "\r\n#bpoop#k" + level + "1" + level1 + "\r\n#brest, chill#k" + level + "1" + level1 + "\r\n#bstupid, ihateyou, dummy#k" + level + "1" + level1 + "\r\n#btalk, chat, say#k" + level + "10" + level1 + "\r\n#bactsad, sadlook#k" + level + "10" + level1 + "\r\n#bwait#k" + level + "20" + level1);
       } else if (selection == 16) {
            cm.sendNext(these + "#rPenguin#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bbad, no, badboy, badgirl#k" + level + "1" + level1 + "\r\n#bpoop#k" + level + "1" + level1 + "\r\n#bup, stand, rise#k" + level + "1" + level1 + "\r\n#biloveyou#k" + level + "1" + level1 + "\r\n#btalk, chat, say#k" + level + "10" + level1 + "\r\n#bhug, hugme#k" + level + "10" + level1 + "\r\n#bwing, hand#k" + level + "10" + level1 + "\r\n#sleep#k" + level + "20" + level1+ "\r\n#bkiss, smooch, muah#k" + level + "20" + level1 + "\r\n#bfly#k" + level + "20" + level1 + "\r\n#bcute, adorable#k" + level + "20" + level1);
       } else if (selection == 17) {
            cm.sendNext(these + "#rGolden Pig#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bbad, no, badboy, badgirl#k" + level + "1" + level1 + "\r\n#bpoop#k" + level + "1" + level1 + "\r\n#biloveyou#k" + level + "1" + level1 + "\r\n#btalk, chat, say#k" + level + "11" + level1 + "\r\n#bloveme, hugme#k" + level + "11" + level1 + "\r\n#bsleep, sleepy, gotobed#k" + level + "21" + level1 + "\r\n#bignore / impressed /outofhere#k" + level + "21" + level1 + "\r\n#broll, showmethemoney#k" + level + "21" + level1);
       } else if (selection == 18) {
            cm.sendNext(these + "#rRobot#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bup, stand, rise#k" + level + "1" + level1 + "\r\n#bstupid, ihateyou, dummy#k" + level + "1" + level1 + "\r\n#bbad, no, badgirl, badboy#k" + level + "1" + level1 + "\r\n#battack, charge#k" + level + "1" + level1 + "\r\n#biloveyou#k" + level + "1" + level1 + "\r\n#bgood, thelook, charisma#k" + level + "11" + level1 + "\r\n#bspeak, talk, chat, say#k" + level + "11" + level1 + "\r\n#bdisguise, change, transform#k" + level + "11");
       } else if (selection == 19) {
            cm.sendNext(these + "#rMini Yeti#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bbad, no, badboy, badgirl#k" + level + "1" + level1 + "\r\n#bpoop#k" + level + "1" + level1 + "\r\n#bdance, boogie, shakeit#k" + level + "1" + level1 + "\r\n#bcute, cutie, pretty, adorable#k" + level + "1" + level1 + "\r\n#biloveyou, likeyou, mylove#k" + level + "1" + level1 + "\r\n#btalk, chat, say#k" + level + "11" + level1 + "\r\n#bsleep, nap, sleepy, gotobed#k" + level + "11" + level1);
       } else if (selection == 20) {
            cm.sendNext(these + "#rJr. Balrog#k." + the + "#bliedown#k" + level + "1" + level1 + "\r\n#bno|bad|badgirl|badboy#k" + level + "1" + level1 + "\r\n#biloveyou|mylove|likeyou#k" + level + "1" + level1 + "\r\n#bcute|cutie|pretty|adoreable#k" + level + "1" + level1 + "\r\n#bpoop#k" + level + "1" + level1 + "\r\n#bsmirk|crooked|laugh#k" + level + "1" + level1 + "\r\n#bmelong#k" + level + "11" + level1 + "\r\n#bgood|thelook|charisma#k" + level + "11" + level1 + "\r\n#bspeak|talk|chat|say#k" + level + "11" + level1 + "\r\n#bspeak|talk|chat|say#k" + level + "11" + level1 + "\r\n#bsleep|nap|sleepy#k" + level + "11" + level1 + "\r\n#bgas#k" + level + "21" + level1);
       } else if (selection == 21) {
            cm.sendNext(these + "#rBaby Dragon#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bno|bad|badgirl|badboyl#k" + level + "1" + level1 + "\r\n#biloveyou|loveyou#k" + level + "1" + level1 + "\r\n#bpoop#k" + level + "1" + level1 + "\r\n#bstupid|ihateyou|dummy#k" + level + "1" + level1 + "\r\n#bcutie#k" + level + "11" + level1 + "\r\n#btalk|chat|say#k" + level + "11" + level1 + "\r\n#bsleep|sleepy|gotobed#k" + level + "11" + level1);
       } else if (selection == 22) {
            cm.sendNext(these + "#rGreen/Red/Blue Dragon#k." + the + "#bsit#k" + level + "15" + level1 + "\r\n#bno|bad|badgirl|badboyl#k" + level + "15" + level1 + "\r\n#biloveyou|loveyou#k" + level + "15" + level1 + "\r\n#bpoop#k" + level + "15" + level1 + "\r\n#bstupid|ihateyou|dummy#k" + level + "15" + level1 + "\r\n#btalk|chat|say#k" + level + "15" + level1 + "\r\n#bsleep|sleepy|gotobed#k" + level + "15" + level1 + "\r\n#bchange#k" + level + "21" + level1);
       } else if (selection == 23) {
            cm.sendNext(these + "#rBlack Dragon#k." + the + "#bsit#k" + level + "15" + level1 + "\r\n#bno|bad|badgirl|badboyl#k" + level + "15" + level1 + "\r\n#biloveyou|loveyou#k" + level + "15" + level1 + "\r\n#bpoop#k" + level + "15" + level1 + "\r\n#bstupid|ihateyou|dummy#k" + level + "15" + level1 + "\r\n#btalk|chat|say#k" + level + "15" + level1 + "\r\n#bsleep|sleepy|gotobed#k" + level + "15" + level1 + "\r\n#bcutie, change#k" + level + "21" + level1);
       } else if (selection == 24) {
            cm.sendNext(these + "#rJr. Reaper#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bno|bad|badgirl|badboyl#k" + level + "1" + level1 + "\r\n#bplaydead, poop#k" + level + "1" + level1 + "\r\n#btalk|chat|say#k" + level + "1" + level1 + "\r\n#biloveyou, hug#k" + level + "1" + level1 + "\r\n#bsmellmyfeet, rockout, boo#k" + level + "1" + level1 + "\r\n#btrickortreat#k" + level + "1" + level1 + "\r\n#bmonstermash#k" + level + "1" + level1);
       } else if (selection == 25) {
            cm.sendNext(these + "#rPorcupine#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bno|bad|badgirl|badboyl#k" + level + "1" + level1 + "\r\n#bkiloveyou hug goodboy#k" + level + "1" + level1 + "\r\n#btalk|chat|say#k" + level + "1" + level1 + "\r\n#bcushion sleep knit poop#k" + level + "1" + level1 + "\r\n#bcomb beach#k" + level + "10" + level1 + "\r\n#btreeninja#k" + level + "20" + level1 + "\r\n#bdart#k" + level + "20" + level1);
       } else if (selection == 26) {
            cm.sendNext(these + "#rSnowman#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bstupid,ihateyou,dummy#k" + level + "1" + level1 + "\r\n#bloveyou,mylove,ilikeyou#k" + level + "1" + level1 + "\r\n#bmerrychristmas#k" + level + "1" + level1 + "\r\n#bcutie,adorable,cute,pretty#k" + level + "1" + level1 + "\r\n#bcomb beach/bad, no, badgirl, badboy#k" + level + "1" + level1 + "\r\n#btalk,chat,say/sleep,sleepy,gotobed#k" + level + "10" + level1 + "\r\n#bchang#k" + level + "20" + level1);
       } else if (selection == 27) {
            cm.sendNext(these + "#rSkunk#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bbad/no/badgirl/badboy#k" + level + "1" + level1 + "\r\n#brestandrelax, poop#k" + level + "1" + level1 + "\r\n#btalk/chat/say, iloveyou#k" + level + "1" + level1 + "\r\n#bsnuggle/hug, sleep, goodboy#k" + level + "1" + level1 + "\r\n#bfatty, blind, badbreath#k" + level + "10" + level1 + "\r\n#bsitup, bringthefunk#k" + level + "20" + level1);
       } else if (selection == 28) {
            cm.sendNext(these + "#rBaby Robo#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bsleep|sleepy|gotobed#k" + level + "1" + level1 + "\r\n#bbad|no|badgirl|badboy#k" + level + "1" + level1 + "\r\n#biloveyou|mylove|likeyou#k" + level + "1" + level1 + "\r\n#bstupid|ihateyou|dummy#k" + level + "1" + level1 + "\r\n#bfire|attack#k" + level + "10" + level1 + "\r\n#btalk|chat|say#k" + level + "10" + level1 + "\r\n#bchange|go#k" + level + "15" + level1);
       } else if (selection == 29) {
            cm.sendNext(these + "#rBlue/Red/Green/Gold Robo#k." + the + "#bsit#k" + level + "15" + level1 + "\r\n#bstand|up#k" + level + "15" + level1 + "\r\n#bstupid|ihateyou|dummy#k" + level + "15" + level1 + "\r\n#bbad|no|badgirl|badboy#k" + level + "15" + level1 + "\r\n#bhand#k" + level + "15" + level1 + "\r\n#biloveyou|mylove|ilikeyou#k" + level + "15" + level1 + "\r\n#btalk|chat|say#k" + level + "15" + level1 + "\r\n#bfire|attack#k" + level + "15" + level1 + "\r\n#bsleep|sleepy|gotobed#k" + level + "15" + level1);
       } else if (selection == 30) {
            cm.sendNext(these + "#rGorilla Robo#k." + the + "#bsit#k" + level + "15" + level1 + "\r\n#bstupid|ihateyou|dummy#k" + level + "15" + level1 + "\r\n#bbad|no|badgirl|badboy#k" + level + "15" + level1 + "\r\n#biloveyou|mylove|ilikeyou#k" + level + "15" + level1 + "\r\n#bfie|attack#k" + level + "15" + level1 + "\r\n#bsleep|sleepy|gotobed#k" + level + "15" + level1 + "\r\n#btalk|chat|say#k" + level + "15" + level1 + "\r\n#bchange|go#k" + level + "15" + level1);
       } else if (selection == 31) {
            cm.sendNext(these + "#rCrystal Rudolph#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bno|badgirl|badboy|bad#k" + level + "1" + level1 + "\r\n#bbleh|joke#k" + level + "1" + level1 + "\r\n#bdisguise|transform#k" + level + "1" + level1 + "\r\n#bawesome|feelgood|lalala#k" + level + "1" + level1 + "\r\n#bloveyou|heybabe#k" + level + "1" + level1 + "\r\n#btalk|chat|say#k" + level + "10" + level1 + "\r\n#bsleep|sleepy|nap|gotobed#k" + level + "10" + level1);
       } else if (selection == 32) {
            cm.sendNext(these + "#rWhite Duck#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bno|badgirl|badboy|bad#k" + level + "1" + level1 + "\r\n#bup|stand#k" + level + "1" + level1 + "\r\n#bpoop#k" + level + "1" + level1 + "\r\n#btalk|chat|say#k" + level + "1" + level1 + "\r\n#bhug#k" + level + "1" + level1 + "\r\n#bloveyou#k" + level + "1" + level1 + "\r\n#bcutie#k" + level + "1" + level1 + "\r\n#bsleep#k" + level + "1" + level1 + "\r\n#bsmarty#k" + level + "10" + level1 + "\r\n#bdance#k" + level + "20" + level1 + "\r\n#bswan#k" + level + "20" + level1);
       } else if (selection == 33) {
            cm.sendNext(these + "#rSun Wu Kong#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bpoop#k" + level + "1" + level1 + "\r\n#bno|bad|badgirl|badboy#k" + level + "1" + level1 + "\r\n#bcutie|adorable|cute|pretty#k" + level + "1" + level1 + "\r\n#biloveyou|loveyou|luvyou|ilikeyou|mylove#k" + level + "1" + level1 + "\r\n#btalk|say|chat#k" + level + "10" + level1 + "\r\n#bsleep|sleepy|gotobed#k" + level + "10" + level1 + "\r\n#btransform#k" + level + "20" + level1);
       } else if (selection == 34) {
            cm.sendNext(these + "#rKino#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bpoop#k" + level + "1" + level1 + "\r\n#bno|bad|badgirl|badboy#k" + level + "1" + level1 + "\r\n#bsleep|nap|sleepy|gotobed#k" + level + "1" + level1 + "\r\n#btalk|say|chat#k" + level + "10" + level1 + "\r\n#biloveyou|mylove|likeyou#k" + level + "10" + level1 + "\r\n#bmeh|bleh#k" + level + "10" + level1 + "\r\n#bdisguise|change|transform#k" + level + "20" + level1);
       } else if (selection == 35) {
            cm.sendNext(these + "#rPink Bean#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bbad|no|badgirl|badboy|poop#k" + level + "1" + level1 + "\r\n#blazy | dummy | ihateyou | talk | chat | say | mumble | iloveyou | hugme | loveyou#k" + level + "1" + level1 + "\r\n#bshake | music | charm | bleh | joke | boo#k" + level + "20" + level1 + "\r\n#bkongkong#k(level 30)");
       } else if (selection == 36) {
            cm.sendNext(these + "#rBaby Tiger#k." + the + "#bHungry?|Food?#k" + level + "1" + level1 + "\r\n#bDon't!|No|Scold|Stop it!#k" + level + "1" + level1 + "\r\n#bPoo|Poop|Focus#k" + level + "1" + level1 + "\r\n#bGood|Impressive|Proud#k" + level + "15" + level1 + "\r\n#bSleep|Sleepy|Doze|Tired#k" + level + "1" + level1 + "\r\n#bGo away|Stupid|Grawl|Angry#k" + level + "1" + level1 + "\r\n#bWhat's this?|Curious?#k" + level + "1" + level1 + "\r\n#bSay something!|Tell something!|Sing something!#k" + level + "1" + level1 + "\r\n#bLove you|Like you|Honey#k" + level + "15" + level1);
       } else if (selection == 37) {
            cm.sendNext(these + "#rMir/Ruby#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bbad|no#k" + level + "1" + level1 + "\r\n#bloveyou#k" + level + "1" + level1 + "\r\n#btalk|chat|say#k" + level + "1" + level1 + "\r\n#bsleep#k" + level + "1" + level1 + "\r\n#beat#k" + level + "1" + level1 + "\r\n#bfire#k" + level + "10" + level1 + "\r\n#bpoop#k" + level + "10" + level1 + "\r\n#bfly#k" + level + "20" + level1);
       } else if (selection == 38) {
            cm.sendNext(these + "#rWhite Monkey#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#brest#k" + level + "1" + level1 + "\r\n#bbad, no, badboy, badgirl#k" + level + "1" + level1 + "\r\n#bpee#k" + level + "1" + level1 + "\r\n#biloveyou#k" + level + "1" + level1 + "\r\n#bup, stand#k" + level + "1" + level1 + "\r\n#btalk, chat, say#k" + level + "10" + level1 + "\r\n#bplay#k" + level + "10" + level1 + "\r\n#bsleep, gotobed, sleepy#k" + level + "20" + level1);
       } else if (selection == 39) {
            cm.sendNext(these + "#rToucan#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bbad, no, badboy, badgirl#k" + level + "1" + level1 + "\r\n#biloveyou#k" + level + "1" + level1 + "\r\n#battack#k" + level + "20" + level1 + "\r\n#btalk, chat, say#k" + level + "10" + level1 + "\r\n#bwhistle#k" + level + "20" + level1 + "\r\n#bsleep, gotobed, sleepy#k" + level + "10" + level1);
       } else if (selection == 40) {
            cm.sendNext(these + "#rVisitor Research Monkey#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#brest#k" + level + "1" + level1 + "\r\n#bbad, no, badboy, badgirl#k" + level + "1" + level1 + "\r\n#bpoop#k" + level + "1" + level1 + "\r\n#biloveyou#k" + level + "1" + level1 + "\r\n#bup, stand#k" + level + "1" + level1 + "\r\n#btalk, chat, stay#k" + level + "10" + level1 + "\r\n#bplay#k" + level + "10" + level1 + "\r\n#bsleep, gotobed, sleepy#k" + level + "20" + level1);
       } else if (selection == 41) {
            cm.sendNext(these + "#rPie#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bsleep#k" + level + "1" + level1 + "\r\n#bbad, no#k" + level + "1" + level1 + "\r\n#btalk, chat, say#k" + level + "1" + level1 + "\r\n#biloveyou#k" + level + "1" + level1 + "\r\n#beat#k" + level + "1" + level1 + "\r\n#bdance#k" + level + "10" + level1 + "\r\n#bpoop#k" + level + "20" + level1 + "\r\n#bbig#k" + level + "20" + level1);
       } else if (selection == 42) {
            cm.sendNext(these + "#rCake#k." + the + "#bsit#k" + level + "1" + level1 + "\r\n#bsleep#k" + level + "1" + level1 + "\r\n#bbad, no#k" + level + "1" + level1 + "\r\n#btalk, chat, say#k" + level + "1" + level1 + "\r\n#biloveyou#k" + level + "1" + level1 + "\r\n#beat#k" + level + "1" + level1 + "\r\n#bdance#k" + level + "10" + level1 + "\r\n#bpoop#k" + level + "20" + level1 + "\r\n#bbig#k" + level + "20" + level1);
       } else if (selection == 43) {
            current = 4;
            cm.sendNext("In order to transfer the pet ability points, closeness and level, Pet AP Reset SScroll is required. If you take this scroll to Mar the Fairy in Ellina, she will transfer the level and closeness of the pet to another one. I am especially giving it to you because I can feel your heart for your pet. However, I can't give this out for free. I can give you this book for 250,000 mesos. Oh, I almost forgot! Even if you have this book, it is no use if you do not have a new pet to tranfer the Ability points."); //Yes I know about 'Tranfer' (This is 100% GMS-Like)
       }


    } else if (status == 3) {
        if (current == 1) {
            cm.sendNextPrev("But Water of Life only comes out little at the very bottom of the World Tree, so I can't give them too much time in life ... I know it's very unfortunate ... but even if it becomes a doll again I can always bring life back into it so be good to it while you're with it.");
        } else if (current == 2) {
            cm.sendNextPrev("Talk to the pet, pay attention to it and its intimacy level will go up and eventually his overall level will go up too. As the intimacy level rises, the pet's overall level will rise soon after. As the overall level rises, one day the pet may even talk like a person a little bit, so try hard raising it. Of course it won't be easy doing so...");
        } else if (current == 3) {
            cm.sendNextPrev("After some time ... that's correct, they stop moving. They just turn back to being a doll, after the effect of magic dies down and Water of Life dries out. But that doesn't mean it's stopped forever, because one you por Water of Life over, it's going to be back alive.");
         } else if (current == 4) {
            cm.sendYesno("250,000 mesos will be deducted. Do you really want to buy?");
        }

    } else if (status == 4) {
        if (current == 1) {
            cm.sendPrev("Oh yeah, they'll react when you give them special commands. You can scold them, love them ... it all depends on how you take care of them. They are afraid to leave their masters so be nice to them, show them love. They can get sad and lonely fast ...");
       } else if (current == 2) {
            cm.sendNextPrev("It may be a live doll but they also have life so they can feel hunger too. #bFulless#k shows the level of hunger the pet's in. 100 is the max, and the lower it gets, it means that the pet is getting hungrier. After a while, it won't even follow your command and be on the offensive, so watch out over that.");
       } else if (current == 3) {
            cm.sendPrev("Even if it someday moves again, it's sad to see them stop altogether. Please be nice to them while they are alive and moving. Feed them well, too. Isn't it nice to know that there's something alive that follows and listens to you only?");
       } else if (current == 4) {
           if (!cm.canHold(4160011) || cm.getPlayer().getMeso() < 250000) {
               cm.sendOk("Please check if your inventory has empty slot or you don't have enough meso.");
               cm.dispose();
           } else {
               cm.gainMeso(-250000, true);
               cm.gainItem(4160011);
           }
       }

    } else if (status == 5) {
        if (current == 2) {
            cm.sendNextPrev("Oh yes! Pets can't eat the normal human food. Instead my disciple #bDoofus#k sells #bPet Food#k at the Henesys market so if you need food for your pet, find Henesys. It'll be a good idea to buy the food in advance and feed the pet before it gets really hungry.");
            }
    } else if (status == 6) {
        if (current == 2) {
            cm.sendPrev("Oh, and if you don't feed the pet for a long perion of time, it goes back home by itself. You can take it out of its home and feed it but it's not really good for the pet's health. so try feeding him on a regular basis so it doesn't go down to that level, alright? I think this will do.");
        } 
    }
}
1012008 - Casey
PHP:
/*
 * @Author - Sparrow
 * @NPC - 1012008 - Casey the Game Master
 * @Map - 100000203 - Henesys Game Park
 */

var status;
var current;
var omok =       [4080000, 4080001, 4080002, 4080003, 4080004, 4080005];
var omok1piece = [4030000, 4030000, 4030000, 4030010, 4030011, 4030011];
var omok2piece = [4030001, 4030010, 4030011, 4030001, 4030010, 4030001];
var omokamount = 99;
var text = "The set also differs based on what kind of pieces you want to use for the game. Which set would you like to make?"

function start() {
    current = 0;
    status = -1;
    action(1,0,0);
}

function action(mode, type, selection) {
    if(mode == -1 && current > 0) {
        cm.dispose();
        return;
    } else {
        if(mode == 1) { 
            status++;
        } else {
            status--;
        }
    }

    if (status == 0) {
        cm.sendSimple("Hey, you look like you need a breather. You should be enjoying the life, just like I am. Well, if you have a couple of items, I can trade you for an item you can play minigames with. Now... what can I do for you?#b\r\n#L0#Create a minigame item#l\r\n#L1#Explain to me what the minigames are about#l#k");
      
    } else if (status == 1) {
        if (selection == 0) {
            cm.sendSimple("You want to make the minigame item? Minigames aren't something you can just go ahead and play right off the bat. For each minigame, you'll need a specific set of items. Which minigame it em do you want to make?#b\r\n#L4#Omok Set#l\r\n#L5#A Set of Match Cards#l#k");
        } else if (selection == 1) {
            cm.sendSimple("You want to learn more about the minigames? Awesome! Ask me anything. Which minigame do you want to know more about?#b\r\n#L2#Omok#l\r\n#L3#Match Cards#l#k");
        }

    } else if (status == 2) {
        if (selection == 2) {
            current = 1;
            cm.sendNext("Here are the rules for Omok, so listen carefully. Omok is a game in which you and your opponent take turns laying a piece on the table until someone finds a way to lay 5 consecutive pieces in a line, be it horizontal, diagonal, or vertical. For starters, only the ones with an #bOmok Set#k can open a game room.");
        } else if (selection == 3) {
            current = 2;
            cm.sendNext("Here are the rules for Match Cards, so listen carefully. As the name suggests, Match Cards is simply finding a matching pair among the number of cards laid on the table. When all the matching pairs are found, then the person with more matching pairs will win the game. Just like Omok, you'll need #bA set of Match Cards#k to open the game room.");

        } else if (selection == 4) {
            current = 3;
            cm.sendNext("You want to play #bOmok#k, huh? To play it, you'll need the Omok Set. Only the ones with that item can open the room for a game of Omok, and you can play this game almost anywhere except for a few places at the market place.");

        } else if (selection == 5) {
            current = 4;
            if (cm.haveItem(4030012, 15)) {
                cm.gainItem(4030012, -15);
                cm.gainItem(4080100, 1);
            } else {
                cm.sendNext("You want #bA set of Match Cards#k? Hmm...to make A set of Match Cards, you'll need some #bMonster Cards#k. Monster Card can be obtained by taking out the monsters all around the island. Collect 15 Monster Cards and you can make a set of A set of Match Cards."); //Lmfao a set of A set xD
                cm.dispose();
            }
        }

         
    } else if (status == 3) {
        if (current == 1) {
            cm.sendNextPrev("Every game of Omok will cost you #r100 mesos#k. Even if you don't have an #bOmok Set#k, you can enter the room and play. However, if you don't possess 100 mesos, then you won't be allowed to enter in the room at all. The person opening the game room also needs 100 mesos to open the room (or else there's no game). If you run out of mesos during the game, then you're automatically kicked out of the room!");
        } else if (current == 2) {
            cm.sendNextPrev("Every game of Match Cards will cost you #r100 mesos#k. Even if you don't have #bA set of Match Cards#k, you can enter the room and play. However, if you don't possess 100 mesos, then you won't be allowed to enter in the room at all. The person opening the game room also needs 100 mesos to open the room (or else there's no game). If you run out of mesos during the game, then you're automatically kicked out of the room!");

        } else if (current == 3) {
            for (var i = 0; i < omok.length; i++)
                text += "\r\n#L"+i+"##b#t"+omok[i]+"##k#l";
            cm.sendSimple(text);
        }

    } else if (status == 4) {
        if (current == 1 || current == 2) {
            cm.sendNextPrev("Enter the room, and when you're ready to play, click on #bReady#k.\r\nOnce the visitor clicks on #bReady#k, the room owner can press #bStart#k to begin the game. If an unwanted visitor walks in, and you don't want to play with that person, the room owner has the right to kick the visitor out of the room. There will be a square box with x written on the right of that person. Click on that for a cold goodbye, okay?"); //Oh yeah, because people WALK in Omok Rooms.
        }
        else if (current == 3) {
            if (cm.haveItem(omok1piece[selection], 99) && cm.haveItem(omok2piece[selection], 99) && cm.haveItem(4030009, 1)) {
                cm.gainItem(omok1piece[selection], -omokamount);
                cm.gainItem(omok2piece[selection], -omokamount);
                cm.gainItem(4030009, -1);
                cm.gainItem(omok[selection], 1);
                cm.dispose();
            } else {
                cm.sendNext("#bYou want to make #t" + omok[selection] + "##k? Hmm...get me the materials, and I can do just that. Listen carefully, the materials you need will be: #r" + omokamount + " #t" + omok1piece[selection] + "#, " + omokamount + " #t" + omok2piece[selection] + "#, 1 #t" + 4030009 + "##k. The monsters will probrably drop those every once in a while...");
                cm.dispose();
            }
        }

    } else if (status == 5) {
        if (current == 1) {
            cm.sendNextPrev("When the first fame starts, #bthe room owner goes first#k. Beward that you'll be given a time limit, and you may lose your turn if you don't make your move on time. Normally, 3 x 3 is not allowed, but if there comes a point that it's absolutely necessary to put your piece there or face ending the game, then you can put it there. 3 x 3 is allowed as the last line of defense! Oh, and it won't count if it's #r6 or 7 straight#k. Only 5!");
        } else if (current == 2)  {
            cm.sendNextPrev("Oh, and unlike Omok, when you create the game room for Match Cards, you'll need to set your game on the number of cards you'll use for the game. There are 3 modes avaliable, 3x4, 4x5, and 5x6, which will require 12, 20, and 30 cards respectively. Remember that you won't beable to change it up once the room is open, so if you really wish to change it up, you may have to close the room and open another one.");
        }

    } else if (status == 6) {
        if (current == 1) {
            cm.sendNextPrev("If you know your back is against the wall, you can request a #bRedo#k. If the opponent accepts your request, then you and your opponent's last moves will cancel out. If you ever feel the need to go to the bathroom, or take an extended break, you can request a #btie#k. The game will end in a tie if the opponent accepts the request. Tip: this may be a good way to keep your friendships in tact.");
        } else if (current == 2) {
            cm.sendNextPrev("When the first game starts, #bthe room owner goes first.#k Beware that you'll be given a time limit, and you may lose your turn if you don't make your move on time. When you find a matching pair on your turn, you'll get to keep your turn, as long as you keep finding a pair of matching cards. Use your memorizing skills to make a streak.");
        }
        
    } else if (status == 7) {
        if (current == 1) {
            cm.sendPrev("When the next game starts, the loser will go first. Also, no one is allowed to leave in the middle of a game. If you do, you may need to request either a #bforfeit or tie#k. (Of course, if you request a forfeit, you'll lose the game.) And if you click on 'Leave' in the middle of the game and call to leave after the game, you'll leave the room right after the game is over. This will be a much more useful way to leave.");
        } else if (current == 2) {
            cm.sendNextPrev("If you and your opponent have the same number of matched pairs, then whoever had a longer streak of matched pairs will win. If you ever feel the need to go to the bathroom, or take an extended break, you can request a #btie#k. The game will end in a tie if the opponent accepts the request. Tip: this may be a good way to keep your friendships in tact.");
        }
    } else if (status == 8) {
        if (current == 2) {
            cm.sendPrev("When the next game starts, the loser will go first. Also, no one is allowed to leave in the middle of a game. If you do, you may need to request either a #bforfeit or tie#k. (Of course, if you request a forfeit, you'll lose the game.) And if you click on 'Leave' in the middle of the game and call to leave after the game, you'll leave the room right after the game is over. This will be a much more useful way to leave.");
        }
    }
}
1100003 - Kiriru
PHP:
/**
----------------------------------------------------------------------------------
	SkyFerry Between Ereve and Ellinia.
-------Credits:-------------------------------------------------------------------
	*MapleSanta 
	*Information
----------------------------------------------------------------------------------
**/

importPackage(Packages.tools);

var menu = new Array("Ereve","Ellinia");
var cost = new Array(1000,1000);
var Skyferry;
var display = "";
var method;

function start() {
	status = -1;
	Skyferry = cm.getEventManager("Skyferry");
	action(1, 0, 0);
}

function action(mode, type, selection) {
	if(mode == -1) {
		cm.dispose();
		return;
	} else {
		if(mode == 0 && status == 0) {
			cm.dispose();
			return;
		} else if(mode == 0) {
			cm.sendNext("If you're not interested, then oh well...");
			cm.dispose();
			return;
		}
		status++;
		if (status == 0) {
			for(var i=0; i < menu.length; i++) {
				if(cm.getChar().getMapId() == 101000400 && i < 1) {
					display += "\r\n#L"+i+"##b"+menu[i]+"("+cost[i]+" mesos)#k";
				} else if(cm.getChar().getMapId() == 130000210 && i > 0 && i < 3) {
					display += "\r\n#L"+i+"##b"+menu[i]+"("+cost[i]+" mesos)#k";
				}
			}
			if(cm.getChar().getMapId() == 101000400) {
				cm.sendSimple("Eh... So... Um... Are you trying to leave Victoria to go to a different region? You can take this boat to #bEreve#k. There, you will see bright sunlight shinning on the leaves and feel a gentle breeze on your skin. It's where Shinsoo and Empress Cygnus are. Would you like to go to Ereve? It will take about #b2 Minutes#k, and it will cost you #b1000#k mesos.\r\n"+display);
			} else if(cm.getChar().getMapId() == 130000210) {
				cm.sendSimple("Eh, Hello...again. Do you want to leave Ereve and go somewhere else? If so, you've come to the right place. I operate a ferry that goes from #bEreve#k to #bEllinia#k, I can take you to #bEllinia#k if you want... You'll have to pay a fee of #b1000#k Mesos.\r\n"+display);
			}
		} else if(status == 1) {
			if(selection == 2) {
				cm.sendYesNo("Will you move to #b"+menu[2]+"#k now? If you have #b"+cost[2]+" mesos#k, I'll take you there right now.");
			} else {
				if(cm.getMeso() < cost[selection]) {
					cm.sendNext("Hmm... Are you sure you have #b1000#k Mesos? Check your Inventory and make sure you have enough. You must pay the fee or I can't let you get on...");
					cm.dispose();
				} else {

						if(Skyferry.getProperty("isRiding").equals("false")) {
							cm.gainMeso(-cost[selection]);
							Skyferry.newInstance("Skyferry");
							Skyferry.setProperty("myRide",selection);
							Skyferry.getInstance("Skyferry").registerPlayer(cm.getChar());
							cm.dispose();
						} else {
							cm.sendNext("Someone else is on the Ship now. Talk to me again in 1 Minute.");
							cm.dispose();				
					}
				}
			}
		}
	}
}
1100004 - Kiru
PHP:
/**
----------------------------------------------------------------------------------
	SkyFerry Between Ereve and Orbis.
-------Credits:-------------------------------------------------------------------
	*MapleSanta 
	*Information
----------------------------------------------------------------------------------
**/

importPackage(Packages.tools);

var menu = new Array("Ereve","Orbis");
var cost = new Array(1000,1000);
var SkyferryOrbis;
var display = "";
var btwmsg;
var method;

function start() {
	status = -1;
	SkyferryOrbis = cm.getEventManager("SkyferryOrbis");
	action(1, 0, 0);
}

function action(mode, type, selection) {
	if(mode == -1) {
		cm.dispose();
		return;
	} else {
		if(mode == 0 && status == 0) {
			cm.dispose();
			return;
		} else if(mode == 0) {
			cm.sendNext("OK. If you ever change your mind, please let me know.");
			cm.dispose();
			return;
		}
		status++;
		if (status == 0) {
			for(var i=0; i < menu.length; i++) {
				if(cm.getChar().getMapId() == 200000161 && i < 1) {
					display += "\r\n#L"+i+"##b"+menu[i]+"("+cost[i]+" mesos)#k";
				} else if(cm.getChar().getMapId() == 130000210 && i > 0 && i < 3) {
					display += "\r\n#L"+i+"##b"+menu[i]+"("+cost[i]+" mesos)#k";
				}
			}
			if(cm.getChar().getMapId() == 200000161) {
				cm.sendSimple("This ship will head towards #bEreve#k, an island where you'll find crimson leaves soaking up the sun, the gentle breeze that glides past the stream, and the Empress of Maple Cygnus. If you're interested in joining the Cygnus Knights, Then you should definitly pay a visit here. Are you interested in visiting Ereve?, The Trip will cost you #b1000#k Mesos\r\n"+display);
			} else if(cm.getChar().getMapId() == 130000210) {
				cm.sendSimple("Hmm... The winds are favorable. Are you thinking of leaving ereve and going somwhere else? This ferry sails to Orbis on the Ossyria Continent, Have you taking care of everything you needed to in Ereve? If you happen to be headed toward #bOrbis#k i can take you there. What do you day? Are you going to go to Orbis?\r\n"+display);
			
			}
		} else if(status == 1) {
			if(selection == 2) {
				cm.sendYesNo("Will you move to #b"+menu[2]+"#k now? If you have #b"+cost[2]+" mesos#k, I'll take you there right now.");
			} else {
				if(cm.getMeso() < cost[selection]) {
					cm.sendNext("Hmm... Are you sure you have #b1000#k Mesos? Check your Inventory and make sure you have enough. You must pay the fee or I can't let you get on...");
					cm.dispose();
				} else {
						if(SkyferryOrbis.getProperty("isRiding").equals("false")) {
							cm.gainMeso(-cost[selection]);
							SkyferryOrbis.newInstance("SkyferryOrbis");
							SkyferryOrbis.setProperty("myRide",selection);
							SkyferryOrbis.getInstance("SkyferryOrbis").registerPlayer(cm.getChar());
							cm.dispose();
						} else {
							cm.sendNext("Someone else is on the Ship right now. Talk to me again in 1 Minute.");
							cm.dispose();
					}
				}
			}
		}
	}
}
1100005 - Kiruru
PHP:
/**
----------------------------------------------------------------------------------
	SkyFerry Between Ereve and Ellinia.
-------Credits:-------------------------------------------------------------------
	*MapleSanta 
	*Information
----------------------------------------------------------------------------------
**/

function start() {
	cm.sendOk("The weather is so nice. At this rate, we should arrive in no time....");
	cm.dispose();
}
1100006 - Kiru
PHP:
/**
----------------------------------------------------------------------------------
	SkyFerry Between Ereve and Orbis.
-------Credits:-------------------------------------------------------------------
	*MapleSanta 
	*Information
----------------------------------------------------------------------------------
**/

function start() {
    cm.sendOk("Ah, such lovely winds. This should be a perfect voyage as long as no stupid customer falls off for attempting some weird skill. Of course, I'm talking about you. Please refain from using your skills.");
    cm.dispose();
}
1100007 - Kiriru
PHP:
/**
----------------------------------------------------------------------------------
	SkyFerry Between Ereve and Ellinia.
-------Credits:-------------------------------------------------------------------
	*MapleSanta 
	*Information
----------------------------------------------------------------------------------
**/

importPackage(Packages.tools);

var menu = new Array("Ereve","Ellinia");
var cost = new Array(1000,1000);
var Skyferry;
var display = "";
var method;

function start() {
	status = -1;
	Skyferry = cm.getEventManager("Skyferry");
	action(1, 0, 0);
}

function action(mode, type, selection) {
	if(mode == -1) {
		cm.dispose();
		return;
	} else {
		if(mode == 0 && status == 0) {
			cm.dispose();
			return;
		} else if(mode == 0) {
			cm.sendNext("If you're not interested, then oh well...");
			cm.dispose();
			return;
		}
		status++;
		if (status == 0) {
			for(var i=0; i < menu.length; i++) {
				if(cm.getChar().getMapId() == 101000400 && i < 1) {
					display += "\r\n#L"+i+"##b"+menu[i]+"("+cost[i]+" mesos)#k";
				} else if(cm.getChar().getMapId() == 130000210 && i > 0 && i < 3) {
					display += "\r\n#L"+i+"##b"+menu[i]+"("+cost[i]+" mesos)#k";
				}
			}
			if(cm.getChar().getMapId() == 101000400) {
				cm.sendSimple("Eh... So... Um... Are you trying to leave Victoria to go to a different region? You can take this boat to #bEreve#k. There, you will see bright sunlight shinning on the leaves and feel a gentle breeze on your skin. It's where Shinsoo and Empress Cygnus are. Would you like to go to Ereve? It will take about #b2 Minutes#k, and it will cost you #b1000#k mesos.\r\n"+display);
			} else if(cm.getChar().getMapId() == 130000210) {
				cm.sendSimple("Eh, Hello...again. Do you want to leave Ereve and go somewhere else? If so, you've come to the right place. I operate a ferry that goes from #bEreve#k to #bEllinia#k, I can take you to #bEllinia#k if you want... You'll have to pay a fee of #b1000#k Mesos.\r\n"+display);
			}
		} else if(status == 1) {
			if(selection == 2) {
				cm.sendYesNo("Will you move to #b"+menu[2]+"#k now? If you have #b"+cost[2]+" mesos#k, I'll take you there right now.");
			} else {
				if(cm.getMeso() < cost[selection]) {
					cm.sendNext("Hmm... Are you sure you have #b1000#k Mesos? Check your Inventory and make sure you have enough. You must pay the fee or I can't let you get on...");
					cm.dispose();
				} else {

						if(Skyferry.getProperty("isRiding").equals("false")) {
							cm.gainMeso(-cost[selection]);
							Skyferry.newInstance("Skyferry");
							Skyferry.setProperty("myRide",selection);
							Skyferry.getInstance("Skyferry").registerPlayer(cm.getChar());
							cm.dispose();
						} else {
							cm.sendNext("Someone else is on the Ship now. Talk to me again in 1 Minute.");
							cm.dispose();				
					}
				}
			}
		}
	}
}
1100008 - Kiru
PHP:
/**
----------------------------------------------------------------------------------
	SkyFerry Between Ereve and Orbis.
-------Credits:-------------------------------------------------------------------
	*MapleSanta 
	*Information
----------------------------------------------------------------------------------
**/

importPackage(Packages.tools);

var menu = new Array("Ereve","Orbis");
var cost = new Array(1000,1000);
var SkyferryOrbis;
var display = "";
var btwmsg;
var method;

function start() {
	status = -1;
	SkyferryOrbis = cm.getEventManager("SkyferryOrbis");
	action(1, 0, 0);
}

function action(mode, type, selection) {
	if(mode == -1) {
		cm.dispose();
		return;
	} else {
		if(mode == 0 && status == 0) {
			cm.dispose();
			return;
		} else if(mode == 0) {
			cm.sendNext("OK. If you ever change your mind, please let me know.");
			cm.dispose();
			return;
		}
		status++;
		if (status == 0) {
			for(var i=0; i < menu.length; i++) {
				if(cm.getChar().getMapId() == 200000161 && i < 1) {
					display += "\r\n#L"+i+"##b"+menu[i]+"("+cost[i]+" mesos)#k";
				} else if(cm.getChar().getMapId() == 130000210 && i > 0 && i < 3) {
					display += "\r\n#L"+i+"##b"+menu[i]+"("+cost[i]+" mesos)#k";
				}
			}
			if(cm.getChar().getMapId() == 200000161) {
				cm.sendSimple("This ship will head towards #bEreve#k, an island where you'll find crimson leaves soaking up the sun, the gentle breeze that glides past the stream, and the Empress of Maple Cygnus. If you're interested in joining the Cygnus Knights, Then you should definitly pay a visit here. Are you interested in visiting Ereve?, The Trip will cost you #b1000#k Mesos\r\n"+display);
			} else if(cm.getChar().getMapId() == 130000210) {
				cm.sendSimple("Hmm... The winds are favorable. Are you thinking of leaving ereve and going somwhere else? This ferry sails to Orbis on the Ossyria Continent, Have you taking care of everything you needed to in Ereve? If you happen to be headed toward #bOrbis#k i can take you there. What do you day? Are you going to go to Orbis?\r\n"+display);
			
			}
		} else if(status == 1) {
			if(selection == 2) {
				cm.sendYesNo("Will you move to #b"+menu[2]+"#k now? If you have #b"+cost[2]+" mesos#k, I'll take you there right now.");
			} else {
				if(cm.getMeso() < cost[selection]) {
					cm.sendNext("Hmm... Are you sure you have #b1000#k Mesos? Check your Inventory and make sure you have enough. You must pay the fee or I can't let you get on...");
					cm.dispose();
				} else {
						if(SkyferryOrbis.getProperty("isRiding").equals("false")) {
							cm.gainMeso(-cost[selection]);
							SkyferryOrbis.newInstance("SkyferryOrbis");
							SkyferryOrbis.setProperty("myRide",selection);
							SkyferryOrbis.getInstance("SkyferryOrbis").registerPlayer(cm.getChar());
							cm.dispose();
						} else {
							cm.sendNext("Someone else is on the Ship right now. Talk to me again in 1 Minute.");
							cm.dispose();
					}
				}
			}
		}
	}
}
2012000 - Agatha
PHP:
var names = ["Victoria Island", "Ludibrium", "Leafre", "Mu Lung", "Ariant", "Ereve", "Edelstein"];
var choice = 0;
status = 1;

function start() {
	status = 0;
	action(1, 0, 0);
}

function action(mode, type, selection) {
	if (mode != 1) {
		if (mode == 0) {
			status--;
		} else {
			cm.dispose();
			return;
		}
	} else {
		status++;
	}
	if (status == 1) {
		var talk = "Hello, I'm the information guide for Orbis Station. Which of our destinations would you like to know more about?\r\n";
		for (var i = 0; i < names.length; talk += "\r\n#L"+i+"##b"+names[i]+"#l", i++);
		cm.sendSimple(talk);
	} else if (status == 2) {
		choice = selection;
		if (choice == 0) {
			cm.sendNext("Are you trying to go to Victoria Island? Oh, it's a beautiful island with an abundance of beautiful forests. The ship that goes to Victoria #bleaves every 15 minutes on the hour#k.");
		} else if (choice == 1) {
			cm.sendNext("Are you heading toward Ludibrium in Lake Ludus? It's a fun little town that mainly consists of toys. The ship that heads to Ludibrium #bleaves at the top of the hour, and every 10 minutes afterwards.");
		} else if (choice == 2) {
			cm.sendNext("Are you heading towards Leafre of Minar Forest? It's a cozy little town where the Halfingers reside. The ship that heads to Leafre #bleaves at the top of the hour, and every 10 minutes afterwards.");
		} else if (choice == 3) {
			cm.sendNext("Are you heading towards Mu Lung in the Mu Lung Temple? I'm sorry, but there's no ship that flies from Orbis to Mu Lung. There is another way to get there, though. There's a #bCrane that runs a cab service for 1 that's always available#k, so you'll get there as soon as you wish.");
		} else if (choice == 4) {
			cm.sendNext("Are you heading towards Ariant in Nihal Desert? It's a town full of alchemists that live the life with vigor much like the scorching desert heat. The ship that heads to Ariant #bleaves at the top of the hour, and every 10 minutes afterwards.");
		} else if (choice == 5) {
			cm.sendNext("Are you heading toward Ereve? It's a beautiful island blessed with the presence of the Shinsoo the Holy Beast and Empress Cygnus. #b The boat is for 1 person and it's always readily available#k so you can travel to Ereve fast.");
		} else if (choice == 6) {
			cm.sendNext("Are you going to Edelstein? The brave people who live there constantly fight the influence of dangerous monsters. #b1-person Airship to Edelstein is always on standby#k, so you can use it at any time.");
		}
	} else if (status == 3) {
		if (choice == 0) {
			cm.sendNextPrev("Talk to #bIsa the Station Guide#k on the right if you would like to take the airship to Victoria. Isa will guide you to the Station to Victoria.");
		} else if (choice == 1) {
			cm.sendNextPrev("If you wish to hop on board the ship that'll fly to Ludibrium, talk to #bIsa the Station Guide#k on the right. She'll take you to the station where the ride to Ludibrium awaits.");
		} else if (choice == 2) {
			cm.sendNextPrev("If you wish to hop on board the ship that'll fly to Leafre, talk to #bIsa the Station Guide#k on the right. She'll take you to the station where the ride to Leafre awaits.");
		} else if (choice == 3) {
			cm.sendNextPrev("Unlike the ships that fly for free, however, this cab requires a set fee. This personalized flight to Mu Lung will cost you #b1,500 mesos#k, so please have the fee ready before riding the Crane.");
		} else if (choice == 4) {
			cm.sendNextPrev("If you wish to use the Genie that'll take you to Ariant, talk to #bIsa the Station Guide#k on the right. She'll take you to the station where the ride to Ariant awaits.");
		} else if (choice == 5) {
			cm.sendNextPrev("If you want to take the boat to Ereve, please talk to #bIsa the Station Guide#k standing on the right. Isa will guide you to the Ereve Station.");
		} else if (choice == 6) {
			cm.sendNextPrev("Talk to #bIsa the Station Guide#k on the right if you would like to take the ship to Edelstein. Isa will guide you to the Station to Ereve."); // yes, GMS made a typo
		}
	} else if (status == 4) {
		cm.dispose();
	}
}
2012006 - Isa the Station Guide
PHP:
var menu = ["Board a Ship to Victoria Island", "Board a Ship to Ludibrium", "Board a Ship to Leafre", "Ride a Crane to Mu Lung", "Ride a Genie to Ariant", "Board a Ship to Ereve", "Board a Ship to Edelstein"];
var secondMenu = ["Board a Ship to Victoria Island", "platform to the ship that heads to Ludibrium", "platform to the ship that heads to Leafre", "platform to Hak that heads to Mu Lung", "platform to Genie that heads to Ariant", "platform to Hak that heads to Ereve", "Board a Ship to Edelstein"];
var maps = [200000111, 200000121, 200000131, 200000141, 200000151, 200000161, 200000170];
status = 1;

function start() {
	status = 0;
	action(1, 0, 0);
}

function action(mode, type, selection) {
	if (mode != 1) {
		if (mode == 0) {
			cm.sendNext("Please make sure you know where you are going and then go to the platform through me."); // there's others but this is the most common
		}
		cm.dispose();
		return;
	} else {
		status++;
	}
	if (status == 1) {
		var talk = "There are many Platforms at the Orbis Station. You must find the correct Platform for your destination. Which Platform would you like to go to?\r\n";
		for (var i = 0; i < menu.length; talk += "\r\n#L"+i+"##bPlatform to "+menu[i]+"#l", i++);
		cm.sendSimple(talk);
	} else if (status == 2) {
		cm.sendYesNo("Even if you took the wrong passage you can get back here using the portal, so no worries. Will you move to the "+secondMenu[selection]+"?");
	} else if (status == 3) {
		cm.warp(maps[selection], 0);
		cm.dispose();
	}
}
2120003 - Maid
PHP:
/* @Author SharpAceX
        Name: Maid
        Map(s): Foyer.
        Info: Maid
*/

function start() {
cm.sendOk("Hello and welcome, dear guest. The Master has prepared some wonderful games for you to enjoy tonight.");
cm.dispose();
}
9201056 - NLC Taxi
PHP:
/* @Author SharpAceX
        Name: NLC Taxi
        Map(s): New Leaf City (600000000) and Haunted House (682000000)
        Info: Warps to and from NLC and the Haunted House.
*/
var status = 0;

function start() {
    status = -1;
    action(1, 0, 0);
}

function action(mode, type, selection) {
    if (mode != 1) {
        if (mode == 0)
            if (cm.getPlayer().getMapId() == 682000000){
                cm.sendNext("Oh, you want to stay and look around some more? That's understandable. If you wish to go back to NLC, you know who to talk to!");
            } else{
                cm.sendNext("Really? I don't blame you... sounds like a pretty scary place to me too! If you change your mind, I'll be right here.");
            }
        cm.dispose();
    } else {
        status++;
        if (cm.getPlayer().getMapId() == 682000000){
            if (status == 0){
                cm.sendYesNo("Hey, there. Hope you had a fun here. Ready to head back to NLC?");
            }else if (status == 1) {
                cm.sendNext("Back to civilization it is! Hop in and get comfortable back there...\r\nwe'll have you back to the city in a jiffy!");
            }else if (status == 2) {
                cm.warp(600000000, 0);
                cm.dispose();
            }
        } else {
            if (status == 0) {
                cm.sendYesNo("Hey, there. Want to take a trip deeper into the Masterian wilderness? A lot of this continent is still quite unknown and untamed... so there's still not much in the way of roads. Good thing we've got this baby... we can go offroading, and in style too! Right now, I can drive you to the #bPhantom Forest#k. The old #bPrendergast Mansion#k is located there. Some people say the place is haunted! What do you say... want to head over there");
            } else if (status == 1) {
                cm.sendNext("Alright! Buckle your seat belt, and let's head to the Mansion! It's gonna get bumpy!");
            } else if (status == 2) {
                cm.warp(682000000, 0);
                cm.dispose();
            }
        }
    }
}
9201143 - Steward
PHP:
/* @Author SharpAceX 
        Name: Steward 
        Map(s): Foyer 
        Info: Steward 
        NPC ID: 9201143.js 
*/ 

function start() { 
cm.sendNext("At your service, my friend."); 
cm.dispose(); 
}

Credits: To anyone who has contributed an NPC.
 
Last edited by a moderator:
bleh....
Loyal Member
Joined
Oct 15, 2008
Messages
2,898
Reaction score
1,129
Restrictions for this thread: Discussions and chit-chat is not allowed in this thread. This thread is specifically for NPC scripts only. If you do not wish to contribute, then don't. If you do wish to contribute, do not say you'll contribute... just do it. The only "discussion" allowed in this thread (apart from this post I'm making now (for the trolls of the section)) is if you can optimize a script that was posted by another user.




2012000 - Agatha
PHP:
var names = ["Victoria Island", "Ludibrium", "Leafre", "Mu Lung", "Ariant", "Ereve", "Edelstein"];
var choice = 0;
status = 1;

function start() {
	status = 0;
	action(1, 0, 0);
}

function action(mode, type, selection) {
	if (mode != 1) {
		if (mode == 0) {
			status--;
		} else {
			cm.dispose();
			return;
		}
	} else {
		status++;
	}
	if (status == 1) {
		var talk = "Hello, I'm the information guide for Orbis Station. Which of our destinations would you like to know more about?\r\n";
		for (var i = 0; i < names.length; talk += "\r\n#L"+i+"##b"+names[i]+"#l", i++);
		cm.sendSimple(talk);
	} else if (status == 2) {
		choice = selection;
		if (choice == 0) {
			cm.sendNext("Are you trying to go to Victoria Island? Oh, it's a beautiful island with an abundance of beautiful forests. The ship that goes to Victoria #bleaves every 15 minutes on the hour#k.");
		} else if (choice == 1) {
			cm.sendNext("Are you heading toward Ludibrium in Lake Ludus? It's a fun little town that mainly consists of toys. The ship that heads to Ludibrium #bleaves at the top of the hour, and every 10 minutes afterwards.");
		} else if (choice == 2) {
			cm.sendNext("Are you heading towards Leafre of Minar Forest? It's a cozy little town where the Halfingers reside. The ship that heads to Leafre #bleaves at the top of the hour, and every 10 minutes afterwards.");
		} else if (choice == 3) {
			cm.sendNext("Are you heading towards Mu Lung in the Mu Lung Temple? I'm sorry, but there's no ship that flies from Orbis to Mu Lung. There is another way to get there, though. There's a #bCrane that runs a cab service for 1 that's always available#k, so you'll get there as soon as you wish.");
		} else if (choice == 4) {
			cm.sendNext("Are you heading towards Ariant in Nihal Desert? It's a town full of alchemists that live the life with vigor much like the scorching desert heat. The ship that heads to Ariant #bleaves at the top of the hour, and every 10 minutes afterwards.");
		} else if (choice == 5) {
			cm.sendNext("Are you heading toward Ereve? It's a beautiful island blessed with the presence of the Shinsoo the Holy Beast and Empress Cygnus. #b The boat is for 1 person and it's always readily available#k so you can travel to Ereve fast.");
		} else if (choice == 6) {
			cm.sendNext("Are you going to Edelstein? The brave people who live there constantly fight the influence of dangerous monsters. #b1-person Airship to Edelstein is always on standby#k, so you can use it at any time.");
		}
	} else if (status == 3) {
		if (choice == 0) {
			cm.sendNextPrev("Talk to #bIsa the Station Guide#k on the right if you would like to take the airship to Victoria. Isa will guide you to the Station to Victoria.");
		} else if (choice == 1) {
			cm.sendNextPrev("If you wish to hop on board the ship that'll fly to Ludibrium, talk to #bIsa the Station Guide#k on the right. She'll take you to the station where the ride to Ludibrium awaits.");
		} else if (choice == 2) {
			cm.sendNextPrev("If you wish to hop on board the ship that'll fly to Leafre, talk to #bIsa the Station Guide#k on the right. She'll take you to the station where the ride to Leafre awaits.");
		} else if (choice == 3) {
			cm.sendNextPrev("Unlike the ships that fly for free, however, this cab requires a set fee. This personalized flight to Mu Lung will cost you #b1,500 mesos#k, so please have the fee ready before riding the Crane.");
		} else if (choice == 4) {
			cm.sendNextPrev("If you wish to use the Genie that'll take you to Ariant, talk to #bIsa the Station Guide#k on the right. She'll take you to the station where the ride to Ariant awaits.");
		} else if (choice == 5) {
			cm.sendNextPrev("If you want to take the boat to Ereve, please talk to #bIsa the Station Guide#k standing on the right. Isa will guide you to the Ereve Station.");
		} else if (choice == 6) {
			cm.sendNextPrev("Talk to #bIsa the Station Guide#k on the right if you would like to take the ship to Edelstein. Isa will guide you to the Station to Ereve."); // yes, GMS made a typo
		}
	} else if (status == 4) {
		cm.dispose();
	}
}

2012006 - Isa the Station Guide
PHP:
var menu = ["Board a Ship to Victoria Island", "Board a Ship to Ludibrium", "Board a Ship to Leafre", "Ride a Crane to Mu Lung", "Ride a Genie to Ariant", "Board a Ship to Ereve", "Board a Ship to Edelstein"];
var secondMenu = ["Board a Ship to Victoria Island", "platform to the ship that heads to Ludibrium", "platform to the ship that heads to Leafre", "platform to Hak that heads to Mu Lung", "platform to Genie that heads to Ariant", "platform to Hak that heads to Ereve", "Board a Ship to Edelstein"];
var maps = [200000111, 200000121, 200000131, 200000141, 200000151, 200000161, 200000170];
status = 1;

function start() {
	status = 0;
	action(1, 0, 0);
}

function action(mode, type, selection) {
	if (mode != 1) {
		if (mode == 0) {
			cm.sendNext("Please make sure you know where you are going and then go to the platform through me."); // there's others but this is the most common
		}
		cm.dispose();
		return;
	} else {
		status++;
	}
	if (status == 1) {
		var talk = "There are many Platforms at the Orbis Station. You must find the correct Platform for your destination. Which Platform would you like to go to?\r\n";
		for (var i = 0; i < menu.length; talk += "\r\n#L"+i+"##bPlatform to "+menu[i]+"#l", i++);
		cm.sendSimple(talk);
	} else if (status == 2) {
		cm.sendYesNo("Even if you took the wrong passage you can get back here using the portal, so no worries. Will you move to the "+secondMenu[selection]+"?");
	} else if (status == 3) {
		cm.warp(maps[selection], 0);
		cm.dispose();
	}
}

More to come.
 
Last edited:
Upvote 0
That one pokemon thing
Loyal Member
Joined
Apr 3, 2010
Messages
1,766
Reaction score
621
Lets make this a bit more active again~

2020005 - Alcaster
PHP:
function start() { 
    cm.sendOk("If you decide to help me out, then in return, I'll make the item available for sale.");
    cm.dispose();
}

2020003 - Master Sergeant Fox
PHP:
function start() { 
    cm.sendOk("Because of an accident, all my men have been seperated and spread out everywhere. I hope they're alright.");
    cm.dispose();
}

9000031 || 9010010 - Cassandra
PHP:
function start() { 
    cm.sendOk("You want me to tell what my crystal of fortune found out?");
    cm.dispose();
}



More to come.
 
Last edited:
Upvote 0
Status
Not open for further replies.
Back
Top