summaryrefslogblamecommitdiff
path: root/world/map/npc/042-2/sorfina.txt
blob: 839a5f6523b23a147025b7051e349f6cf25df091 (plain) (tree)
1
2
3
4
5
6
7
8
9

                                    
                                        
 




                                 













                                                                    
                                      



                                       
 
                         
                 
 
        

















                                                                                                                                                                  
                   
                                                                                        
                                                                                  


                                                                     

      






                                                       
                  
 
         
                    
                                                                        

                                                                                      
                                                      

                               
                 
 
        
                    
                                                                 
         
                                                                                                                                                                          
         
                                                    
                 
 
        
                    
                                                                                                                                   
         
                                                                          
         
                                                                                                                                                    
                 

          

                                    


                                                   




                                                                                                      
                                                                                                                                                                                  

                                                                    
                                                                                                

                                                                                                                                               





                                                                                            
                        

                               
                 

        

                                                                


                                                    

          






                                               

       

                                                       

                                                                                      

                                                                     
                 

       

                                                                                 
                                                                                                                 
         
                                                                                                  


                                                                                                          
                                                                       

                                                                             
                                                                         
                 

        











                                                                                                                                  


                                                                                                      
                                                                 
                                                                                                                  
         

                                                                         
                 

           
                    
                                                                                                                                    



                                                                                                                                                                
                 

        






                                                                                       
                                                                                                                   


                                                                                           
                                                                                            
                                                                                         
                 

        
                    

                                                                
                                                           



                                                              



















                                                                                                                                               

                               
                 

          

                                                                                         

                                                           


                                                     

                                                            
                       

                               
                                  
                             
                              
                        

                               
                       
                 
 
        
          

        


                         
                 

 

                                          
        
 
        

                             







                                                   
                                                                 


                                                                                                                                                 
                                                    

                               
          

 
                                           
 


                                     
 

                               
 
        
                                                                                                
                             
                              





                                                                                                                                     
                                                                                        

                               
          

        

                              

 
                                            
 
        
 
        
                             
                      
                         
                             
        
 
        

                                                                                 
 
// This file is part of the Tutorial
// Author: Jenalya
042-2.gat,28,26,0|script|Sorfina|154,1,4
{
    setarray @npc_loc, 28, 26, 4;
    callfunc "PCtoNPCRange";
    if (@npc_check)
        goto L_Close;

    callfunc "TutorialState";

    if ((Hp != MaxHp) && (@tutorial >= 4))
        goto L_Heal;
    goto L_Main;

L_Heal:
    mes "[Sorfina]";
    mes "\"Hello Dear! You look tired, you should rest a moment.\"";
    mes "You take a short nap and feel refreshed.";
    heal MaxHp, 0;
    goto L_Main;

L_Main:
    if (@tutorial == 10) goto L_Hasan;
    if (@tutorial >= 4) goto L_Again;
    if (@tutorial == 3) goto L_Clothes;
    if (@tutorial == 2) goto L_Chest;
    if (@tutorial == 1) goto L_Carpet;

    callfunc "GameRules";
    goto L_Start;

L_Start:
    mes "You open your eyes.";
    mes "";
    mes "[Old Woman]";
    mes "\"Ah, you woke up. It seems you collapsed after you left the boat that brought you to Tulimshar.";
    mes "A group of ragtags immediately took advantage of that and stole all your stuff!\"";
    next;
    mes "\"My little granddaughter Tanisha saw that, but couldn't do anything to stop them.";
    mes "She hurried to get someone to help. It was too late to catch the thieves, but at least the helpers brought you here to recover.\"";
    next;
    mes "\"We're in the suburbs of Tulimshar here and this area of the town is full of shady people, so I don't think there's a chance to get your stuff back.\"";
    mes "She has a sad look on her face, but then she shakes her head and smiles.";
    next;
    mes "[Old Woman]";
    mes "\"Did you come here to look for a job? Many young people come to Tulimshar for this reason.\"";
    next;
    mes "\"I can tell you some useful things, if you want to hear.";
    mes "Oh, and by the way my name is Sorfina.\"";
    next;
    mes "[Server]";
    mes "The explanations in this tutorial are based on the official client, Manaplus.";
    mes "If you're using another client, settings and controls may be different.";
    menu
        "That would be great!",L_Tut,
        "No, thanks. I already know how things are going.",L_SkipTut;

L_Tut:
    mes "She smiles at you.";
    mes "[Sorfina]";
    mes "\"A wise decision.\"";
    next;
    mes "\"You still look rather shaky.";
    mes "You're not used to the hot weather, right?\"";
    next;
    goto L_Carpet;

L_Carpet:
    mes "[Sorfina]";
    mes "\"Try to take a few steps and walk to that carpet over there.";
    mes "Just use the ###keyMoveUp; to move up, press ###keyMoveDown; to move down, ";
    mes "press ###keyMoveLeft; to move left, press ###keyMoveRight; to move right ";
    mes " or click on the place you want to go to.\"";
    set @tutorial_tmp, 1;
    callfunc "SetTutorialMask";
    goto L_Close;

L_Chest:
    mes "[Sorfina]";
    mes "\"In that chest there are some clothes you can take.\"";
    next;
    mes "\"To interact with things in your environment or talk to NPCs you can either click on it or press ###keyTargetNPC; to focus and ###keyTalk; to talk/activate.\"";
    next;
    mes "\"Now get the clothes out of the chest.\"";
    goto L_Close;

L_Naked:
    mes "[Sorfina]";
    mes "\"Press ###keyWindowInventory; or click on the Inventory button in the bar at the upper right corner to open your bag.\"";
    next;
    mes "\"Once we stop talking, double-click on the clothes to equip.\"";
    next;
    mes "\"Talk to me again after you get dressed. You can either click on me, or press ###keyTargetNPC; to focus on me and ###keyTalk; to talk.\"";
    goto L_Close;

L_Clothes:
    if (getequipid(equip_torso) < 0)
        goto L_Naked;
    mes "[Sorfina]";
    mes "\"That's much better, don't you think?\"";
    next;
    mes "\"Here take this.\"";
    getitem "HitchhikersTowel", 1;
    mes "\"Your HitchHikers Towel will return you to your last set soul menhir or here if not set.\"";
    mes "\"It can't be used constantly as the magic needs time to power the jump.\"";
    next;
    mes "\"I think this will help you a bit. To get more information, press the button Setup and look at the controls on the Keyboard tab. You can also change them as you like.";
    mes "Talk to me again if you want me to explain more things.\"";
    next;
    mes "\"Now you should go to see my granddaughter, she is very worried. She's downstairs.\"";
    next;
    mes "\"Oh, and if you're looking for work, you should talk to Aidan when you go to Tulimshar. They're giving rewards for monster hunting.";
    mes "You can find him near the south gate.\"";
    next;
    mes "She hesitates a moment.";
    mes "\"[Sorfina]\"";
    mes "\"And here is some money for you. At least you can buy yourself something to eat.";
    mes "Good luck!\"";
    set Zeny, Zeny + 30;
    set @tutorial_tmp, 4;
    callfunc "SetTutorialMask";
    goto L_Close;

L_Again:
    mes "[Sorfina]";
    mes "\"Make yourself at home! Do you have any questions?\"";
    menu
        "Yes, could you explain about...",L_Explain,
        "No, thanks.",L_Close;

L_Explain:
    menu
        "... walking?",L_Walk,
        "... talking?",L_Talk,
        "... the inventory and items?",L_Items,
        "... shortcuts?",L_Shortcut,
        "... what to do in Tulimshar?",L_Aidan,
        "... nevermind.",L_Close;

L_Walk:
    mes "[Sorfina]";
    mes "\"You can use the arrow keys to walk around.";
    mes "Just use the ###keyMoveUp; to move up, press ###keyMoveDown; to move down, ";
    mes "press ###keyMoveLeft; to move left, press ###keyMoveRight; to move right ";
    mes " or click on the place you want to go to.\"";
    mes "This only works if that place is reachable and walkable.\"";
    goto L_Close;

L_Talk:
    mes "[Sorfina]";
    mes "\"If you want to talk to a normal person, you can click at him or her.";
    mes "Or you can press ###keyTargetNPC; to focus on the nearest person and then press ###keyTalk; to talk.\"";
    next;
    mes "\"If you want to talk to other adventurers, press ###keyChat; to open your chat window.";
    mes "Then type your message and press Enter to send.\"";
    next;
    mes "\"You may want to talk privately to another adventurer sometimes. In that case you can whisper.";
    mes "After pressing ###keyChat; type '/whisper [name] [message]'.";
    mes "Or you can right click on someone and choose the whisper option.\"";
    next;
    mes "\"Press ###keyWindowChat; to show and hide your chat window.\"";
    goto L_Close;

L_Items:
    mes "[Sorfina]";
    mes "\"There are three types of items.";
    mes "They can be Consumables, Equipment or Miscellaneous.\"";
    next;
    mes "\"Consumable items such as Potions, can be used only once.";
    mes "After use, they will disappear from your inventory.";
    mes "There are some rare items that can be used but don't get consumed.";
    next;
    mes "\"Equipment items like Armors, Weapons, Accessories can be equipped for fashionable purposes or to raise your status.\"";
    next;
    mes "\"Miscellaneous items such as maggot slime, can be used in creating other items, or just to trade and sell.\"";
    next;
    mes "\"Your HitchHikers Towel will return you to your last set soul menhir or here if not set.\"";
    mes "\"It can't be used constantly as the magic needs time to power the jump.\"";
    next;
    mes "\"Press ###keyWindowInventory; to open your inventory.";
    mes "When placing your cursor over an item there, you can see a box with some information about that item.\"";
    next;
    mes "\"To use or equip an item, select it by double-clicking on it.";
    mes "Selecting the item then pressing Use or Equip also works.\"";
    goto L_Close;

L_Shortcut:
    mes "[Sorfina]";
    mes "\"Press ###keyOutfitShortcut1; or click the Shortcut button in the bar at the upper right to open your shortcut window.\"";
    next;
    mes "\"You can select the item you want to put on a shortcut with your mouse and then click on the position in the shortcut window you want to place it.\"";
    next;
    mes "\"Now you can use or equip/unequip it by pressing the number of the shortcut.\"";
    goto L_Close;

L_Aidan:
    mes "[Sorfina]";
    mes "\"I suggest to go to the bazaar near the south gate.";
    mes "We're in the north of Tulimshar here, so you have to walk across the town.\"";
    next;
    mes "\"When you leave this area to the Southeast, you'll come to the docks.";
    mes "Follow the street to the south to pass the old town gates.\"";
    next;
    mes "\"Turn west at the next intersection. You'll pass by the gates of Tulimshar's famous magic school there.";
    mes "Just follow the street to the south and you'll reach the bazaar.\"";
    next;
    mes "\"I heard Aidan is looking for brave adventurers, you might want to talk to him.";
    mes "Usually the bazaar is bustling with activity, there are many people who can help.";
    mes "Talk to everybody. You can never tell when they might know something useful.\"";
    goto L_Close;

L_Hasan:
    mes "[Sorfina]";
    mes "\"Make yourself at home! Do you have any questions?\"";
        menu
            "A guy named Hasan is bullying people.",L_Next,
            "Yes, could you explain again about...",L_Explain,
            "No, thanks.",L_Close;

L_Next:
    mes "\"Ah, Hasan. He's causing trouble again?\"";
    mes "She shakes her head.";
    next;
    mes "[Sorfina]";
    mes "\This guy has been a plague ever since he could walk. He's always causing trouble.\"";
    next;
    mes "\"And his father... Well, one day his father thought he should teach Hasan a lesson.\"";
    next;
    mes "\"He took him into the desert and then left him there!";
    mes "Hasan was only seven years old!\"";
    next;
    mes "\"I never understood how someone could do something like that to a child, even if it's a rascal like Hasan.\"";
    next;
    mes "\"Anyway, Hasan tried to find his way back home, but stumbled into a nest of scorpions!\"";
    mes "She shakes her head.";
    next;
    mes "\"If Valon hadn't have come along that moment, Hasan would have died that day.\"";
    next;
    mes "\"However, the scorpions poison caused a bad fever and once Hasan had recovered from that, he was even more malicious than before.\"";
    mes "She sighs.";
    set @tutorial_tmp, 11;
    callfunc "SetTutorialMask";
    goto L_Close;

L_SkipTut:
    mes "[Sorfina]";
    mes "\"Really? You seem quite unexperienced. Listening to some advice won't hurt.\"";
    menu
        "Thinking about it twice... please tell me.",L_Tut,
        "Yeah, but thanks for the offer. Bye.",L_Bye;

L_Bye:
    mes "[Sorfina]";
    mes "\"Alright, if you say so. But take at least this.";
    getitem "Knife", 1;
    getitem "SlingShot", 1;
    getitem "SlingBullet", 100;
    getitem "HitchhikersTowel", 1;
    getitem "CottonShirt", 1;
    getitem "RaggedShorts", 1;
    set Zeny, Zeny + 50;
    set @tutorial_tmp, 8;
    callfunc "SetTutorialMask";
    mes "Good luck.\"";
    goto L_Close;

L_Close:
    close;

OnTouch:
    if (TUT_var != 0)
        end;
    callfunc "GameRules";
    goto L_Start;
}

042-2.gat,33,27,0|script|#Carpet|32767,1,1
{
    end;

OnTouch:
    callfunc "TutorialState";
    if (@tutorial != 1)
        end;
    mes "[Sorfina]";
    mes "\"Very good! I'm glad you're recovering.";
    mes "Now you should get dressed again.\"";
    next;
    mes "Sorfina unlocks the chest behind her.";
    next;
    mes "[Sorfina]";
    mes "\"In that chest there are some clothes you can take.\"";
    next;
    mes "\"To interact with things in your environment or talk to NPCs you can either click on it or press N to focus and T to talk/activate.\"";
    next;
    mes "\"Now get the clothes out of the chest.\"";
    set @tutorial_tmp, 2;
    callfunc "SetTutorialMask";
    close;
}

042-2.gat,29,23,0|script|Chest#tutorial|111
{
    callfunc "TutorialState";
    if (@tutorial > 2) goto L_Empty;
    if (@tutorial == 2) goto L_Shirt;

    mes "The chest is locked.";
    close;

L_Shirt:
    mes "You take a simple Cotton Shirt and some very worn-out Ragged Shorts out of the chest.";
    getitem "CottonShirt", 1;
    getitem "RaggedShorts", 1;
    next;
    mes "[Sorfina]";
    mes "\"Great! Now you can equip it.\"";
    next;
    mes "\"You can open your inventory by pressing F3 or clicking on the 'Inventory' button in the bar at the upper right corner.\"";
    next;
    mes "\"After we finish talking, click on the clothes and press the equip button.\"";
    set @tutorial_tmp, 3;
    callfunc "SetTutorialMask";
    close;

L_Empty:
    mes "The chest is empty.";
    close;
}

042-2.gat,44,31,0|script|#DoorOutTut1|45,0,0
{
    end;

OnTouch:
    callfunc "TutorialState";
    if (@tutorial < 4)
            goto L_Block;
    warp "042-1.gat", 51, 44;
    end;

L_Block:
    message strcharinfo(0), "Sorfina: Wait a moment! You're not ready to leave.";
    end;
}