summaryrefslogblamecommitdiff
path: root/npc/002-3/julia.txt
blob: f2c2f83ba663c328168e8d76921b60f80541d5c4 (plain) (tree)

































                                                                                                                
                                                        










































































































































































































































































                                                                                                                                                                                                                                                        
// Evol scripts.
// Authors:
//    4144
//    Qwerty Dragon
//    Vasily_Makarov
// Description:
//    Allows to change language and talks about what happened to him.
//    2 Bits Array:
//    ShipQuests
// Variables:
//    0 ShipQuests_Julia
//    1 ShipQuests_ChefGado
//    2 ShipQuests_Nard
// Values:
//    Julia:
//    10   Default, no quest given.
//    01   Need to see Julia.
//    02   Has been registered by Julia.
//    Gado:
//    10   Default, no quest given.
//    11   Quest accepted.
//    12   Ingredients collected, ready to poison Julia.
//    13   Julia poisoned.
//    14   Quest complete. Chef Gago wins.
//    15   Quest complete. Julia wins (poison dish returned).
//    16   Quest complete. Julia wins.
//    Nard:
//    20   Introduction of the boxes and Nard. This is displayed when the player never spoke to Nard or his box.
//    21   Nard spoke and gave access to the outdoor of the ship.
//    22   Completed the Gugli quest.
//    23   ChefGado Quest accepted.
//    24   ChefGado Quest completed and "Introduction" chapter finalized.
//    25   Reward taken from the box.

002-3,27,24,0	script	Julia#TMW2	NPC_JULIA,2,10,{

    function ynMenu {
        if (select(l("Yes, I do."), l("No, none.")) == 1) {
            return;
        }
        closedialog;
    }

    function poisonJulia {
        mes "";
        mesn;
        mesq l("Seems yummy! Let me taste it!");
        next;
        mesq l("Hmmm, hm... *cough*, *cough*, *burp*, *cough*. What... What is that?!... *cough*, *burp*... Damn Gado... *cough*");
        if (countitem(PoisonedDish) > 0) delitem PoisonedDish, 1;
        setq ShipQuests_ChefGado, 3;
        close;
    }

    function gotoSleep {
        speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
            l("You already did enough for us, follow Nard's advice and get some rest."),
            l("We are at half a day from our final destination, by the time that you wake up I'm sure that we will be there!"),
            l("Do you have any other questions for me?");
        ynMenu;
        return;
    }

    function heardRumors {
        mes "";
        mesn;
        mesq l("You shouldn't believe every tale drunken sailors tell you.");
        next;

        select
            l("Let's say the person who told me about that is well respected on this ship and never drunk.");

        mes "";
        mesn;
        mesq l("Hahaha! All sailors aboard this ship are always drunk... Well... Except... Wait, what?! Nard told you?!");
        next;
        mesq l("Doesn't he like the way I'm taking care of his ship? Everything is clean and tidy with me, rightful lieutenant of La Johanne.");
        next;
        mesq l("I give tasks to every single sailor, all day long. That should make him happy!");
        next;

        select
            l("Well... I don't think it is the best way to rule a ship. Think about it."),
            l("In fact, everything seems to work perfectly under your guidance. Nard has made the right choice.");

        if (@menu == 1)
        {
            closedialog;
            end;
        }

        mes "";
        mesn;
        mesq l("I'm glad you're on my side.");
        next;
        mesq l("Take this money as a reward for your nice words.");

        setq ShipQuests_ChefGado, 6;
        Zeny += 100;
        message strcharinfo(0), l("You receive @@ E!", 100);
        getexp 8, 0;
        close;
    }

    function gotRegrets {
        mes "";
        mesn;
        mesq l("Why? And who should you bring it back to?");
        next;

        select
            l("Ehm... He was really upset because of some past stories.");

        mes "";
        mesn;
        mesq l("Gado! That coward lives in the past, I will ask Nard to punish him, again!");
        next;
        mesq l("Take this money for your wise choice. But do not try it again. The open sea has been merciful with you once... Do not further tempt the fates!");

        setq ShipQuests_ChefGado, 5;
        Zeny += 200;
        message strcharinfo(0), l("You receive @@ E!", 200);
        getexp 15, 0;
        close;
    }

    function basicSkill {
        mes "";
        mesn;
        mesq l("Let me check into it...");
        next;
        adddefaultskills;
        mesq l("Here you go, everything is fixed.");
        emotion E_HAPPY;
        next;
        mesq l("Do you have any other questions for me?");
        next;
        ynMenu;
        return;
    }

    function chooseLang {
        mes "";
        mesn;
        mesq l("Of course! Tell me which language you speak and I will change the note on the ship passenger list.");
        next;

        asklanguage(LANG_IN_SHIP);

        mes "";
        mesn;
        mesq l("Ok, done.");

        if (getq(ShipQuests_Julia) == 2)
        {
            next;
            mesq l("Do you have any other questions for me?");
            next;
            ynMenu;
            return;
        }

        next;
        mesq l("I'm sure that you've got some questions for me, feel free to ask them, but first I need to tell you the rules of proper social conduct on board.");

        mesq l("Here they are.");
        next;

        narrator S_LAST_NEXT,
            l("There is a paper with some rules written on it.");

        GameRules 8 | 4;

        mesn;
        mesq l("Oh, and I almost forgot! Do not give the password of your room to anybody! I am the only one who has the other key and I won't ask for yours so keep it secret and try not to use the same password for any other room in the future.");
        next;
        mesq l("If you want to read this page again, there is a copy up on the left wall.");
        next;
        mesq l("You can also read The Book of Laws at any time to see the rules.");
        next;
        mesq l("I think I'm done with that now. Do you have any questions?");
        next;

        setq ShipQuests_Julia, 2;
        return;
    }

    function whereAmI {
        mes "";
        mesn;
        mesq l("You're on a ship, we're on our way to the commercial capital of Artis.");
        next;
        mesq l("We should be there in a few days, once we arrive, I will warn the Legion of Aemil about what happened, I'm sure they can help.");
        next;
        mesq l("But for now, you can relax on the ship, or visit the island we're docked at! Its a small island, but a good place to get some exercise and stretch your legs.");
        next;
        mesq l("Do you have any other questions for me?");
        next;
        ynMenu;
        return;
    }

    function whatHappened {
        mes "";
        mesn;
        mesq l("We thought that you could help us understand this, all we know is that we found you cast in the sea, adrift on your raft.");
        next;
        mesq lg("You were in bad shape, you should be happy we found you before the sea killed you.");
        next;
        mesq l("Oh, and there was this inscription on your raft. It represents the Legion of Aemil, one of the four main guilds of Gasaron. Does that help you remember anything, anything at all?");
        next;

        select
            l("Sorry, but I can't tell you anything about that."),
            l("Nothing, sorry.");

        mes "";
        mesn;
        mesq l("No problem, do you have any other questions for me?");
        next;
        ynMenu;
        return;
    }

    function readRules {
        mes "";
        mesn;
        mesq l("Of course, they are on the left wall, go have a look at them.");
        next;
        mesq l("Do you have any other questions for me?");
        next;
        ynMenu;
        return;
    }

    function mainMenu {
        do
        {
            .@q2 = getq(ShipQuests_ChefGado);
            .@q3 = getq(ShipQuests_Nard);
            .@q4 = getq(General_Narrator);

            selectd
                rif(.@q3 == 5 && .@q4 < 1, l("What can I do now?")),
                rif(.@q3 == 3 && .@q2 == 0, l("I heard rumors about some old hostilities between you and Gado. Are they true?")),
                rif(.@q2 == 2 && countitem(PoisonedDish), l("Well... No wait, I have something for you but you shouldn't eat it... I'm taking it back to the kitchen.")),
                rif(.@q2 == 2 && countitem(PoisonedDish), l("I have brought you a tasty present for your delicate mouth.")),
                rif(getskilllv(NV_BASIC) < 6, l("Something is wrong with me, I can't smile nor sit.")),
                lg("I made a mistake, I would like to change my language."),
                l("Could you explain to me where I am?"),
                l("What happened to me?"),
                l("Can I read these rules again?"),
                l("Nothing, sorry.");

            switch (@menu)
            {
                case 1: gotoSleep; break;
                case 2: heardRumors; break;
                case 3: gotRegrets; break;
                case 4: poisonJulia; break;
                case 5: basicSkill; break;
                case 6: chooseLang .@s$; break;
                case 7: whereAmI; break;
                case 8: whatHappened; break;
                case 9: readRules; break;
                case 10: closedialog; end;
            }
        } while (1);
    }

    mesn;
    mesq lg("Hello dear!");
    next;
    mesq l("What do you want today?");
    next;

    mainMenu;

OnTouch:
    .@q = getq(ShipQuests_Julia);
    if (.@q > 1) end;

    checkclientversion;

    mesn;
    mesq l("Hi, nice to see you!");
    next;
    mesq l("My name is Julia, it is me who took care of you after we found you in the sea.");
    next;
    mesq lg("I'm glad to see you're okay.");
    next;
    mesq lg("Could I ask you what your native language is? A sailor told me you're Russian, but another one told me you're French... I'm a bit lost. I will register you on the ship passenger list just after that.");
    next;
    chooseLang;
    mainMenu;
    end;

OnInit:
    .sex = G_FEMALE;
    .distance = 10;
    .quest_debug = ShipQuests_Julia;
}