summaryrefslogtreecommitdiff
path: root/world/map/npc/015-1
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/015-1')
-rw-r--r--world/map/npc/015-1/_import.txt9
-rw-r--r--world/map/npc/015-1/_mobs.txt20
-rw-r--r--world/map/npc/015-1/_warps.txt6
-rw-r--r--world/map/npc/015-1/alice.txt82
-rw-r--r--world/map/npc/015-1/barrier.txt7
-rw-r--r--world/map/npc/015-1/monsters.txt59
-rw-r--r--world/map/npc/015-1/sword.txt351
7 files changed, 534 insertions, 0 deletions
diff --git a/world/map/npc/015-1/_import.txt b/world/map/npc/015-1/_import.txt
new file mode 100644
index 00000000..94963d0b
--- /dev/null
+++ b/world/map/npc/015-1/_import.txt
@@ -0,0 +1,9 @@
+// Map 015-1: Woodland
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 015-1.gat
+npc: npc/015-1/_mobs.txt
+npc: npc/015-1/_warps.txt
+npc: npc/015-1/alice.txt
+npc: npc/015-1/barrier.txt
+npc: npc/015-1/monsters.txt
+npc: npc/015-1/sword.txt
diff --git a/world/map/npc/015-1/_mobs.txt b/world/map/npc/015-1/_mobs.txt
new file mode 100644
index 00000000..cc1c71e9
--- /dev/null
+++ b/world/map/npc/015-1/_mobs.txt
@@ -0,0 +1,20 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// Woodland mobs
+
+015-1.gat,0,0,0,0 monster Clover 1037,2,100000,1000,Mob015-1::On1037
+015-1.gat,0,0,0,0 monster Butterfly 1055,10,30,20,Mob015-1::On1055
+
+
+015-1.gat,0,0,0 script Mob015-1 -1,{
+On1037:
+ set @mobID, 1037;
+ callfunc "MobPoints";
+ break;
+
+On1055:
+ set @mobID, 1055;
+ callfunc "MobPoints";
+ break;
+
+ end;
+}
diff --git a/world/map/npc/015-1/_warps.txt b/world/map/npc/015-1/_warps.txt
new file mode 100644
index 00000000..a8152425
--- /dev/null
+++ b/world/map/npc/015-1/_warps.txt
@@ -0,0 +1,6 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// Woodland warps
+
+015-1.gat,93,55 warp ToWoodland -1,0,010-1.gat,15,55
+015-1.gat,59,31 warp to 015_3 -1,-1,015-3.gat,31,42
+015-1.gat,59,101 warp toSwamp 2,-1,025-1.gat,89,20
diff --git a/world/map/npc/015-1/alice.txt b/world/map/npc/015-1/alice.txt
new file mode 100644
index 00000000..125cc104
--- /dev/null
+++ b/world/map/npc/015-1/alice.txt
@@ -0,0 +1,82 @@
+// A herb collector giving the players some hints about finding and brewing
+// herbs.
+
+015-1.gat,52,53,0 script Alice 106, {
+ mes "[Alice]";
+ mes "\"Greeting, fellow wanderer.";
+ mes "Are you collecting herbs, too?\"";
+ next;
+ if (LastHiss == 2 && Katze < 4)
+ menu
+ "Yes, sure.", L_findmany,
+ "Herbs?", L_herbs,
+ "Nope, just enjoying the scenery.", L_close,
+ "I saw the cat, but it doesn't like me.", L_cat;
+ if (LastHiss == 1)
+ menu
+ "Yes, sure.", L_findmany,
+ "Herbs?", L_herbs,
+ "Nope, just enjoying the scenery.", L_close,
+ "There is a monster in that cave!", L_cave;
+ menu
+ "Yes, sure.", L_findmany,
+ "Herbs?", L_herbs,
+ "Nope, just enjoying the scenery.", L_close;
+
+L_close:
+ close;
+
+L_findmany:
+ mes "[Alice]";
+ mes "\"And? Did you already find a lot?\"";
+ next;
+ menu
+ "Yes, I already got plenty of them.", L_plenty,
+ "No, I am out of luck.", -;
+ mes "[Alice]";
+ mes "\"Oooh, how sad. Let me give you a little tip:";
+ mes "Herbs are often growing in places where they can't be spotted that easily. Don't forget to look behind the trees, too.\"";
+ close;
+
+L_plenty:
+ mes "[Alice]";
+ mes "\"That's great.";
+ mes "When you are not that good at brewing you should consider letting someone else brew them for you.";
+ mes "Good brewers get much better healing potions from them.";
+ mes "The most important characteristic of a good brewer is intelligence.\"";
+ close;
+
+L_herbs:
+ mes "[Alice]";
+ mes "\"Yes, some powerful magic herbs started to grow around here and a mile to the southeast.";
+ mes "Caul in Hurnscald found a way to brew magical healing potions from them, and I have heard a rumor that they may also be good for making colors.";
+ mes "Now everyone is running around in the woods to harvest the herbs.\"";
+ close;
+
+L_cave:
+ mes "[Alice]";
+ mes "\"Haha, that is no monster! It's just a sweet little cat.\"";
+ next;
+ menu
+ "But it wanted to kill me!", -,
+ "A cat!? I'll go and kill it!", -;
+ mes "[Alice]";
+ mes "\"No no, I'm sure it was only frightened. It gets upset when you've got clothes or weapons on you.\"";
+ next;
+ menu
+ "Ok, let's try it without clothes then", -,
+ "What a stupid cat!", -;
+ mes "[Alice]";
+ mes "\"Please don't do her any harm. See you later!\"";
+ close;
+
+L_cat:
+ mes "[Alice]";
+ mes "\"You would have to tame her first. Maybe she's thirsty or hungry. Cats also tend to get bored without something to play with. Good luck!\"";
+ next;
+ menu "Thank you so much!", L_close,
+ "Are you crazy? Taming a cat?", -;
+ mes "[Alice]";
+ mes "\"Well, it's up to you.\"";
+ close;
+}
diff --git a/world/map/npc/015-1/barrier.txt b/world/map/npc/015-1/barrier.txt
new file mode 100644
index 00000000..0ba82ec9
--- /dev/null
+++ b/world/map/npc/015-1/barrier.txt
@@ -0,0 +1,7 @@
+// This barrier is for checking whether the player went outside after
+// progressing with the cat quest.
+
+015-1.gat,59,32,0 script #CatOutsideBarrier 0,1,1,{
+ set KatzeBeenOutside, 1;
+ // No close here, as this doesn't open any client windows
+}
diff --git a/world/map/npc/015-1/monsters.txt b/world/map/npc/015-1/monsters.txt
new file mode 100644
index 00000000..b6ff0fd9
--- /dev/null
+++ b/world/map/npc/015-1/monsters.txt
@@ -0,0 +1,59 @@
+// Map: 015-1
+// This is South-West Woodland.
+//
+
+015-1.gat,0,0,0,0 monster LogHead 1025,40,0,0,Mob31::OnLogHead
+015-1.gat,0,0,0,0 monster SpikyMushroom 1019,20,0,0,Mob31::OnSpikyMushroom
+015-1.gat,0,0,0,0 monster PinkFlower 1014,20,0,0,Mob31::OnPinkFlower
+
+015-1.gat,0,0,0,0 monster Gamboge 1031,5,0,0,Mob31::OnGamboge
+015-1.gat,0,0,0,0 monster Alizarin 1032,5,0,0,Mob31::OnAlizarin
+015-1.gat,0,0,0,0 monster Mauve 1029,4,270000,180000,Mob31::OnMauve
+
+015-1.gat,0,0,0,0 monster SilkWorm 1035,7,15000,7000,Mob31::onSilkWorm
+
+015-1.gat,0,0,0,0 monster Squirrel 1038,30,20,10,Mob31::OnSquirrel
+
+015-1.gat,0,0,0 script Mob31 -1,{
+OnLogHead:
+ set @mobID, 1025;
+ callfunc "MobPoints";
+ break;
+
+OnSpikyMushroom:
+ set @mobID, 1019;
+ callfunc "MobPoints";
+ break;
+
+OnPinkFlower:
+ set @mobID, 1014;
+ callfunc "MobPoints";
+ break;
+
+OnMauve:
+ set @mobID, 1029;
+ callfunc "MobPoints";
+ break;
+
+OnGamboge:
+ set @mobID, 1031;
+ callfunc "MobPoints";
+ break;
+
+OnAlizarin:
+ set @mobID, 1032;
+ callfunc "MobPoints";
+ break;
+
+OnSilkWorm:
+ set @mobID, 1035;
+ callfunc "MobPoints";
+ break;
+
+OnSquirrel:
+ set @mobID, 1038;
+ callfunc "MobPoints";
+ break;
+
+ end;
+}
diff --git a/world/map/npc/015-1/sword.txt b/world/map/npc/015-1/sword.txt
new file mode 100644
index 00000000..f5f0cd17
--- /dev/null
+++ b/world/map/npc/015-1/sword.txt
@@ -0,0 +1,351 @@
+015-1.gat,97,97,0 script #MagicSword#_M 127,{
+ if (getskilllv(SKILL_MAGIC))
+ goto L_message;
+ mes "It appears to be an ordinary sword.";
+ close;
+
+L_message:
+ set @Q_MASK, (NIBBLE_6_MASK | NIBBLE_7_MASK);
+ set @Q_SHIFT, NIBBLE_6_SHIFT;
+ set @Q_status, (QUEST_MAGIC & @Q_MASK) >> @Q_SHIFT;
+
+ // Set up SkillUp function
+ set @SUP_id, SKILL_MAGIC_WAR;
+ set @SUP_name$, "War Magic";
+
+ set @STATUS_INITIAL, 0;
+ set @STATUS_LEARNED_FLAREDART, 1;
+ set @STATUS_LEARNED_MAGICBLADE, 2;
+ set @STATUS_LEVEL2, 3;
+ set @STATUS_W11, 4;
+ set @STATUS_W12, 5;
+ set @STATUS_W11_12, 6;
+ set @STATUS_L2_ALLSPELLS, 7;
+
+ if (@Q_status == @STATUS_INITIAL) goto L_Initial;
+ if (@Q_status == @STATUS_LEARNED_FLAREDART) goto L_FlareStage;
+ if (@Q_status == @STATUS_LEARNED_MAGICBLADE) goto L_MagicBladeStage;
+ if (@Q_status == @STATUS_LEVEL2) goto L_L2_W12;
+ if (@Q_status == @STATUS_W11) goto L_L2_W12;
+ if (@Q_status == @STATUS_W12) goto L_L2_almost_done;
+ if (@Q_status == @STATUS_W11_12) goto L_L2_W10;
+
+ mes "[Mystic Sword]";
+ mes "\"I have taught thee all I can teach for now.\"";
+ close;
+
+L_Initial:
+ mes "[Mystic Sword]";
+ mes "At this point, the river deepens, slowing down to a leisurely pace. In its center you notice an unusual stone, waves breaking around it.";
+ mes "Sticking out of the rock is a sword hilt.";
+ next;
+
+ mes "[Mystic Sword]";
+ mes "Suddenly, you hear a strange, metallic voice in your head, the voice of a woman.";
+ mes "\"A blissful day to thee, mortal!\"";
+ next;
+
+ mes "[Mystic Sword]";
+ mes "\"What is it is that brings thee to this place?\"";
+ next;
+
+ menu
+ "Who are you?", L_noq,
+ "Nothing in particular.", L_Initial_nothing,
+ "I was just exploring...", L_Initial_nothing,
+ "I am trying to learn magic!", L_Initial_learn;
+ close;
+
+L_noq:
+ mes "[Mystic Sword]";
+ mes "The voice sounds slightly amused.";
+ mes "\"How sad to hear how manners have degenerated in recent centuries. Farewell for now, dear mortal.\"";
+ close;
+
+L_Initial_nothing:
+ mes "[Mystic Sword]";
+ mes "\"Then I wish thee well in thy travels, wanderer!\"";
+ close;
+
+L_Initial_learn:
+ mes "[Mystic Sword]";
+ mes "\"Magic? Unless I am very mistaken thou already possessest some magic. Yet perhaps I can grant thee some slight aid by providing a magical invocation?\"";
+ next;
+
+ mes "[Mystic Sword]";
+ mes "\"Alas, my nature is not quite conductive for spells of healing or protection, though I can bestow upon thee the powers for a rather more martial kind of power.\"";
+ next;
+
+ menu
+ "I am not interested in that.", L_Farewell,
+ "It might be good for me to learn that.", -,
+ "I am quite interested.", -;
+
+ mes "[Mystic Sword]";
+ mes "\"Why is it that thou seekest this power?\"";
+ next;
+
+ menu
+ "Never mind.", L_Farewell,
+ "To become stronger!", L_Initial_selfish,
+ "To kill!", L_Initial_selfish,
+ "I don't know yet...", L_Initial_dontknow,
+ "To protect the ones I love!", L_Initial_protect;
+ close;
+
+L_Initial_selfish:
+ mes "[Mystic Sword]";
+ mes "\"Please return when thou art taking thy quest for magic a little more seriously.\"";
+ close;
+
+L_Initial_dontknow:
+ mes "[Mystic Sword]";
+ mes "\"A fair and honest thought at so early a point in thine quest.\"";
+ goto L_Initial_ok;
+
+L_Initial_protect:
+ mes "[Mystic Sword]";
+ mes "\"Quite a high and laundable goal thou hast chosen for thyself! I do hope that thou canst live up to it.\"";
+
+L_Initial_ok:
+ mes "\"Hark, then, mortal! For I shall bestow upon thee the secret of the flare dart spell!\"";
+ next;
+
+ mes "[Mystic Sword]";
+ mes "\"Oh, my apologies-- that was a little overly dramatic. But I do not get to talk to thy kin anymore all that often.\"";
+ next;
+
+ mes "[Mystic Sword]";
+ mes "\"For the flare dart spell throw a handful of sulphur powder up into the air, and say, '" + getspellinvocation("flare-dart") + "'.\"";
+ set @Q_status, @STATUS_LEARNED_FLAREDART;
+ callsub S_update_var;
+ next;
+
+ mes "[Mystic Sword]";
+ mes "\"From then on, thou canst shoot fiery missiles from thy fingers, for a limited time.\"";
+ next;
+
+ mes "[Mystic Sword]";
+ mes "\"Use it wisely, mortal!.\"";
+ next;
+
+ goto L_Farewell;
+
+L_FlareStage:
+ menu
+ "Uhm... Hello, Sword?", L_FlareStage_hello,
+ "Can you teach me more magic?", L_FlareStage_impolite,
+ "Where can I get sulphur powder?", L_FlareStage_impolite;
+ close;
+
+L_FlareStage_impolite:
+ mes "[Mystic Sword]";
+ mes "You hear a metallic chime in your head. After a second, you come to the conclusion that it was probably the sword sighing.";
+ mes "\"Greetings to thee, too, mortal, and farewell until thou hast learned some proper manners.\"";
+ close;
+
+L_FlareStage_hello:
+ mes "[Mystic Sword]";
+ mes "\"Well met once more, mortal! What brings thee here?\"";
+ next;
+
+ menu
+ "Can you teach me more magic?", L_FlareStage_moremagic,
+ "Where can I find sulphur powder?", L_FlareStage_sulphur,
+ "Farewell!", L_Farewell;
+ close;
+
+L_FlareStage_moremagic:
+ mes "[Mystic Sword]";
+ mes "\"I can indeed! But first I must see if thou art worthy. Find my brother, and talk to him! If thou canst find him, he shall teach thee another spell.\"";
+ next;
+ goto L_Farewell;
+
+L_FlareStage_sulphur:
+ mes "[Mystic Sword]";
+ mes "\"I do not know, though I suggest to seek out a local alchemist, if there is any.\"";
+ next;
+ goto L_Farewell;
+
+L_MagicBladeStage:
+ mes "[Mystic Sword]";
+ mes "\"Welcome back! Thou hast now learned two basic spells of War magic.\"";
+ next;
+
+ mes "[Mystic Sword]";
+ mes "\"Dost thou wish to continue thy pursuits of this school of magic?\"";
+ next;
+
+ menu
+ "No.", -,
+ "Yes.", L_Levelup2_yes;
+
+ goto L_Farewell;
+
+L_Levelup2_yes:
+ mes "[Mystic Sword]";
+ mes "\"Beware of what thou wishest for, mortal...\"";
+ next;
+
+ if (!MPQUEST) goto L_Levelup2_must_reg;
+ if (MPQUEST && (Mobpt < 1000)) goto L_Levelup2_must_practice;
+
+ mes "[Mystic Sword]";
+ mes "\"Thou hast collected " + Mobpt + " Monster Points. For one thousand of them, I shall admit thee to the school of war magic.\"";
+ next;
+
+ menu
+ "OK!", -,
+ "No... never mind.", L_Farewell;
+
+ set Mobpt, Mobpt - 1000;
+
+ mes "[Mystic Sword]";
+ mes "The sword begins to chant in your head!";
+ mes "\"Lords of Thunder, Fire, Rage!\"";
+ mes "\"Grant thy powers to this mage,\"";
+ mes "\"Rising with thy dreadful roar,\"";
+ if (Sex)
+ mes "\"Answer to his call to War!\"";
+ if (!Sex)
+ mes "\"Answer to her call to War!\"";
+ next;
+
+ mes "[Mystic Sword]";
+ mes "Your heart starts pounding, and suddenly you can hear the sound of drums in your head.";
+ mes "You smell something metallic...";
+ next;
+
+ mes "[Mystic Sword]";
+ mes "The sensation and the noises vanish as quickly as they came.";
+
+ set @Q_status, @STATUS_LEVEL2;
+ callsub S_update_var;
+
+ set @SUP_xp, 5000;
+ set @SUP_lvl, 2;
+ callfunc "SkillUp";
+ next;
+
+ mes "[Mystic Sword]";
+ mes "\"Thou hast now taken thy first true step down the path of war magic.\"";
+ if (getskilllv(SKILL_MAGIC) < 2)
+ mes "\"When thou returnest, I shall teach thee another spell, but beware: thou must increase thy overall grasp of magic before thou canst wield it!\"";
+ next;
+ goto L_Farewell;
+
+
+L_Levelup2_must_reg:
+ mes "[Mystic Sword]";
+ mes "\"To learn further magic, thou must advance in the school of war magic. I shall grant thee this advance if thou provest thy worthiness as a warrior.\"";
+ next;
+ mes "[Mystic Sword]";
+ mes "\"Travel to the city of Tulimshar, and talk to Aidan. Then, collect one thousand Monster Points and return to me.\"";
+ next;
+ goto L_Farewell;
+
+L_Levelup2_must_practice:
+ mes "[Mystic Sword]";
+ mes "\"To advance thy magical powers, I must admit thee to the school of war magic. Prove to me that thou art a worthy warrior by collecting one thousand Monster Points, and return.\"";
+ next;
+ goto L_Farewell;
+
+L_Farewell:
+ mes "[Mystic Sword]";
+ mes "\"Farewell for now!\"";
+ close;
+
+L_L2_W12:
+ mes "[Mystic Sword]";
+ mes "\"Welcome back, traveler! Hast thou returned to advance in thy quest for magic?\"";
+ next;
+ menu
+ "No.", L_farewell,
+ "Yes.", -;
+
+ mes "[Mystic Sword]";
+ mes "\"Very well. I shall teach thee another spell, if thou provest thy progress by sacrificing another five thousand monster points.\"";
+ next;
+ menu
+ "No, I don't want that.", L_farewell,
+ "So be it.", -;
+
+ if (Mobpt < 5000) goto L_lacking_mobpoints;
+
+ mes "[Mystic Sword]";
+ mes "\"Indeed thou art worthy. The next spell I shall teach thee will enchant thy knuckles to turn them into powerful weapons; the component is a mere beer.\"";
+ mes "[1000 experience points]";
+ set Mobpt, Mobpt - 5000;
+ getexp 1000, 0;
+ set @Q_status, @Q_status + 2;
+ callsub S_update_var;
+ next;
+
+ mes "[Mystic Sword]";
+ mes "\"Speak '" + getspellinvocation("magic-knuckles") + "' and take a glass of beer and drink it, without ever taking it off thy lips. This will harden and enchant thy fists, turning them into powerful weapons.\"";
+ close;
+
+L_L2_almost_done:
+ mes "[Mystic Sword]";
+ mes "\"Greetings once more, traveler! I have another spell I wish to teach thee, but first thou must learn my brother's arrow spell.\"";
+ close;
+
+L_L2_W10:
+ mes "[Mystic Sword]";
+ mes "\"Welcome back!\"";
+ next;
+
+ mes "[Mystic Sword]";
+ mes "\"I shall now teach thee the final spell of this level of war magic. For further spells thou wilt have to increase thy magical powers more.\"";
+ next;
+
+ mes "[Mystic Sword]";
+ mes "\"For this spell, I ask that thou bringest a lump of iron ore. Thou must also sacrifice ten thousand monster points.\"";
+ next;
+
+ menu
+ "OK.", -,
+ "No way.", L_farewell;
+
+ if (countitem("IronOre") < 1)
+ goto L_no_ore;
+ if (MPQUEST && (Mobpt < 10000)) goto L_lacking_mobpoints;
+
+ mes "[Mystic Sword]";
+ mes "\"Raise up the ore, mortal!\"";
+ mes "As you do so, the ore begins to crumble, leaving only iron powder behind.";
+ mes "[1000 experience points]";
+ set Mobpt, Mobpt - 10000;
+ getexp 1000, 0;
+ delitem "IronOre", 1;
+ getitem "IronPowder", 5;
+ set @Q_status, @STATUS_L2_ALLSPELLS;
+ callsub S_update_var;
+ next;
+
+ mes "[Mystic Sword]";
+ mes "\"This powder thou shalst need to cast the lightning spell. Throw it up into the air and shout '" + getspellinvocation("lightning-strike") + "', and smite thine enemies with lightning.\"";
+ next;
+ goto L_farewell;
+
+L_no_ore:
+ mes "[Mystic Sword]";
+ mes "\"Thou dost appear to lack ore. We cannot continue; please fare well and return swiftly!\"";
+ close;
+
+L_farewell:
+ mes "[Mystic Sword]";
+ mes "\"Then I bid thee farewell for now!\"";
+ close;
+
+L_lacking_mobpoints:
+ mes "[Mystic Sword]";
+ mes "\"Thou dost not have enough monster points to prove thy worthiness. Return when thou hast slain more monsters!\"";
+ close;
+
+S_update_var:
+ set QUEST_MAGIC,
+ (QUEST_MAGIC & ~(@Q_MASK)
+ | (@Q_status << @Q_SHIFT));
+ return;
+}