diff options
Diffstat (limited to 'npc/015-1')
-rw-r--r-- | npc/015-1/_import.txt | 9 | ||||
-rw-r--r-- | npc/015-1/_mobs.txt | 20 | ||||
-rw-r--r-- | npc/015-1/_warps.txt | 6 | ||||
-rw-r--r-- | npc/015-1/alice.txt | 82 | ||||
-rw-r--r-- | npc/015-1/barrier.txt | 7 | ||||
-rw-r--r-- | npc/015-1/monsters.txt | 59 | ||||
-rw-r--r-- | npc/015-1/sword.txt | 351 |
7 files changed, 534 insertions, 0 deletions
diff --git a/npc/015-1/_import.txt b/npc/015-1/_import.txt new file mode 100644 index 00000000..94963d0b --- /dev/null +++ b/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/npc/015-1/_mobs.txt b/npc/015-1/_mobs.txt new file mode 100644 index 00000000..cc1c71e9 --- /dev/null +++ b/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/npc/015-1/_warps.txt b/npc/015-1/_warps.txt new file mode 100644 index 00000000..a8152425 --- /dev/null +++ b/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/npc/015-1/alice.txt b/npc/015-1/alice.txt new file mode 100644 index 00000000..125cc104 --- /dev/null +++ b/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/npc/015-1/barrier.txt b/npc/015-1/barrier.txt new file mode 100644 index 00000000..0ba82ec9 --- /dev/null +++ b/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/npc/015-1/monsters.txt b/npc/015-1/monsters.txt new file mode 100644 index 00000000..b6ff0fd9 --- /dev/null +++ b/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/npc/015-1/sword.txt b/npc/015-1/sword.txt new file mode 100644 index 00000000..f5f0cd17 --- /dev/null +++ b/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; +} |