// This file is part of the Tutorial
// Author: Jenalya
042-2.gat,21,26,0|script|TutDebug|154,
{
mes "[TutDebug]";
mes "Reset?";
menu
"Yes.",L_Reset,
"No.",L_End;
L_Reset:
set TUT_var, 0;
set @tutorial_tmp, 0;
set TUTORIAL, (TUTORIAL & ~(NIBBLE_0_MASK) | (@tutorial_tmp << NIBBLE_0_SHIFT));
set TUTORIAL, TUTORIAL &~ $@SorfinaHasanBit;
set TUTORIAL, TUTORIAL &~ $@TanishaHasanBit;
set TUTORIAL, TUTORIAL &~ $@HasanCompleteBit;
set FLAGS, FLAGS &~ FLAG_TUTORIAL_DONE;
mes "Reset!";
goto L_End;
L_End:
end;
OnInit:
if(!debug)
disablenpc "TutDebug";
end;
}
042-2.gat,28,26,0|script|Sorfina|154,1,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 ((@tutorial == 11) && !(@sorfina_hasan)) goto L_Hasan;
if (FLAGS & FLAG_TUTORIAL_DONE) goto L_Again;
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 red carpet over there.";
mes "Just use the ###keyMoveUp; to move up, ###keyMoveDown; to move down, ";
mes " ###keyMoveLeft; to move left, ###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 in the storehouse, that's the second building southeast from here.\"";
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, ###keyMoveDown; to move down, ";
mes " ###keyMoveLeft; to move left, ###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, TUTORIAL | $@SorfinaHasanBit;
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.";
callfunc "TutorialCompleted";
getitem "Knife", 1;
getitem "SlingShot", 1;
getitem "SlingBullet", 100;
getitem "HitchhikersTowel", 1;
getitem "CottonShirt", 1;
getitem "RaggedShorts", 1;
set Zeny, Zeny + 50;
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) && !(FLAGS & FLAG_TUTORIAL_DONE))
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;
}