diff options
Diffstat (limited to 'world/map/npc/042-2')
-rw-r--r-- | world/map/npc/042-2/sorfina.txt | 93 | ||||
-rw-r--r-- | world/map/npc/042-2/tanisha.txt | 73 |
2 files changed, 97 insertions, 69 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: diff --git a/world/map/npc/042-2/tanisha.txt b/world/map/npc/042-2/tanisha.txt index 673ab696..482224f0 100644 --- a/world/map/npc/042-2/tanisha.txt +++ b/world/map/npc/042-2/tanisha.txt @@ -8,17 +8,19 @@ goto L_Fighting; if (FLAGS & FLAG_TUTORIAL_DONE) goto L_Tut_Done; - if (tanisha == 4) goto L_Again; - if (tanisha == 3) goto L_Stats; - if (tanisha == 2) goto L_Fail; - if (tanisha == 1) goto L_Maggots; + + callfunc "TutorialState"; + if ((@tutorial == 11) && !(@tanisha_hasan)) goto L_Hasan; + if (@tutorial >= 8) goto L_Again; + if (@tutorial == 7) goto L_Stats; + if (@tutorial == 6) goto L_Fail; + if (@tutorial == 5) goto L_Maggots; mes "[Tanisha]"; mes "\"Hey! You're up again!\""; emotion EMOTE_HAPPY; next; mes "\"Are you feeling better?\""; - next; menu "Yes, thank you.",L_Next, "Yeah, but all my stuff is gone.",L_Next; @@ -28,7 +30,8 @@ L_Next: mes "\"I'm glad you're feeling better. It was really bad luck what happened to you."; mes "Hey, I have an idea.\""; next; - set tanisha, 1; + set @tutorial_tmp, 5; + callfunc "SetTutorialMask"; goto L_Maggots; L_Maggots: @@ -38,12 +41,11 @@ L_Maggots: next; mes "\"If you kill them, I'll give you my knife."; mes "What do you say?\""; - next; menu - "Sure!",L_Continue, + "Sure!",L_Next1, "That's your job.",L_Close; -L_Continue: +L_Next1: mes "[Tanisha]"; mes "\"Wonderful!\""; // since the check happens here, it is actually possible to have @@ -51,9 +53,10 @@ L_Continue: // but that's not a BIG problem if (getareausers("042-2.gat", 30, 85, 36, 89) >= $@Maggot_MaxHunters) goto L_Crowded; - goto L_FightAgain; + next; + goto L_Fight_Again; -L_FightAgain: +L_Fight_Again: mes "\"Ok, listen what to do."; mes "Equip a weapon and kill the maggots.\""; next; @@ -66,9 +69,10 @@ L_FightAgain: next; mes "\"Sometimes dead monsters leave some useful things. You can pick them up by pressing Z or clicking on the items with your mouse.\""; close2; - // The getitem must be in the same place as set tanisha, 2; - // since it was moved to after L_FightAgain, add it conditionally - if (tanisha == 1) + // The getitem must be in the same place as set @tutorial, 2; + // since it was moved to after L_Fight_Again, add it conditionally + callfunc "TutorialState"; + if (@tutorial == 5) goto L_GetFightItems; goto L_ContinueFight; @@ -79,7 +83,8 @@ L_GetFightItems: goto L_ContinueFight; L_ContinueFight: - set tanisha, 2; + set @tutorial_tmp, 6; + callfunc "SetTutorialMask"; set @Maggot_Kills, 0; set @time, 0; if (getareausers("042-2.gat", 30, 85, 36, 89) == 0) @@ -124,7 +129,7 @@ L_StatsRe: mes "[Tanisha]"; mes "\"But I doubt he'd do that without a service in return.\""; - if (tanisha != 3) + if (@tutorial != 7) goto L_Close; goto L_Money; @@ -141,19 +146,18 @@ L_Advice: mes "\"When you go to Tulimshar, you should see Bernard. He can make a delicious soup!"; mes "Good luck!\""; emotion EMOTE_HAPPY; - if (tanisha == 3) - set tanisha, 4; + if (@tutorial == 7) + goto L_SetTutorial; + goto L_Close; + +L_SetTutorial: + set @tutorial_tmp, 8; + callfunc "SetTutorialMask"; goto L_Close; L_Again: mes "[Tanisha]"; mes "\"Hi there! Is everything alright? Do you have 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 again about...",L_Explain, "No, thanks.",L_Close; @@ -192,13 +196,20 @@ L_Mob: L_Hasan: mes "[Tanisha]"; + mes "\"Hi there! Is everything alright? Do you have questions?\""; + menu + "A guy named Hasan won't let me enter Tulimshar.",L_Next3, + "Yes, could you explain again about...",L_Explain, + "No, thanks.",L_Close; + +L_Next3: + mes "[Tanisha]"; mes "\"Bah, Hasan. He's a jerk. But he's very strong.\""; next; mes "\"The only thing he's afraid of are scorpions."; mes "I'm not sure why, some bad experience when he was a child."; mes "That was before I was born.\""; - if (hasan == 1) - set hasan, 2; + set TUTORIAL, TUTORIAL | $@TanishaHasanBit; goto L_Close; L_Tut_Done: @@ -243,15 +254,14 @@ L_Fail: mes "[Tanisha]"; mes "\"Oops, I'm sorry. It's just too funny."; mes "Do you want to try it again?\""; - next; menu - "Sure!", L_TryAgain, + "Sure!", L_Next2, "No, I need a rest.", L_Close; -L_TryAgain: +L_Next2: if (getareausers("042-2.gat", 30, 85, 36, 89) >= $@Maggot_MaxHunters) goto L_Crowded; - goto L_FightAgain; + goto L_Fight_Again; L_Fighting: message strcharinfo(0), "Tanisha: I believe in you!"; @@ -297,7 +307,8 @@ OnMaggotDeath: goto L_Summon; // else, complete warp "042-2.gat", 36, 90; - set tanisha, 3; + set @tutorial_tmp, 7; + callfunc "SetTutorialMask"; set @Maggot_Kills, 0; set @time, 0; if (getareausers("042-2.gat", 30, 85, 36, 89) == 0) |