summaryrefslogtreecommitdiff
path: root/world/map/npc/029-2/sorfina.txt
diff options
context:
space:
mode:
authorwushin <pasekei@gmail.com>2015-01-07 21:00:16 -0600
committerwushin <pasekei@gmail.com>2015-01-07 21:00:16 -0600
commit2901ba177dea5867cbd52eb2b02a0ef8e1816e15 (patch)
tree81cc70a70e7cc0b9e46cc3e055dea1c702db1309 /world/map/npc/029-2/sorfina.txt
parentfb7caf2cb0e768cf4b9c7f83df644edc97250a78 (diff)
downloadserverdata-2901ba177dea5867cbd52eb2b02a0ef8e1816e15.tar.gz
serverdata-2901ba177dea5867cbd52eb2b02a0ef8e1816e15.tar.bz2
serverdata-2901ba177dea5867cbd52eb2b02a0ef8e1816e15.tar.xz
serverdata-2901ba177dea5867cbd52eb2b02a0ef8e1816e15.zip
Moving Tutorial from Tulimshar to Candor
Diffstat (limited to 'world/map/npc/029-2/sorfina.txt')
-rw-r--r--world/map/npc/029-2/sorfina.txt388
1 files changed, 388 insertions, 0 deletions
diff --git a/world/map/npc/029-2/sorfina.txt b/world/map/npc/029-2/sorfina.txt
new file mode 100644
index 00000000..671835f1
--- /dev/null
+++ b/world/map/npc/029-2/sorfina.txt
@@ -0,0 +1,388 @@
+// This file is part of the Tutorial
+// Author: Jenalya
+029-2.gat,27,27,0|script|Sorfina|154,0,1
+{
+ setarray @npc_loc, 27, 27, 2;
+ callfunc "PCtoNPCRange";
+ if (@npc_check)
+ goto L_Close;
+ goto L_Main;
+
+L_Main:
+ callfunc "TutorialState";
+ if (@tutorial == 10) goto L_Hasan;
+ if (@tutorial >= 4) goto L_Again;
+ if (@tutorial == 3) goto L_Clothes;
+ if (@tutorial == 2) goto L_Dresser;
+ if (@tutorial == 1) goto L_Carpet;
+ goto L_Start;
+
+L_Start:
+ mes "You open your eyes.";
+ mes "";
+ mes "[Old Woman]";
+ mes "\"Ah, you woke up. You washed ashore on the beach 3 days ago. You've been asleep since.";
+ mes "You must have been thrown off one of the ships sailing during that last tremor.\"";
+ mes "\"My little granddaughter Tanisha found you. Kaan was able to carry you to bed.";
+ mes "We've been taking care of you ever since. Waiting for you to wake up.\"";
+ mes "\"You didn't have any possessions on you when we found you and no one knows who you are.\"";
+ mes "Do you have a name?";
+ menu
+ strcharinfo(0), L_Name;
+
+L_Name:
+ mes "[Old Woman]";
+ mes "\"Well " + strcharinfo(0) + " what else can you tell me about yourself?.\"";
+ menu
+ "Umm... I... I don't remember anything...", L_KnowNothing;
+
+L_KnowNothing:
+ mes "[Old Woman]";
+ mes "\"Well I can tell you some useful things, if you want to hear.";
+ mes "Some of it might jog your memory or at least help you catch your bearings.";
+ mes "Oh, and by the way my name is Sorfina.\"";
+ 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 "\"You have arrived at a very strange time. The Council is visiting Candor today.\"";
+ mes "\"All the recent rumbling from the cave has all of Candor worried.\"";
+ mes "\"Our guess is something with the last big shaker was the reason you ended up here.\"";
+ mes "\"Ok, lets start by getting you dressed.\"";
+ 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_Dresser:
+ mes "[Sorfina]";
+ mes "\"In that dresser there are some clothes you can wear.\"";
+ 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.\"";
+ mes "\"Now get the clothes out of the dresser.\"";
+ 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.\"";
+ mes "\"Once we stop talking, double-click on the clothes to equip.\"";
+ 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?\"";
+ 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.\"";
+ 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.\"";
+
+ mes "\"Oh, and if you're looking for extra work, you should talk to Aidan and Valon when you go outside. They're giving rewards for monster hunting.";
+ mes "You can find Aidan near the camp fire outside and Valon out by the fields in the east.\"";
+ next;
+
+ mes "She digs in her pocket for a moment.";
+ mes "\"And here is some money for you. Don't spend it all in one place.";
+ mes "Now go help Tanisha downstairs.\"";
+ 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,
+ "Could I get Healed?",L_Heal,
+ "No, thanks.",L_Close;
+
+L_Heal:
+ if (BaseLevel > 20)
+ goto L_NoHeal;
+ 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_NoHeal:
+ mes "[Sorfina]";
+ mes "\"I'm sorry but your wounds are far to advanced for my skills.\"";
+ goto L_Main;
+
+L_Explain:
+ menu
+ "... walking?",L_Walk,
+ "... talking?",L_Talk,
+ "... the inventory and items?",L_Items,
+ "... shortcuts?",L_Shortcut,
+ "... what to do in Candor?",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 ###keyWindowShortcut; 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 heard Aidan and Valon are looking for brave adventurers, you might want to talk to them. ";
+ mes "You can find Aidan near the camp fire outside. The fields are just south of the town exit. ";
+ mes "You'll see Valon of the city gaurd standing there. They both are offering rewards for monster hunting.\"";
+ next;
+ mes "\"When you leave this area to the South, you'll come to the docks.";
+ mes "They will take you to Hurnscald, a major trading port.\"";
+ next;
+ mes "\"Go east out of Candor and north. You will find the cave everyone is talking about to the north.";
+ next;
+ 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.";
+ mes "[Sorfina]";
+ mes "\This guy has been a plague ever since he could walk. He's always causing trouble.\"";
+ mes "\"And his father... Well, one day his father thought he should teach Hasan a lesson.\"";
+ mes "\"He took him into the desert and then left him there!";
+ mes "Hasan was only seven years old!\"";
+ mes "\"I never understood how someone could do something like that to a child, even if it's a rascal like Hasan.\"";
+ mes "\"Anyway, Hasan tried to find his way back home, but stumbled into a nest of scorpions!\"";
+ mes "She shakes her head.";
+ mes "\"If Valon hadn't have come along that moment, Hasan would have died that day.\"";
+ 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. See you later.\"";
+ getitem "Knife", 1;
+ getitem "SlingShot", 1;
+ getitem "SlingBullet", 500;
+ getitem "HitchhikersTowel", 1;
+ getitem "CottonShirt", 1;
+ getitem "RaggedShorts", 1;
+ set Zeny, Zeny + 50;
+ set @tutorial_tmp, 8;
+ callfunc "SetTutorialMask";
+ goto L_Close;
+
+L_Close:
+ close;
+
+OnTouch:
+ callfunc "TutorialState";
+ if (@tutorial > 0)
+ end;
+ goto L_Start;
+}
+
+029-2.gat,33,27,0|script|#Carpet|32767,1,1
+{
+ end;
+
+OnTouch:
+ callfunc "TutorialState";
+ if (@tutorial != 1)
+ end;
+ mes "[Sorfina]";
+ mes "\"You should get dressed now.\"";
+ mes "\"In that dresser there are some clothes you can wear.\"";
+ 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 dresser.\"";
+ set @tutorial_tmp, 2;
+ callfunc "SetTutorialMask";
+ close;
+}
+
+029-2.gat,29,23,0|script|Dresser#tutorial|400
+{
+ setarray @npc_loc, 29, 23, 2;
+ callfunc "PCtoNPCRange";
+ if (@npc_check)
+ goto L_CloseDis;
+ callfunc "TutorialState";
+ if (@tutorial > 2) goto L_Empty;
+ if (@tutorial == 2) goto L_Shirt;
+ goto L_Walk;
+
+L_Walk:
+ mes "[Sorfina]";
+ mes "\"Thats not what I said to do. Please don't skip ahead.\"";
+ close;
+
+L_Shirt:
+ mes "You take a simple Cotton Shirt and some very worn-out Ragged Shorts out of the dresser.";
+ getitem "CottonShirt", 1;
+ getitem "RaggedShorts", 1;
+ mes "[Sorfina]";
+ mes "\"Great! Now you can equip it.\"";
+ 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 dresser is empty.";
+ close;
+
+L_CloseDis:
+ mes "You cannot reach that far.";
+ close;
+}
+
+029-2.gat,44,31,0|script|#DoorOutTut1|45,0,0
+{
+ end;
+
+OnTouch:
+ callfunc "TutorialState";
+ if (@tutorial < 4)
+ goto L_Block;
+ warp "029-2.gat", 112, 85;
+ end;
+
+L_Block:
+ message strcharinfo(0), "Sorfina: Wait a moment! You're not ready to leave.";
+ end;
+}
+029-2.gat,23,24,0|script|#GameRules1|32767,0,1
+{
+ end;
+
+OnTouch:
+ if (TUT_var > 0)
+ end;
+ mes "[Server/Client Notice]";
+ 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.";
+ callfunc "GameRules";
+ close;
+}
+029-2.gat,21,24,0|script|#GameRules2|32767,0,1
+{
+ end;
+
+OnTouch:
+ if (TUT_var > 0)
+ end;
+ callfunc "GameRules";
+ mes "[Server/Client Notice]";
+ 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.";
+ close;
+}
+029-2.gat,22,26,0|script|#GameRules3|32767,1,0
+{
+ if (TUT_var == 0)
+ goto L_KnockBack;
+ goto L_Close;
+
+L_KnockBack:
+ message strcharinfo(0), "Please Accept the Game rules";
+ warp "029-2.gat", 22, 24;
+ goto L_Close;
+
+L_Close:
+ close;
+}
+029-2.gat,24,24,0|script|#GameRules4|32767,0,1
+{
+ if (TUT_var == 0)
+ goto L_KnockBack;
+ goto L_Close;
+
+L_KnockBack:
+ message strcharinfo(0), "Please Accept the Game rules";
+ warp "029-2.gat", 22, 24;
+ goto L_Close;
+
+L_Close:
+ close;
+}