summaryrefslogtreecommitdiff
path: root/world/map/npc/005-1
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/005-1')
-rw-r--r--world/map/npc/005-1/_import.txt8
-rw-r--r--world/map/npc/005-1/_mobs.txt44
-rw-r--r--world/map/npc/005-1/_warps.txt19
-rw-r--r--world/map/npc/005-1/npcs.txt17
-rw-r--r--world/map/npc/005-1/spirit.txt305
-rw-r--r--world/map/npc/005-1/tree.txt162
6 files changed, 555 insertions, 0 deletions
diff --git a/world/map/npc/005-1/_import.txt b/world/map/npc/005-1/_import.txt
new file mode 100644
index 00000000..968adcd7
--- /dev/null
+++ b/world/map/npc/005-1/_import.txt
@@ -0,0 +1,8 @@
+// Map 005-1: Snake desert
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 005-1.gat
+npc: npc/005-1/_mobs.txt
+npc: npc/005-1/_warps.txt
+npc: npc/005-1/npcs.txt
+npc: npc/005-1/spirit.txt
+npc: npc/005-1/tree.txt
diff --git a/world/map/npc/005-1/_mobs.txt b/world/map/npc/005-1/_mobs.txt
new file mode 100644
index 00000000..177b995e
--- /dev/null
+++ b/world/map/npc/005-1/_mobs.txt
@@ -0,0 +1,44 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// Snake desert mobs
+
+005-1.gat,0,0,0,0 monster Maggot 1002,1,100000,30000,Mob005-1::On1002
+005-1.gat,0,0,0,0 monster Snake 1010,1,100000,30000,Mob005-1::On1010
+005-1.gat,71,77,9,6 monster Snake 1010,2,40000,50000,Mob005-1::On1010
+005-1.gat,92,25,8,5 monster Snake 1010,3,40000,50000,Mob005-1::On1010
+005-1.gat,98,54,95,52 monster Giant Maggot 1006,20,100000,30000,Mob005-1::On1006
+005-1.gat,91,18,66,23 monster Black Scorpion 1009,7,100000,30000,Mob005-1::On1009
+005-1.gat,99,87,85,32 monster Black Scorpion 1009,8,100000,30000,Mob005-1::On1009
+005-1.gat,30,42,20,23 monster Green Slime 1005,3,100000,30000,Mob005-1::On1005
+005-1.gat,118,70,3,2 monster Green Slime 1005,2,100000,30000,Mob005-1::On1005
+005-1.gat,163,71,32,65 monster Snake 1010,8,100000,30000,Mob005-1::On1010
+005-1.gat,96,49,103,48 monster Maggot 1002,20,100000,30000,Mob005-1::On1002
+
+
+005-1.gat,0,0,0 script Mob005-1 -1,{
+On1002:
+ set @mobID, 1002;
+ callfunc "MobPoints";
+ break;
+
+On1005:
+ set @mobID, 1005;
+ callfunc "MobPoints";
+ break;
+
+On1006:
+ set @mobID, 1006;
+ callfunc "MobPoints";
+ break;
+
+On1009:
+ set @mobID, 1009;
+ callfunc "MobPoints";
+ break;
+
+On1010:
+ set @mobID, 1010;
+ callfunc "MobPoints";
+ break;
+
+ end;
+}
diff --git a/world/map/npc/005-1/_warps.txt b/world/map/npc/005-1/_warps.txt
new file mode 100644
index 00000000..6d8c2597
--- /dev/null
+++ b/world/map/npc/005-1/_warps.txt
@@ -0,0 +1,19 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// Snake desert warps
+
+005-1.gat,19,41 warp ToSandstorm -1,2,002-1.gat,106,78
+005-1.gat,89,23 warp ToSnakeCave -1,-1,005-3.gat,52,34
+005-1.gat,71,75 warp ToSnakeCave -1,-1,005-3.gat,33,82
+005-1.gat,167,108 warp ToDesertMountains -1,-1,006-1.gat,20,33
+005-1.gat,168,107 warp ToDesertMountains -1,-1,006-1.gat,21,32
+005-1.gat,169,106 warp ToDesertMountains -1,-1,006-1.gat,22,31
+005-1.gat,171,104 warp ToDesertMountains -1,-1,006-1.gat,24,29
+005-1.gat,170,105 warp ToDesertMountains -1,-1,006-1.gat,23,30
+005-1.gat,172,103 warp ToDesertMountains -1,-1,006-1.gat,25,28
+005-1.gat,174,101 warp ToDesertMountains -1,-1,006-1.gat,27,26
+005-1.gat,173,102 warp ToDesertMountains -1,-1,006-1.gat,26,27
+005-1.gat,175,100 warp ToDesertMountains -1,-1,006-1.gat,28,25
+005-1.gat,176,99 warp ToDesertMountains -1,-1,006-1.gat,29,24
+005-1.gat,177,98 warp ToDesertMountains -1,-1,006-1.gat,30,23
+005-1.gat,178,97 warp ToDesertMountains -1,-1,006-1.gat,31,22
+005-1.gat,179,96 warp ToDesertMountains -1,-1,006-1.gat,32,21
diff --git a/world/map/npc/005-1/npcs.txt b/world/map/npc/005-1/npcs.txt
new file mode 100644
index 00000000..12f37ca1
--- /dev/null
+++ b/world/map/npc/005-1/npcs.txt
@@ -0,0 +1,17 @@
+//
+
+005-1.gat,69,76,0 shop George 115,530:3000,1199:1,529:-1,539:175,562:500
+
+005-1.gat,66,75,0 script Kieron 132,{
+ mes "[Kieron]";
+ mes "\"Be careful if you're going in that cave,";
+ mes "it's packed full of monsters.\"";
+ close;
+}
+
+005-1.gat,91,23,0 script William 131,{
+ mes "[William]";
+ mes "\"Going in the cave?";
+ mes "You better watch your step, last time I checked it was full of monsters!\"";
+ close;
+}
diff --git a/world/map/npc/005-1/spirit.txt b/world/map/npc/005-1/spirit.txt
new file mode 100644
index 00000000..d6723c8e
--- /dev/null
+++ b/world/map/npc/005-1/spirit.txt
@@ -0,0 +1,305 @@
+function script EarthImpTouch {
+ if (getskilllv(SKILL_MAGIC))
+ goto L_message;
+
+ mes "[Well]";
+ mes "You hear noises from within the well.";
+ close;
+
+L_message:
+ set @Q_MASK, NIBBLE_0_MASK;
+ set @Q_SHIFT, NIBBLE_0_SHIFT;
+ set @Q_status, (QUEST_MAGIC2 & @Q_MASK) >> @Q_SHIFT;
+
+ // Set up SkillUp function
+ set @SUP_id, SKILL_MAGIC_NATURE;
+ set @SUP_name$, "Nature Magic";
+
+ set @Q_STATUS_INITIAL, 0;
+ set @Q_STATUS_ONQUEST, 1;
+ set @Q_STATUS_STUDENT0, 2;
+ set @Q_STATUS_STUDENT1, 3;
+ set @Q_STATUS_STUDENT2, 4;
+ set @Q_STATUS_STUDENT3, 5;
+
+ set @s$, "girl";
+ if (Sex)
+ set @s$, "boy";
+
+ if (MAGIC_FLAGS & MFLAG_KNOWS_IMP)
+ goto L_wb;
+
+ mes "[Well]";
+ mes "Something is inside that well, and now that you have turned your attention towards it, it seems to be talking to you!";
+ next;
+
+ mes "[Well]";
+ mes "\"Hey! You there! Yes, I'm talking to you!\"";
+ mes "That strange voice seems to be coming from inside your head!";
+ next;
+
+ menu
+ "Who, me?", -,
+ "Leave me alone!", L_close,
+ "Aaah! I'm hearing voices!", L_silly_close;
+
+ mes "[Well]";
+ mes "\"I'm in here, in the well, talking to you! If I'm not very mistaken, you are a powerful wizard-to-be, except that nobody has showed you how to properly do magic yet!\"";
+ next;
+
+ menu
+ "Who are you?", -,
+ "Aaaah! The voices are after me!", L_silly_close,
+ "Whatever it is, I'm not interested.", L_close;
+
+ mes "[Earth Spirit]";
+ mes "\"I'm an earth spirit; my name isn't important... all that matters is that I like you, and that I will help you become a powerful wizard if you help me. Just a fair deal, no more than that...\"";
+ next;
+
+ set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_KNOWS_IMP;
+
+ goto L_main;
+L_wb:
+ mes "[Earth Spirit]";
+ mes "\"It's excellent to see you again!\"";
+ next;
+
+L_main:
+ menu
+ "How did you get trapped?", L_Q_trapped,
+ "Can you teach me magic and spells?", L_Q_magic,
+ "What do you know about...", L_Q,
+ "Goodbye!", -;
+ close;
+
+L_Q_trapped:
+ mes "[Earth Spirit]";
+ mes "\"Oh, a wicked witch grew jealous of my power and locked me up in this well.\"";
+ next;
+ goto L_main;
+
+L_Q:
+ mes "[Earth Spirit]";
+ mes "\"Stop bothering me with your questions, will you? I'm trying to make you a powerful wizard, after all!\"";
+ next;
+ goto L_main;
+
+L_Q_magic:
+ if (@Q_status == @Q_STATUS_ONQUEST)
+ goto L_Q_magic_1;
+ if (@Q_status == @Q_STATUS_STUDENT0)
+ goto L_Q_magic_2;
+ if (@Q_status == @Q_STATUS_STUDENT1)
+ goto L_Q_magic_3;
+ if (@Q_status == @Q_STATUS_STUDENT2)
+ goto L_Q_magic_4;
+
+ mes "[Earth Spirit]";
+ mes "\"Good, good... that's the right attitude! Yes, I can teach you magic, but first you must prove that you are worthy to be my student!\"";
+ next;
+
+ mes "[Earth Spirit]";
+ mes "\"North-west of here sits and old, dead tree. Well, not completely dead, not yet, but almost. It's nothing special. Well, maybe a little, but not really. I want you to cut off one of its branches.\"";
+ next;
+
+ menu
+ "No way.", L_silly_close,
+ "Sure.", L_Q_tree_ok,
+ "Why that particular tree?", -;
+
+ mes "[Earth Spirit]";
+ mes "\"Oh, you and your questions! Well, that tree was a druid once, so the branches contain a bit of its lifeforce. And that's useful.\"";
+ next;
+
+ menu
+ "Yuck.", L_silly_close,
+ "Sure, whatever.", L_Q_tree_ok,
+ "Isn't that like cutting off someone's arm?", -;
+
+ mes "[Earth Spirit]";
+ mes "\"Oooh... now come on! Don't be so sentimental. He turned himself into a tree, he can hardly expect everyone to leave him alone.\"";
+ next;
+
+ mes "[Earth Spirit]";
+ mes "\"Who knows if he can even feel anything anymore? I'm sure he can't, being wooden and all. Besides, it's only a measly tree. Not like I'm asking you to cut him down!.\"";
+ next;
+
+ menu
+ "No way.", L_silly_close,
+ "Alright, that makes sense.", L_Q_tree_ok;
+
+L_Q_tree_ok:
+ mes "[Earth Spirit]";
+ mes "\"Good, good, good! Yes, that will be very good! So, come back when you have the branch. Oh, and bring 100,000 GP, too, as an enrollment fee.\"";
+ set @Q_status, @Q_STATUS_ONQUEST;
+ callsub S_update_var;
+ set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_KNOWS_CUTTREE;
+ next;
+ goto L_main;
+
+L_Q_magic_1:
+ mes "[Earth Spirit]";
+ mes "\"Yes, yes, if you bring me the branch and the money, then I will!\"";
+ next;
+ menu
+ "Here are the branch and the money.", -,
+ "How much money did you want again?", L_Q_tree_howmuch,
+ "How can I cut it?", L_Q_tree_how,
+ "Where was the tree again?", L_Q_tree_where,
+ "What is that tree?", L_Q_tree_what;
+
+ if (countitem("DruidTreeBranch") < 1)
+ goto L_Q_tree_none;
+ if (!(MAGIC_FLAGS & MFLAG_DID_CUTTREE))
+ goto L_Q_tree_dry;
+ if (zeny < 100000)
+ goto L_Q_tree_nomoney;
+
+ set zeny, zeny - 100000;
+ delitem "DruidTreeBranch", 1;
+
+ mes "[Earth Spirit]";
+ mes "Following the earth sprite's instructions, you throw branch and GP into the well.";
+ next;
+
+ mes "[Earth Spirit]";
+ mes "\"Well done, very well done! Consider yourself my student now.\"";
+
+ set @SUP_xp, 5000;
+ set @SUP_lvl, 2;
+ callfunc "SkillUp";
+ next;
+
+ set @Q_status, @Q_STATUS_STUDENT0;
+ callsub S_update_var;
+ goto L_main;
+
+L_Q_magic_finish:
+ mes "[1000 experience points]";
+ set @Q_status, @Q_status + 1;
+ callsub S_update_var;
+ getexp 1000,0;
+ next;
+ goto L_main;
+
+L_Q_magic_2:
+ mes "[Earth Spirit]";
+ mes "\"Yes, of course! For just 20,000 GP I will teach you your first spell!\"";
+ next;
+
+ menu
+ "Here you are.", -,
+ "No.", L_main;
+
+ if (zeny < 20000)
+ goto L_no20k;
+
+ set zeny, zeny - 20000;
+
+ mes "[Earth Spirit]";
+ mes "\"Kekeke... excellent! Yes, here goes your first spell, the flying backpack! If you are overloaded, it will take the load off your shoulders.\"";
+ next;
+
+ mes "[Earth Spirit]";
+ mes "\"Take a cocoon, living or dead, and suffuse it in magic. Whisper '" + getspellinvocation("flying-backpack") + "', and feel it float!\"";
+ goto L_Q_magic_finish;
+
+L_Q_magic_3:
+ mes "[Earth Spirit]";
+ mes "\"But yes, yes! Only 20,000 GP, once again, and I will teach you a far more useful spell!\"";
+ next;
+
+ menu
+ "Here you are.", -,
+ "No.", L_main;
+
+ if (zeny < 20000)
+ goto L_no20k;
+
+ set zeny, zeny - 20000;
+
+ mes "[Earth Spirit]";
+ mes "\"Yeees, good! This one is a protection spell, making your skin harder. You need a hard spike for it, though. Hold that spike in your hands, and focus on it.\"";
+ next;
+
+ mes "[Earth Spirit]";
+ mes "\"Next, say '" + getspellinvocation("protect") + "', and feel your skin grow rigid! Very useful against stings and stabs and pokes and pricks and that sort of stuff.\"";
+ goto L_Q_magic_finish;
+
+L_Q_magic_4:
+ mes "[Earth Spirit]";
+ mes "\"Naah, you're too weak now! Come back later when you have grown!\"";
+ next;
+ goto L_main;
+
+L_no20k:
+ mes "[Earth Spirit]";
+ mes "\"You can't pay me 20,000 if you don't have that much!\"";
+ next;
+ goto L_main;
+
+L_Q_tree_none:
+ mes "[Earth Spirit]";
+ mes "\"Where is your branch?\"";
+ next;
+ goto L_main;
+
+L_Q_tree_dry:
+ mes "[Earth Spirit]";
+ mes "\"That won't do. This branch is completely dead; you'll have to get another.\"";
+ next;
+ goto L_main;
+
+L_Q_tree_nomoney:
+ mes "[Earth Spirit]";
+ mes "\"No, you don't have enough money! Come back when you have 100,000.\"";
+ next;
+ goto L_main;
+
+L_Q_tree_howmuch:
+ mes "[Earth Spirit]";
+ mes "\"It's only 100,000 GP to become my student.\"";
+ next;
+ goto L_main;
+
+L_Q_tree_how:
+ mes "[Earth Spirit]";
+ mes "\"Oh... right, the tree might be protected. Only a bone knife will cut that. No idea where you can find one, but I'm sure you will manage!\"";
+ next;
+ goto L_main;
+
+L_Q_tree_where:
+ mes "[Earth Spirit]";
+ mes "\"North-west of here.\"";
+ next;
+ goto L_main;
+
+L_Q_tree_what:
+ mes "[Earth Spirit]";
+ mes "\"Just some silly druid who turned himself into a tree; nothing important.\"";
+ next;
+ goto L_main;
+
+L_silly_close:
+ if (MAGIC_FLAGS & MFLAG_KNOWS_IMP)
+ mes "[Earth Spirit]";
+ if (!(MAGIC_FLAGS & MFLAG_KNOWS_IMP))
+ mes "[Well]";
+ mes "\"Silly " + @s$ + ".\"";
+L_close:
+ close;
+
+S_update_var:
+ set QUEST_MAGIC2,
+ (QUEST_MAGIC2 & ~(@Q_MASK)
+ | (@Q_status << @Q_SHIFT));
+ return;
+}
+
+005-1.gat,118,70,0 script #EarthImp0#_M 127,{
+ callfunc "EarthImpTouch";
+}
+
+005-1.gat,119,70,0 script #EarthImp1#_M 127,{
+ callfunc "EarthImpTouch";
+}
diff --git a/world/map/npc/005-1/tree.txt b/world/map/npc/005-1/tree.txt
new file mode 100644
index 00000000..54b7ed1c
--- /dev/null
+++ b/world/map/npc/005-1/tree.txt
@@ -0,0 +1,162 @@
+function script QuestTreeTrigger {
+ set @Q_MASK, NIBBLE_2_MASK;
+ set @Q_SHIFT, NIBBLE_2_SHIFT;
+
+ set @Q_status, (QUEST_MAGIC & @Q_MASK) >> @Q_SHIFT;
+ set @Q_status_lower, @Q_status & 3;
+ set @Q_status, (@Q_status & 12) >> 2;
+
+ if (@Q_status & @flag)
+ close; // already did that
+
+ if (@flag == 2)
+ goto L_hug;
+
+L_cont:
+ set @Q_status, @Q_status | @flag;
+ callsub S_update_var;
+
+ if (@Q_status != 3)
+ close;
+
+ if (MAGIC_FLAGS & MFLAG_DID_CUTTREE)
+ close;
+
+ mes "Maybe it is just a trick of the light, but you can't help but think that the tree looks different... healthier, almost younger.";
+ mes "[20000 experience points]";
+ getexp 20000, 0;
+ set @value, 15;
+ callfunc "QuestSagathaHappy";
+ close;
+
+L_hug:
+ mes "You hug the tree.";
+ next;
+ goto L_cont;
+
+S_update_var:
+ set @Q_wr_status, (@Q_status << 2) | @Q_status_lower;
+ set QUEST_MAGIC,
+ (QUEST_MAGIC & ~(@Q_MASK)
+ | (@Q_wr_status << @Q_SHIFT));
+ return;
+}
+
+function script QuestTreeTouch {
+ set @Q_MASK, NIBBLE_2_MASK;
+ set @Q_SHIFT, NIBBLE_2_SHIFT;
+
+ set @Q_status, (QUEST_MAGIC & @Q_MASK) >> @Q_SHIFT;
+ set @Q_status, (@Q_status & 12) >> 2;
+
+ if (@Q_status == 3)
+ goto L_happy;
+
+ if ((MAGIC_FLAGS & (MFLAG_KNOWS_DRUIDTREE | MFLAG_KNOWS_CUTTREE)) == MFLAG_KNOWS_CUTTREE)
+ goto L_cut;
+
+ if ((MAGIC_FLAGS & (MFLAG_KNOWS_DRUIDTREE | MFLAG_KNOWS_CUTTREE)) == MFLAG_KNOWS_DRUIDTREE)
+ goto L_water;
+
+ if ((MAGIC_FLAGS & (MFLAG_KNOWS_DRUIDTREE | MFLAG_KNOWS_CUTTREE)) > 0) //i.e., both are set
+ goto L_both;
+
+ mes "[Dying Tree]";
+ mes "You see a strange tree.";
+ close;
+
+L_cut:
+ mes "[Dying Tree]";
+ mes "This must be the tree that the earth spirit was referring to.";
+ next;
+ menu
+ "Cut off a branch", L_do_cut,
+ "Leave it alone", -;
+ close;
+
+L_water:
+ mes "[Dying Tree]";
+ mes "This must be the druid tree.";
+ next;
+ menu
+ "Water the tree", L_givewater,
+ "Kiss tree", L_kiss,
+ "Leave it alone", -;
+ close;
+
+L_both:
+ mes "[Dying Tree]";
+ mes "This must be the druid tree that Wyara and the earth spirit were talking about.";
+ next;
+ menu
+ "Water the tree", L_givewater,
+ "Kiss tree", L_kiss,
+ "Cut off a branch", L_do_cut,
+ "Leave it alone", -;
+ close;
+
+L_givewater:
+ if (countitem("BottleOfWater") < 1)
+ goto L_no_water;
+ delitem "BottleOfWater", 1;
+ getitem "EmptyBottle", 1;
+
+ mes "[Dying Tree]";
+ mes "You pour a bottle of water into the sand. The water dissipates quickly, without any effect.";
+ close;
+
+L_no_water:
+ mes "[Dying Tree]";
+ mes "You don't have any water.";
+ close;
+
+L_kiss:
+ mes "[Dying Tree]";
+ mes "You pluck out a splinter from your lip.";
+ mes "Somehow, you don't think that this helped.";
+ close;
+
+L_do_cut:
+ if (countitem(570) < 1)
+ goto L_no_boneknife;
+
+ if (MAGIC_FLAGS & MFLAG_DID_CUTTREE)
+ goto L_really_cut;
+
+ mes "[Dying Tree]";
+ mes "You find a suitable branch and put your bone knife in position.";
+ mes "Holding the branch, you have an uneasy feeling-- as if something inside the tree were trying to resist you...";
+ mes "Do you want to continue cutting?";
+ next;
+
+ menu
+ "Nah... better not.", -,
+ "Yes, let's cut!", L_really_cut;
+ close;
+
+L_really_cut:
+ set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_DID_CUTTREE;
+ getitem "DruidTreeBranch", 1;
+ mes "[Dying Tree]";
+ mes "You cut off a branch from the tree.";
+ mes "For an instant, you have an uneasy feeling, as if the branch were writhing in your hand...";
+ close;
+
+L_no_boneknife:
+ mes "[Dying Tree]";
+ mes "Try as you might, you can't seem to find a way to cut off a branch. Perhaps you need a different tool for cutting?";
+ close;
+
+L_happy:
+ mes "[Druid Tree]";
+ mes "The tree looks younger and healthier now.";
+ close;
+}
+
+005-1.gat,79,41,0 script #DruidTree0#_M 127,{
+ callfunc "QuestTreeTouch";
+}
+
+005-1.gat,80,41,0 script #DruidTree1#_M 127,{
+ callfunc "QuestTreeTouch";
+}