diff options
Diffstat (limited to 'world/map/npc/042-2/sorfina.txt')
-rw-r--r-- | world/map/npc/042-2/sorfina.txt | 93 |
1 files changed, 55 insertions, 38 deletions
diff --git a/world/map/npc/042-2/sorfina.txt b/world/map/npc/042-2/sorfina.txt index a7fd19ac..1fc9d2cf 100644 --- a/world/map/npc/042-2/sorfina.txt +++ b/world/map/npc/042-2/sorfina.txt @@ -3,11 +3,26 @@ 042-2.gat,28,26,0|script|Sorfina|154,4,4 { + 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 (FLAGS & FLAG_TUTORIAL_DONE) goto L_Again; - if (sorfina == 4) goto L_Heal; - if (sorfina == 3) goto L_Clothes; - if (sorfina == 2) goto L_Chest; - if (sorfina == 1) goto L_Carpet; + if ((@tutorial == 11) && !(@sorfina_hasan)) 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; @@ -32,9 +47,8 @@ L_Start: 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 0.5 series."; + 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."; - next; menu "That would be great!",L_Tut, "No, thanks. I already know how things are going.",L_SkipTut; @@ -53,8 +67,8 @@ L_Carpet: mes "[Sorfina]"; mes "\"Try to take a few steps and walk to that red carpet over there."; mes "Just use the arrow keys or click on the place you want to go to.\""; - if (!sorfina) - set sorfina, 1; + set @tutorial_tmp, 1; + callfunc "SetTutorialMask"; goto L_Close; L_Chest: @@ -81,6 +95,11 @@ L_Clothes: 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; @@ -94,28 +113,13 @@ L_Clothes: 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 sorfina, 4; + set @tutorial_tmp, 4; + callfunc "SetTutorialMask"; goto L_Close; -L_Heal: - if (Hp == MaxHp) - goto L_Again; - 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; - next; - goto L_Again; - L_Again: mes "[Sorfina]"; mes "\"Make yourself at home! Do you have any questions?\""; - next; - if (hasan) - menu - "A guy named Hasan won't let me enter Tulimshar.",L_Hasan, - "Yes, could you explain again about...",L_Explain, - "No, thanks.",L_Close; menu "Yes, could you explain about...",L_Explain, "No, thanks.",L_Close; @@ -164,6 +168,9 @@ L_Items: 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 F3 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; @@ -198,6 +205,13 @@ L_Aidan: L_Hasan: mes "[Sorfina]"; + mes "\"Make yourself at home! Do you have any questions?\""; + menu + "A guy named Hasan won't let me enter Tulimshar.",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; @@ -218,14 +232,12 @@ L_Hasan: 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."; - if (hasan == 1) - set hasan, 2; + set TUTORIAL, TUTORIAL | $@SorfinaHasanBit; goto L_Close; L_SkipTut: mes "[Sorfina]"; mes "\"Really? You seem quite unexperienced. Listening to some advice won't hurt.\""; - next; menu "Thinking about it twice... please tell me.",L_Tut, "Yeah, but thanks for the offer. Bye.",L_Bye; @@ -237,6 +249,7 @@ L_Bye: getitem "Knife", 1; getitem "SlingShot", 1; getitem "SlingBullet", 100; + getitem "HitchhikersTowel", 1; getitem "CottonShirt", 1; getitem "RaggedShorts", 1; set Zeny, Zeny + 50; @@ -258,7 +271,8 @@ OnTouch: end; OnTouch: - if (sorfina != 1) + callfunc "TutorialState"; + if (@tutorial != 1) end; mes "[Sorfina]"; mes "\"Very good! I'm glad you're recovering."; @@ -272,14 +286,16 @@ OnTouch: 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 sorfina, 2; + set @tutorial_tmp, 2; + callfunc "SetTutorialMask"; close; } -042-2.gat,27,23,0|script|Chest#sorfina|111, +042-2.gat,27,23,0|script|Chest#tutorial|111, { - if (sorfina > 2) goto L_Empty; - if (sorfina == 2) goto L_Shirt; + callfunc "TutorialState"; + if (@tutorial > 2) goto L_Empty; + if (@tutorial == 2) goto L_Shirt; mes "The chest is locked."; close; @@ -295,7 +311,8 @@ L_Shirt: 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 sorfina, 3; + set @tutorial_tmp, 3; + callfunc "SetTutorialMask"; close; L_Empty: @@ -303,15 +320,15 @@ L_Empty: close; } -042-2.gat,44,31,0|script|#DoorOut-sorfina|45,0,0 +042-2.gat,44,31,0|script|#DoorOut-@tutorial|45,0,0 { end; OnTouch: - if ((sorfina < 4) - && !(FLAGS & FLAG_TUTORIAL_DONE)) + callfunc "TutorialState"; + if ((@tutorial < 4) && !(FLAGS & FLAG_TUTORIAL_DONE)) goto L_Block; - warp "042-1.gat", 63, 77; + warp "042-1.gat", 63, 49; end; L_Block: |