summaryrefslogblamecommitdiff
path: root/npc/003-1-1/yetiking.txt
blob: b26ffd51a39a3d63670f5b6989f90b749b8c359e (plain) (tree)
1
2
3
4
5
6
7
8
9
10






                                                                                


                                                                             
 
 
                                                            
                                      

                                        
                                           







                                                                                            
                                                                 
                            



                

                                        






                                                  
                                                           
                                                                   
                 

                                                                       
                                                                            
                     


        
                                                                                   


                                                                             












                                                 

        
                                                                         

                                      



                                                 






                                                          

                                                                




                   

                   

















                                                                                              





                                                                                                         
                                                                      



                                                                                                                                    




                                                                                                                          
                                
                              



                                             




                   
                                                  

        
// TMW2 Scripts
// Author:
//   Jesusalva
// Description:
//   Celestia Yeti King's quest. Designed so if you're with 4 players, all 4 can
//   summon the Yeti King, helping you while doing the quest by themselves.

// Notes:
//      $@GM_OVERRIDE
//          Only possible with @set command, overrides the co-op requeriment.


003-1-1,94,21,0	script	#YetiKing	NPC_SUMMONING_CIRC,{
    .@q=getq(HurnscaldQuest_Celestia);
    if (.@q > 1 && .@q < 99)
        setq HurnscaldQuest_Celestia, 1;
    if (.@q == 1 && !.inUse) goto L_Summon;
    end;

L_Summon:
    dispbottom l("Emoc otem itey gnik!"); // come to me yeti king, spelled backwards. Sorry.
    initnpctimer;
    end;

L_Die:
    npctalk3 l("You're playing with fire. Or ice. Or whatever.");
    percentheal(-100, -100);
    closedialog;
    close;

OnTimer1000:
    setnpcdisplay .name$, NPC_YETI_KING;
    .inUse=1;
    end;

OnTimer2000:
    npctalk("Whom dares to disturb my slumber?!");
    end;

OnTimer5000:
    if (getareausers("003-1-1", 5) < 2 && !$@GM_OVERRIDE) {
        npctalk("A lone adventurer? Pft. I'm back to my slumber!");
        .inUse=2;
    } else {
        npctalk("You're courageous to summon me, I'll give you that.");
        areatimer "003-1-1", 93, 20, 97, 25,3000, "#YetiKing::OnSummonTalk";
        stopnpctimer;
    }
    end;

// Now we check if time ran out (standard inUse) because cowardice, or if you tried
// to do the quest alone. And this is a Co-Op quest with free player numbers.
// Therefore, we must return the Yeti King to his summon circle.
OnTimer7500:
    if (.inUse == 2) {
        setnpcdisplay .name$, NPC_SUMMONING_CIRC;
        .inUse=0;
        stopnpctimer;
    }
    end;

OnTimer45000:
    if (.inUse == 1) {
        setnpcdisplay .name$, NPC_SUMMONING_CIRC;
        .inUse=0;
        stopnpctimer;
    }
    end;

// You can only talk to him with SummonTalk. Only one player will summon.
OnSummonTalk:
    .@q=getq(HurnscaldQuest_Celestia);
    // If you had to return, erase quest progress
    if (.@q > 1 && .@q < 99)
        setq HurnscaldQuest_Celestia, 1;

    if (.@q != 1)
        end;
    mesn "Dah Yeti King!!";
    mesq l("Why do you summon me? Speak.");
    mes "";
    select
        l("I'm sorry, these words just came to my mind."),
        l("I did not summon you, I'm just a passer-by. Sorry."),
        rif(.@q == 1, l("Celestia asks for your help."));

    mes "";

    if (@menu == 1)
        goto L_Die;
    if (@menu == 2)
        close;

    mesn "Dah Yeti King!!";
    mesq l("Yeah yeah yeah, you're not the first one to come talking about that to me.");
    next;
    mesn "Dah Yeti King!!";
    mesq l("My answer is a no, and it'll say like that. Don't test my patience any further.");
    next;
    select
        l("You'll come with me!"),
        l("I can prove you my worth!"),
        l("Sorry! Sorry!");

    mes "";
    if (@menu == 1)
        goto L_Die;
    if (@menu == 2)
        close;

    mesn "Dah Yeti King!!";
    mesq l("Well, then I'll give you a task. We may meet again in Soren Village.");
    next;
    mesn "Dah Yeti King!!";
    mesq l("I'll warp you to the Cave Of Trials. Pass all trials, and meet me on Soren's House. Hahah!");
    setq HurnscaldQuest_Celestia, 2;
    areatimer "003-1-1", 93, 20, 97, 25, 15000, "#YetiKing::OnWarper";
    npctalk l("Listen to me! Whoever wants to follow foolish @@ on their suicide quest, stay here for 15 seconds!", strcharinfo(0));
    close;

OnWarper:
    // If you had to return, erase quest progress
    if (.@q > 2 && .@q < 99)
        setq HurnscaldQuest_Celestia, 2;

    mes col("Warp to the Cave Of Trials? There is no EXP penalty, but if you die, you need to start everything again!",9);
    if (askyesno() == ASK_YES) {
        warp "001-6", 27, 180;
    }
    setnpcdisplay .name$, NPC_SUMMONING_CIRC;
    .inUse=0;
    closedialog;
    close;

OnInit:
    .sex = G_OTHER;
    .distance = 1;
    .inUse=0; // Prevent multiple summons and etc.
    end;
}