summaryrefslogblamecommitdiff
path: root/npc/018-1/george.txt
blob: c09a961decb4d642e5665073fcd47b790e2dfc26 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12




                    






                               














                                                                  
                                                    



















                                                                                                    

                                                                                      
                                                                                       












                                                                                                                                                                     
                      




                

                       





                                                                                                                                                                                             

                       
                                


                                                                                                                                                                                                         


































                                                                                                                    


                                      











                                                    
                                                                                                              

                                 



                                                                                             


                            


                                                                


                 




                                                                  













                                                                                                                               


                                                                                

                 







                                                                                     
                                                       



                                                                                              
                    









                                           
                
 










                
// TMW2/LoF scripts.
// Authors:
//    TMW-LoF Team
//    Jesusalva
// Description:
//    Old pirate with quests.
// LOFQuest_George
//  1 - Roger assigned the task
//  2 - First task accepted
//  3 - First task complete
//  4 - Second task accepted
//  5 - Second task complete

018-1,26,36,0	script	George	NPC_GEORGE,{
    .@q=getequipid(EQI_HEAD_TOP);
    .@q1=getequipid(EQI_ACC_R);
    if (.@q == CorsairHat) goto L_Pirate;
    if (.@q == PirateBandana) goto L_Bandana;
    if (.@q == RightEyePatch || .@q1 == EyePatch) goto L_EyePatch;

    mesn l("George the Pirate");
    mesq l("Yar! Do you need something, matey?");
    goto L_Main;

// Intro dialogs
L_Pirate:
    mesn l("George the Pirate");
    mesq l("Arrrrh! Ye be wearing a pirate's hat!");
    goto L_Main;

L_Bandana:
    mesn l("George the Pirate");
    mesq l("Arrrrh! Ye remind me of my old first mate!");
    goto L_Main;

L_EyePatch:
    mesn l("George the Pirate");
    mesq l("Arrrrh! Looks like ye lost an eye there!");
    goto L_Main;

// Main Menu
L_Main:
    .@q=getq(LoFQuest_George);

    menu
        l("What is this island?"), L_Explain,
        rif(.@q == 1, l("Actually, I heard from Roger that you may need some help.")), L_RequestOne,
        rif(.@q == 2, l("About the items you asked me to collect...")), L_ProgressOne,
        rif(.@q == 3, l("Do you need any more help?")), L_RequestTwo,
        rif(.@q == 4, l("About the items you asked me to collect...")), L_ProgressTwo,
        rif(.@showShovel, l("Could you sell me a treasure map and a shovel?")), L_Shop,
        l("Nothing I guess"), L_Close;

// Context menu
L_Explain:
    mesn l("George the Pirate");
    mesq l("Arrr matey! This is @@, yarr.", l("##BSincerity Island##b"));
    next;
    mesn l("George the Pirate");
    mesq l("Nobody lives here for years, arr. Monsters have taken over everything, yarr.");
    next;
    mesn l("George the Pirate");
    mesq l("It is a pirate treasure hideout, yarr arr! If you have a @@ and a @@, you may get luck, yarr!", getitemlink(PirateTreasureMap), getitemlink(IronShovel));
    next;
    .@showShovel=true;
    goto L_Main;


// Requests
L_RequestOne:
    if (BaseLevel < 40)
        goto L_Weak;
    mesn l("George the Pirate");
    mesq l("Roger, eh? Aye, I do need help. If you bring me 30 @@, 50 @@, and 30 @@, maybe I can give you a reward.", getitemlink(Beer), getitemlink(EmptyBottle), getitemlink(CasinoCoins));
    setq LoFQuest_George, 2;
    close;

L_RequestTwo:
    if (BaseLevel < 60)
        goto L_Weak;
    mesn l("George the Pirate");
    mesq l("Arrr matey! My captain asked me to have you get him some items. Please bring us %d %s and %d %s, my captain likes to snack on those during our long voyages. Oh, and something to read too!",
            50, getitemlink(Potatoz),
            40, getitemlink(Dragonfruit));
    setq LoFQuest_George, 4;
    close;

// Progress Report 1
L_ProgressOne:
    if (countitem(Beer) < 30 ||
        countitem(EmptyBottle) < 50 ||
        countitem(CasinoCoins) < 30)
        goto L_NotEnough;

    mesn l("George the Pirate");
    mesq l("Did you brought everything I ask for?");
    select
        l("Yes"),
        l("Not sure");

    if (@menu == 2)
        goto L_NotEnough;

    mesn l("George the Pirate");
    mesq l("Yar matey! You have the items I asked for! You have the honor and trust we pirates bestow each other!");

    inventoryplace SailorHat, 1;
    delitem Beer, 30;
    delitem EmptyBottle, 50;
    delitem CasinoCoins, 30;
    mes "";
    mesq l("Here is a reward for your effort! Now you can be a true buccaneer!");
    getitem SailorHat, 1;
    getexp 5000, 0;
    setq LoFQuest_George, 3;
    goto L_Close;

// Progress Report 2
L_ProgressTwo:
    if (countitem(Potatoz) < 50 ||
        countitem(Dragonfruit) < 40 ||
        countitem(Almanac) < 1)
        goto L_NotEnough;

    mesn l("George the Pirate");
    mesq l("Did you brought everything I ask for?");
    select
        l("Yes"),
        l("Not sure");

    if (@menu == 2)
        goto L_NotEnough;

    mesn l("George the Pirate");
    mesq l("Arrr! Good job matey! You brought us everything we asked for, even the Maritime Almanac Scroll!");

    inventoryplace CorsairHat, 1;
    delitem Potatoz, 50;
    delitem Dragonfruit, 40;
    delitem Almanac, 1;
    mesq l("My captain wanted me to give this to you as a special reward for your efforts.");
    getitem CorsairHat, 1;
    getexp 15000, 0;
    setq LoFQuest_George, 5;
    next;
    mesn;
    mesq l("You can call yourself a pirate now! HAR HAR HAR!!");
    goto L_Close;

// Fallbacks
L_Weak:
    mesn l("George the Pirate");
    mesq l("Arr, you are not experienced enough to help me yet!");
    close;

L_NotEnough:
    mesn l("George the Pirate");
    mesq l("Arrr! You did not bring me everything I asked for!");
    if (.@q == 2)
        goto L_NotEnoughOne;
    if (.@q == 4)
        goto L_NotEnoughTwo;
    close;

L_NotEnoughOne:
    mesq l("Remember, I need 30 @@, 50 @@, and 30 @@.", getitemlink(Beer), getitemlink(EmptyBottle), getitemlink(CasinoCoins));
    goto L_Close;

L_NotEnoughTwo:
    mesq l("Remember, I need %d %s, %d %s, and something interesting to read.", 
           50, getitemlink(Potatoz),
           40, getitemlink(Dragonfruit));
    goto L_Close;

L_Shop:
    mesn;
    mesq l("Arr ha ha ha arr!");
    next;
    mesn;
    mesq l("If I had a map, I would be digging the treasures, not selling it, arr!");
    next;
    mesn;
    .@price=getiteminfo(IronShovel, ITEMINFO_BUYPRICE);
    mesq l("But I can sell ya a %s for %d GP. Interested?", getitemlink(IronShovel), .@price);
    if (Zeny < .@price) {
        mesc l("You do not have enough money.");
        next;
        goto L_Main;
    }
    if (askyesno() == ASK_YES) {
        inventoryplace IronShovel, 1;
        Zeny-=.@price;
        getitem IronShovel, 1;
        mesn;
        mesq l("Arr! Here you go, matey!");
        next;
    }
    .@showShovel=false;
    goto L_Main;

L_Close:
    sailortalk;
    closedialog;
    close;

OnInit:
    .sex=G_MALE;
    .distance=5;
    end;
}