summaryrefslogblamecommitdiff
path: root/npc/020-7-1/janika.txt
blob: 47c9c38ba7a0f2bfae1463255dc92ed39136947f (plain) (tree)




































































































                                                                                                                                                                                                                                                                                                          
// TMW2 scripts.
// Authors:
//    Jesusalva
//    TMW Org.
// Description:
//    Workers which produces pages
//    helperM*

// NivalisQuest_BlueSagePagemaker STRUCTURE
//  FIELD 1:
//      MAIN STATE
//  FIELD 2:
//      BOOK MAKING QUEST
//      1 - Illustrations delivered (BS_PMINK)
//      2 - Bindings delivered (BS_PMBINDING)
//      4 - Pages delivered (BS_PMPAGE)
//      8 - Glue delivered (BS_PMGLUE)
//      =15: All items delivered

020-7-1,44,56,0	script	Janika	NPC_BLUESAGEWORKER_FA,{
    function askQuestion;
    .@qt=getq2(NivalisQuest_BlueSagePagemaker);
    mesn;
    if (.@qt & BS_PMBINDING)
        mesq l("Thanks for the Silk Cocoons. With these the new books are going to be exquisite.");
    else
        mesq l("This is going to be difficult... oh, hello. I'm working on recreating some of the books that were destroyed.");

    // Begin here
    askQuestion();
    .@qt=getq2(NivalisQuest_BlueSagePagemaker);
    mes "";
    mesn;
    mesq l("I need @@/@@ @@ for the book covers and binding of some of the more valuable books we're trying to recreate.", countitem(SilkCocoon), 60, getitemlink(SilkCocoon));
    next;
    mesn;
    mesq l("You wouldn't happen to have them, would you?");
    if (countitem(SilkCocoon) < 60)
        close;
    next;
    if (askyesno() == ASK_NO) {
        mes "";
        mesn;
        mesq l("That's a pity.");
        close;
    }
    mes "";

    delitem SilkCocoon,     60;
    setq2 NivalisQuest_BlueSagePagemaker, .@qt|BS_PMBINDING;
    getexp 3535, 215; // 20% from references, rounded up. It's part of main story.
    // is present. REMEMBER THIS IS A LEVEL 36/16 QUEST, REGARDLESS IF EVERYONE DECIDES
    // TO DO IT AT LEVEL 40. Exp reward will not change. It's main story, too.
    // Besides, it gives Job Experience, which is not common.
    mesn;
    mesq l("Excellent! This is exactly what I need. Thanks a lot. I'll tell Nikolai about your generosity.");
    close;

function askQuestion {
    .@qs=BSQuestion(getq(NivalisQuest_BlueSage));
    do {
        .@q=getq(NivalisQuest_BlueSage);
        .@q2=getq2(NivalisQuest_BlueSage);
        .@q3=getq3(NivalisQuest_BlueSage);
        .@qt=getq2(NivalisQuest_BlueSagePagemaker);
        next;
        select
            rif(!(.@qt & BS_PMBINDING), l("Can I help you?")),
            rif(.@qs & BS_QVISITOR, l("Do you know anything about the strange visitor?")),
            rif(.@qs & BS_QHELPER, l("What's your opinion of Peetu and his work?")),
            any(l("I need to leave."), l("See you."), l("Bye."), l("Good luck."));
        mes "";
        switch (@menu) {
            case 2:
                mesn;
                mesq l("Oh, I know who you mean! That impertinent person came over in the workshop area and fiddled about with all kinds of things here! Such a rude person! Didn't he understand that we had delicate things going on here? We had to send him back to the library area several times.");
                next;
                mesn;
                mesc l("She shakes her head.");
                mesq l("Sometimes I think it'd be better not to allow visitors here. But Nikolai set a high value on keeping contact with the population. Politics.");
                if (!(.@q2 & .bsId))
                    setq2 NivalisQuest_BlueSage, .@q2 | .bsId;
                break;
            case 3:
                mesn;
                mesq l("Mh, I don't know him closely.");
                break;
            case 4:
                close;
        }
    } while (@menu != 1);
    return;
}

OnInit:
    .bsId=BS_NPC02;
    .sex=G_FEMALE;
    .distance=5;
    end;
}