summaryrefslogblamecommitdiff
path: root/npc/015-3/arkim.txt
blob: 2d226a64fb406a4f0a47ce4373b1e21ac12156a6 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16















                                                                                                     


                        





                                                           


                                                                                                                  

                       
                                
                                      
                                                   
     
 
                          
                                     
                                               














                                                               

                         

                  

                                       









                                       

                                                      

                                                                                                       

                               







                                                                                                      
                                                   
                                                   
                                                        




                                                          





                            

                                   




















                                                                                                   



                                                                         

                                                                                                          

                                                                                   

                                                                                   
                    
                                                                                                    


                     
              
           


                                                                              
                                                                             





                    
         









                                                                                             


                           





                                          
                                          


































































                                                                                                                                                              





                         
                                                    
                                 


        
// TMW2 scripts.
// Authors:
//    Jesusalva
// Description:
//    Heremit
// Variables:
//    $ARKIM_ST
//      How many Bat Teeth/Wings were given
//    q1
//      Controls your own progress helping Arkim - Unused, might give place to some real quest later.
//    q2
//      Controls your own progress helping Arkim - Items today
//    q3
//      Controls your own progress helping Arkim - Your timer

015-3,170,169,0	script	Arkim	NPC_TERRY,{
    function pmap_intro;
    function pmap_wrong;
    function pmap_right;
    mesn;
    mesq lg("Hello, young girl...", "Hello, young boy...");
    next;

L_Loop:
    .@q1=getq(HurnscaldQuest_Arkim);
    .@q3=getq3(HurnscaldQuest_Arkim);
    mesn;
    mesq l("I am doing a great research with Bats, and thus far I collected @@ Bat Wings and Teeths.", $ARKIM_ST);
    next;
    // It was yesterday
    if (.@q3 < $@ARKIM_QTIMER) {
        setq2 HurnscaldQuest_Arkim, 0;
        setq3 HurnscaldQuest_Arkim, $@ARKIM_QTIMER;
    }

    // Daily limit reached
    .@q2=getq2(HurnscaldQuest_Arkim);
    if (.@q2 >= (BaseLevel-17)/3) goto L_Timer;
    select
        rif(countitem(BatWing) >= 1, l("Donate a Bat Wing")),
        rif(countitem(BatTeeth) >= 1, l("Donate a Bat Teeth")),
        l("I better leave this crazy man to his ordeals..."),
        l("Had you any breakthrough?");
    mes "";

    switch (@menu) {
        case 1:
            delitem BatWing, 1;
            getexp 25, 0;
            Zeny=Zeny+50;
            break;
        case 2:
            delitem BatTeeth, 1;
            getexp 36, 0;
            Zeny=Zeny+70;
            break;
        case 3:
            goto L_Assign;
            close; // Will never reach.
            break;
        case 4:
            goto L_Research;
            break;
    }
    $ARKIM_ST=$ARKIM_ST+1;
    setq2 HurnscaldQuest_Arkim, .@q2+1;
    goto L_Loop;

L_Timer:
    if (BaseLevel < 20)
        mesc l("You need at least level 20 to help.");
    mesn;
    mesq l("You've helped me plenty. Please come back in @@", FuzzyTime($@ARKIM_TIMER+(60*60*24),2,2));
    goto L_Assign;
    close; // Will never reach.

// TODO
L_Research:
    mesn;
    mesq l("Let me see... The more Wings and Teethes I collect, the more my research shall advance.");
    next;
    select
        l("Thanks."),
        rif($ARKIM_ST >= 1400, l("Cursed Arrows")),
        rif($ARKIM_ST >= 2800, l("Poison Arrows")),
        rif($ARKIM_ST >= 1200, l("Piberries Infusion")),
        rif($ARKIM_ST >= 2600, l("Fate's Potion")),
        rif($ARKIM_ST >= 4000, l("Clotho Liquor")),
        rif($ARKIM_ST >= 4700, l("Lachesis Brew")),
        rif($ARKIM_ST >= 6600, l("Atropos Mixture")),
        rif($ARKIM_ST >= 7500, l("Dark Desert Mushroom"));
    mes "";
    mesn;

    switch (@menu) {
    case 1:
        mesq l("Good bye!");
        goto L_Assign;
        close; // Will never reach.
        break;
    case 2:
        mesq l("The @@ are specially dangerous, and archers love them.", getitemlink(CursedArrow));
        next;
        mesn;
        mesq l("These are being crafted by Alan.");
        break;
    case 3:
        mesq l("The @@ are specially dangerous, and archers love them.", getitemlink(PoisonArrow));
        next;
        mesn;
        mesq l("These are being crafted by Alan.");
        break;
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
        mesq l("The @@ is a powerful healing drink.", getitemlink(PiberriesInfusion-4+@menu));
        next;
        mesn;

        switch (@menu) {
            case 4:
               mesq l("@@ is developing these potions.", "Wyara"); break;
            case 5:
               mesq l("@@ is developing these potions.", "Fate, in Nivalis,"); break; // TODO: Missing NPC
            case 6:
               mesq l("@@ is developing these potions.", "Frostia Dwarves"); break;
            case 7:
               mesq l("@@ is developing these potions.", "Frostia Dwarves"); break;
            default:
               mesq l("@@ is developing these potions.", "Jesusalva"); // TODO: Lachesis and Atropos
               break;
        }

        break;
    case 9:
        mesq l("Ah! @@. A very rare drop!", getitemlink(DarkDesertMushrooom));
        next;
        mesn;
        mesq l("You can find it in the bandit market, but it is EXPENSIVE.");
        break;

    }
    next;
    goto L_Research;

L_Assign:
    // NOTE: Map will be destroyed after first time, MAKE SURE TO MEMORIZE.
    // Or you'll need to find ANOTHER copy, but this one won't be burned.
    if (getq(HurnscaldQuest_PirateCave) >= 2 && countitem(PirateTreasureMap)) {
        mesc l("Should we ask about the %s before leaving?", getitemlink(PirateTreasureMap));
        select
            l("Ask."),
            l("Don't ask.");
        mes "";
        if (@menu == 1) goto L_PirateMap;
    }
    GHQ_Assign(Bat, "Bat");
    end;

L_PirateMap:
    .@q = getq(HurnscaldQuest_PirateCave);
    if (.@q == 2) pmap_intro();
    else if (.@q == 3) pmap_intro();
    else if (.@q == 4) pmap_wrong();
    // IMPLICIT FALLTHROUGH
    .@q = getq(HurnscaldQuest_PirateCave);
    if (.@q == 5) pmap_right();
    close;

function pmap_intro {
    mesn;
    mesq l("There's no one who knows Butterfly Caves better than me, child. These are MY caves, after all.");
    next;
    mesn;
    mesc l("%s makes a confused face.", .name$);
    mesq l("But your silly map must be wrong. These passages do not connect themselves like this, but this should not be an issue, as they're not relevant.");
    next;
    mesn;
    mesq l("To reach this place... You just need to follow the path after the waterfall. Come back to me after that.");
    compareandsetq HurnscaldQuest_PirateCave, 2, 3;
    close;
}

function pmap_wrong {
    mesn;
    mesq l("Welcome back, children. So, how was your treasure hunt? Did you manage to find the path?");
    next;
    mesn strcharinfo(0);
    select
        l("NO!"),
        l("Not at all!"),
        l("You barely know these caves."),
        l("You send me the wrong way.");
    mes "";
    mesn;
    mesq l("Calm down, don't get mad! I was wrong in trusting this map, it is definitely faulty. Lemme see it again...");
    if (!countitem(PirateTreasureMap)) close; // Last chance...
    next;
    mesn;
    mesc l("%s eyebrow furrows, as he brings the map closer to a torch.", .name$);
    mesq l("These paths are all wrong! What is the problem with this map?!");
    next;
    mesc l("The map starts getting darker with the heat of the flame, and curiously, new shapes starts to form...");
    next;
    mesn;
    mesq l("Aha! So that's what it was! The map was hiding its secrets in drawings made with acid. An old technique... But a very useful one.");
    next;
    delitem PirateTreasureMap, 1;
    setq HurnscaldQuest_PirateCave, 5;
    getexp 0, 600;
    mesc l("Suddenly, the map %s!", col(l("burst up in flames"), 1));
    mesc l("Seems like Arkim held it too close to the flame...");
    next;
    mesn;
    mes "\""+l("I have some good and some bad news for you.");
    mes l("The good one, is that now I know the right path.");
    mes l("The bad one, is that you'll have to guide yourself without the map.")+"\"";
    next;
    return;
}

function pmap_right {
    mes ".:: " + l("Direction for Pirate Caves") + " ::.";
    mes "1. "+l("Go through the waterfall path.");
    mes "2. "+l("Use the abandoned passage to the north... Usually, no one uses it.");
    mes "3. "+l("After that, follow the path until you reach a great chamber...");
    mes "4. "+l("Then take the middle entrance.");
    next;
    mesn;
    mesq l("I wish you good luck. I remember these caves... They're dangerous. Make sure to be prepared before venturing further.");
    close;
}

OnInit:
    .sex=G_MALE;
    .distance=5;
    // No end; on purpose

OnHour00:
    $@ARKIM_QTIMER=gettimeparam(GETTIME_DAYOFMONTH);
    $@ARKIM_TIMER=gettimetick(2);
    end;

}