summaryrefslogblamecommitdiff
path: root/npc/001-2-19/lloyd.txt
blob: 839f981793da4cda6b5119b48ea264641ba02767 (plain) (tree)
1
2
3
4
5
6
7
8
9
                

           

               



                           
                          




                                         



                                        
 
                                                                   
 
                          
                                                

                                                                                     

                                                            
                                                                                                                
 
                                          
                                                     


                                                          
                                          
                                                                                                                                 
                                                                                                                                           
                               

                      
                                          
                                                                                   
                                                                                                               
                                                                                                                   
                                                                                                                         
                               






                                  
                            
                           

                                                                                                                                                         
                                                                                      
                                                                                                              
 
                                    


                                                                                                                



                          
                           
                          
                                                                                         
 
                                                       
 
                                                

                                                           
                             
                                                           
                           
                        
                                                 
 
                                                                
         
                                                    

                                                                                                                     


            
                                                    


                                
                           



                                                                       

                      
                           
                                                                           
 
                                  


                                                         
                                   
                 
                                                            
                                                                                    


                    
                                    
                                              
                                                            











                                                                                                                   
                                                


                                                                                                                                                                       




                                                                         
                                            
                                                           
                                                              



                                                       
                                                            



                                                 
                                                            
                                                                                                  


                                                                               
                                                            





                                                                                   
                                     


                    
                          



                
                       

                                                     

      
     
                                          
 
               
                                                                            
                                                   
                                                             




                                                               
         
                   

                            
                   

                                    

                      
                   
                                     
                      
                   


                              
                   

                                                 
                                                  


                             
                                   

                         
         
                       
         
                                                                    

                                     
                         
 
                      
            


          
                                     
                  




                                           
        
 
 
                                         




                                           
           
 
 
// Evol scripts.
// Authors:
//    gumi
//    Reid
// Description:
//    Lloyd the banker NPC.
// Variables:
//    0  ArtisQuests_Lloyd
//    1  ArtisQuests_Fexil
//    2  ArtisQuests_Enora
// Quest states:
//    00  -- Never talked
//    01  -- Registred on the Guild
//    10  -- not started
//    11  -- Lloyd warned about the quest
//    20  -- Default.
//    21  -- BlackSmith quest delivered.
//    22  -- Chelios Quest given.
//    23  -- Chelios Quest done.

001-2-19,31,25,0	script	Lloyd the Banker	NPC_LLOYD,{

    function enora_quest {
        speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
            l("Black iron... That is a very specific request that you have for me!"),
            l("Let me check in my inventory book..."),
            l("..."),
            l("Yes, I have some! \"5x Black Iron Ingots\""),
            l("Is this for you or somebody else? Because you need to be registered to obtain these materials.");

        switch (selectd(ArtisQuests_Enora,
                        l("This is for my own use."),
                        l("Chelios asked me to get it.")))
        {
            case 1:
                speech S_FIRST_BLANK_LINE,
                    l("This is your first time asking for something, you won't pay this time, take it as a sign of good faith!"),
                    l("If you need something in the future, do not hesitate to pass by here, our stock is full of boxes collecting dust.");
                emotion E_WINK;
                break;
            case 2:
                speech S_FIRST_BLANK_LINE,
                    l("Chelios... He is part of the Blacksmith House, is he not?"),
                    l("Since Don settled in Artis he and his band refused to register to the Merchant Guild."),
                    l("I will close an eye for once, but only because it's your first time asking for something!"),
                    l("Sometimes a good merchant needs to reach out first. It's on the house, give Chelios my regards!");
                emotion E_WINK;
                break;
        }
        setq ArtisQuests_Enora, 3;

        return;
    }

    function explain_guild {
        speech S_LAST_NEXT,
            l("The guild is in charge of the commerce regularization throughout Artis and its surroundings."),
            l("With the help of the town hall and the Legion of Aemil we organize some auction and we help local merchants to launch their businesses."),
            l("We also feature some services like a storage and a bank for members."),
            l("Registration is open to everybody, but newcomers need to pay a fee for all of the paperwork.");

        narrator S_FIRST_BLANK_LINE,
            l("The bank and item storage is shared between all characters within a same account."),
            l("With it, you can safely move items and funds between your characters."),
            l("To move between characters that are on different accounts, you have to use the Trade function.");
        return;
    }

    function first_visit {
        speech S_LAST_NEXT,
            l("Welcome!"),
            l("My name is Lloyd, I am a representative of the Merchant Guild of Artis.");

        selectd(l("My name is @@...", strcharinfo(0)));

        speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
            l("\"@@\", I like this name!", strcharinfo(0)),
            l("Oh, wait a second...");
        narrator S_LAST_NEXT,
            l("Lloyd is searching something in his book.");
        speech S_LAST_NEXT,
            l("I see."),
            l("You are new around here, right?");

        if (selectd(l("How do you know?"), l("Yes I am.")) == 1)
        {
            speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                l("Oh, it is simple. I have on this book the names of every citizen of Artis and its surroundings."),
                l("And I have no mention of a so called \"@@\" on it!", strcharinfo(0));
        }
        else
        {
            speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                l("I knew it!");
        }

        speech S_LAST_NEXT,
            l("Let me explain to you what the Merchant Guild is for.");

        explain_guild;
        next;

        .@price = 500;
        speech S_LAST_NEXT,
            l("The fee is of @@ E. So, do you want to register?", .@price);

        switch (selectd(l("Yes."),
                        l("I don't have the time now.")))
        {
            case 1:
                if (Zeny < .@price)
                {
                    speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                        l("You do not seem to have enough money, come back later!");
                }
                else
                {
                    Zeny -= .@price;
                    setq ArtisQuests_Lloyd, 1;
                    speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                        l("Perfect!"),
                        l("I wrote your name on the book, you are now free to use the storage and bank services.");
                }
                break;
            case 2:
                break;
        }

        return;
    }

    function paper_to_deliver {
        speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
            l("Now that you bring up that topic, that reminds me of something..."),
            l("Earlier today there was this young seller named Fexil that passed by here."),
            l("He asked to lend some money and a place to open his store, I think that he asked for a place on the merchant squares on the south-west of the city..."),
            l("Anyway, he forgot his permit when he left the building."),
            l("Could you bring it to him?");

        do
        {
            .@q = selectd(ArtisQuests_Fexil,
                          l("Ok, I will bring it to him."),
                          l("I need more information first."),
                          l("I don't have the time."));
            switch (.@q)
            {
                case 1:
                    speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                        l("Thank you for this!");
                    setq ArtisQuests_Fexil, 1;
                    break;
                case 2:
                    speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                        l("You should look for a seller named Fexil around the merchant square."),
                        l("Ask other merchants, they might know where he is.");
                    break;
                case 3:
                    speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                        l("No problem, come back later if you changed your mind!");
                    break;
            }
        } while (.@q == 2);
    }

    if (getq(ArtisQuests_Lloyd) == 0)
    {
        first_visit;

        closeclientdialog;
        goodbye;
        close;
    }

    speech S_LAST_NEXT,
        l("Welcome to the Merchant Guild of Artis!"),
        l("What do you want today?");

    do
    {
        .@enora = getq(ArtisQuests_Enora);

        selectd
            rif(.@enora == 2, l("I'm looking for some black iron ingots.")),
            l("I would like to store some items."),
            l("I would like to perform money transactions."),
            l("What is this guild for?"),
            l("Does the guild has any work for me right now?"),
            l("Bye.");

        switch (@menu)
        {
            case 1:
                enora_quest;
                break;
            case 2:
                closeclientdialog();
                openstorage();
                close;
                break;
            case 3:
                MerchantGuild_Bank();
                break;
            case 4:
                mes "";
                explain_guild;
                break;
            case 5:
                if (getq(ArtisQuests_Fexil) >= 1)
                {
                    MerchantGuild_Quests(.bankid);
                    continue;
                }

                paper_to_deliver();

                continue;
        }
        if (@menu != 6)
        {
            speech S_FIRST_BLANK_LINE | S_LAST_NEXT | S_NO_NPC_NAME,
                l("Something else?");
        }
    } while (@menu != 6);

    closeclientdialog;
    goodbye;
    close;

OnInit:
    .quest_debug = ArtisQuests_Lloyd;
    .distance = 4;

    // Bank configuration
    array_push($@BANK_NAME$, .name$);
    array_push($@BANK_TOWN$, "Artis");
    .bankid = getarraysize($@BANK_NAME$)-1;
    end;
}

function	script	FixBankVault	{
    if (#MerchantBank)
    {
        BankVault += max(0, #MerchantBank);
        #MerchantBank = 0;
    }
    return;
}