summaryrefslogtreecommitdiff
path: root/world
diff options
context:
space:
mode:
Diffstat (limited to 'world')
-rw-r--r--world/map/npc/001-2/_import.txt20
-rw-r--r--world/map/npc/001-2/_warps.txt25
-rw-r--r--world/map/npc/001-2/bank.txt (renamed from world/map/npc/068-2/bank.txt)4
-rw-r--r--world/map/npc/001-2/david.txt53
-rw-r--r--world/map/npc/001-2/fieri.txt131
-rw-r--r--world/map/npc/001-2/forge_shops.txt4
-rw-r--r--world/map/npc/001-2/government_building.txt (renamed from world/map/npc/021-2/government_building.txt)40
-rw-r--r--world/map/npc/001-2/heathin.txt (renamed from world/map/npc/021-2/heathin.txt)4
-rw-r--r--world/map/npc/001-2/jhedia.txt (renamed from world/map/npc/021-2/jhedia.txt)2
-rw-r--r--world/map/npc/001-2/manakins.txt (renamed from world/map/npc/021-2/manakins.txt)14
-rw-r--r--world/map/npc/001-2/mapflags.txt2
-rw-r--r--world/map/npc/001-2/pauline.txt307
-rw-r--r--world/map/npc/001-2/sandra.txt118
-rw-r--r--world/map/npc/001-2/shops.txt3
-rw-r--r--world/map/npc/001-2/tathin.txt29
-rw-r--r--world/map/npc/001-2/tondar.txt56
-rw-r--r--world/map/npc/001-2/wizards.txt60
-rw-r--r--world/map/npc/001-2/yanis.txt (renamed from world/map/npc/021-2/yanis.txt)8
-rw-r--r--world/map/npc/001-3/_warps.txt2
-rw-r--r--world/map/npc/001-3/guards.txt2
-rw-r--r--world/map/npc/001-3/mapflags.txt3
-rw-r--r--world/map/npc/002-2/_import.txt19
-rw-r--r--world/map/npc/002-2/_warps.txt20
-rw-r--r--world/map/npc/002-2/bakery.txt (renamed from world/map/npc/021-2/bakery.txt)16
-rw-r--r--world/map/npc/002-2/barber.txt (renamed from world/map/npc/021-2/barber.txt)2
-rw-r--r--world/map/npc/002-2/bleacher.txt293
-rw-r--r--world/map/npc/002-2/casino.txt (renamed from world/map/npc/001-2/casino.txt)16
-rw-r--r--world/map/npc/002-2/dedication.txt (renamed from world/map/npc/001-2/dedication.txt)2
-rw-r--r--world/map/npc/002-2/eurni.txt45
-rw-r--r--world/map/npc/002-2/hetchel.txt (renamed from world/map/npc/068-2/hetchel.txt)4
-rw-r--r--world/map/npc/002-2/imec.txt113
-rw-r--r--world/map/npc/002-2/inya.txt (renamed from world/map/npc/068-2/inya.txt)4
-rw-r--r--world/map/npc/002-2/kps.txt (renamed from world/map/npc/021-2/kps.txt)2
-rw-r--r--world/map/npc/002-2/kylian.txt (renamed from world/map/npc/021-2/kylian.txt)26
-rw-r--r--world/map/npc/002-2/latoy.txt (renamed from world/map/npc/068-2/latoy.txt)4
-rw-r--r--world/map/npc/002-2/mapflags.txt2
-rw-r--r--world/map/npc/002-2/omar.txt (renamed from world/map/npc/001-2/omar.txt)4
-rw-r--r--world/map/npc/002-2/phaet.txt (renamed from world/map/npc/001-2/phaet.txt)2
-rw-r--r--world/map/npc/002-2/rebecca.txt84
-rw-r--r--world/map/npc/002-2/shops.txt3
-rw-r--r--world/map/npc/002-2/stranger.txt464
-rw-r--r--world/map/npc/002-2/troupe_leader.txt (renamed from world/map/npc/001-2/troupe_leader.txt)2
-rw-r--r--world/map/npc/002-3/_import.txt1
-rw-r--r--world/map/npc/002-3/_warps.txt6
-rw-r--r--world/map/npc/002-3/traveler.txt (renamed from world/map/npc/002-2/traveler.txt)2
-rw-r--r--world/map/npc/003-2/_import.txt6
-rw-r--r--world/map/npc/003-2/_mobs.txt9
-rw-r--r--world/map/npc/003-2/_warps.txt5
-rw-r--r--world/map/npc/003-2/mapflags.txt1
-rw-r--r--world/map/npc/004-2/_import.txt7
-rw-r--r--world/map/npc/004-2/_mobs.txt9
-rw-r--r--world/map/npc/004-2/_warps.txt11
-rw-r--r--world/map/npc/004-2/mapflags.txt1
-rw-r--r--world/map/npc/004-2/pirate_cave_exit.txt18
-rw-r--r--world/map/npc/004-3/_warps.txt4
-rw-r--r--world/map/npc/004-3/mapflags.txt2
-rw-r--r--world/map/npc/004-4/mapflags.txt2
-rw-r--r--world/map/npc/004-5/mapflags.txt2
-rw-r--r--world/map/npc/005-1/_import.txt10
-rw-r--r--world/map/npc/005-1/_mobs.txt45
-rw-r--r--world/map/npc/005-1/_warps.txt21
-rw-r--r--world/map/npc/005-1/mapflags.txt1
-rw-r--r--world/map/npc/005-1/npcs.txt18
-rw-r--r--world/map/npc/005-1/traveler.txt11
-rw-r--r--world/map/npc/005-3/_mobs.txt14
-rw-r--r--world/map/npc/005-3/_warps.txt9
-rw-r--r--world/map/npc/005-3/mapflags.txt2
-rw-r--r--world/map/npc/005-4/_import.txt5
-rw-r--r--world/map/npc/005-4/_mobs.txt9
-rw-r--r--world/map/npc/005-4/_warps.txt4
-rw-r--r--world/map/npc/006-1/_import.txt3
-rw-r--r--world/map/npc/006-1/_mobs.txt44
-rw-r--r--world/map/npc/006-1/_warps.txt54
-rw-r--r--world/map/npc/006-1/miriam.txt (renamed from world/map/npc/032-1/miriam.txt)7
-rw-r--r--world/map/npc/006-1/spirit.txt (renamed from world/map/npc/005-1/spirit.txt)8
-rw-r--r--world/map/npc/006-1/tree.txt (renamed from world/map/npc/005-1/tree.txt)4
-rw-r--r--world/map/npc/006-3/_warps.txt13
-rw-r--r--world/map/npc/009-3/_mobs.txt10
-rw-r--r--world/map/npc/011-1/_mobs.txt12
-rw-r--r--world/map/npc/011-4/_mobs.txt13
-rw-r--r--world/map/npc/013-2/notes.txt26
-rw-r--r--world/map/npc/017-9/_warps.txt2
-rw-r--r--world/map/npc/017-9/secret.txt2
-rw-r--r--world/map/npc/018-1/_mobs.txt18
-rw-r--r--world/map/npc/018-3/_mobs.txt22
-rw-r--r--world/map/npc/021-2/_import.txt17
-rw-r--r--world/map/npc/021-2/_mobs.txt9
-rw-r--r--world/map/npc/021-2/_warps.txt29
-rw-r--r--world/map/npc/021-2/forge_shops.txt4
-rw-r--r--world/map/npc/021-2/mapflags.txt2
-rw-r--r--world/map/npc/021-2/rebecca.txt11
-rw-r--r--world/map/npc/021-3/_mobs.txt12
-rw-r--r--world/map/npc/021-3/_warps.txt7
-rw-r--r--world/map/npc/021-3/mapflags.txt2
-rw-r--r--world/map/npc/023-2/_import.txt6
-rw-r--r--world/map/npc/023-2/_mobs.txt9
-rw-r--r--world/map/npc/023-2/_warps.txt5
-rw-r--r--world/map/npc/023-2/mapflags.txt1
-rw-r--r--world/map/npc/023-3/_import.txt6
-rw-r--r--world/map/npc/023-3/_mobs.txt25
-rw-r--r--world/map/npc/023-3/_warps.txt11
-rw-r--r--world/map/npc/023-3/mapflags.txt1
-rw-r--r--world/map/npc/024-2/_import.txt9
-rw-r--r--world/map/npc/024-2/_mobs.txt9
-rw-r--r--world/map/npc/024-2/_warps.txt5
-rw-r--r--world/map/npc/024-2/barrier.txt16
-rw-r--r--world/map/npc/024-2/mapflags.txt2
-rw-r--r--world/map/npc/024-2/tyer.txt8
-rw-r--r--world/map/npc/024-2/tyer_trigger.txt24
-rw-r--r--world/map/npc/024-3/_import.txt5
-rw-r--r--world/map/npc/024-3/_mobs.txt9
-rw-r--r--world/map/npc/024-3/_warps.txt3
-rw-r--r--world/map/npc/024-4/_import.txt5
-rw-r--r--world/map/npc/024-4/_mobs.txt9
-rw-r--r--world/map/npc/024-4/_warps.txt3
-rw-r--r--world/map/npc/029-3/barrier.txt4
-rw-r--r--world/map/npc/029-3/mapflags.txt4
-rw-r--r--world/map/npc/031-1/frozenbeard.txt11
-rw-r--r--world/map/npc/032-1/_import.txt7
-rw-r--r--world/map/npc/032-1/_mobs.txt24
-rw-r--r--world/map/npc/032-1/_warps.txt4
-rw-r--r--world/map/npc/032-1/mapflags.txt1
-rw-r--r--world/map/npc/032-3/_warps.txt2
-rw-r--r--world/map/npc/032-3/mapflags.txt2
-rw-r--r--world/map/npc/035-2/koga.txt2
-rw-r--r--world/map/npc/036-2/emblems.txt4
-rw-r--r--world/map/npc/036-2/koga-candor.txt8
-rw-r--r--world/map/npc/043-3/_warps.txt4
-rw-r--r--world/map/npc/068-2/_import.txt10
-rw-r--r--world/map/npc/068-2/_mobs.txt15
-rw-r--r--world/map/npc/068-2/_warps.txt13
-rw-r--r--world/map/npc/068-2/mapflags.txt2
-rw-r--r--world/map/npc/069-2/_import.txt7
-rw-r--r--world/map/npc/069-2/_mobs.txt9
-rw-r--r--world/map/npc/069-2/_warps.txt17
-rw-r--r--world/map/npc/069-2/mapflags.txt2
-rw-r--r--world/map/npc/069-2/wizards.txt60
-rw-r--r--world/map/npc/_import.txt27
-rw-r--r--world/map/npc/scripts.conf1
139 files changed, 2103 insertions, 888 deletions
diff --git a/world/map/npc/001-2/_import.txt b/world/map/npc/001-2/_import.txt
index ae570981..6ad9ffe0 100644
--- a/world/map/npc/001-2/_import.txt
+++ b/world/map/npc/001-2/_import.txt
@@ -3,10 +3,18 @@
map: 001-2.gat
npc: npc/001-2/_mobs.txt
npc: npc/001-2/_warps.txt
-npc: npc/001-2/casino.txt
-npc: npc/001-2/dedication.txt
+npc: npc/001-2/bank.txt
+npc: npc/001-2/david.txt
+npc: npc/001-2/fieri.txt
+npc: npc/001-2/forge_shops.txt
+npc: npc/001-2/government_building.txt
+npc: npc/001-2/heathin.txt
+npc: npc/001-2/jhedia.txt
+npc: npc/001-2/manakins.txt
npc: npc/001-2/mapflags.txt
-npc: npc/001-2/omar.txt
-npc: npc/001-2/phaet.txt
-npc: npc/001-2/shops.txt
-npc: npc/001-2/troupe_leader.txt
+npc: npc/001-2/pauline.txt
+npc: npc/001-2/sandra.txt
+npc: npc/001-2/tathin.txt
+npc: npc/001-2/tondar.txt
+npc: npc/001-2/wizards.txt
+npc: npc/001-2/yanis.txt
diff --git a/world/map/npc/001-2/_warps.txt b/world/map/npc/001-2/_warps.txt
index 50745da6..6a310169 100644
--- a/world/map/npc/001-2/_warps.txt
+++ b/world/map/npc/001-2/_warps.txt
@@ -1,13 +1,18 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
// South Tulimshar Indoor warps
-001-2.gat,25,35|warp|To Outside|-1,-1,001-1.gat,32,72
-001-2.gat,44,25|warp|To Second Floor|-1,0,001-2.gat,65,25
-001-2.gat,64,25|warp|To First Floor|-1,-1,001-2.gat,43,25
-001-2.gat,67,30|warp|To Bedroom|-1,-1,001-2.gat,103,23
-001-2.gat,76,30|warp|To Deposit|-1,-1,001-2.gat,131,23
-001-2.gat,69,22|warp|To Casino|0,-1,001-2.gat,32,72
-001-2.gat,103,22|warp|To Second Floor|0,-1,001-2.gat,67,29
-001-2.gat,131,22|warp|To Second Floor|0,-1,001-2.gat,76,29
-001-2.gat,32,73|warp|To Second Floor|-1,-1,001-2.gat,69,23
-001-2.gat,71,73|warp|To Outside|-1,-1,001-1.gat,75,42
+001-2.gat,25,65|warp|To Outside|-1,-1,001-1.gat,114,100
+001-2.gat,28,102|warp|To Outside|-1,-1,001-1.gat,27,33
+001-2.gat,28,86|warp|To Light|-1,-1,001-1.gat,28,22
+001-2.gat,105,102|warp|To Outside|0,-1,001-1.gat,54,35
+001-2.gat,25,28|warp|To Outside|-1,-1,001-1.gat,49,72
+001-2.gat,28,28|warp|To Outside|-1,-1,001-1.gat,52,72
+001-2.gat,31,28|warp|To Outside|-1,-1,001-1.gat,55,72
+001-2.gat,71,102|warp|To Outside|-1,-1,001-1.gat,37,33
+001-2.gat,105,73|warp|Council Chambers|2,-1,001-2.gat,104,42
+001-2.gat,105,43|warp|Main Floor|2,-1,001-2.gat,104,74
+001-2.gat,114,53|warp|Parapet|-1,-1,001-1.gat,57,23
+001-2.gat,95,53|warp|Parapet|-1,-1,001-1.gat,52,23
+001-2.gat,57,90|warp|Lighthouse|-1,-1,001-2.gat,35,94
+001-2.gat,36,95|warp|MainFloor|-1,0,001-2.gat,58,90
+001-2.gat,65,26|warp|Outside|-1,-1,001-1.gat,59,99
diff --git a/world/map/npc/068-2/bank.txt b/world/map/npc/001-2/bank.txt
index 328d98ae..b5bab670 100644
--- a/world/map/npc/068-2/bank.txt
+++ b/world/map/npc/001-2/bank.txt
@@ -1,5 +1,5 @@
-// Another banker
-068-2.gat,29,83,0|script|Hydusun|149
+// A Banker
+001-2.gat,63,17,0|script|Hydusun|149
{
set @npcname$, "Hydusun";
callfunc "Banker";
diff --git a/world/map/npc/001-2/david.txt b/world/map/npc/001-2/david.txt
new file mode 100644
index 00000000..fc9e3fd7
--- /dev/null
+++ b/world/map/npc/001-2/david.txt
@@ -0,0 +1,53 @@
+001-2.gat,92,88,0|script|David|120
+{
+ set @Potion_EXP, 2000;
+
+ if (Rossy_Quest == 17) goto L_FinalEnd;
+ if (Rossy_Quest == 14) goto L_Julia;
+ if (Rossy_Quest >= 8) goto L_Done;
+
+ mes "[David]";
+ mes "\"Learning magic is hard...\"";
+ if (Rossy_Quest == 7) goto L_Help;
+ close;
+
+L_Help:
+ menu
+ "Do you know Rossy?", L_Set,
+ "I can tell, it is hard.", L_No;
+
+L_Set:
+ mes "[David]";
+ mes "\"Yes, I do. I am her teacher. Actually, that reminds me about her final exam... she didn't hand in her potion yet. Time is running out.\"";
+ menu
+ "A potion? Oh, uhm... Strange kind of exam. Bye.", L_No,
+ "Right, I have her potion in my pocket. She asked me to bring it to you. Here it is.", L_Next;
+
+L_Next:
+ mes "[David]";
+ mes "\"Let me see.\"";
+ set Rossy_Quest, 8;
+ mes "\"This potion is... perfect! Tell Rossy that she successfully made her potion; it is flawless!\"";
+ getexp @Potion_EXP, 0;
+ close;
+
+L_Done:
+ mes "[David]";
+ mes "\"I am really happy that my best student successfully passed her exam!\"";
+ close;
+
+L_No:
+ close;
+
+L_Julia:
+ mes "[David]";
+ mes "\"I heard Rossy's sister got kidnapped. We're counting on you to find her!\"";
+ next;
+ mes "\"If you do find her, talk to her sister and her mother.\"";
+ close;
+
+L_FinalEnd:
+ mes "[David]";
+ mes "Well done! Thanks for finding Julia!";
+ close;
+}
diff --git a/world/map/npc/001-2/fieri.txt b/world/map/npc/001-2/fieri.txt
new file mode 100644
index 00000000..1264be4e
--- /dev/null
+++ b/world/map/npc/001-2/fieri.txt
@@ -0,0 +1,131 @@
+// Variables used: nibble 0 of QUEST_SouthTulimshar
+
+001-2.gat,114,89,0|script|Fieri|117
+{
+ set @state, ((QUEST_SouthTulimshar & NIBBLE_6_MASK) >> NIBBLE_6_SHIFT);
+
+ if (@state >= 4) goto L_Done2;
+ if (@state == 3) goto L_Progress2;
+ if (@state == 2) goto L_Done1;
+ if (@state == 1) goto L_Progress;
+
+ set @TEMP, rand(2);
+ if(@TEMP == 1) goto L_Opening1;
+ goto L_Opening0;
+
+L_Opening0:
+ mes "[Fieri]";
+ mes "\"The Wizards are always hungry. All the magic all the time, sapping their energy.";
+ mes "Could I ask a favor of you?\"";
+ next;
+ goto L_Ask;
+
+L_Opening1:
+ mes "[Fieri]";
+ mes "\"These Wizards eat like a store house full of maggots.";
+ mes "At this rate I'll have nothing left to cook. Can you help me with a task?\"";
+ next;
+ goto L_Ask;
+
+L_Ask:
+ menu
+ "Yes.", L_Yes,
+ "No.", L_Close;
+
+L_Yes:
+ set @TEMP, rand(2);
+ if(@TEMP == 1) goto L_Req1;
+ goto L_Req0;
+
+L_Req0:
+ mes "[Fieri]";
+ mes "\"Great! I need a Beer for my Tonori Delight.\"";
+ next;
+ goto L_Set;
+
+L_Req1:
+ mes "[Fieri]";
+ mes "\"Bring me a Beer. I'll give you something if you do.\"";
+ next;
+ goto L_Set;
+
+L_Set:
+ set @state, 1;
+ callsub S_Update_Var;
+ mes "[Fieri]";
+ mes "\"Please bring it to me!\"";
+ goto L_Close;
+
+L_Progress:
+ if (countitem("Beer") < 1) goto L_NotEnough;
+ mes "[Fieri]";
+ mes "\"Oooh, perfect! It's perfect!";
+ mes "You brought me my Beer! Here, have some cake for your troubles.\"";
+ getinventorylist;
+ if (@inventorylist_count - (countitem("Beer") == 1) > 99 - (countitem("CherryCake") == 0) ) goto L_TooMany;
+ delitem "Beer", 1;
+ getexp 100, 0;
+ getitem "CherryCake", 5;
+ set @state, 2;
+ callsub S_Update_Var;
+ next;
+ mes "\"Now let's see...\"";
+ goto L_Close;
+
+L_Progress2:
+ if (countitem("MaggotSlime") < 3) goto L_NotEnough1;
+ mes "[Fieri]";
+ mes "\"Nice! They're perfect, just perfect!";
+ mes "You brought me the 3 Maggot Slimes! Here, have some Tonori Delight as reward.\"";
+ getinventorylist;
+ if ((@inventorylist_count - (countitem("MaggotSlime") == 3) > 99 - (countitem("TonoriDelight") == 0) )) goto L_TooMany;
+ delitem "MaggotSlime", 3;
+ getexp 100, 0;
+ getitem "TonoriDelight", 3;
+ set @state, 4;
+ callsub S_Update_Var;
+ goto L_Close;
+
+L_NotEnough:
+ mes "[Fieri]";
+ mes "\"Oh, please hurry and bring me a Beer. The Wizards need their Tonori Delight!\"";
+ goto L_Close;
+
+L_NotEnough1:
+ mes "[Fieri]";
+ mes "\"Please do hurry and bring me 3 Maggot Slimes, so I can finish the Tonori Delight!\"";
+ goto L_Close;
+
+L_Done1:
+ mes "[Fieri]";
+ mes "\"Thank you so much!\"";
+ mes "\"But... I need some more ingredients.\"";
+ next;
+ mes "\"I need 3 Maggot Slimes for that.\"";
+ mes "\"Bring them to me, and I'll give you something nice.\"";
+ set @state, 3;
+ callsub S_Update_Var;
+ goto L_Close;
+
+L_Done2:
+ mes "[Fieri]";
+ mes "\"I hope you like Tonori Delight as much as I do, because, you see...\"";
+ next;
+ mes "\"Tonori Delight is life!\"";
+ goto L_Close;
+
+L_Close:
+ set @TEMP, 0;
+ set @state, 0;
+ close;
+
+L_TooMany:
+ next;
+ mes "[Fieri]";
+ mes "\"You don't have room for my reward. I'll wait until you do.\"";
+ goto L_Close;
+
+S_Update_Var:
+ set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(NIBBLE_6_MASK) | (@state << NIBBLE_6_SHIFT));
+ return;
+}
diff --git a/world/map/npc/001-2/forge_shops.txt b/world/map/npc/001-2/forge_shops.txt
new file mode 100644
index 00000000..5f2ab3ba
--- /dev/null
+++ b/world/map/npc/001-2/forge_shops.txt
@@ -0,0 +1,4 @@
+// Forge Shops
+
+001-2.gat,30,60,0|shop|Gungnir|311,SlingShot:*500,SlingBullet:*1,ShortBow:*8000,Arrow:*1,IronArrow:*4
+001-2.gat,25,59,0|shop|Mjolnir|377,Knife:*50,SharpKnife:*100,Dagger:*1000,LeatherShirt:*2000,LeatherShield:*2000
diff --git a/world/map/npc/021-2/government_building.txt b/world/map/npc/001-2/government_building.txt
index 441b77a0..f201f192 100644
--- a/world/map/npc/021-2/government_building.txt
+++ b/world/map/npc/001-2/government_building.txt
@@ -1,7 +1,7 @@
// The government builing in the south west
// A clerk
-021-2.gat,27,17,0|script|Estard|107
+001-2.gat,25,21,0|script|Estard|107
{
mes "[Estard]";
mes "\"Hello what can I do for you?\"";
@@ -135,44 +135,8 @@ S_give_rings:
return;
}
-021-2.gat,36,17,0|script|Tathin|107
-{
- mes "[Tathin]";
- mes "\"Hello what Can I do for you?\"";
- next;
-
- set @halloween_npc_id, $@halloween_npc_tathin;
- callfunc "TrickOrTreat";
-
- goto L_Base_Menu;
-
-L_Base_Menu:
- menu
- "I'd like to join a party.", L_Give_Party,
- "I'd like to create my own party.", L_Give_Make_Party,
- "Nothing, I guess.", L_Close;
-
-L_Give_Party:
- mes "[Tathin]";
- mes "\"You'll need to be invited by an existing member of a party to join it. You may also create your own party.\"";
- next;
- mes "[Tathin]";
- mes "\"Remember, parties cannot share experience if any members are more than 10 levels apart.\"";
- menu
- "I'd like to create my own party.", L_Give_Make_Party,
- "Goodbye.", L_Close;
-
-L_Give_Make_Party:
- mes "[Tathin]";
- mes "\"You can create parties with the 'new' or 'create' commands on the Party tab in the client. Parties need to have unique names.\"";
- close;
-
-L_Close:
- close;
-}
-
// Guard
-021-2.gat,20,19,0|script|Guard#govt_in|123,1,1
+001-2.gat,22,21,0|script|Guard#govt_in|123
{
mes "[Guard]";
mes "\"You can't come back here.\"";
diff --git a/world/map/npc/021-2/heathin.txt b/world/map/npc/001-2/heathin.txt
index 4bd9aae7..113b1b7e 100644
--- a/world/map/npc/021-2/heathin.txt
+++ b/world/map/npc/001-2/heathin.txt
@@ -1,6 +1,6 @@
//Items for NPC are incomplete. Makes "simple ring" which can be crafted into a useful ring by Inya and terranite armor.
-021-2.gat,70,129,0|script|Heathin|147
+001-2.gat,23,55,0|script|Heathin|147
{
set @TARROW_REQ_TERRA_ORE, 1;
set @TARROW_REQ_COAL, 5;
@@ -337,7 +337,7 @@ S_Update_Mask:
set QUEST_NorthTulimshar, (QUEST_NorthTulimshar & ~(NIBBLE_6_MASK)) | (@state << NIBBLE_6_SHIFT);
return;
}
-021-2.gat,72,129,0|script|HeathinDebug|147
+001-2.gat,25,55,0|script|HeathinDebug|147
{
mes "[Heathin Debug]";
mes "Debug Action";
diff --git a/world/map/npc/021-2/jhedia.txt b/world/map/npc/001-2/jhedia.txt
index cc2f9165..fdee36c9 100644
--- a/world/map/npc/021-2/jhedia.txt
+++ b/world/map/npc/001-2/jhedia.txt
@@ -1,6 +1,6 @@
// Ingot maker takes iron ore, gives ingots for future crafting purposes.
-021-2.gat,70,124,0|script|Jhedia|160
+001-2.gat,23,50,0|script|Jhedia|160
{
set @Cost_Per_Ingot, 1000;
set @Iron_Ore_Per, 5;
diff --git a/world/map/npc/021-2/manakins.txt b/world/map/npc/001-2/manakins.txt
index 85f757a5..23a59909 100644
--- a/world/map/npc/021-2/manakins.txt
+++ b/world/map/npc/001-2/manakins.txt
@@ -1,19 +1,19 @@
// Display Manakins.
// Forge
-021-2.gat,76,131,0|script|Terranite Armor#Female|401
+001-2.gat,29,57,0|script|Terranite Armor#Female|401
{
mes "Terranite Armor complete set, made to order, inquire with Heathin";
close;
}
-021-2.gat,81,131,0|script|Terranite Armor#Male|402
+001-2.gat,34,57,0|script|Terranite Armor#Male|402
{
mes "Terranite Armor complete set, made to order, inquire with Heathin";
close;
}
-021-2.gat,81,136,0|script|Terranite|403
+001-2.gat,34,62,0|script|Terranite|403
{
mes "Ahhh! A Terranite! Wait it appears to just be a display model.";
close;
@@ -21,25 +21,25 @@
// Museum
-021-2.gat,71,161,0|script|Talponian#Female|404
+001-2.gat,91,39,0|script|Talponian#Female|404
{
mes "A Female Talponian.";
close;
}
-021-2.gat,77,161,0|script|Talponian#Male|405
+001-2.gat,91,44,0|script|Talponian#Male|405
{
mes "A Male Talponian.";
close;
}
-021-2.gat,83,161,0|script|Gispaan#Female|406
+001-2.gat,118,39,0|script|Gispaan#Female|406
{
mes "A Female Gispaan.";
close;
}
-021-2.gat,89,161,0|script|Gispaan#Male|407
+001-2.gat,118,44,0|script|Gispaan#Male|407
{
mes "A Male Gispaan.";
close;
diff --git a/world/map/npc/001-2/mapflags.txt b/world/map/npc/001-2/mapflags.txt
index 41bab423..3a1f27a7 100644
--- a/world/map/npc/001-2/mapflags.txt
+++ b/world/map/npc/001-2/mapflags.txt
@@ -1,2 +1,2 @@
001-2.gat|mapflag|town
-001-2.gat|mapflag|resave|001-1,57,71
+001-2.gat|mapflag|resave|001-1,60,105
diff --git a/world/map/npc/001-2/pauline.txt b/world/map/npc/001-2/pauline.txt
new file mode 100644
index 00000000..b8833251
--- /dev/null
+++ b/world/map/npc/001-2/pauline.txt
@@ -0,0 +1,307 @@
+//Author: tux9th
+//This is the continuation of Astral Magic Level 2.
+//This uses the QUEST_MAGIC2 variable Nibble 4.
+//Quest States:
+// @pauline_state 1: Got Magic, started to talk to her about Magic.
+// @pauline_state 2: Finished Talking to her about new Astral Spells, learnt invocations.
+// @pauline_state 3: Told her the correct ingredients to the Mouboo summon spell.
+// @pauline_state 4: Told her the correct ingredients to the Pinkie summon spell.
+//
+//Variables:
+// @pauline_ingredient1$ First ingredient input.
+// @pauline_ingredient2$ Second ingredient input.
+// @pauline_REWARD amount of XP gained for telling her ingredients for each spell.
+
+001-2.gat,77,78,0|script|Pauline|208
+{
+
+//Bitmasking
+// QUEST_MAGIC2 - Nibble4
+ set @Pauline_MASK, NIBBLE_4_MASK;
+ set @Pauline_SHIFT, NIBBLE_4_SHIFT;
+
+ set @pauline_state, ((QUEST_MAGIC2 & @Pauline_MASK) >> @Pauline_SHIFT);
+
+//Bitmasks END
+
+ set @pauline_REWARD, 10000;
+
+ if (@pauline_state == 4) goto L_MoreMagic;
+ if (@pauline_state == 3) goto L_KnowIngredientsPinkie;
+ if (@pauline_state == 2) goto L_Ingredients;
+ if (@pauline_state == 1) goto L_Back;
+
+ if (getskilllv(SKILL_MAGIC_ASTRAL) > 0)
+ goto L_Magic;
+ mes "[Pauline]";
+ mes "\"I've mastered several schools of magic and fought the Yeti in Kaizei.\"";
+ next;
+ mes "\"The path of magic is a long and difficult one.\"";
+ goto L_Close;
+
+L_Magic:
+ mes "[Pauline]";
+ mes "\"Ah. I see you are skilled in the Art of Astral Magic.\"";
+ mes "\"Who taught you?\"";
+ menu
+ "I learnt it myself!", L_Next,
+ "Sagatha is my teacher.", L_Sagatha,
+ "You must be mistaken.", L_Close;
+
+L_Next:
+ mes "\"You did? Not bad. I guess then there is nothing I can teach you. Or are you interested in sharing knowledge?\"";
+ menu
+ "Yes, please.", L_Spells,
+ "No, thanks.", L_Close;
+
+L_Sagatha:
+ mes "[Pauline]";
+ mes "\"Ah, that Witch!\"";
+ mes "\"Very well.\"";
+ next;
+ mes "\"Do you want me to teach you things Sagatha doesn't know yet?\"";
+ next;
+ menu
+ "Yes.", L_Spells,
+ "No.", L_Close;
+
+L_Back:
+ mes "[Pauline]";
+ mes "\"So, you're back. Are you ready to share knowledge now?\"";
+ menu
+ "Yes.", L_Spells,
+ "No.", L_Close;
+
+L_Spells:
+ set @pauline_state, 1;
+ callsub S_Update_Mask;
+ mes "[Pauline]";
+ mes "\"Okay.\"";
+ mes "\"Not long ago I discovered some new caves near Tulimshar. In an abandond chamber I found some paintings on the wall.\"";
+ next;
+ mes "\"They weren't typical for this region, so I examined them closely. I found some invocations I have never heard before.\"";
+ mes "\"I thought that they would fit better into the Woodland area. I could only decipher two invocations so far. Those are two spells used to summon creatures.\"";
+ next;
+ mes "\"One was for summoning Mouboos and the other one was for summoning Pinkies.\"";
+ mes "\"Have you ever heared about those?\"";
+ next;
+ menu
+ "Yes. I thought you had something new to tell. [Walk Away]", L_Close,
+ "No, tell me more.", L_Next1;
+
+L_Next1:
+ mes "[Pauline]";
+ mes "\"Well I could only read the invocations. So I don't exactly know what kind of ingredients you are going to need.\"";
+ mes "\"The first one for the mouboo was " + getspellinvocation("summon-mouboo") + " and the one for the pinkie was " + getspellinvocation("summon-pinkie") +".\"";
+ next;
+ mes "\"For the pinkie spell my suggestion is to try similar ingredients to the other Astral spells. Try a root and some item typical for pinkies.\"";
+ mes "\"The mouboo spell might be more complicated. From what I could translate, one of the spell components is crafted by magic.\"";
+ next;
+ mes "\"When you find the right ingredients, come back and bring them to me to try those spells out.\"";
+ next;
+ mes "\"Goodbye.\"";
+ set @pauline_state, 2;
+ callsub S_Update_Mask;
+ goto L_Close;
+
+L_Ingredients:
+ mes "[Pauline]";
+ mes "\"Hello, have you found out what ingredients to use yet?\"";
+ menu
+ "Yes.", L_KnowIngredientsMouboo,
+ "No.", L_Next2;
+
+L_Next2:
+ mes "\"Okay. Come back as soon as you know.\"";
+ goto L_Close;
+
+L_KnowIngredientsMouboo:
+ mes "\"Did you bring them?\"";
+ menu
+ "Yes." , L_Next3,
+ "No.", L_ComeBackLater;
+
+L_Next3:
+ mes "\"Then tell me the ingredients for the mouboo summoning spell and give them to me. Start with the first ingredient and then tell me the second one separately.\"";
+ next;
+ mes "This is case sensitive. Also do not enter whitespaces.";
+ next;
+ input @pauline_ingredient1$;
+ mes "Next ingredient.";
+ input @pauline_ingredient2$;
+ if (@pauline_ingredient1$ == "")
+ goto L_Wrong;
+ if (@pauline_ingredient2$ == "")
+ goto L_Wrong;
+ if (countitem(@pauline_ingredient1$) < 1)
+ goto L_NotEnough;
+ if (countitem(@pauline_ingredient2$) < 1)
+ goto L_NotEnough;
+ mes "\"Do you want to give me these items?\"";
+ menu
+ "No.", L_ComeBackLater,
+ "Yes.", L_Next4;
+
+L_Next4:
+ delitem @pauline_ingredient1$, 1;
+ delitem @pauline_ingredient2$, 1;
+ mes "\"Okay let me try this.\"";
+ if (@pauline_ingredient1$ == "Root")
+ goto L_Pass1Mouboo;
+ if (@pauline_ingredient1$ == "MoubooFigurine")
+ goto L_Pass2Mouboo;
+ goto L_DidNotWorkMouboo;
+
+L_DidNotWorkMouboo:
+ mes "The Witch takes " + @pauline_ingredient1$ + " and " + @pauline_ingredient2$ + " and puts them together calling " + getspellinvocation("summon-mouboo") + ".";
+ mes "Nothing happens.";
+ mes "[Pauline]";
+ mes "\"It seems you did not tell me the correct ingredients. Come back when you find the correct ones.\"";
+ goto L_Close;
+
+L_Pass1Mouboo:
+ if (@pauline_ingredient2$ == "MoubooFigurine")
+ goto L_TrySpellMouboo;
+ goto L_DidNotWorkMouboo;
+
+L_Pass2Mouboo:
+ if (@pauline_ingredient2$ == "Root")
+ goto L_TrySpellMouboo;
+ goto L_DidNotWorkMouboo;
+
+L_TrySpellMouboo:
+ mes "The Witch takes " + @pauline_ingredient1$ + " and " + @pauline_ingredient2$ + " and puts them together calling " + getspellinvocation("summon-mouboo") + ".";
+ monster "001-1.gat", 55,68, "Good", 1028, 1;
+ mes "[Pauline]";
+ mes "\"It worked!\"";
+ set @pauline_state, 3;
+ callsub S_Update_Mask;
+ getexp @pauline_REWARD, 0;
+ goto L_Close;
+
+L_KnowIngredientsPinkie:
+ mes "[Pauline]";
+ mes "\"Now give me the ingredients for the pinkie spell.\"";
+ next;
+ mes "This is case sensitive. Also do not enter whitespaces.";
+ input @pauline_ingredient1$;
+ mes "Next ingredient.";
+ input @pauline_ingredient2$;
+ if (@pauline_ingredient1$ == "")
+ goto L_Wrong;
+ if (@pauline_ingredient2$ == "")
+ goto L_Wrong;
+ if (countitem(@pauline_ingredient1$) < 1)
+ goto L_NotEnough;
+ if (countitem(@pauline_ingredient2$) < 1)
+ goto L_NotEnough;
+ mes "\"Do you want to give me these items?\"";
+ menu
+ "No.", L_ComeBackLater,
+ "Yes.", L_Next5;
+
+L_Next5:
+ delitem @pauline_ingredient1$, 1;
+ delitem @pauline_ingredient2$, 1;
+ mes "\"Okay, let me try this.\"";
+ if (@pauline_ingredient1$ == "Root")
+ goto L_Pass1Pinkie;
+ if (@pauline_ingredient1$ == "PinkAntenna")
+ goto L_Pass2Pinkie;
+ goto L_DidNotWorkPinkie;
+
+L_DidNotWorkPinkie:
+ mes "The Witch takes " + @pauline_ingredient1$ + " and " + @pauline_ingredient2$ + " and puts them together calling " + getspellinvocation("summon-pinkie") + ".";
+ mes "Nothing happens.";
+ mes "[Pauline]";
+ mes "\"It seems you did not tell me the correct ingredients. Come back when you find the correct ones.\"";
+ goto L_Close;
+
+L_Pass1Pinkie:
+ if (@pauline_ingredient2$ == "PinkAntenna")
+ goto L_TrySpellPinkie;
+ goto L_DidNotWorkPinkie;
+
+L_Pass2Pinkie:
+ if (@pauline_ingredient2$ == "Root")
+ goto L_TrySpellPinkie;
+ goto L_DidNotWorkPinkie;
+
+L_TrySpellPinkie:
+ mes "The Witch takes " + @pauline_ingredient1$ + " and " + @pauline_ingredient2$ + " and puts them together calling " + getspellinvocation("summon-pinkie") + ".";
+ monster "001-1.gat", 54,68, "Good", 1018, 1;
+ mes "[Pauline]";
+ mes "\"It worked!\"";
+ set @pauline_state, 4;
+ callsub S_Update_Mask;
+ getexp @pauline_REWARD, 0;
+ goto L_Close;
+
+L_MoreMagic:
+ mes "[Pauline]";
+ mes "\"Thanks for telling me the ingredients. As soon as I find out more about those wall paintings I will let you know.\"";
+ goto L_Close;
+
+L_Wrong:
+ mes "The Witch looks at you and snorts.";
+ mes "[Pauline]";
+ mes "\"You told me the wrong ingredients. Come back as soon as you know the correct ones.\"";
+ goto L_Close;
+
+L_NotEnough:
+ mes "[Pauline]";
+ mes "\"Hey, you don't have this with you!\"";
+ mes "\"Come back when you have the right ingredients.\"";
+ goto L_Close;
+
+L_ComeBackLater:
+ mes "[Pauline]";
+ mes "\"Then come back later.\"";
+ goto L_Close;
+
+L_Close:
+ set @pauline_ingredient1$, "";
+ set @pauline_ingredient2$, "";
+ set @pauline_state, 0;
+ set @pauline_REWARD, 0;
+ close;
+
+//Bitmasks
+S_Update_Mask:
+ set QUEST_MAGIC2, (QUEST_MAGIC2 & ~(@Pauline_MASK)) | (@pauline_state << @Pauline_SHIFT);
+ return;
+}
+
+001-2.gat,79,74,0|script|PaulineDebug|208
+{
+//load Bitmasks;
+ set @Pauline_MASK, NIBBLE_4_MASK;
+ set @Pauline_SHIFT, NIBBLE_4_SHIFT;
+
+ set @pauline_state, ((QUEST_MAGIC2 & @Pauline_MASK) >> @Pauline_SHIFT);
+
+ mes "Reset Quest State";
+ mes @pauline_state;
+ menu
+ "Yes.", L_Next,
+ "No.", L_Close;
+
+L_Next:
+ set @pauline_state, 0;
+ callsub S_Update_Mask;
+ mes "Done";
+ close;
+
+L_Close:
+ set @pauline_state, 0;
+ close;
+
+S_Update_Mask:
+ set QUEST_MAGIC2, (QUEST_MAGIC2 & ~(@Pauline_MASK)) | (@pauline_state << @Pauline_SHIFT);
+ return;
+
+OnInit:
+ if (!debug)
+ disablenpc "PaulineDebug";
+ end;
+}
diff --git a/world/map/npc/001-2/sandra.txt b/world/map/npc/001-2/sandra.txt
new file mode 100644
index 00000000..48632e58
--- /dev/null
+++ b/world/map/npc/001-2/sandra.txt
@@ -0,0 +1,118 @@
+// Variables used: nibble 3 of QUEST_SouthTulimshar
+
+001-2.gat,98,88,0|script|Sandra|114
+{
+ // This NPC previously used the variable TMW_Quest
+ callfunc "ClearVarTMW_Quest";
+
+ set @state, ((QUEST_SouthTulimshar & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
+
+ if (@state >= 2) goto L_Done;
+ if (@state == 1) goto L_Progress;
+
+ mes "[Sandra]";
+ mes "\"Hunting monsters for potion ingredients can sometimes be a difficult task.\"";
+ next;
+
+ set @TEMP, rand(4);
+ if(@TEMP == 1) goto L_Opening1;
+ if(@TEMP == 2) goto L_Opening2;
+ if(@TEMP == 3) goto L_Opening3;
+ goto L_Opening0;
+
+L_Opening0:
+ mes "\"In the outskirts of Tulimshar, there are some scorpions... I need help! Will you help?\"";
+ next;
+ goto L_Ask;
+
+L_Opening1:
+ mes "\"When you venture to the outskirts of Tulimshar, you can spot scorpions. Will you help me kill some?\"";
+ next;
+ goto L_Ask;
+
+L_Opening2:
+ mes "\"The Scorpion Stinger carries many properties used in potions. Would you get some for me?\"";
+ next;
+ goto L_Ask;
+
+L_Opening3:
+ mes "\"You look sturdy enough, will you help me get something?\"";
+ next;
+ goto L_Ask;
+
+L_Ask:
+ menu
+ "Yes.", L_Yes,
+ "No.", L_Close;
+
+L_Yes:
+ set @TEMP, rand(3);
+ if(@TEMP == 1) goto L_Req1;
+ if(@TEMP == 2) goto L_Req2;
+ goto L_Req0;
+
+L_Req0:
+ mes "[Sandra]";
+ mes "\"I need 5 Scorpion Stingers.\"";
+ next;
+ goto L_Set;
+
+L_Req1:
+ mes "[Sandra]";
+ mes "\"I heard a while ago that stingers from scorpions can be used for medical purposes. I need you to help me get 5 Scorpion Stingers.\"";
+ next;
+ goto L_Set;
+
+L_Req2:
+ mes "[Sandra]";
+ mes "\"Bring me 5 Scorpion Stingers. I'll give you something if you do!\"";
+ next;
+ goto L_Set;
+
+L_Set:
+ set @state, 1;
+ callsub S_Update_Var;
+ mes "\"Please get them for me!\"";
+ goto L_Close;
+
+L_Progress:
+ if (countitem("ScorpionStinger") < 5)
+ goto L_NotEnough;
+ mes "[Sandra]";
+ mes "\"Excellent! You brought me 5 Scorpion Stingers!";
+ mes "Here's something for you.\"";
+ getinventorylist;
+ if (@inventorylist_count + (countitem("ScorpionStinger") == 5) - (countitem("Arrow") == 0) > 99)
+ goto L_TooMany;
+ delitem "ScorpionStinger", 5;
+ getitem "Bow", 1;
+ getitem "Arrow", 100;
+ set @state, 2;
+ callsub S_Update_Var;
+ goto L_Close;
+
+L_NotEnough:
+ mes "[Sandra]";
+ mes "\"Please hurry and bring me 5 Scorpion Stingers.\"";
+ goto L_Close;
+
+L_Done:
+ mes "[Sandra]";
+ mes "\"Thank you for all your help!\"";
+ goto L_Close;
+
+L_Close:
+ set @TEMP, 0;
+ set @state, 0;
+ close;
+
+L_TooMany:
+ next;
+ mes "[Sandra]";
+ mes "\"You don't have room for my reward. I'll wait until you do.\"";
+ goto L_Close;
+
+S_Update_Var:
+ set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(NIBBLE_3_MASK) | (@state << NIBBLE_3_SHIFT));
+ return;
+}
diff --git a/world/map/npc/001-2/shops.txt b/world/map/npc/001-2/shops.txt
deleted file mode 100644
index 9d71508d..00000000
--- a/world/map/npc/001-2/shops.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-// Bartender
-
-001-2.gat,21,27,0|shop|Bartender#Casino|112,Beer:*175,Cake:*30,CherryCake:*100
diff --git a/world/map/npc/001-2/tathin.txt b/world/map/npc/001-2/tathin.txt
new file mode 100644
index 00000000..491eb151
--- /dev/null
+++ b/world/map/npc/001-2/tathin.txt
@@ -0,0 +1,29 @@
+001-2.gat,28,21,0|script|Tathin|107
+{
+ mes "[Tathin]";
+ mes "\"Hello what Can I do for you?\"";
+ next;
+
+ menu
+ "I'd like to join a party.", L_Give_Party,
+ "I'd like to create my own party.", L_Give_Make_Party,
+ "Nothing, I guess.", L_Close;
+
+L_Give_Party:
+ mes "[Tathin]";
+ mes "\"You'll need to be invited by an existing member of a party to join it. You may also create your own party.\"";
+ next;
+ mes "[Tathin]";
+ mes "\"Remember, parties cannot share experience if any members are more than 10 levels apart.\"";
+ menu
+ "I'd like to create my own party.", L_Give_Make_Party,
+ "Goodbye.", L_Close;
+
+L_Give_Make_Party:
+ mes "[Tathin]";
+ mes "\"You can create parties with the 'new' or 'create' commands on the Party tab in the client. Parties need to have unique names.\"";
+ close;
+
+L_Close:
+ close;
+}
diff --git a/world/map/npc/001-2/tondar.txt b/world/map/npc/001-2/tondar.txt
new file mode 100644
index 00000000..5c15dddb
--- /dev/null
+++ b/world/map/npc/001-2/tondar.txt
@@ -0,0 +1,56 @@
+// A professor at Tulimshar's magic academy
+
+001-2.gat,95,79,0|script|Tondar|168
+{
+ mes "[Tondar]";
+ mes "\"We're not accepting any new students right now.\"";
+ if (getskilllv(SKILL_MAGIC) > 0)
+ goto L_may_ask;
+ goto L_end;
+
+L_may_ask:
+ next;
+ menu
+ "Can you teach me a spell?", L_askspell,
+ "Do you have a magic library?", L_library,
+ "Are you sure? I can pay well...", L_nopay,
+ "That's unfortunate.", L_end,
+ "Goodbye, then.", L_end;
+
+L_library:
+ mes "[Tondar]";
+ mes "\"Of course we do. It is only for graduate students, alumni, and faculty.\"";
+ next;
+ menu
+ "Thank you, and goodbye.", L_end,
+ "Nobody else is allowed inside?", L_Next;
+
+L_Next:
+ mes "[Tondar]";
+ mes "\"Well, it is possible to get a special permit from the headmaster. But he is currently on sabbatical.\"";
+ close;
+
+L_askspell:
+ mes "[Tondar]";
+ mes "\"We only teach spells to students.\"";
+ next;
+ menu
+ "Oh, come on... just one little spell!", L_nopay,
+ "Pretty please?", L_spell,
+ "I can pay you, too...", L_nopay;
+
+L_spell:
+ mes "[Tondar]";
+ mes "\"Well, all right; this one can't do much harm. Press your hands together and say `" + getspellinvocation("ask-magic-exp") + "'.\"";
+ mes "\"This will release a steady flow of magic within you. Focus and try to control it; it is a good meditative practice.\"";
+ close;
+
+L_nopay:
+ mes "[Tondar]";
+ mes "The wizard frowns angrily.";
+ mes "\"Do not tempt me to teach you a different kind of lesson, young one! Begone!\"";
+ goto L_end;
+
+L_end:
+ close;
+}
diff --git a/world/map/npc/001-2/wizards.txt b/world/map/npc/001-2/wizards.txt
new file mode 100644
index 00000000..587c999c
--- /dev/null
+++ b/world/map/npc/001-2/wizards.txt
@@ -0,0 +1,60 @@
+// Council of Ruling Wizards Room
+
+// manaseed
+001-2.gat,104,19,0|script|Desert Mana Seed#_M|166
+{
+ end;
+}
+
+//
+001-2.gat,99,22,0|script|Wizard#1|355
+{
+ end;
+}
+
+//
+001-2.gat,92,24,0|script|Wizard#2|356
+{
+ end;
+}
+
+//
+001-2.gat,92,30,0|script|Wizard#3|357
+{
+ end;
+}
+
+//
+001-2.gat,99,32,0|script|Wizard#4|358
+{
+ end;
+}
+
+//
+001-2.gat,110,22,0|script|Wizard#5|359
+{
+ end;
+}
+
+//
+001-2.gat,117,24,0|script|Wizard#6|360
+{
+ end;
+}
+
+//
+001-2.gat,117,30,0|script|Wizard#7|361
+{
+ end;
+}
+
+//
+001-2.gat,110,32,0|script|Wizard#8|362
+{
+ end;
+}
+//
+001-2.gat,104,27,0|script|Arch-Wizard#9|354
+{
+ end;
+}
diff --git a/world/map/npc/021-2/yanis.txt b/world/map/npc/001-2/yanis.txt
index 0cc28962..67175704 100644
--- a/world/map/npc/021-2/yanis.txt
+++ b/world/map/npc/001-2/yanis.txt
@@ -1,11 +1,17 @@
// Government official taking care about shop licenses
// involved in quest given by 021-1/imec.txt and 021-2/kylian.txt
-021-2.gat,33,17,0|script|Yanis|107
+001-2.gat,31,21,0|script|Yanis|107
{
set QUEST_NorthTulimshar, QUEST_NorthTulimshar | $@knowYanisNT;
set @kylian, ((QUEST_NorthTulimshar & NIBBLE_5_MASK) >> NIBBLE_5_SHIFT);
set @imec, ((QUEST_NorthTulimshar & TWOBIT_4_MASK) >> TWOBIT_4_SHIFT);
+ set @halloween_npc_id, $@halloween_npc_yanis;
+ callfunc "TrickOrTreat";
+
+ goto L_Base_Menu;
+
+L_Base_Menu:
mes "[Yanis]";
mes "\"Welcome. I'm handling issues with trading licenses for the shop owners in Tulimshar. Can I help you?\"";
diff --git a/world/map/npc/001-3/_warps.txt b/world/map/npc/001-3/_warps.txt
index e8e35ee1..66eb5137 100644
--- a/world/map/npc/001-3/_warps.txt
+++ b/world/map/npc/001-3/_warps.txt
@@ -1,4 +1,4 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
// Tulimshar Arena warps
-001-3.gat,73,28|warp|To Tulimshar Indoor|-1,-1,001-2.gat,23,24
+001-3.gat,73,28|warp|To Tulimshar Indoor|-1,-1,002-2.gat,74,59
diff --git a/world/map/npc/001-3/guards.txt b/world/map/npc/001-3/guards.txt
index c02a9a17..e6b11a0f 100644
--- a/world/map/npc/001-3/guards.txt
+++ b/world/map/npc/001-3/guards.txt
@@ -16,7 +16,7 @@ L_Sure:
mes "\"Ok.\"";
next;
if(DUELS & $@DuelPvpBit) goto L_FightClub;
- warp "001-2.gat", 25, 23;
+ warp "002-2.gat", 74, 59;
close;
L_FightClub:
diff --git a/world/map/npc/001-3/mapflags.txt b/world/map/npc/001-3/mapflags.txt
index 75eb45d1..7f8170b1 100644
--- a/world/map/npc/001-3/mapflags.txt
+++ b/world/map/npc/001-3/mapflags.txt
@@ -1 +1,2 @@
-001-3.gat|mapflag|nosave|001-2,128,24
+001-3.gat|mapflag|nosave|002-2,74,59
+001-3.gat|mapflag|resave|002-2,74,59
diff --git a/world/map/npc/002-2/_import.txt b/world/map/npc/002-2/_import.txt
index 0cccabbf..673ba2d1 100644
--- a/world/map/npc/002-2/_import.txt
+++ b/world/map/npc/002-2/_import.txt
@@ -3,5 +3,22 @@
map: 002-2.gat
npc: npc/002-2/_mobs.txt
npc: npc/002-2/_warps.txt
+npc: npc/002-2/bakery.txt
+npc: npc/002-2/barber.txt
+npc: npc/002-2/bleacher.txt
+npc: npc/002-2/casino.txt
+npc: npc/002-2/dedication.txt
+npc: npc/002-2/eurni.txt
+npc: npc/002-2/hetchel.txt
+npc: npc/002-2/imec.txt
+npc: npc/002-2/inya.txt
+npc: npc/002-2/kps.txt
+npc: npc/002-2/kylian.txt
+npc: npc/002-2/latoy.txt
npc: npc/002-2/mapflags.txt
-npc: npc/002-2/traveler.txt
+npc: npc/002-2/omar.txt
+npc: npc/002-2/phaet.txt
+npc: npc/002-2/rebecca.txt
+npc: npc/002-2/shops.txt
+npc: npc/002-2/stranger.txt
+npc: npc/002-2/troupe_leader.txt
diff --git a/world/map/npc/002-2/_warps.txt b/world/map/npc/002-2/_warps.txt
index e370ad8f..fc78534b 100644
--- a/world/map/npc/002-2/_warps.txt
+++ b/world/map/npc/002-2/_warps.txt
@@ -1,4 +1,22 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
// Sandstorm Desert Indoors warps
-002-2.gat,28,30|warp|To Sand Storm|-1,-1,002-1.gat,104,93
+002-2.gat,44,34|warp|Outside|-1,-1,002-1.gat,73,36
+002-2.gat,44,20|warp|First Floor|0,-1,002-2.gat,45,78
+002-2.gat,46,79|warp|First Floor|0,-1,002-2.gat,43,21
+002-2.gat,46,55|warp|Penthouse|0,-1,002-2.gat,44,109
+002-2.gat,45,110|warp|Second Floor|0,-1,002-2.gat,45,56
+002-2.gat,23,110|warp|Outside|-1,-1,002-1.gat,67,30
+002-2.gat,34,20|warp|Casino|-1,-1,002-2.gat,79,69
+002-2.gat,37,20|warp|Theatre|-1,-1,002-2.gat,72,31
+002-2.gat,72,32|warp|First Floor|-1,-1,002-2.gat,37,21
+002-2.gat,79,70|warp|First Floor|-1,-1,002-2.gat,34,21
+002-2.gat,40,20|warp|Salon|-1,-1,002-2.gat,126,35
+002-2.gat,126,36|warp|First Floor|-1,-1,002-2.gat,40,21
+002-2.gat,75,101|warp|Outside|-1,-1,002-1.gat,109,46
+002-2.gat,83,101|warp|Outside|-1,-1,002-1.gat,115,46
+002-2.gat,78,132|warp|Outside|-1,-1,002-1.gat,114,36
+002-2.gat,68,121|warp|Outside|-1,-1,002-1.gat,110,28
+002-2.gat,120,67|warp|Outside|-1,-1,002-1.gat,99,44
+002-2.gat,120,95|warp|Outside|-1,-1,002-1.gat,57,36
+002-2.gat,119,132|warp|To Outside|-1,-1,002-1.gat,57,27
diff --git a/world/map/npc/021-2/bakery.txt b/world/map/npc/002-2/bakery.txt
index acde18f2..b97c41c1 100644
--- a/world/map/npc/021-2/bakery.txt
+++ b/world/map/npc/002-2/bakery.txt
@@ -1,7 +1,7 @@
// The bakery
// The chef
-021-2.gat,95,21,0|script|Riskim|148
+002-2.gat,21,22,0|script|Riskim|148
{
mes "[Riskim]";
mes "";
@@ -120,7 +120,7 @@ L_End:
}
// Server
-021-2.gat,82,23,0|script|Sara|108
+002-2.gat,28,31,0|script|Sara|108
{
mes "[Sara]";
mes "";
@@ -129,19 +129,19 @@ L_End:
}
// The cashier
-021-2.gat,89,21,0|shop|Drabur|112,WhiteCake:*500,ChocolateCake:*550,OrangeCake:*600,AppleCake:*600,Cake:*30,CherryCake:*100,OrangeCupcake:*270,Milk:*1500,XmasCake:*70
+002-2.gat,25,22,0|shop|Drabur|112,WhiteCake:*500,ChocolateCake:*550,OrangeCake:*600,AppleCake:*600,Cake:*30,CherryCake:*100,OrangeCupcake:*270,Milk:*1500,XmasCake:*70
-// Stockroom boy
-021-2.gat,133,21,0|script|Iormo|160
+// Bus boy
+002-2.gat,21,28,0|script|Iormo|160
{
mes "[Iormo]";
mes "";
- mes "\"This stock room can get messy.\"";
+ mes "\"This room can get messy.\"";
close;
}
// An old couple eating at the bakery
-021-2.gat,71,22,0|script|Rynoh|159
+002-2.gat,24,27,0|script|Rynoh|159
{
mes "[Rynoh]";
mes "";
@@ -149,7 +149,7 @@ L_End:
close;
}
-021-2.gat,73,22,0|script|Ontas|154
+002-2.gat,26,27,0|script|Ontas|154
{
mes "[Ontas]";
mes "";
diff --git a/world/map/npc/021-2/barber.txt b/world/map/npc/002-2/barber.txt
index d057786d..eb1a5821 100644
--- a/world/map/npc/021-2/barber.txt
+++ b/world/map/npc/002-2/barber.txt
@@ -1,5 +1,5 @@
// A barber (later we can make it so certain styles need to come from him, for a price)
-021-2.gat,72,101,0|script|Issay|156
+002-2.gat,117,30,0|script|Issay|156
{
mes "[Issay the Barber]";
mes "\"Do you need a change of style?\"";
diff --git a/world/map/npc/002-2/bleacher.txt b/world/map/npc/002-2/bleacher.txt
new file mode 100644
index 00000000..3391a62c
--- /dev/null
+++ b/world/map/npc/002-2/bleacher.txt
@@ -0,0 +1,293 @@
+//
+
+002-2.gat,72,92,0|script|Candide|156
+{
+ mes "[Candide]";
+ mes "\"I've figured out how that volcanic ash bleaches cloth.";
+ mes "I could do it for you, but I'll need three piles of ash and 5,000 GP for supplies per item.\"";
+ next;
+
+ if (countitem("PileOfAsh") < 3) goto L_no_ash;
+
+ if (Zeny < 5000) goto L_no_money;
+
+ menu
+ "I'd like to bleach something.", L_bleach_menu,
+ "No thanks.", L_Close;
+
+L_bleach_menu:
+ mes "[Candide]";
+ mes "\"What would you like to bleach?\"";
+ next;
+
+ menu
+ "Cotton shirt.", L_cottonshirt,
+ "Contributor shirt.", L_contributor,
+ "V-Neck sweater.", L_vneck,
+ "Turtleneck sweater.", L_tneck,
+ "Cotton shorts.", L_shorts,
+ "Cotton trousers.", L_trousers,
+ "Cotton skirt.", L_skirt,
+ "Miniskirt.", L_miniskirt,
+ "Tank top .", L_tanktop,
+ "Short tank top.", L_tanktop_short,
+ "Silk robe.", L_robe,
+ "Cotton headband.", L_cotton_headband,
+ "Desert hat.", L_desert_hat,
+ "Cotton boots.", L_cotton_boots,
+ "Cotton gloves.", L_cotton_gloves,
+ "Rabbit ears.", L_rabbit_ears,
+ "Wizard hat.", L_wizard_hat,
+ "Bowler hat.", L_bowler_hat,
+ "Sorcerer robe.", L_sorcerer_robe,
+ "Bowler hat (brown).", L_bowler_hat_brown,
+ "Fine dress.", L_fine_dress,
+ "Cotton cloth.", L_cotton_cloth,
+ "Nevermind.", L_Close;
+
+L_contributor:
+ set @normal, 1178;
+ set @dyeBase, 5131;
+ goto L_choose_color;
+
+L_cottonshirt:
+ set @normal, 1202;
+ set @dyeBase, 2050;
+ goto L_choose_color;
+
+L_vneck:
+ set @normal, 624;
+ set @dyeBase, 2060;
+ goto L_choose_color;
+
+L_tneck:
+ set @normal, 564;
+ set @dyeBase, 2070;
+ goto L_choose_color;
+
+L_shorts:
+ set @normal, 586;
+ set @dyeBase, 2110;
+ goto L_choose_color;
+
+L_trousers:
+ set @normal, 648;
+ set @dyeBase, 2180;
+ goto L_choose_color;
+
+L_skirt:
+ set @normal, 632;
+ set @dyeBase, 2100;
+ goto L_choose_color;
+
+L_miniskirt:
+ set @normal, 771;
+ set @dyeBase, 2170;
+ goto L_choose_color;
+
+L_tanktop:
+ set @normal, 688;
+ set @dyeBase, 2090;
+ goto L_choose_color;
+
+L_tanktop_short:
+ set @normal, 689;
+ set @dyeBase, 2120;
+ goto L_choose_color;
+
+L_robe:
+ set @normal, 720;
+ set @dyeBase, 2080;
+ goto L_choose_color;
+
+L_cotton_headband:
+ set @normal, 724;
+ set @dyeBase, 2140;
+ goto L_choose_color;
+
+L_desert_hat:
+ set @normal, 723;
+ set @dyeBase, 2130;
+ goto L_choose_color;
+
+L_cotton_boots:
+ set @normal, 735;
+ set @dyeBase, 2150;
+ goto L_choose_color;
+
+L_cotton_gloves:
+ set @normal, 741;
+ set @dyeBase, 2160;
+ goto L_choose_color;
+
+L_rabbit_ears:
+ set @normal, 1255;
+ set @dyeBase, 2190;
+ goto L_choose_color;
+
+L_wizard_hat:
+ set @normal, 4028;
+ set @dyeBase, 2200;
+ goto L_choose_color;
+
+L_bowler_hat:
+ set @normal, 4030;
+ set @dyeBase, 2210;
+ goto L_choose_color;
+
+L_sorcerer_robe:
+ mes "[Candide]";
+ mes "\"Which one?\"";
+ next;
+ menu
+ "A red lined one.", L_red_lined_sorcerer_robe,
+ "A green lined one.", L_green_lined_sorcerer_robe,
+ "A dark blue lined one.", L_dark_blue_lined_sorcerer_robe,
+ "A yellow lined one.", L_yellow_lined_sorcerer_robe,
+ "A light blue lined one.", L_light_blue_lined_sorcerer_robe,
+ "A pink lined one.", L_pink_lined_sorcerer_robe,
+ "A black lined one.", L_black_lined_sorcerer_robe,
+ "An orange lined one.", L_orange_lined_sorcerer_robe,
+ "A purple lined one.", L_purple_lined_sorcerer_robe,
+ "A dark green lined one.", L_dark_green_lined_sorcerer_robe,
+ "A white lined one.", L_white_lined_sorcerer_robe,
+ "Nevermind.", L_Close;
+
+L_red_lined_sorcerer_robe:
+ set @normal, 798;
+ set @dyeBase, 2220;
+ goto L_choose_color;
+
+L_green_lined_sorcerer_robe:
+ set @normal, 5010;
+ set @dyeBase, 5000;
+ goto L_choose_color;
+
+L_dark_blue_lined_sorcerer_robe:
+ set @normal, 5021;
+ set @dyeBase, 5011;
+ goto L_choose_color;
+
+L_yellow_lined_sorcerer_robe:
+ set @normal, 5032;
+ set @dyeBase, 5022;
+ goto L_choose_color;
+
+L_light_blue_lined_sorcerer_robe:
+ set @normal, 5043;
+ set @dyeBase, 5033;
+ goto L_choose_color;
+
+L_pink_lined_sorcerer_robe:
+ set @normal, 5054;
+ set @dyeBase, 5044;
+ goto L_choose_color;
+
+L_black_lined_sorcerer_robe:
+ set @normal, 5065;
+ set @dyeBase, 5055;
+ goto L_choose_color;
+
+L_orange_lined_sorcerer_robe:
+ set @normal, 5076;
+ set @dyeBase, 5066;
+ goto L_choose_color;
+
+L_purple_lined_sorcerer_robe:
+ set @normal, 5087;
+ set @dyeBase, 5077;
+ goto L_choose_color;
+
+L_dark_green_lined_sorcerer_robe:
+ set @normal, 5098;
+ set @dyeBase, 5088;
+ goto L_choose_color;
+
+L_white_lined_sorcerer_robe:
+ set @normal, 5109;
+ set @dyeBase, 5099;
+ goto L_choose_color;
+
+L_bowler_hat_brown:
+ set @normal, 800;
+ set @dyeBase, 2230;
+ goto L_choose_color;
+
+L_fine_dress:
+ set @normal, 870;
+ set @dyeBase, 2240;
+ goto L_choose_color;
+
+L_cotton_cloth:
+ set @normal, 660;
+ set @dyeBase, 2250;
+ goto L_choose_color;
+
+L_choose_color:
+ mes "[Candide]";
+ mes "\"And the color?\"";
+ next;
+
+ menu
+ "Red.", L_MenuItems,
+ "Green.", L_MenuItems,
+ "Dark Blue.", L_MenuItems,
+ "Yellow.", L_MenuItems,
+ "Light Blue.", L_MenuItems,
+ "Pink.", L_MenuItems,
+ "Black.", L_MenuItems,
+ "Orange.", L_MenuItems,
+ "Purple.", L_MenuItems,
+ "Dark Green.", L_MenuItems;
+
+L_MenuItems:
+ set @del, @dyeBase + @menu - 1;
+
+ if (countitem(@del) == 0) goto L_no_item;
+
+ if (countitem("PileOfAsh") < 3) goto L_no_ash;
+
+ if (Zeny < 5000) goto L_no_money;
+
+ delitem @del, 1;
+ getitem @normal, 1;
+ delitem "PileOfAsh", 3;
+ set Zeny, Zeny - 5000;
+ goto L_again;
+
+L_again:
+ mes "[Candide]";
+ mes "\"Would you like to bleach something else?\"";
+ next;
+
+ menu
+ "Yes.", L_bleach_menu,
+ "No.", L_Close;
+
+L_no_item:
+ mes "[Candide]";
+ mes "\"You don't have one of those.\"";
+ next;
+
+ goto L_again;
+
+L_no_ash:
+ mes "[Candide]";
+ mes "\"You don't have enough ash for me to bleach anything.";
+ mes "I need three piles.\"";
+ goto L_Close;
+
+L_no_money:
+ mes "[Candide]";
+ mes "\"You don't have enough gold for me to bleach anything.";
+ mes "I need 5,000 GP for supplies.\"";
+ goto L_Close;
+
+L_Close:
+ mes "[Candide]";
+ mes "\"Come again.\"";
+ set @normal, 0;
+ set @dyeBase, 0;
+ set @del, 0;
+ close;
+}
diff --git a/world/map/npc/001-2/casino.txt b/world/map/npc/002-2/casino.txt
index ad0b625b..4733bb63 100644
--- a/world/map/npc/001-2/casino.txt
+++ b/world/map/npc/002-2/casino.txt
@@ -1,7 +1,7 @@
// Casino
// takes part in quest given by 021-2/kylian.txt
-001-2.gat,32,72,0|script|#CasinoEntrance|32767,1,1
+002-2.gat,79,68,0|script|#CasinoEntrance|32767,13,0
{
set QUEST_NorthTulimshar, QUEST_NorthTulimshar | $@knowCasinoNT;
set @kylian, ((QUEST_NorthTulimshar & NIBBLE_5_MASK) >> NIBBLE_5_SHIFT);
@@ -15,34 +15,34 @@ L_End:
end;
}
-001-2.gat,39,32,0|script|Valdo|117
+002-2.gat,86,29,0|script|Valdo|117
{
mes "[Valdo the Worker]";
mes "\"Please let me work. I'm really in a hurry!\"";
close;
}
-001-2.gat,37,65,0|script|Slots#1|400
+002-2.gat,84,62,0|script|Slots#1|400
{
callfunc "SlotMachine";
close;
}
-001-2.gat,39,65,0|script|Slots#2|400
+002-2.gat,86,62,0|script|Slots#2|400
{
callfunc "SlotMachine";
close;
}
-001-2.gat,41,65,0|script|Slots#3|400
+002-2.gat,88,62,0|script|Slots#3|400
{
callfunc "SlotMachine";
close;
}
-001-2.gat,102,27,0|shop|MoneyChanger|124,CasinoCoins:*10
+002-2.gat,78,56,0|shop|MoneyChanger|124,CasinoCoins:*10
-001-2.gat,28,63,0|script|BlackJack|107
+002-2.gat,75,60,0|script|BlackJack|107
{
mes "[Croupier]";
mes "\"Would you like to play Black Jack?";
@@ -117,7 +117,7 @@ L_Close:
close;
}
-001-2.gat,22,69,0|script|Roulette|107
+002-2.gat,69,67,0|script|Roulette|107
{
mes "[Croupier]";
mes "\"Good evening monsieur...";
diff --git a/world/map/npc/001-2/dedication.txt b/world/map/npc/002-2/dedication.txt
index 03268df0..4ab9ba22 100644
--- a/world/map/npc/001-2/dedication.txt
+++ b/world/map/npc/002-2/dedication.txt
@@ -1,6 +1,6 @@
// Dedication to Irene Christina
-001-2.gat,76,68,0|script|#IreneDedication|400
+002-2.gat,116,123,0|script|#IreneDedication|400
{
mes "~ Irene Christina ~";
mes "The song in this house is dedicated to Irene.";
diff --git a/world/map/npc/002-2/eurni.txt b/world/map/npc/002-2/eurni.txt
new file mode 100644
index 00000000..a084acbc
--- /dev/null
+++ b/world/map/npc/002-2/eurni.txt
@@ -0,0 +1,45 @@
+//
+
+002-2.gat,22,77,0|script|Eurni|136
+{
+ set @halloween_npc_id, $@halloween_npc_eurni;
+ callfunc "TrickOrTreat";
+
+ if (BaseLevel < 10) goto L_TooYoung;
+ if (Zeny < 10000) goto L_NoMoney;
+
+ mes "[Eurni the Surgeon]";
+ mes "\"Are you tired of being what you are?\"";
+ next;
+
+ mes "[Eurni the Surgeon]";
+ mes "\"Would you maybe be interested in a sex change?\"";
+ next;
+
+ mes "[Server]";
+ mes "Warning: All characters under this login will be changed. Once it's done, you will be kicked from the server. Don't panic, as everything is fine.";
+ next;
+ menu
+ "Please do, my dear...", L_Change,
+ "Leave alone my family treasure!", L_Close;
+
+L_Change:
+ if (Zeny < 10000)
+ goto L_NoMoney;
+ set Zeny, Zeny - 10000;
+ changesex;
+ close;
+
+L_TooYoung:
+ mes "[Eurni the Surgeon]";
+ mes "\"Move along, kid.\"";
+ close;
+
+L_NoMoney:
+ mes "[Eurni the Surgeon]";
+ mes "\"You don't have enough to pay for my services.\"";
+ close;
+
+L_Close:
+ close;
+}
diff --git a/world/map/npc/068-2/hetchel.txt b/world/map/npc/002-2/hetchel.txt
index c81d0cf1..b595bd88 100644
--- a/world/map/npc/068-2/hetchel.txt
+++ b/world/map/npc/002-2/hetchel.txt
@@ -17,7 +17,7 @@
//
// @silkpants_state: variable indicating silkpant quest status.
-068-2.gat,62,83,0|script|Hetchel|376
+002-2.gat,76,92,0|script|Hetchel|376
{
set @wg_state, ((QUEST_WG_state & BYTE_0_MASK) >> BYTE_0_SHIFT);
set @spants_state, ((QUEST_WG_state & NIBBLE_2_MASK) >> NIBBLE_2_SHIFT);
@@ -408,7 +408,7 @@ L_Close:
close;
}
-068-2.gat,60,83,0|script|HetchelDebug|376
+002-2.gat,73,95,0|script|HetchelDebug|376
{
set @wg_state, ((QUEST_WG_state & BYTE_0_MASK) >> BYTE_0_SHIFT);
set @spants_state, ((QUEST_WG_state & NIBBLE_2_MASK) >> NIBBLE_2_SHIFT);
diff --git a/world/map/npc/002-2/imec.txt b/world/map/npc/002-2/imec.txt
new file mode 100644
index 00000000..851dd49b
--- /dev/null
+++ b/world/map/npc/002-2/imec.txt
@@ -0,0 +1,113 @@
+// Merchant got his shop shot down due to selling poison and asks the player for some errand
+// after finishing this, daily quest with scorpion stingers
+// Using bit 8 and 9 of QUEST_NorthTulimshar (first half of nibble 2)
+// author: Jenalya
+002-2.gat,36,75,0|script|Imec|162
+{
+ set @state, ((QUEST_NorthTulimshar & TWOBIT_4_MASK) >> TWOBIT_4_SHIFT);
+ set @EXP, 90;
+ set @money, 500;
+
+ if (@state >= 3) goto L_Stingers;
+ if (@state == 2) goto L_Return;
+ if (@state == 1) goto L_Bring;
+
+ mes "[Imec]";
+ mes "\"The Wizard's Council shut down my shop!";
+ mes "They said I was selling illegal things, but what's so illegal about poison?\"";
+ next;
+ mes "\"Anyway, I hope to get a merchant's permit again... One of these days...\"";
+ mes "He looks at you.";
+ next;
+ mes "[Imec]";
+ mes "\"You can do an errand for me. I just finished writing a petition to the Council about my shop.";
+ mes "If you bring it to the government building near the docks, I'll give you a small reward.\"";
+ goto L_Offer;
+
+L_Offer:
+ menu
+ "Where are the docks and what is the government building?",L_Explain,
+ "Ok, sounds good.",L_Next,
+ "No!",L_Close;
+
+L_Next:
+ mes "[Imec]";
+ mes "\"Very good. Here is the paper.\"";
+ mes "Imec gives you a sealed letter. You put it away in a pocket separated from your inventory, so it won't get lost.";
+ set @state, 1;
+ callsub S_Update_Mask;
+ goto L_Close;
+
+L_Explain:
+ mes "[Imec]";
+ mes "\"Follow the road to the north through the gate, then go west when you reach the docks. It's right before the castle mount.\"";
+ next;
+ mes "\"In the building there are several offices. If you want to join or form a party, you have to pay your taxes there first.\"";
+ next;
+ mes "\"So, will you bring my petition to the office in that building?\"";
+ if (@state == 0)
+ goto L_Offer;
+ goto L_Close;
+
+L_Bring:
+ mes "[Imec]";
+ mes "\"What are you waiting for? Bring my petition to the government building.\"";
+ menu
+ "Where is it again?",L_Explain,
+ "I'm on my way.",L_Close;
+
+L_Return:
+ mes "[Imec]";
+ mes "\"Ah, you're back.\"";
+ mes "You hand the letter of acknowledgement over to Imec.";
+ next;
+ mes "[Imec]";
+ mes "\"Very well. I'm sure I'll be able to open my shop again soon.\"";
+ next;
+ mes "It seems Imec doesn't notice you anymore.";
+ menu
+ "You mentioned a reward.",L_Next1;
+
+L_Next1:
+ mes "[Imec]";
+ mes "\"What? Ah, right. Here, have this.\"";
+ getexp @EXP, 0;
+ set Zeny, Zeny + @money;
+ set @state, 3;
+ callsub S_Update_Mask;
+ next;
+ mes "\"Actually, you could be of further help to me.\"";
+ next;
+ goto L_Stingers;
+
+L_Stingers:
+ mes "[Imec]";
+ set @dq_level, 10;
+ set @dq_cost, 3;
+ set @dq_count, 3;
+ set @dq_name$, "ScorpionStinger";
+ set @dq_friendly_name$, "Scorpion Stingers";
+ set @dq_money, 200;
+ set @dq_exp, 40;
+
+ callfunc "DailyQuest";
+ goto L_Close;
+
+L_Close:
+ set @money, 0;
+ set @state, 0;
+
+ set @dq_level, 0;
+ set @dq_cost, 0;
+ set @dq_count, 0;
+ set @dq_name$, "";
+ set @dq_friendly_name$, "";
+ set @dq_money, 0;
+ set @dq_exp, 0;
+ set @dq_return, 0;
+ close;
+
+S_Update_Mask:
+ set QUEST_NorthTulimshar, (QUEST_NorthTulimshar & ~(TWOBIT_4_MASK)) | (@state << TWOBIT_4_SHIFT);
+ return;
+}
diff --git a/world/map/npc/068-2/inya.txt b/world/map/npc/002-2/inya.txt
index 1958478c..322d0eb3 100644
--- a/world/map/npc/068-2/inya.txt
+++ b/world/map/npc/002-2/inya.txt
@@ -1,9 +1,9 @@
//Gemstones: Diamond (white) , Ruby (red), Emerald (green), Sapphire (blue), Topaz (yellow), Amethyst (purple)
//The power of the gems is important to future balance of these rings. Are they related to stats, tiers of power, schools of magic?
-068-2.gat,29,56,0|shop|#InyaShop|127,SimpleRing:*100000
+002-2.gat,116,61,0|shop|#InyaShop|127,SimpleRing:*100000
-068-2.gat,29,56,0|script|Inya|106
+002-2.gat,116,61,0|script|Inya|106
{
mes "[Inya]";
mes "\"I am Inya, a jeweler of fine rings. I sell and make rings.\"";
diff --git a/world/map/npc/021-2/kps.txt b/world/map/npc/002-2/kps.txt
index fb6ce235..a17df1a3 100644
--- a/world/map/npc/021-2/kps.txt
+++ b/world/map/npc/002-2/kps.txt
@@ -4,7 +4,7 @@
// reuse the 4 bits
// To Mark 4 Different NPCs.
// setarray $@kps_npc_bits, $@knowYanisNT, $@knowLatoyNT, $@knowWeellosNT, $@knowCasinoNT;
-021-2.gat,27,124,0|script|KPS Manager|191
+002-2.gat,120,89,0|script|KPS Manager|191
{
set @state, ((QUEST_NorthTulimshar & NIBBLE_5_MASK) >> NIBBLE_5_SHIFT);
set @run, ((QUEST_NorthTulimshar & TWOBIT_8_MASK) >> TWOBIT_8_SHIFT);
diff --git a/world/map/npc/021-2/kylian.txt b/world/map/npc/002-2/kylian.txt
index 5a162242..7f832b87 100644
--- a/world/map/npc/021-2/kylian.txt
+++ b/world/map/npc/002-2/kylian.txt
@@ -57,14 +57,14 @@ OnInit:
set $@delivery_exp_mod, 10;
end;
}
-021-2.gat,25,67,0|script|#KylianOut|32767,1,1
+002-2.gat,44,107,0|script|#KylianOut|32767,1,1
{
set @KylianNTLicense, 0;
set @KylianNTSightSeeing, 0;
set @KylianNTCasino, 0;
end;
}
-021-2.gat,89,55,0|script|Kylian|193
+002-2.gat,43,101,0|script|Kylian|193
{
set @state, ((QUEST_NorthTulimshar & NIBBLE_5_MASK) >> NIBBLE_5_SHIFT);
@@ -84,7 +84,7 @@ OnInit:
// This NPC previously used the variable TMW_Quest
callfunc "ClearVarTMW_Quest";
- set @bernard, ((QUEST_SouthTulimshar & NIBBLE_0_MASK) >> NIBBLE_0_SHIFT);
+ set @fieri, ((QUEST_SouthTulimshar & NIBBLE_6_MASK) >> NIBBLE_6_SHIFT);
if (@state == 15) goto L_Done;
if (@state >= 11) goto L_Helping;
@@ -200,10 +200,10 @@ L_HistBuild:
L_Food: // @state == 5
mes "[Kylian]";
mes "\"While I'm out, I could also get something to eat. Maybe some typical dish for this region. Do you have a good suggestion for that?\"";
- if (@bernard < 4) // didn't yet help Bernard to make his soup
+ if (@fieri < 4) // didn't yet help Fieri make Tonori Delight
goto L_Close;
menu
- "Bernard on the bazaar makes a great soup.",L_SoupBer,
+ "Fieri at the castle makes great Tonori Delight.",L_SoupBer,
"No idea, I'll try to find out.",L_Close;
L_SoupBer:
@@ -216,12 +216,12 @@ L_SoupBer:
L_SightSeeingDone:
mes "[Kylian]";
- mes "\"I'm going to see the historic building you told me about and try this local soup on the bazaar. Thank you for the suggestions.\"";
+ mes "\"I'm going to see the historic building you told me about and try this local food at the castle. Thank you for the suggestions.\"";
goto L_Close;
L_Casino: // @state == 6 and logged out sometime between getting to that state and now
mes "[Kylian]";
- mes "\"Hello. I just came back from my sight-seeing tour. And this soup from Bernard really was delicious. I wonder what it's made of...\"";
+ mes "\"Hello. I just came back from my sight-seeing tour. And this Tonori Delight really was delicious. I wonder what it's made of...\"";
next;
mes "\"However, I was wondering if you know about a good place to spend the evening? Some place to have fun?\"";
if (!(QUEST_NorthTulimshar & $@knowCasinoNT))
@@ -247,7 +247,7 @@ L_Clothes: // @state == 7
if (!(QUEST_NorthTulimshar & $@knowLatoyNT))
goto L_Close;
menu
- "At the market near the harbor district...",L_HarborDistrict,
+ "Latoy's shop. On the west side of Tulimshar.",L_HarborDistrict,
"Mh, I don't know.",L_Close;
L_HarborDistrict:
@@ -256,7 +256,7 @@ L_HarborDistrict:
set @state, 8;
callfunc "SetKylianQuest";
set @KylianNTCasino, 1;
- mes "You explain about Latoy and his high quality shop.";
+ mes "You explain about Latoy and the high quality shop.";
mes "[Kylian]";
mes "\"This seems to be exactly what I need. Thanks a lot.\"";
goto L_Close;
@@ -348,7 +348,7 @@ L_Close:
set @fun_money, 0;
set @fun_exp, 0;
set @inventorylist_count, 0;
- set @bernard, 0;
+ set @fieri, 0;
// NOT set to zero: @KylianNTLicense, @KylianNTSightSeeing and @KylianNTCasino
// those are used to check if the player logged out in the meanwhile
close;
@@ -362,7 +362,7 @@ function|script|KylianDebug
{
set @state, ((QUEST_NorthTulimshar & NIBBLE_5_MASK) >> NIBBLE_5_SHIFT);
callfunc "ClearVarTMW_Quest";
- set @bernard, ((QUEST_SouthTulimshar & NIBBLE_0_MASK) >> NIBBLE_0_SHIFT);
+ set @fieri, ((QUEST_SouthTulimshar & NIBBLE_0_MASK) >> NIBBLE_0_SHIFT);
set @run, ((QUEST_NorthTulimshar & TWOBIT_8_MASK) >> TWOBIT_8_SHIFT);
set @run_cnt, ((QUEST_NorthTulimshar & TWOBIT_9_MASK) >> TWOBIT_9_SHIFT);
goto L_Menu;
@@ -404,7 +404,7 @@ L_MoreWorkTimer:
L_Close:
close;
}
-021-2.gat,87,55,0|script|KylianDebug#1|193
+002-2.gat,40,101,0|script|KylianDebug#1|193
{
callfunc "KylianDebug";
end;
@@ -413,7 +413,7 @@ OnInit:
disablenpc "KylianDebug#1";
end;
}
-021-2.gat,29,124,0|script|KylianDebug#2|193
+002-2.gat,118,89,0|script|KylianDebug#2|193
{
callfunc "KylianDebug";
end;
diff --git a/world/map/npc/068-2/latoy.txt b/world/map/npc/002-2/latoy.txt
index ee28555b..4c847af7 100644
--- a/world/map/npc/068-2/latoy.txt
+++ b/world/map/npc/002-2/latoy.txt
@@ -1,9 +1,9 @@
// A snobby store that won't sell to the player
// takes part in quest given by 021-2/kylian.txt
-068-2.gat,92,83,0|shop|#LatoyShop|127,DesertShirt:*2000,SilkRobe:*40000,SerfHat:*500,DesertHat:*9600
+002-2.gat,86,93,0|shop|#LatoyShop|127,SilkHeadband:*20000,SilkGloves:*20000,SilkPants:*30000,SilkRobe:*40000
-068-2.gat,92,83,0|script|Latoy|106
+002-2.gat,86,93,0|script|Latoy|106
{
set QUEST_NorthTulimshar, QUEST_NorthTulimshar | $@knowLatoyNT;
set @kylian, ((QUEST_NorthTulimshar & NIBBLE_5_MASK) >> NIBBLE_5_SHIFT);
diff --git a/world/map/npc/002-2/mapflags.txt b/world/map/npc/002-2/mapflags.txt
index c23a7f11..5448030e 100644
--- a/world/map/npc/002-2/mapflags.txt
+++ b/world/map/npc/002-2/mapflags.txt
@@ -1 +1 @@
-002-2.gat|mapflag|resave|001-1,57,71
+002-2.gat|mapflag|resave|001-1,60,105
diff --git a/world/map/npc/001-2/omar.txt b/world/map/npc/002-2/omar.txt
index c67bd44f..048f129c 100644
--- a/world/map/npc/001-2/omar.txt
+++ b/world/map/npc/002-2/omar.txt
@@ -21,7 +21,7 @@ function|script|KadiyaSubquestConsts
return;
}
-001-2.gat,70,60,0|script|Omar|162
+002-2.gat,117,126,0|script|Omar|162
{
callfunc "ElanoreFix";
callfunc "KadiyaSubquestConsts";
@@ -178,7 +178,7 @@ S_update_var:
return;
}
-001-2.gat,76,59,0|script|Kadiya|174
+002-2.gat,124,124,0|script|Kadiya|174
{
set @child_number, 7;
callfunc "XmasList";
diff --git a/world/map/npc/001-2/phaet.txt b/world/map/npc/002-2/phaet.txt
index aa0c9848..eb464e1e 100644
--- a/world/map/npc/001-2/phaet.txt
+++ b/world/map/npc/002-2/phaet.txt
@@ -1,6 +1,6 @@
//
-001-2.gat,132,25,0|script|Phaet|125,0,0
+002-2.gat,75,56,0|script|Phaet|125,0,0
{
mes "[Phaet the Royal Guard]";
mes "\"Hey, you seem tough enough! Would you like to prove your skills? I'll let you in the arena if you give me 50 gp. You can fight against other players there.\"";
diff --git a/world/map/npc/002-2/rebecca.txt b/world/map/npc/002-2/rebecca.txt
new file mode 100644
index 00000000..54244115
--- /dev/null
+++ b/world/map/npc/002-2/rebecca.txt
@@ -0,0 +1,84 @@
+//
+
+002-2.gat,44,27,0|script|Rebecca|118
+{
+ set @npcname$, "Rebecca the Inn Keeper";
+ set @cost, 100;
+ mes "[" + @npcname$ + "]";
+ mes "\"Welcome to 'The Wizard's Rest'\"";
+ goto L_MainMenu;
+
+L_MainMenu:
+ mes "\"How may I help you?\"";
+ menu
+ "Can I get a room?", L_Inn,
+ "Any interesting guests?", L_Guests,
+ "Bakery?", L_Bakery,
+ "Barber?", L_Barber,
+ "Casino?", L_Casino,
+ "Theatre?", L_Theatre,
+ "Pvp?", L_Pvp,
+ "I don't need any help, thanks.", L_Close;
+
+L_Guests:
+ mes "\"We had a very rich business man show up the other day.\"";
+ next;
+ mes "\"He caused quite a stir when he paid for the penthouse so far in advance.";
+ mes "I hear he is looking for help.\"";
+ next;
+ mes "\"Other then that feel free to mingle with the guests.\"";
+ next;
+ mes "\"You can find them in the door behind me.\"";
+ goto L_Close;
+
+
+L_Bakery:
+ mes "\"Ahh yes, the World Famous Riskim's bakery.\"";
+ next;
+ mes "\"They only use the finest ingredients like Acorn Flour";
+ mes "to make some of the tastest treats in Tonori.\"";
+ next;
+ mes "Second only to the Wizards' private chef, Fieri.\"";
+ goto L_MainMenu;
+
+L_Barber:
+ mes "\"Issay the barber of Tonori can be found through the door behind me\"";
+ next;
+ mes "\"The master stylist can do anything with anyones hair.\"";
+ next;
+ mes "\"He always welcomes walk ins.\"";
+ goto L_MainMenu;
+
+L_Casino:
+ mes "\"Games, Games, Games.\"";
+ next;
+ mes "\"Test your luck or skill in the Casino. From Blackjack to Pvp.\"";
+ next;
+ mes "\"Win or Lose, you'll still have fun!\"";
+ goto L_MainMenu;
+
+L_Theatre:
+ mes "\"A touring troop from Hurnscald just arrived.\"";
+ next;
+ mes "\"The are currently rehearsing for their next show.\"";
+ next;
+ mes "\"Feel free to talk to the troupe leader, they are in the theatre behind me.\"";
+ goto L_MainMenu;
+
+L_Pvp:
+ mes "\"Yes, our Casino has Pvp in the Casino behind me.\"";
+ next;
+ mes "\"Test your self against other players and gamble on the outcome.\"";
+ next;
+ mes "\"Fame and glory awaits you gladiator!\"";
+ goto L_MainMenu;
+
+L_Inn:
+ callfunc "Inn";
+ goto L_Close;
+
+L_Close:
+ set @npcname$, "";
+ set @cost, 0;
+ close;
+}
diff --git a/world/map/npc/002-2/shops.txt b/world/map/npc/002-2/shops.txt
new file mode 100644
index 00000000..87986111
--- /dev/null
+++ b/world/map/npc/002-2/shops.txt
@@ -0,0 +1,3 @@
+// Bartender
+
+002-2.gat,68,25,0|shop|Bartender#Casino|112,Beer:*175,Cake:*30,CherryCake:*100
diff --git a/world/map/npc/002-2/stranger.txt b/world/map/npc/002-2/stranger.txt
new file mode 100644
index 00000000..563af742
--- /dev/null
+++ b/world/map/npc/002-2/stranger.txt
@@ -0,0 +1,464 @@
+002-2.gat,38,57,0|script|Stranger|192
+{
+ set @IRONINGOT, 5;
+ set @PINKANTENNA, 21;
+ set @Exp, 20000;
+ setarray @towelReq$, "WhiteHitchhikersTowel","RedHitchhikersTowel","GreenHitchhikersTowel","BlueHitchhikersTowel","YellowHitchhikersTowel","PurpleHitchhikersTowel","OrangeHitchhikersTowel","PinkHitchhikersTowel","TealHitchhikersTowel","LimeHitchhikersTowel","HitchhikersTowel";
+
+ if (FLAGS & FLAG_TOWEL_COMPLETED) goto L_Event_Done;
+ if ((gettimetick(2)-TUT_var < 6*7*86400) || (BaseLevel < 42)) //player must be created at least 6 weeks ago and at least level 42
+ goto L_No_Event;
+ if (FLAGS & FLAG_TOWEL_HELPED) goto L_Towel;
+
+ mes "[Stranger]";
+ mes "\"Hello, hello! It's great to see you. Maybe you can help me with a little problem I have.\"";
+ next;
+ mes "\"I need some materials to repair my spacesh- ahm, it's not important why I need it.\"";
+ next;
+ mes "\"Anyway, I'd be really happy if you can give me " + @IRONINGOT + " Iron Ingots and " + @PINKANTENNA + " Pink Antennas.\"";
+ next;
+ mes "\"Do you have that for me?\"";
+ menu
+ "Yeah, sure.",L_Items,
+ "No.",L_Close;
+
+L_Items:
+ if (countitem("IronIngot") < @IRONINGOT) goto L_No_Item;
+ if (countitem("PinkAntenna") < @PINKANTENNA) goto L_No_Item;
+ delitem "IronIngot", @IRONINGOT;
+ delitem "PinkAntenna", @PINKANTENNA;
+ getexp @Exp, 0;
+ set FLAGS, FLAGS | FLAG_TOWEL_HELPED;
+
+ mes "[Stranger]";
+ mes "\"Great! Thank you!\"";
+ next;
+ mes "\"I have a lot of work to do now. But before you leave...\"";
+ next;
+ goto L_Towel;
+
+L_Towel:
+ getinventorylist;
+ if (@inventorylist_count == 100) goto L_Full_Inv;
+ mes "[Stranger]";
+ mes "\"On May 25th it is a very special day - Towel Day.\"";
+ next;
+ mes "\"To celebrate this I'll ask you some questions about my favourite book, The Hitchhiker's Guide to the Galaxy. If you can answer them, I'll give you something very useful.\"";
+ next;
+ mes "";
+ mes "[Server]";
+ mes "The answers might need to have whitespaces.";
+ mes "If you're using a client which confirms your answer when pressing space, change this setting before continuing.";
+ mes "";
+ next;
+ mes "[Stranger]";
+ mes "\"The first one is easy.\"";
+ next;
+
+ setarray @easy_questions$,
+ "What two words are written in big friendly letters on the back cover?",
+ "What's the name of the paranoid robot?",
+ "What is the answer to life, the universe and everything?",
+ "What is the first name of the author of the hitchhikers guide?",
+ "What is the last name of the author of the hitchhikers guide?",
+ "Who is the male human protagonist?",
+ "Who is the female human protagonist?",
+ "According to the Guide, space is ____?",
+ "What is the name of the spaceship which was stolen by the president of the universe?",
+ "How many heads does Zaphod Beeblebrox have?";
+
+ setarray @easy_answers_amount,2,2,2,2,2,4,4,2,4,2;
+
+ set @random, rand(10);
+ mes "\"" + @easy_questions$[@random] + "\"";
+ input @answer$;
+
+ if (@easy_answers_amount[@random] < 4)
+ goto L_Easy_Skip4;
+ set @quizparam$, "towelanswer0" + @random + "d";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Easy;
+ goto L_Easy_Skip4;
+
+L_Easy_Skip4:
+ if (@easy_answers_amount[@random] < 3)
+ goto L_Easy_Skip3;
+ set @quizparam$, "towelanswer0" + @random + "c";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Easy;
+ goto L_Easy_Skip3;
+
+L_Easy_Skip3:
+ set @quizparam$, "towelanswer0" + @random + "b";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Easy;
+
+ set @quizparam$, "towelanswer0" + @random + "a";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Easy;
+
+ goto L_Wrong_Answer;
+
+L_Right_Answer_Easy:
+ mes "[Stranger]";
+ mes "\"You're absolutely right. The next one will be more tricky.\"";
+ next;
+
+ setarray @medium_questions$,
+ "What is the name of the rock group claiming to be the loudest band in the universe?",
+ "What star is near Ford's home planet?",
+ "Which country does the human protagonist come from?",
+ "What is the name of the computer on The Heart of Gold?",
+ "What color is a Babel Fish?",
+ "What did the bowl of petunias think?",
+ "What body orifice should a babel fish be inserted in to work properly?",
+ "What is the name of the super computer?",
+ "What were the second most intelligent creatures on Earth?",
+ "What race creates the worst poetry in universe?",
+ "What is the name of the Vogon home planet?",
+ "What is the name of the Restaurant at the End of the Universe?";
+
+ setarray @medium_answers_amount,2,2,2,2,2,3,2,2,4,4,2,2;
+
+ set @random, rand(12);
+ mes "\"" + @medium_questions$[@random] + "\"";
+ input @answer$;
+
+ if (@medium_answers_amount[@random] < 4)
+ goto L_Medium_Skip4;
+
+ set @quizparam$, "towelanswer1" + @random + "d";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Medium;
+ goto L_Medium_Skip4;
+
+L_Medium_Skip4:
+ if (@medium_answers_amount[@random] < 3)
+ goto L_Medium_Skip3;
+ set @quizparam$, "towelanswer1" + @random + "c";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Medium;
+ goto L_Medium_Skip3;
+
+L_Medium_Skip3:
+ set @quizparam$, "towelanswer1" + @random + "b";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Medium;
+
+ set @quizparam$, "towelanswer1" + @random + "a";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Medium;
+
+ goto L_Wrong_Answer;
+
+L_Right_Answer_Medium:
+ mes "[Stranger]";
+ mes "\"Not bad, not bad. Let's see if you can answer an even more difficult one.\"";
+ next;
+
+ setarray @hard_questions$,
+ "Drinking what drink is like having your brain smashed out by a slice of lemon wrapped round a large gold brick?",
+ "How many pints of beers should you drink before hitchhiking?",
+ "What initials are carved into Zaphod Beeblebrox's brain?",
+ "What is Ford Prefect's nickname?",
+ "Who is responsible for the fjords of Norway?",
+ "What game is played on earth as a relict of memories to an ancient war?",
+ "What is the name of the triple-breasted whore from Eroticon VI?",
+ "Who will insult every living being in the universe, because he is immortal and getting bored?",
+ "What is the name of the piteous creature that is continually reincarnated and subsequently killed, each time unknowingly, by Arthur Dent?";
+
+ setarray @hard_answers_amount,4,2,2,2,2,2,2,4,2;
+
+ set @random, rand(9);
+ mes "\"" + @hard_questions$[@random] + "\"";
+ input @answer$;
+
+ if (@hard_answers_amount[@random] < 4)
+ goto L_Hard_Skip4;
+ set @quizparam$, "towelanswer2" + @random + "d";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Hard;
+ goto L_Hard_Skip4;
+
+L_Hard_Skip4:
+ if (@hard_answers_amount[@random] < 3)
+ goto L_Hard_Skip3;
+ set @quizparam$, "towelanswer2" + @random + "c";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Hard;
+ goto L_Hard_Skip3;
+
+L_Hard_Skip3:
+ set @quizparam$, "towelanswer2" + @random + "b";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Hard;
+
+ set @quizparam$, "towelanswer2" + @random + "a";
+ callfunc "StrangerQuiz";
+ if (("###" + @answer$ == @quizanswer$))
+ goto L_Right_Answer_Hard;
+
+ goto L_Wrong_Answer;
+
+L_Right_Answer_Hard:
+ mes "[Stranger]";
+ mes "\"Unbelievable! You're really a wise person.\"";
+ next;
+ mes "\"One last question, but this shouldn't be a problem for you.\"";
+ next;
+ mes "\"What is the most important item for every hitchhiker to have?\"";
+ input @answer$;
+ if (@answer$ != "Towel" && @answer$ != "towel")
+ goto L_Wrong_Answer;
+
+ mes "[Stranger]";
+ mes "\"There you are! A towel is really the most important item for a hitchhiker to have.\"";
+ next;
+ mes "\"Please take this.\""; // no full inventory check, this is done before the game
+ set FLAGS, FLAGS | FLAG_TOWEL_COMPLETED;
+ next;
+ goto L_Explain;
+
+L_Explain:
+ mes "[Stranger]";
+ mes "\"This towel is even more useful than usual towels are. If you change its color, it uses a special techno-, ahm, let's say, it can help you to get to other places.\"";
+ next;
+ mes "\"Bring me some powder made from gemstones and a bottle of water, and I can prepare it for you.\"";
+ next;
+ mes "\"Depending on the color it will bring you to different places. It might wear out after a while and it'll loose its color, but I can prepare it for you again.\"";
+ next;
+ mes "\"Since I'm not familar with this plane-, ahm, with this area, I can't tell which places you will end up in.\"";
+ goto L_Close;
+
+L_No_Event:
+ mes "[Stranger]";
+ mes "\"Hello. Isn't this a beautiful place?\"";
+ next;
+ mes "\"And it really comes in handy that I have my towel with me. A towel is about the most massively useful thing an inte- ahm, a person can have.\"";
+ next;
+ mes "\"You can read more about that in my favourite book, 'The Hitchhiker's Guide to the Galaxy'.\"";
+ if (FLAGS & FLAG_TOWEL_COMPLETED)
+ menu
+ "Thanks for the advice.",L_Close,
+ "I have my towel with me too.",L_Dye;
+ goto L_Close;
+
+L_Dye:
+ mes "[Stranger]";
+ mes "\"Wonderful! Let me have a look.\"";
+ mes "He's taking a very interested look at your towel.";
+ next;
+ mes "[Stranger]";
+ mes "\"I'm impressed. This is not an usual towel.\"";
+ next;
+ menu
+ "Oh? Can you explain about it?",L_Explain,
+ "I know. Could you dye it for me?",L_StartDyeTowel,
+ "It's great, isn't it? I have to go now.",L_Close;
+
+L_No_Item:
+ mes "[Stranger]";
+ mes "\"Hu? It seems you haven't.\"";
+ goto L_Close;
+
+L_Wrong_Answer:
+ mes "[Stranger]";
+ mes "\"Nah, that's wrong. Come back if you want to try again.\"";
+ goto L_Close;
+
+L_Event_Done:
+ mes "[Stranger]";
+ mes "\"Ah, welcome back. Thanks again for your help.\"";
+ next;
+ mes "\"Shall I dye your towel?\"";
+ menu
+ "That would be great!", L_StartDyeTowel,
+ "No, thanks.", L_Close;
+
+L_StartDyeTowel:
+ mes "[Stranger]";
+ mes "\"Alright, which color do you want?\"";
+// the other colors should be added when more places are released
+ menu
+ "Red",L_Red,
+ "Yellow",L_Yellow,
+ "White",L_White,
+ "Blue",L_Blue,
+ "Green",L_Green,
+ "Purple",L_Purple,
+ "Orange",L_Orange,
+ "Pink",L_Pink,
+ "Lime",L_Lime,
+ "Teal",L_Teal,
+ "I changed my mind.", L_Close;
+
+L_White:
+ // Koga
+ set @warpTowelName$, "WhiteHitchhikersTowel";
+ setarray @towelPowder$, "DiamondPowder";
+ setarray @towelPowderCnt, 2;
+ goto L_DyeChecks;
+
+L_Red:
+ // Barbarians
+ set @warpTowelName$, "RedHitchhikersTowel";
+ setarray @towelPowder$, "RubyPowder";
+ setarray @towelPowderCnt, 2;
+ goto L_DyeChecks;
+
+L_Green:
+ // Candor
+ set @warpTowelName$, "GreenHitchhikersTowel";
+ setarray @towelPowder$, "EmeraldPowder";
+ setarray @towelPowderCnt, 2;
+ goto L_DyeChecks;
+
+L_Blue:
+ // Blue Sages
+ set @warpTowelName$, "BlueHitchhikersTowel";
+ setarray @towelPowder$, "SapphirePowder";
+ setarray @towelPowderCnt, 2;
+ goto L_DyeChecks;
+
+L_Yellow:
+ // Tulimshar Mines
+ set @warpTowelName$, "YellowHitchhikersTowel";
+ setarray @towelPowder$, "TopazPowder";
+ setarray @towelPowderCnt, 2;
+ goto L_DyeChecks;
+
+L_Purple:
+ // Dimonds Inn
+ set @warpTowelName$, "PurpleHitchhikersTowel";
+ setarray @towelPowder$, "AmethystPowder";
+ setarray @towelPowderCnt, 2;
+ goto L_DyeChecks;
+
+L_Orange:
+ // Graveyard
+ set @warpTowelName$, "OrangeHitchhikersTowel";
+ setarray @towelPowder$, "RubyPowder", "TopazPowder";
+ setarray @towelPowderCnt, 1, 1;
+ goto L_DyeChecks;
+
+L_Pink:
+ // Terranite Cave
+ set @warpTowelName$, "PinkHitchhikersTowel";
+ setarray @towelPowder$, "RubyPowder", "DiamondPowder";
+ setarray @towelPowderCnt, 1, 1;
+ goto L_DyeChecks;
+
+L_Teal:
+ // Mana Seed
+ set @warpTowelName$, "TealHitchhikersTowel";
+ setarray @towelPowder$, "EmeraldPowder", "SapphirePowder";
+ setarray @towelPowderCnt, 1, 1;
+ goto L_DyeChecks;
+
+L_Lime:
+ // Panchua
+ set @warpTowelName$, "LimeHitchhikersTowel";
+ setarray @towelPowder$, "EmeraldPowder", "TopazPowder";
+ setarray @towelPowderCnt, 1, 1;
+ goto L_DyeChecks;
+
+L_DyeChecks:
+ mes "[Stranger]";
+ mes "\"Ok, I'll need a bottle of water first.\"";
+ next;
+ getinventorylist;
+ if (@inventorylist_count == 100) goto L_Full_Inv;
+ if (countitem("BottleOfWater") < 1) goto L_No_Water;
+ set @powderCheckCount, 0;
+ goto L_PowderChecks;
+
+L_PowderCheckAgain:
+ mes "[Stranger]";
+ mes "\"Now I need " + @towelPowderCnt[@powderCheckCount] + " " + @towelPowder$[@powderCheckCount] + ".\"";
+ next;
+ if((@powderCheckCount + 1) == getarraysize(@towelPowder$))
+ goto L_TowelChecks;
+ set @powderCheckCount, (@powderCheckCount + 1);
+ goto L_PowderChecks;
+
+L_PowderChecks:
+ if (countitem(@towelPowder$[@powderCheckCount]) < @towelPowderCnt[@powderCheckCount])
+ goto L_No_Powder;
+ goto L_PowderCheckAgain;
+
+L_TowelCheckAgain:
+ set @towelCheckCount, (@towelCheckCount + 1);
+ if(@towelCheckCount >= getarraysize(@towelReq$))
+ goto L_No_Towel;
+ goto L_TowelChecks;
+
+L_TowelChecks:
+ if (countitem(@towelReq$[@towelCheckCount]) > 0)
+ goto L_DeletePowder;
+ goto L_TowelCheckAgain;
+
+L_DeleteAgain:
+ set @powderCheckCount, (@powderCheckCount - 1);
+ goto L_DeletePowder;
+
+L_DeletePowder:
+ delitem @towelPowder$[@powderCheckCount], @towelPowderCnt[@powderCheckCount];
+ if (@powderCheckCount)
+ goto L_DeleteAgain;
+ goto L_DyeTowel;
+
+L_DyeTowel:
+ delitem @towelReq$[@towelCheckCount], 1;
+ callfunc "MultiWarpTowel";
+ delitem "BottleOfWater", 1;
+ getitem @warpTowelName$, 1;
+ mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again.";
+ next;
+ mes "[Stranger]";
+ mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\"";
+ goto L_Close;
+
+L_No_Water:
+ mes "[Stranger]";
+ mes "\"You don't have water.\"";
+ goto L_Close;
+
+L_No_Powder:
+ mes "[Stranger]";
+ mes "\"You need to bring me enough gem powder in that color. Maybe someone used to mining can help you with that.\"";
+ goto L_Close;
+
+L_No_Towel:
+ mes "[Stranger]";
+ mes "\"Where's your towel? It is really useful, you should always keep it with you.\"";
+ goto L_Close;
+
+L_Full_Inv:
+ mes "[Stranger]";
+ mes "\"You carry a lot of stuff with you, don't you? Maybe you should get rid of something.\"";
+ goto L_Close;
+
+L_Close:
+ set @IRONINGOT, 0;
+ set @PINKANTENNA, 0;
+ set @Exp, 0;
+ set @random, 0;
+ set @quizparam$, "";
+ set @warpTowelName$, "";
+ set @powderCheckCount, 0;
+ set @towelCheckCount, 0;
+ cleararray @towelPowder$, "", getarraysize(@towelPowder$);
+ cleararray @towelPowderCnt, "", getarraysize(@towelPowderCnt);
+ close;
+}
diff --git a/world/map/npc/001-2/troupe_leader.txt b/world/map/npc/002-2/troupe_leader.txt
index 64eef7b2..c736899d 100644
--- a/world/map/npc/001-2/troupe_leader.txt
+++ b/world/map/npc/002-2/troupe_leader.txt
@@ -1,6 +1,6 @@
//
-001-2.gat,34,23,0|script|Troupe Leader|165
+002-2.gat,81,21,0|script|Troupe Leader|165
{
callfunc "ClearVariables";
diff --git a/world/map/npc/002-3/_import.txt b/world/map/npc/002-3/_import.txt
index 47aab35a..bab4c837 100644
--- a/world/map/npc/002-3/_import.txt
+++ b/world/map/npc/002-3/_import.txt
@@ -7,3 +7,4 @@ npc: npc/002-3/mapflags.txt
npc: npc/002-3/merchant.txt
npc: npc/002-3/mining_camp_barrier.txt
npc: npc/002-3/nathan.txt
+npc: npc/002-3/traveler.txt
diff --git a/world/map/npc/002-3/_warps.txt b/world/map/npc/002-3/_warps.txt
index e7ed3d83..b4f2078d 100644
--- a/world/map/npc/002-3/_warps.txt
+++ b/world/map/npc/002-3/_warps.txt
@@ -1,6 +1,6 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
// Tulimshar Mining Camp warps
-002-3.gat,22,87|warp|To Beach|-1,-1,043-1.gat,85,55
-002-3.gat,85,51|warp|To Sand Storm Upper|-1,-1,002-1.gat,79,101
-002-3.gat,51,36|warp|To Sand Storm|-1,-1,002-1.gat,20,96
+002-3.gat,22,87|warp|Deep Caves|-1,-1,043-3.gat,31,27
+002-3.gat,85,51|warp|To Sand Storm Upper|-1,-1,002-1.gat,92,115
+002-3.gat,51,36|warp|To Sand Storm|-1,-1,002-1.gat,33,110
diff --git a/world/map/npc/002-2/traveler.txt b/world/map/npc/002-3/traveler.txt
index 945bc82e..ff53af8f 100644
--- a/world/map/npc/002-2/traveler.txt
+++ b/world/map/npc/002-3/traveler.txt
@@ -2,7 +2,7 @@
// Author: Wombat, wushin
// cost depending on level and adapted to new scripting guidelines: Jenalya
-002-2.gat,25,28,0|script|Jena the Traveler|103
+002-3.gat,25,28,0|script|Jena the Traveler|103
{
set @NpcName$, "Jena";
set @NpcTravelBit, $@tul_mine_bit;
diff --git a/world/map/npc/003-2/_import.txt b/world/map/npc/003-2/_import.txt
deleted file mode 100644
index 8f9dba48..00000000
--- a/world/map/npc/003-2/_import.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-// Map 003-2: Beach House
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 003-2.gat
-npc: npc/003-2/_mobs.txt
-npc: npc/003-2/_warps.txt
-npc: npc/003-2/mapflags.txt
diff --git a/world/map/npc/003-2/_mobs.txt b/world/map/npc/003-2/_mobs.txt
deleted file mode 100644
index 7a08ce43..00000000
--- a/world/map/npc/003-2/_mobs.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Beach House mobs
-
-
-
-003-2.gat,0,0,0|script|Mob003-2|-1
-{
- end;
-}
diff --git a/world/map/npc/003-2/_warps.txt b/world/map/npc/003-2/_warps.txt
deleted file mode 100644
index 56865f1e..00000000
--- a/world/map/npc/003-2/_warps.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Beach House warps
-
-003-2.gat,22,29|warp|To Outside|-1,-1,003-1.gat,48,37
-003-2.gat,56,29|warp|To Outside|-1,-1,003-1.gat,59,30
diff --git a/world/map/npc/003-2/mapflags.txt b/world/map/npc/003-2/mapflags.txt
deleted file mode 100644
index be495b87..00000000
--- a/world/map/npc/003-2/mapflags.txt
+++ /dev/null
@@ -1 +0,0 @@
-003-2.gat|mapflag|resave|001-1,57,71
diff --git a/world/map/npc/004-2/_import.txt b/world/map/npc/004-2/_import.txt
deleted file mode 100644
index f4d7ac2b..00000000
--- a/world/map/npc/004-2/_import.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-// Map 004-2: Buccaneer's Den
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 004-2.gat
-npc: npc/004-2/_mobs.txt
-npc: npc/004-2/_warps.txt
-npc: npc/004-2/mapflags.txt
-npc: npc/004-2/pirate_cave_exit.txt
diff --git a/world/map/npc/004-2/_mobs.txt b/world/map/npc/004-2/_mobs.txt
deleted file mode 100644
index 8d94f675..00000000
--- a/world/map/npc/004-2/_mobs.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Buccaneer's Den mobs
-
-
-
-004-2.gat,0,0,0|script|Mob004-2|-1
-{
- end;
-}
diff --git a/world/map/npc/004-2/_warps.txt b/world/map/npc/004-2/_warps.txt
deleted file mode 100644
index 99d99a88..00000000
--- a/world/map/npc/004-2/_warps.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Buccaneer's Den warps
-
-004-2.gat,75,30|warp|To Entrance|0,-1,004-2.gat,38,21
-004-2.gat,39,20|warp|To Room|0,-1,004-2.gat,74,29
-004-2.gat,21,29|warp|To Outside|-1,-1,004-1.gat,80,32
-004-2.gat,62,28|warp|To Basement|-1,-1,004-2.gat,21,61
-004-2.gat,20,62|warp|To First Floor|-1,-1,004-2.gat,63,27
-004-2.gat,68,66|warp|To First Floor|0,-1,004-2.gat,35,19
-004-2.gat,36,18|warp|To Second Floor|0,-1,004-2.gat,67,65
-004-2.gat,57,66|warp|To Roof|-1,-1,004-1.gat,86,28
diff --git a/world/map/npc/004-2/mapflags.txt b/world/map/npc/004-2/mapflags.txt
deleted file mode 100644
index 8424c17f..00000000
--- a/world/map/npc/004-2/mapflags.txt
+++ /dev/null
@@ -1 +0,0 @@
-004-2.gat|mapflag|resave|001-1,57,71
diff --git a/world/map/npc/004-2/pirate_cave_exit.txt b/world/map/npc/004-2/pirate_cave_exit.txt
deleted file mode 100644
index c5149098..00000000
--- a/world/map/npc/004-2/pirate_cave_exit.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-// The Secret Pirate Cave Entrance
-
-004-2.gat,33,62,0|script|#piratecave1|45,1,1
-{
- mes "[Trapdoor]";
- mes "\"Descend into the caves?\"";
- next;
- menu
- "Yes.", L_PirateCave,
- "Nevermind", L_Close;
-
-L_PirateCave:
- warp "004-3",80,23;
- goto L_Close;
-
-L_Close:
- close;
-}
diff --git a/world/map/npc/004-3/_warps.txt b/world/map/npc/004-3/_warps.txt
index 507b3d9d..dfdfa8be 100644
--- a/world/map/npc/004-3/_warps.txt
+++ b/world/map/npc/004-3/_warps.txt
@@ -1,10 +1,10 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
// Pirate Caves First Floor warps
-004-3.gat,24,95|warp|To West Beach|-1,-1,004-1.gat,63,98
+004-3.gat,24,95|warp|To West Beach|-1,-1,002-1.gat,49,21
004-3.gat,49,80|warp|To Pirate Caves|-1,-1,004-4.gat,49,83
004-3.gat,31,73|warp|To Pirate Caves|-1,-1,004-4.gat,31,70
004-3.gat,49,56|warp|To Pirate Caves|-1,-1,004-4.gat,49,51
004-3.gat,90,64|warp|To Pirate Caves|-1,-1,004-4.gat,90,68
-004-3.gat,80,22|warp|To West Beach House|-1,-1,004-2.gat,30,61
+004-3.gat,80,22|warp|To West Beach House|-1,-1,021-3.gat,44,142
004-3.gat,77,40|warp|To Pirate Caves|-1,-1,004-4.gat,78,34
diff --git a/world/map/npc/004-3/mapflags.txt b/world/map/npc/004-3/mapflags.txt
index 736aefe5..a6af2bfc 100644
--- a/world/map/npc/004-3/mapflags.txt
+++ b/world/map/npc/004-3/mapflags.txt
@@ -1 +1 @@
-004-3.gat|mapflag|resave|001-1,57,71
+004-3.gat|mapflag|resave|001-1,60,105
diff --git a/world/map/npc/004-4/mapflags.txt b/world/map/npc/004-4/mapflags.txt
index 47d2d4fc..5a8e7b9e 100644
--- a/world/map/npc/004-4/mapflags.txt
+++ b/world/map/npc/004-4/mapflags.txt
@@ -1 +1 @@
-004-4.gat|mapflag|resave|001-1,57,71
+004-4.gat|mapflag|resave|001-1,60,105
diff --git a/world/map/npc/004-5/mapflags.txt b/world/map/npc/004-5/mapflags.txt
index 34d312dc..4bdc0a1b 100644
--- a/world/map/npc/004-5/mapflags.txt
+++ b/world/map/npc/004-5/mapflags.txt
@@ -1 +1 @@
-004-5.gat|mapflag|resave|001-1,57,71
+004-5.gat|mapflag|resave|001-1,60,105
diff --git a/world/map/npc/005-1/_import.txt b/world/map/npc/005-1/_import.txt
deleted file mode 100644
index 1b386a11..00000000
--- a/world/map/npc/005-1/_import.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-// 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/mapflags.txt
-npc: npc/005-1/npcs.txt
-npc: npc/005-1/spirit.txt
-npc: npc/005-1/traveler.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
deleted file mode 100644
index 22f80e0f..00000000
--- a/world/map/npc/005-1/_mobs.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-// 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,100000ms,30000ms,Mob005-1::On1002
-005-1.gat,0,0,0,0|monster|Snake|1010,1,100000ms,30000ms,Mob005-1::On1010
-005-1.gat,71,77,9,6|monster|Snake|1010,2,40000ms,50000ms,Mob005-1::On1010
-005-1.gat,92,25,8,5|monster|Snake|1010,3,40000ms,50000ms,Mob005-1::On1010
-005-1.gat,99,68,95,52|monster|GiantMaggot|1006,20,100000ms,30000ms,Mob005-1::On1006
-005-1.gat,91,15,66,23|monster|BlackScorpion|1009,7,100000ms,30000ms,Mob005-1::On1009
-005-1.gat,99,87,85,32|monster|BlackScorpion|1009,8,100000ms,30000ms,Mob005-1::On1009
-005-1.gat,30,43,21,25|monster|GreenSlime|1005,3,100000ms,30000ms,Mob005-1::On1005
-005-1.gat,118,70,3,2|monster|GreenSlime|1005,2,100000ms,30000ms,Mob005-1::On1005
-005-1.gat,163,71,32,65|monster|Snake|1010,8,100000ms,30000ms,Mob005-1::On1010
-005-1.gat,122,52,77,84|monster|Maggot|1002,20,100000ms,30000ms,Mob005-1::On1002
-
-
-005-1.gat,0,0,0|script|Mob005-1|-1
-{
- end;
-
-On1002:
- set @mobID, 1002;
- callfunc "MobPoints";
- end;
-
-On1005:
- set @mobID, 1005;
- callfunc "MobPoints";
- end;
-
-On1006:
- set @mobID, 1006;
- callfunc "MobPoints";
- end;
-
-On1009:
- set @mobID, 1009;
- callfunc "MobPoints";
- end;
-
-On1010:
- set @mobID, 1010;
- callfunc "MobPoints";
- end;
-}
diff --git a/world/map/npc/005-1/_warps.txt b/world/map/npc/005-1/_warps.txt
deleted file mode 100644
index a4622df6..00000000
--- a/world/map/npc/005-1/_warps.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Snake Desert warps
-
-005-1.gat,19,41|warp|To Sandstorm Desert|-1,2,002-1.gat,107,79
-005-1.gat,89,23|warp|To Snake Pit|-1,-1,005-3.gat,52,35
-005-1.gat,71,75|warp|To Snake Pit|-1,-1,005-3.gat,33,84
-005-1.gat,167,108|warp|To Desert Mountains|-1,-1,006-1.gat,25,26
-005-1.gat,168,107|warp|To Desert Mountains|-1,-1,006-1.gat,25,26
-005-1.gat,169,106|warp|To Desert Mountains|-1,-1,006-1.gat,25,26
-005-1.gat,170,105|warp|To Desert Mountains|-1,-1,006-1.gat,25,26
-005-1.gat,171,104|warp|To Desert Mountains|-1,-1,006-1.gat,25,26
-005-1.gat,172,103|warp|To Desert Mountains|-1,-1,006-1.gat,25,26
-005-1.gat,173,102|warp|To Desert Mountains|-1,-1,006-1.gat,25,26
-005-1.gat,174,101|warp|To Desert Mountains|-1,-1,006-1.gat,25,26
-005-1.gat,175,100|warp|To Desert Mountains|-1,-1,006-1.gat,25,26
-005-1.gat,176,99|warp|To Desert Mountains|-1,-1,006-1.gat,25,26
-005-1.gat,177,98|warp|To Desert Mountains|-1,-1,006-1.gat,25,26
-005-1.gat,178,97|warp|To Desert Mountains|-1,-1,006-1.gat,25,26
-005-1.gat,179,96|warp|To Desert Mountains|-1,-1,006-1.gat,25,26
-005-1.gat,74,48|warp|To Druid Tree|-1,-1,005-1.gat,74,39
-005-1.gat,74,40|warp|To Druid Tree|-1,-1,005-1.gat,74,49
diff --git a/world/map/npc/005-1/mapflags.txt b/world/map/npc/005-1/mapflags.txt
deleted file mode 100644
index 3ede3802..00000000
--- a/world/map/npc/005-1/mapflags.txt
+++ /dev/null
@@ -1 +0,0 @@
-005-1.gat|mapflag|resave|005-1,80,30
diff --git a/world/map/npc/005-1/npcs.txt b/world/map/npc/005-1/npcs.txt
deleted file mode 100644
index 6eed9735..00000000
--- a/world/map/npc/005-1/npcs.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-//
-
-
-//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/traveler.txt b/world/map/npc/005-1/traveler.txt
deleted file mode 100644
index 0d6f2eee..00000000
--- a/world/map/npc/005-1/traveler.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-// This is a teleportation (warp) NPC. Its purpose is to offer expensive, fast trips throughout the world.
-// Author: Wombat, wushin
-// cost depending on level and adapted to new scripting guidelines: Jenalya
-
-005-1.gat,73,36,0|script|Kieron the Traveler|103
-{
- set @NpcName$, "Kieron";
- set @NpcTravelBit, $@druid_tree_bit;
- callfunc "Traveler";
- end;
-}
diff --git a/world/map/npc/005-3/_mobs.txt b/world/map/npc/005-3/_mobs.txt
index f275f267..d13405f5 100644
--- a/world/map/npc/005-3/_mobs.txt
+++ b/world/map/npc/005-3/_mobs.txt
@@ -1,13 +1,25 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
// Snake Pit mobs
-005-3.gat,0,0,0,0|monster|Snake|1010,175,0ms,0ms,Mob005-3::On1010
+005-3.gat,58,57,62,57|monster|Snake|1010,50,100000ms,30000ms,Mob005-3::On1010
+005-3.gat,58,57,62,57|monster|BlackScorpion|1009,15,100000ms,30000ms,Mob005-3::On1009
+005-3.gat,58,57,62,57|monster|GiantMaggot|1006,20,100000ms,30000ms,Mob005-3::On1006
005-3.gat,0,0,0|script|Mob005-3|-1
{
end;
+On1006:
+ set @mobID, 1006;
+ callfunc "MobPoints";
+ end;
+
+On1009:
+ set @mobID, 1009;
+ callfunc "MobPoints";
+ end;
+
On1010:
set @mobID, 1010;
callfunc "MobPoints";
diff --git a/world/map/npc/005-3/_warps.txt b/world/map/npc/005-3/_warps.txt
index 2f757add..b49daa39 100644
--- a/world/map/npc/005-3/_warps.txt
+++ b/world/map/npc/005-3/_warps.txt
@@ -1,5 +1,10 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
// Snake Pit warps
-005-3.gat,52,33|warp|To Outside|-1,-1,005-1.gat,89,25
-005-3.gat,33,82|warp|To Outside|-1,-1,005-1.gat,71,77
+005-3.gat,52,33|warp|To Outside|-1,-1,002-1.gat,113,109
+005-3.gat,63,46|warp|Snake Mountain|-1,-1,006-3.gat,89,45
+005-3.gat,85,49|warp|Snake Mountain|-1,-1,006-3.gat,125,65
+005-3.gat,86,30|warp|To Outside|-1,-1,006-1.gat,55,47
+005-3.gat,73,60|warp|To Outside|-1,-1,006-1.gat,51,69
+005-3.gat,78,88|warp|Sandy Dungeon|-1,-1,043-3.gat,116,37
+005-3.gat,33,82|warp|Sandy Dungeon|-1,-1,043-3.gat,31,35
diff --git a/world/map/npc/005-3/mapflags.txt b/world/map/npc/005-3/mapflags.txt
index 65920d4d..8916c392 100644
--- a/world/map/npc/005-3/mapflags.txt
+++ b/world/map/npc/005-3/mapflags.txt
@@ -1 +1 @@
-005-3.gat|mapflag|resave|005-1,80,30
+005-3.gat|mapflag|resave|006-1,36,18
diff --git a/world/map/npc/005-4/_import.txt b/world/map/npc/005-4/_import.txt
deleted file mode 100644
index d48c6a1c..00000000
--- a/world/map/npc/005-4/_import.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-// Map 005-4: Electricity Boss Cave
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 005-4.gat
-npc: npc/005-4/_mobs.txt
-npc: npc/005-4/_warps.txt
diff --git a/world/map/npc/005-4/_mobs.txt b/world/map/npc/005-4/_mobs.txt
deleted file mode 100644
index cc3a7de8..00000000
--- a/world/map/npc/005-4/_mobs.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Electricity Boss Cave mobs
-
-
-
-005-4.gat,0,0,0|script|Mob005-4|-1
-{
- end;
-}
diff --git a/world/map/npc/005-4/_warps.txt b/world/map/npc/005-4/_warps.txt
deleted file mode 100644
index 6d2cb2de..00000000
--- a/world/map/npc/005-4/_warps.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Electricity Boss Cave warps
-
-005-4.gat,37,36|warp|To Snake Pit|0,-1,005-3.gat,85,50
diff --git a/world/map/npc/006-1/_import.txt b/world/map/npc/006-1/_import.txt
index 492ddf7d..b3f17a58 100644
--- a/world/map/npc/006-1/_import.txt
+++ b/world/map/npc/006-1/_import.txt
@@ -5,5 +5,8 @@ npc: npc/006-1/_mobs.txt
npc: npc/006-1/_warps.txt
npc: npc/006-1/mapflags.txt
npc: npc/006-1/mika.txt
+npc: npc/006-1/miriam.txt
npc: npc/006-1/pachua.txt
+npc: npc/006-1/spirit.txt
npc: npc/006-1/traveler.txt
+npc: npc/006-1/tree.txt
diff --git a/world/map/npc/006-1/_mobs.txt b/world/map/npc/006-1/_mobs.txt
index 7b5aaf95..9a376631 100644
--- a/world/map/npc/006-1/_mobs.txt
+++ b/world/map/npc/006-1/_mobs.txt
@@ -1,32 +1,48 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
// Desert Mountains mobs
-006-1.gat,25,34,12,31|monster|Snake|1010,3,100000ms,30000ms,Mob006-1::On1010
-006-1.gat,36,29,9,16|monster|Snake|1010,1,100000ms,30000ms,Mob006-1::On1010
-006-1.gat,34,41,4,6|monster|MountainSnake|1026,1,30000ms,75000ms,Mob006-1::On1026
-006-1.gat,55,37,27,23|monster|MountainSnake|1026,3,150000ms,10000ms,Mob006-1::On1026
+006-1.gat,49,52,7,3|monster|Snake|1010,1,100000ms,30000ms,Mob006-1::On1010
+006-1.gat,53,36,16,13|monster|MountainSnake|1026,3,150000ms,10000ms,Mob006-1::On1026
006-1.gat,89,26,33,13|monster|MountainSnake|1026,5,15000ms,75000ms,Mob006-1::On1026
-006-1.gat,118,43,22,40|monster|MountainSnake|1026,8,15000ms,75000ms,Mob006-1::On1026
-006-1.gat,115,49,6,3|monster|MountainSnake|1026,3,15000ms,75000ms,Mob006-1::On1026
-006-1.gat,88,47,36,11|monster|MountainSnake|1026,3,15000ms,75000ms,Mob006-1::On1026
-006-1.gat,105,72,25,16|monster|MountainSnake|1026,3,15000ms,75000ms,Mob006-1::On1026
-006-1.gat,75,106,16,22|monster|MountainSnake|1026,4,15000ms,75000ms,Mob006-1::On1026
-006-1.gat,102,97,36,29|monster|MountainSnake|1026,8,15000ms,75000ms,Mob006-1::On1026
-006-1.gat,65,65,49,30|monster|MountainSnake|1026,8,15000ms,75000ms,Mob006-1::On1026
-006-1.gat,95,120,38,13|monster|MountainSnake|1026,5,15000ms,75000ms,Mob006-1::On1026
-006-1.gat,54,120,29,7|monster|MountainSnake|1026,4,15000ms,75000ms,Mob006-1::On1026
-006-1.gat,36,98,33,35|monster|Scorpion|1003,10,100000ms,30000ms,Mob006-1::On1003
+006-1.gat,113,41,12,37|monster|MountainSnake|1026,8,15000ms,75000ms,Mob006-1::On1026
+006-1.gat,113,51,6,3|monster|MountainSnake|1026,3,15000ms,75000ms,Mob006-1::On1026
+006-1.gat,86,46,29,5|monster|MountainSnake|1026,3,15000ms,75000ms,Mob006-1::On1026
+006-1.gat,105,73,21,14|monster|MountainSnake|1026,3,15000ms,75000ms,Mob006-1::On1026
+006-1.gat,73,102,8,13|monster|MountainSnake|1026,4,15000ms,75000ms,Mob006-1::On1026
+006-1.gat,104,100,11,15|monster|MountainSnake|1026,8,15000ms,75000ms,Mob006-1::On1026
+006-1.gat,82,72,25,16|monster|MountainSnake|1026,8,15000ms,75000ms,Mob006-1::On1026
+006-1.gat,95,114,17,4|monster|MountainSnake|1026,5,15000ms,75000ms,Mob006-1::On1026
+006-1.gat,57,119,18,2|monster|MountainSnake|1026,4,15000ms,75000ms,Mob006-1::On1026
+006-1.gat,33,97,27,33|monster|Scorpion|1003,10,100000ms,30000ms,Mob006-1::On1003
+006-1.gat,58,49,3,3|monster|GreenSlime|1005,3,100000ms,30000ms,Mob006-1::On1005
+006-1.gat,34,50,5,4|monster|Snake|1010,2,40000ms,50000ms,Mob006-1::On1010
+006-1.gat,96,92,20,48|monster|Snake|1010,2,40000ms,50000ms,Mob006-1::On1010
+006-1.gat,35,97,28,29|monster|Maggot|1002,20,100000ms,30000ms,Mob006-1::On1002
+006-1.gat,28,73,3,2|monster|GreenSlime|1005,2,100000ms,30000ms,Mob006-1::On1005
+006-1.gat,33,59,3,2|monster|GreenSlime|1005,2,100000ms,30000ms,Mob006-1::On1005
+006-1.gat,37,73,7,3|monster|Snake|1010,1,100000ms,30000ms,Mob006-1::On1010
+006-1.gat,100,36,38,24|monster|Snake|1010,2,40000ms,50000ms,Mob006-1::On1010
006-1.gat,0,0,0|script|Mob006-1|-1
{
end;
+On1002:
+ set @mobID, 1002;
+ callfunc "MobPoints";
+ end;
+
On1003:
set @mobID, 1003;
callfunc "MobPoints";
end;
+On1005:
+ set @mobID, 1005;
+ callfunc "MobPoints";
+ end;
+
On1010:
set @mobID, 1010;
callfunc "MobPoints";
diff --git a/world/map/npc/006-1/_warps.txt b/world/map/npc/006-1/_warps.txt
index 91459352..551d74a2 100644
--- a/world/map/npc/006-1/_warps.txt
+++ b/world/map/npc/006-1/_warps.txt
@@ -1,42 +1,32 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
// Desert Mountains warps
-006-1.gat,18,31|warp|To Snake Desert|-1,-1,005-1.gat,172,101
-006-1.gat,40,26|warp|To Desert Mountains Cav|-1,-1,006-3.gat,40,28
-006-1.gat,60,58|warp|To Desert Mountains Cav|-1,-1,006-3.gat,60,70
-006-1.gat,62,30|warp|To Desert Mountains Cav|-1,-1,006-3.gat,62,32
-006-1.gat,55,27|warp|To Desert Mountains Cav|-1,-1,006-3.gat,55,29
-006-1.gat,77,44|warp|To Desert Mountains Cav|-1,-1,006-3.gat,77,46
-006-1.gat,86,24|warp|To Desert Mountains Cav|-1,-1,006-3.gat,86,26
-006-1.gat,91,24|warp|To Desert Mountains Cav|-1,-1,006-3.gat,91,26
-006-1.gat,104,44|warp|To Desert Mountains Cav|-1,-1,006-3.gat,104,46
-006-1.gat,122,24|warp|To Desert Mountains Cav|-1,-1,006-3.gat,122,26
-006-1.gat,114,49|warp|To Desert Mountains Cav|-1,-1,006-3.gat,114,51
-006-1.gat,110,56|warp|To Desert Mountains Cav|-1,-1,006-3.gat,110,58
-006-1.gat,125,59|warp|To Desert Mountains Cav|-1,-1,006-3.gat,125,61
-006-1.gat,92,63|warp|To Desert Mountains Cav|-1,-1,006-3.gat,92,65
-006-1.gat,112,74|warp|To Desert Mountains Cav|-1,-1,006-3.gat,112,76
-006-1.gat,121,110|warp|To Desert Mountains Cav|-1,-1,006-3.gat,121,112
-006-1.gat,79,120|warp|To Desert Mountains Cav|-1,-1,006-3.gat,79,122
-006-1.gat,38,121|warp|To Desert Mountains Cav|-1,-1,006-3.gat,38,123
-006-1.gat,74,90|warp|To Desert Mountains Cav|-1,-1,006-3.gat,74,92
-006-1.gat,51,90|warp|To Desert Mountains Cav|-1,-1,006-3.gat,51,92
+006-1.gat,40,26|warp|To Desert Mountain Cave|-1,-1,006-3.gat,40,28
+006-1.gat,60,58|warp|To Desert Mountain Cave|-1,-1,006-3.gat,60,70
+006-1.gat,62,30|warp|To Desert Mountain Cave|-1,-1,006-3.gat,62,32
+006-1.gat,55,27|warp|To Desert Mountain Cave|-1,-1,006-3.gat,55,29
+006-1.gat,77,44|warp|To Desert Mountain Cave|-1,-1,006-3.gat,77,46
+006-1.gat,86,24|warp|To Desert Mountain Cave|-1,-1,006-3.gat,86,26
+006-1.gat,91,24|warp|To Desert Mountain Cave|-1,-1,006-3.gat,91,26
+006-1.gat,98,46|warp|To Desert Mountain Cave|-1,-1,006-3.gat,104,46
+006-1.gat,114,22|warp|To Desert Mountain Cave|-1,-1,006-3.gat,122,26
+006-1.gat,114,49|warp|To Desert Mountain Cave|-1,-1,006-3.gat,114,51
+006-1.gat,102,53|warp|To Desert Mountain Cave|-1,-1,006-3.gat,110,58
+006-1.gat,117,57|warp|To Desert Mountain Cave|-1,-1,006-3.gat,125,61
+006-1.gat,92,63|warp|To Desert Mountain Cave|-1,-1,006-3.gat,92,65
+006-1.gat,112,74|warp|To Desert Mountain Cave|-1,-1,006-3.gat,112,76
+006-1.gat,111,110|warp|To Desert Mountain Cave|-1,-1,032-3.gat,56,60
+006-1.gat,83,117|warp|To Desert Mountain Cave|-1,-1,006-3.gat,79,121
+006-1.gat,38,121|warp|To Desert Mountain Cave|-1,-1,006-3.gat,38,123
+006-1.gat,74,90|warp|To Desert Mountain Cave|-1,-1,006-3.gat,74,92
+006-1.gat,51,90|warp|To Desert Mountain Cave|-1,-1,006-3.gat,51,92
006-1.gat,30,123|warp|To Outback Cave|-1,-1,032-3.gat,128,33
-006-1.gat,19,30|warp|To Snake Desert|-1,-1,005-1.gat,172,101
-006-1.gat,20,29|warp|To Snake Desert|-1,-1,005-1.gat,172,101
-006-1.gat,21,28|warp|To Snake Desert|-1,-1,005-1.gat,172,101
-006-1.gat,22,27|warp|To Snake Desert|-1,-1,005-1.gat,172,101
-006-1.gat,23,26|warp|To Snake Desert|-1,-1,005-1.gat,172,101
-006-1.gat,24,25|warp|To Snake Desert|-1,-1,005-1.gat,172,101
-006-1.gat,25,24|warp|To Snake Desert|-1,-1,005-1.gat,172,101
-006-1.gat,26,23|warp|To Snake Desert|-1,-1,005-1.gat,172,101
-006-1.gat,27,22|warp|To Snake Desert|-1,-1,005-1.gat,172,101
-006-1.gat,28,21|warp|To Snake Desert|-1,-1,005-1.gat,172,101
-006-1.gat,29,20|warp|To Snake Desert|-1,-1,005-1.gat,172,101
-006-1.gat,30,19|warp|To Snake Desert|-1,-1,005-1.gat,172,101
006-1.gat,33,85|warp|To Pachua's Village|-1,-1,006-2.gat,58,43
006-1.gat,23,85|warp|To Pachua's Village|-1,-1,006-2.gat,48,43
006-1.gat,23,100|warp|To Pachua's Village|-1,-1,006-2.gat,67,64
006-1.gat,21,108|warp|To Pachua's Village|-1,-1,006-2.gat,65,72
006-1.gat,37,26|warp|To Desert Mountains|-1,-1,006-1.gat,37,23
006-1.gat,37,24|warp|To Desert Mountains|-1,-1,006-1.gat,37,27
+006-1.gat,55,46|warp|Snake Cave|-1,-1,005-3.gat,86,31
+006-1.gat,20,48|warp|To Sandstorm Desert|-1,0,002-1.gat,118,95
+006-1.gat,51,68|warp|Snake Cave|-1,-1,005-3.gat,73,59
diff --git a/world/map/npc/032-1/miriam.txt b/world/map/npc/006-1/miriam.txt
index d4daaafd..4279e3d5 100644
--- a/world/map/npc/032-1/miriam.txt
+++ b/world/map/npc/006-1/miriam.txt
@@ -18,8 +18,13 @@
// after you gained the speed skill, all variables are reset to zero.
//#############################################
-032-1.gat,55,20,0|script|Miriam|175
+006-1.gat,115,111,0|script|Miriam|175
{
+ setarray @npc_loc, 115, 111, 2;
+ callfunc "PCtoNPCRange";
+ if (@npc_check)
+ goto L_Close;
+
if (getskilllv(SKILL_SPEED)) goto L_fast;
if (getequipid(equip_torso) < 0) goto L_naked;
if (QUEST_MIRIAM == 0) goto L_intro;
diff --git a/world/map/npc/005-1/spirit.txt b/world/map/npc/006-1/spirit.txt
index 6e2784d2..5f7d06fb 100644
--- a/world/map/npc/005-1/spirit.txt
+++ b/world/map/npc/006-1/spirit.txt
@@ -90,7 +90,7 @@ L_Q_magic:
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.\"";
+ mes "\"North-east 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,
@@ -246,7 +246,7 @@ L_Q_tree_how:
L_Q_tree_where:
mes "[Earth Spirit]";
- mes "\"North-west of here.\"";
+ mes "\"North-east of here.\"";
next;
goto L_main;
@@ -286,13 +286,13 @@ S_update_var:
return;
}
-005-1.gat,118,70,0|script|#EarthImp0#_M|400
+006-1.gat,63,79,0|script|#EarthImp0#_M|400
{
callfunc "EarthImpTouch";
end;
}
-005-1.gat,119,70,0|script|#EarthImp1#_M|400
+006-1.gat,64,79,0|script|#EarthImp1#_M|400
{
callfunc "EarthImpTouch";
end;
diff --git a/world/map/npc/005-1/tree.txt b/world/map/npc/006-1/tree.txt
index 27840370..dbef23f2 100644
--- a/world/map/npc/005-1/tree.txt
+++ b/world/map/npc/006-1/tree.txt
@@ -155,13 +155,13 @@ L_Close:
}
-005-1.gat,79,41,0|script|#DruidTree0#_M|400
+006-1.gat,82,59,0|script|#DruidTree0#_M|400
{
callfunc "QuestTreeTouch";
end;
}
-005-1.gat,80,41,0|script|#DruidTree1#_M|400
+006-1.gat,83,59,0|script|#DruidTree1#_M|400
{
callfunc "QuestTreeTouch";
end;
diff --git a/world/map/npc/006-3/_warps.txt b/world/map/npc/006-3/_warps.txt
index c0744946..5c130a60 100644
--- a/world/map/npc/006-3/_warps.txt
+++ b/world/map/npc/006-3/_warps.txt
@@ -6,17 +6,18 @@
006-3.gat,62,30|warp|To Desert Mountains|-1,-1,006-1.gat,62,32
006-3.gat,86,24|warp|To Desert Mountains|-1,-1,006-1.gat,86,26
006-3.gat,91,24|warp|To Desert Mountains|-1,-1,006-1.gat,91,26
-006-3.gat,122,24|warp|To Desert Mountains|-1,-1,006-1.gat,122,26
+006-3.gat,122,24|warp|To Desert Mountains|-1,-1,006-1.gat,114,24
006-3.gat,114,49|warp|To Desert Mountains|-1,-1,006-1.gat,114,51
-006-3.gat,104,44|warp|To Desert Mountains|-1,-1,006-1.gat,104,46
+006-3.gat,104,44|warp|To Desert Mountains|-1,-1,006-1.gat,98,48
006-3.gat,77,44|warp|To Desert Mountains|-1,-1,006-1.gat,77,46
006-3.gat,60,68|warp|To Desert Mountains|-1,-1,006-1.gat,60,60
006-3.gat,92,63|warp|To Desert Mountains|-1,-1,006-1.gat,92,65
006-3.gat,112,74|warp|To Desert Mountains|-1,-1,006-1.gat,112,76
-006-3.gat,110,56|warp|To Desert Mountains|-1,-1,006-1.gat,110,58
-006-3.gat,125,59|warp|To Desert Mountains|-1,-1,006-1.gat,125,61
+006-3.gat,110,56|warp|To Desert Mountains|-1,-1,006-1.gat,102,55
+006-3.gat,125,59|warp|To Desert Mountains|-1,-1,006-1.gat,117,59
006-3.gat,74,90|warp|To Desert Mountains|-1,-1,006-1.gat,74,92
006-3.gat,51,90|warp|To Desert Mountains|-1,-1,006-1.gat,51,92
006-3.gat,38,121|warp|To Desert Mountains|-1,-1,006-1.gat,38,123
-006-3.gat,79,120|warp|To Desert Mountains|-1,-1,006-1.gat,79,122
-006-3.gat,121,110|warp|To Desert Mountains|-1,-1,006-1.gat,121,112
+006-3.gat,79,120|warp|To Desert Mountains|-1,-1,006-1.gat,83,119
+006-3.gat,125,66|warp|Snake Cave|-1,-1,005-3.gat,85,50
+006-3.gat,89,46|warp|Snake Cave|-1,-1,005-3.gat,63,47
diff --git a/world/map/npc/009-3/_mobs.txt b/world/map/npc/009-3/_mobs.txt
index 2ccde6e5..3e0430fd 100644
--- a/world/map/npc/009-3/_mobs.txt
+++ b/world/map/npc/009-3/_mobs.txt
@@ -2,8 +2,9 @@
// Hurnscald Cave mobs
009-3.gat,0,0,0,0|monster|YellowSlime|1007,20,0ms,0ms,Mob009-3::On1007
-009-3.gat,0,0,0,0|monster|BlackScorpion|1009,25,0ms,0ms,Mob009-3::On1009
-009-3.gat,0,0,0,0|monster|RedSlime|1008,35,0ms,0ms,Mob009-3::On1008
+009-3.gat,62,75,125,150|monster|BlackScorpion|1009,25,0ms,0ms,Mob009-3::On1009
+009-3.gat,63,75,126,150|monster|RedSlime|1008,35,0ms,0ms,Mob009-3::On1008
+009-3.gat,145,75,110,151|monster|CaveMaggot|1056,20,100000ms,30000ms,Mob009-3::On1056
009-3.gat,0,0,0|script|Mob009-3|-1
@@ -24,4 +25,9 @@ On1009:
set @mobID, 1009;
callfunc "MobPoints";
end;
+
+On1056:
+ set @mobID, 1056;
+ callfunc "MobPoints";
+ end;
}
diff --git a/world/map/npc/011-1/_mobs.txt b/world/map/npc/011-1/_mobs.txt
index e209acea..156afe85 100644
--- a/world/map/npc/011-1/_mobs.txt
+++ b/world/map/npc/011-1/_mobs.txt
@@ -13,12 +13,19 @@
011-1.gat,0,0,0,0|monster|Squirrel|1038,25,30ms,20ms,Mob011-1::On1038
011-1.gat,0,0,0,0|monster|Butterfly|1055,10,30ms,20ms,Mob011-1::On1055
011-1.gat,0,0,0,0|monster|Mouboo|1028,5,0ms,10ms,Mob011-1::On1028
+011-1.gat,1,1,0,0|monster|ManaBug|1131,18,30ms,0ms,Mob011-1::On1131
+011-1.gat,92,44,35,28|monster|Maggot|1002,10,30ms,0ms,Mob011-1::On1002
011-1.gat,0,0,0|script|Mob011-1|-1
{
end;
+On1002:
+ set @mobID, 1002;
+ callfunc "MobPoints";
+ end;
+
On1013:
set @mobID, 1013;
callfunc "MobPoints";
@@ -73,4 +80,9 @@ On1055:
set @mobID, 1055;
callfunc "MobPoints";
end;
+
+On1131:
+ set @mobID, 1131;
+ callfunc "MobPoints";
+ end;
}
diff --git a/world/map/npc/011-4/_mobs.txt b/world/map/npc/011-4/_mobs.txt
index fa887b14..79bac221 100644
--- a/world/map/npc/011-4/_mobs.txt
+++ b/world/map/npc/011-4/_mobs.txt
@@ -5,12 +5,20 @@
011-4.gat,93,114,39,39|monster|CaveSnake|1021,1,100000ms,30000ms,Mob011-4::On1021
011-4.gat,0,0,0,0|monster|CaveSnake|1021,40,0ms,0ms,Mob011-4::On1021
011-4.gat,0,0,0,0|monster|SpikyMushroom|1019,15,0ms,0ms,Mob011-4::On1019
+011-4.gat,60,78,56,75|monster|CaveMaggot|1056,10,100000ms,30000ms,Mob011-4::On1056
+011-4.gat,63,21,110,35|monster|CaveMaggot|1056,10,100000ms,30000ms,Mob011-4::On1056
+011-4.gat,0,0,0,0|monster|Bat|1017,20,180000ms,40000ms,Mob011-4::On1017
011-4.gat,0,0,0|script|Mob011-4|-1
{
end;
+On1017:
+ set @mobID, 1017;
+ callfunc "MobPoints";
+ end;
+
On1019:
set @mobID, 1019;
callfunc "MobPoints";
@@ -20,4 +28,9 @@ On1021:
set @mobID, 1021;
callfunc "MobPoints";
end;
+
+On1056:
+ set @mobID, 1056;
+ callfunc "MobPoints";
+ end;
}
diff --git a/world/map/npc/013-2/notes.txt b/world/map/npc/013-2/notes.txt
index 37014a76..20ce05c1 100644
--- a/world/map/npc/013-2/notes.txt
+++ b/world/map/npc/013-2/notes.txt
@@ -72,6 +72,19 @@ L_Close:
next;
mes "You feel the floor disappear below your feet...";
next;
+ if (QUEST_MIRIAM_start != 0)
+ goto L_cheat;
+ goto L_Warp;
+
+// If you try to use the notes to warp to pachua the quest will fail.
+L_cheat:
+ set QUEST_MIRIAM_cheat, 1;
+ set QUEST_MIRIAM_run, gettimetick(2) - QUEST_MIRIAM_start;
+ set QUEST_MIRIAM_start, 0;
+ message strcharinfo(0), "You were supposed to actually run to this place. You are not sure if this is going to work for Miriam...";
+ goto L_Warp;
+
+L_Warp:
set @dest, rand(BaseLevel);
if (@dest < 10)
goto L_PlaceOne;
@@ -80,24 +93,15 @@ L_Close:
goto L_PlaceThree;
L_PlaceOne:
- warp "006-1.gat",125,111;
+ warp "006-1.gat",83,60;
goto L_Close;
L_PlaceTwo:
- warp "032-1.gat",77,22;
+ warp "006-1.gat",77,22;
goto L_Close;
L_PlaceThree:
warp "006-1.gat",33,93;
- if (QUEST_MIRIAM_start != 0) goto L_cheat;
- goto L_Close;
-
-// If you try to use the notes to warp to pachua the quest will fail.
-L_cheat:
- set QUEST_MIRIAM_cheat, 1;
- set QUEST_MIRIAM_run, gettimetick(2) - QUEST_MIRIAM_start;
- set QUEST_MIRIAM_start, 0;
- message strcharinfo(0), "You were supposed to actually run to this place. You are not sure if this is going to work for Miriam...";
goto L_Close;
L_Close:
diff --git a/world/map/npc/017-9/_warps.txt b/world/map/npc/017-9/_warps.txt
index 1a89c0b0..03859972 100644
--- a/world/map/npc/017-9/_warps.txt
+++ b/world/map/npc/017-9/_warps.txt
@@ -3,6 +3,6 @@
017-9.gat,22,20|warp|To Nivalis|-1,-1,020-1.gat,60,75
017-9.gat,26,21|warp|To Hurnscald|-1,-1,009-1.gat,43,45
-017-9.gat,30,20|warp|To Tumlishar|-1,-1,001-1.gat,33,65
+017-9.gat,30,20|warp|To Tumlishar|-1,-1,001-1.gat,55,118
017-9.gat,26,28|warp|To second warpzone|-1,-1,017-2.gat,26,23
017-9.gat,31,28|warp|To Crypt|-1,-1,027-2.gat,118,109
diff --git a/world/map/npc/017-9/secret.txt b/world/map/npc/017-9/secret.txt
index 050773a6..49261537 100644
--- a/world/map/npc/017-9/secret.txt
+++ b/world/map/npc/017-9/secret.txt
@@ -18,7 +18,7 @@ L_close:
close;
}
-001-1.gat,32,65,0|script|#SecretDoor3|127,0,0
+001-1.gat,54,118,0|script|#SecretDoor3|127,0,0
{
if (getgmlevel() < 40 && !debug) goto L_close;
warp "017-9.gat", 30, 22;
diff --git a/world/map/npc/018-1/_mobs.txt b/world/map/npc/018-1/_mobs.txt
index d2aa5d7d..3536b5b6 100644
--- a/world/map/npc/018-1/_mobs.txt
+++ b/world/map/npc/018-1/_mobs.txt
@@ -2,7 +2,7 @@
// Woodland Mining Camp mobs
018-1.gat,136,79,9,41|monster|SeaSlime|1033,10,100000ms,30000ms,Mob018-1::On1033
-018-1.gat,108,87,53,25|monster|LogHead|1025,10,100000ms,30000ms,Mob018-1::On1025
+018-1.gat,108,87,53,25|monster|ManaBug|1131,10,100000ms,30000ms,Mob018-1::On1131
018-1.gat,116,44,6,7|monster|SeaSlime|1033,3,100000ms,30000ms,Mob018-1::On1033
018-1.gat,119,56,13,6|monster|PinkFlower|1014,2,100000ms,30000ms,Mob018-1::On1014
018-1.gat,175,28,17,19|monster|JackO|1022,1,180000ms,120000ms,Mob018-1::On1022
@@ -27,12 +27,18 @@
018-1.gat,160,31,11,18|monster|RedSlime|1008,5,100000ms,50000ms,Mob018-1::On1008
018-1.gat,0,0,0,0|monster|CloverPatch|1037,2,0ms,1000ms,Mob018-1::On1037
018-1.gat,0,0,0,0|monster|Butterfly|1055,20,30ms,20ms,Mob018-1::On1055
+018-1.gat,134,80,14,39|monster|Maggot|1002,15,30ms,0ms,Mob018-1::On1002
018-1.gat,0,0,0|script|Mob018-1|-1
{
end;
+On1002:
+ set @mobID, 1002;
+ callfunc "MobPoints";
+ end;
+
On1007:
set @mobID, 1007;
callfunc "MobPoints";
@@ -58,11 +64,6 @@ On1022:
callfunc "MobPoints";
end;
-On1025:
- set @mobID, 1025;
- callfunc "MobPoints";
- end;
-
On1030:
set @mobID, 1030;
callfunc "MobPoints";
@@ -92,4 +93,9 @@ On1055:
set @mobID, 1055;
callfunc "MobPoints";
end;
+
+On1131:
+ set @mobID, 1131;
+ callfunc "MobPoints";
+ end;
}
diff --git a/world/map/npc/018-3/_mobs.txt b/world/map/npc/018-3/_mobs.txt
index e80abda4..64b7c42d 100644
--- a/world/map/npc/018-3/_mobs.txt
+++ b/world/map/npc/018-3/_mobs.txt
@@ -7,25 +7,23 @@
018-3.gat,28,157,3,2|monster|PinkFlower|1014,1,60000ms,30000ms,Mob018-3::On1014
018-3.gat,99,111,17,41|monster|YellowSlime|1007,10,90000ms,30000ms,Mob018-3::On1007
018-3.gat,134,140,12,8|monster|Maggot|1002,3,80000ms,40000ms,Mob018-3::On1002
-018-3.gat,132,137,15,25|monster|Spider|1012,8,300000ms,120000ms,Mob018-3::On1012
+018-3.gat,82,149,73,26|monster|Spider|1012,8,300000ms,120000ms,Mob018-3::On1012
018-3.gat,102,172,131,13|monster|BlackScorpion|1009,20,60000ms,10000ms,Mob018-3::On1009
018-3.gat,174,37,10,31|monster|YellowSlime|1007,5,180000ms,120000ms,Mob018-3::On1007
-018-3.gat,87,153,78,22|monster|Snake|1010,10,60000ms,10000ms,Mob018-3::On1010
018-3.gat,148,148,13,24|monster|Bat|1017,3,180000ms,40000ms,Mob018-3::On1017
-018-3.gat,153,97,18,22|monster|YellowSlime|1007,6,80000ms,40000ms,Mob018-3::On1007
+018-3.gat,136,87,21,7|monster|YellowSlime|1007,6,80000ms,40000ms,Mob018-3::On1007
018-3.gat,81,77,27,21|monster|RedSlime|1008,15,80000ms,40000ms,Mob018-3::On1008
018-3.gat,111,80,5,6|monster|BlackScorpion|1009,10,80000ms,40000ms,Mob018-3::On1009
018-3.gat,175,122,5,40|monster|Snake|1010,15,40000ms,20000ms,Mob018-3::On1010
-018-3.gat,98,75,1,2|monster|FireSkull|1023,1,120000ms,30000ms,Mob018-3::On1023
-018-3.gat,100,75,1,2|monster|PoisonSkull|1024,1,120000ms,30000ms,Mob018-3::On1024
-018-3.gat,171,95,15,19|monster|BlackScorpion|1009,5,60000ms,30000ms,Mob018-3::On1009
-018-3.gat,134,87,17,7|monster|RedSlime|1008,10,60000ms,30000ms,Mob018-3::On1008
+018-3.gat,172,94,17,17|monster|RedSlime|1008,10,60000ms,30000ms,Mob018-3::On1008
018-3.gat,59,95,11,8|monster|Spider|1012,15,60000ms,30000ms,Mob018-3::On1012
018-3.gat,77,92,23,7|monster|BlackScorpion|1009,15,60000ms,30000ms,Mob018-3::On1009
018-3.gat,94,55,16,8|monster|Snake|1010,5,60000ms,30000ms,Mob018-3::On1010
018-3.gat,133,39,12,17|monster|Spider|1012,10,60000ms,30000ms,Mob018-3::On1012
018-3.gat,111,33,30,16|monster|Snake|1010,15,60000ms,30000ms,Mob018-3::On1010
-018-3.gat,68,101,5,4|monster|Snake|1010,4,60000ms,30000ms,Mob018-3::On1010
+018-3.gat,68,101,5,4|monster|CaveSnake|1021,4,60000ms,30000ms,Mob018-3::On1021
+018-3.gat,153,96,18,17|monster|CaveMaggot|1056,4,100000ms,30000ms,Mob018-3::On1056
+018-3.gat,99,99,17,17|monster|CaveMaggot|1056,4,100000ms,30000ms,Mob018-3::On1056
018-3.gat,0,0,0|script|Mob018-3|-1
@@ -77,13 +75,13 @@ On1017:
callfunc "MobPoints";
end;
-On1023:
- set @mobID, 1023;
+On1021:
+ set @mobID, 1021;
callfunc "MobPoints";
end;
-On1024:
- set @mobID, 1024;
+On1056:
+ set @mobID, 1056;
callfunc "MobPoints";
end;
}
diff --git a/world/map/npc/021-2/_import.txt b/world/map/npc/021-2/_import.txt
deleted file mode 100644
index 67974f1a..00000000
--- a/world/map/npc/021-2/_import.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-// Map 021-2: North Tulimshar Indoor
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 021-2.gat
-npc: npc/021-2/_mobs.txt
-npc: npc/021-2/_warps.txt
-npc: npc/021-2/bakery.txt
-npc: npc/021-2/barber.txt
-npc: npc/021-2/forge_shops.txt
-npc: npc/021-2/government_building.txt
-npc: npc/021-2/heathin.txt
-npc: npc/021-2/jhedia.txt
-npc: npc/021-2/kps.txt
-npc: npc/021-2/kylian.txt
-npc: npc/021-2/manakins.txt
-npc: npc/021-2/mapflags.txt
-npc: npc/021-2/rebecca.txt
-npc: npc/021-2/yanis.txt
diff --git a/world/map/npc/021-2/_mobs.txt b/world/map/npc/021-2/_mobs.txt
deleted file mode 100644
index 6feaf1ea..00000000
--- a/world/map/npc/021-2/_mobs.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// North Tulimshar Indoor mobs
-
-
-
-021-2.gat,0,0,0|script|Mob021-2|-1
-{
- end;
-}
diff --git a/world/map/npc/021-2/_warps.txt b/world/map/npc/021-2/_warps.txt
deleted file mode 100644
index 9eb18a2a..00000000
--- a/world/map/npc/021-2/_warps.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// North Tulimshar Indoor warps
-
-021-2.gat,46,97|warp|To Lobby|0,-1,021-2.gat,44,55
-021-2.gat,46,155|warp|To Second Floor|0,-1,021-2.gat,92,62
-021-2.gat,92,64|warp|To Suites|0,-1,021-2.gat,46,158
-021-2.gat,44,53|warp|To Common Beds|0,-1,021-2.gat,46,96
-021-2.gat,46,179|warp|To Common Beds|0,-1,021-2.gat,46,91
-021-2.gat,46,90|warp|To Suites|0,-1,021-2.gat,46,178
-021-2.gat,71,179|warp|To Outside|0,-1,021-1.gat,128,121
-021-2.gat,90,179|warp|To Outside|-1,-1,021-1.gat,135,121
-021-2.gat,27,30|warp|To Outside|-1,-1,021-1.gat,53,135
-021-2.gat,39,30|warp|To Outside|-1,-1,021-1.gat,57,135
-021-2.gat,91,28|warp|To Outside|-1,-1,021-1.gat,103,101
-021-2.gat,122,24|warp|To Roof|-1,-1,021-1.gat,103,97
-021-2.gat,118,24|warp|To First Floor|0,-1,021-2.gat,79,23
-021-2.gat,80,22|warp|To Second Floor|0,-1,021-2.gat,117,23
-021-2.gat,70,64|warp|To Roof|-1,-1,021-1.gat,52,96
-021-2.gat,25,67|warp|To Outside|-1,-1,021-1.gat,53,100
-021-2.gat,46,97|warp|To First Floor|0,-1,021-2.gat,46,58
-021-2.gat,28,130|warp|To Outside|-1,-1,021-1.gat,43,111
-021-2.gat,28,130|warp|To Outside|-1,-1,021-1.gat,43,111
-021-2.gat,84,93|warp|To First Floor|-1,0,021-2.gat,80,125
-021-2.gat,84,123|warp|To Second Floor|-1,0,021-2.gat,81,95
-021-2.gat,79,139|warp|To Outside|-1,-1,021-1.gat,132,32
-021-2.gat,72,139|warp|To Outside|-1,-1,021-1.gat,125,32
-021-2.gat,124,69|warp|To Outside|-1,-1,021-1.gat,125,28
-021-2.gat,75,93|warp|To Outside|-1,-1,021-1.gat,133,25
-021-2.gat,33,30|warp|To Outside|-1,-1,021-1.gat,55,135
diff --git a/world/map/npc/021-2/forge_shops.txt b/world/map/npc/021-2/forge_shops.txt
deleted file mode 100644
index 4e30fe50..00000000
--- a/world/map/npc/021-2/forge_shops.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-// Forge Shops
-
-021-2.gat,77,134,0|shop|Gungnir|311,SlingShot:*500,SlingBullet:*1,ShortBow:*8000,Arrow:*1,IronArrow:*4
-021-2.gat,71,133,0|shop|Mjolnir|377,Knife:*50,SharpKnife:*100,Dagger:*1000,LeatherShirt:*2000,LeatherShield:*2000
diff --git a/world/map/npc/021-2/mapflags.txt b/world/map/npc/021-2/mapflags.txt
deleted file mode 100644
index d3dd0e16..00000000
--- a/world/map/npc/021-2/mapflags.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-021-2.gat|mapflag|town
-021-2.gat|mapflag|resave|001-1,57,71
diff --git a/world/map/npc/021-2/rebecca.txt b/world/map/npc/021-2/rebecca.txt
deleted file mode 100644
index 37df8d65..00000000
--- a/world/map/npc/021-2/rebecca.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-//
-
-021-2.gat,26,54,0|script|Rebecca|118
-{
- set @npcname$, "Rebecca the Inn Keeper";
- set @cost, 100;
- callfunc "Inn";
- set @npcname$, "";
- set @cost, 0;
- close;
-}
diff --git a/world/map/npc/021-3/_mobs.txt b/world/map/npc/021-3/_mobs.txt
index 78b2ad47..d4d62bef 100644
--- a/world/map/npc/021-3/_mobs.txt
+++ b/world/map/npc/021-3/_mobs.txt
@@ -7,21 +7,23 @@
021-3.gat,129,82,8,3|monster|CaveMaggot|1056,5,100000ms,30000ms,Mob021-3::On1056
021-3.gat,140,38,16,8|monster|AngryFireGoblin|1108,3,100000ms,30000ms,Mob021-3::On1108
021-3.gat,79,98,33,31|monster|BlackScorpion|1009,4,100000ms,1800000ms,Mob021-3::On1009
-021-3.gat,52,53,2,17|monster|Snake|1010,2,40000ms,50000ms,Mob021-3::On1010
+021-3.gat,52,53,2,17|monster|GreenSlime|1005,4,40000ms,50000ms,Mob021-3::On1005
021-3.gat,93,31,28,22|monster|SeaSlime|1033,6,100000ms,30000ms,Mob021-3::On1033
+021-3.gat,121,128,8,3|monster|CaveMaggot|1056,5,100000ms,30000ms,Mob021-3::On1056
+021-3.gat,47,139,8,3|monster|CaveMaggot|1056,5,100000ms,30000ms,Mob021-3::On1056
021-3.gat,0,0,0|script|Mob021-3|-1
{
end;
-On1009:
- set @mobID, 1009;
+On1005:
+ set @mobID, 1005;
callfunc "MobPoints";
end;
-On1010:
- set @mobID, 1010;
+On1009:
+ set @mobID, 1009;
callfunc "MobPoints";
end;
diff --git a/world/map/npc/021-3/_warps.txt b/world/map/npc/021-3/_warps.txt
index 192f6c95..1abe90e3 100644
--- a/world/map/npc/021-3/_warps.txt
+++ b/world/map/npc/021-3/_warps.txt
@@ -1,6 +1,7 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
// Central Tulimshar Sewers warps
-021-3.gat,143,127|warp|To Central Tulimshar|-1,-1,021-1.gat,147,137
-021-3.gat,125,33|warp|To Central Tulimshar|-1,-1,021-1.gat,124,39
-021-3.gat,57,99|warp|To Central Tulimshar|-1,-1,021-1.gat,50,105
+021-3.gat,143,127|warp|To Central Tulimshar|-1,-1,001-1.gat,117,109
+021-3.gat,57,99|warp|To Central Tulimshar|-1,-1,001-1.gat,60,84
+021-3.gat,29,62|warp|To Beach|-1,-1,001-1.gat,28,45
+021-3.gat,44,143|warp|To Sea Cave|-1,-1,004-3.gat,80,23
diff --git a/world/map/npc/021-3/mapflags.txt b/world/map/npc/021-3/mapflags.txt
index d02af5d8..07afc1c8 100644
--- a/world/map/npc/021-3/mapflags.txt
+++ b/world/map/npc/021-3/mapflags.txt
@@ -1 +1 @@
-021-3.gat|mapflag|resave|001-1,57,71
+021-3.gat|mapflag|resave|001-1,60,105
diff --git a/world/map/npc/023-2/_import.txt b/world/map/npc/023-2/_import.txt
deleted file mode 100644
index ceb63a25..00000000
--- a/world/map/npc/023-2/_import.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-// Map 023-2: Lighthouse
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 023-2.gat
-npc: npc/023-2/_mobs.txt
-npc: npc/023-2/_warps.txt
-npc: npc/023-2/mapflags.txt
diff --git a/world/map/npc/023-2/_mobs.txt b/world/map/npc/023-2/_mobs.txt
deleted file mode 100644
index 89768e20..00000000
--- a/world/map/npc/023-2/_mobs.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Lighthouse mobs
-
-
-
-023-2.gat,0,0,0|script|Mob023-2|-1
-{
- end;
-}
diff --git a/world/map/npc/023-2/_warps.txt b/world/map/npc/023-2/_warps.txt
deleted file mode 100644
index 1c25c857..00000000
--- a/world/map/npc/023-2/_warps.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Lighthouse warps
-
-023-2.gat,31,40|warp|To Lighthouse Beach|-1,-1,023-1.gat,36,35
-023-2.gat,31,31|warp|To Lighthouse Beach|-1,-1,023-1.gat,36,23
diff --git a/world/map/npc/023-2/mapflags.txt b/world/map/npc/023-2/mapflags.txt
deleted file mode 100644
index 84596948..00000000
--- a/world/map/npc/023-2/mapflags.txt
+++ /dev/null
@@ -1 +0,0 @@
-023-2.gat|mapflag|resave|001-1,57,71
diff --git a/world/map/npc/023-3/_import.txt b/world/map/npc/023-3/_import.txt
deleted file mode 100644
index b9b116f0..00000000
--- a/world/map/npc/023-3/_import.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-// Map 023-3: Tulimshar Beach Caves
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 023-3.gat
-npc: npc/023-3/_mobs.txt
-npc: npc/023-3/_warps.txt
-npc: npc/023-3/mapflags.txt
diff --git a/world/map/npc/023-3/_mobs.txt b/world/map/npc/023-3/_mobs.txt
deleted file mode 100644
index 26b0f4f8..00000000
--- a/world/map/npc/023-3/_mobs.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Tulimshar Beach Caves mobs
-
-023-3.gat,91,77,7,7|monster|Thug|1119,1,100000ms,30000ms,Mob023-3::On1119
-023-3.gat,127,85,7,7|monster|Swashbuckler|1120,1,100000ms,30000ms,Mob023-3::On1120
-023-3.gat,98,28,7,7|monster|Swashbuckler|1120,1,100000ms,30000ms,Mob023-3::On1120
-023-3.gat,120,45,7,7|monster|Thug|1119,1,100000ms,30000ms,Mob023-3::On1119
-023-3.gat,51,107,12,5|monster|Swashbuckler|1120,1,100000ms,30000ms,Mob023-3::On1120
-023-3.gat,69,52,66,8|monster|Thug|1119,1,100000ms,30000ms,Mob023-3::On1119
-
-
-023-3.gat,0,0,0|script|Mob023-3|-1
-{
- end;
-
-On1119:
- set @mobID, 1119;
- callfunc "MobPoints";
- end;
-
-On1120:
- set @mobID, 1120;
- callfunc "MobPoints";
- end;
-}
diff --git a/world/map/npc/023-3/_warps.txt b/world/map/npc/023-3/_warps.txt
deleted file mode 100644
index 3c95fb55..00000000
--- a/world/map/npc/023-3/_warps.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Tulimshar Beach Caves warps
-
-023-3.gat,75,134|warp|To Lighthouse Beach|-1,-1,023-1.gat,75,136
-023-3.gat,71,117|warp|To Lighthouse Beach|-1,-1,023-1.gat,71,119
-023-3.gat,83,114|warp|To Lighthouse Beach|-1,-1,023-1.gat,83,116
-023-3.gat,106,120|warp|To Lighthouse Beach|-1,-1,023-1.gat,107,122
-023-3.gat,106,112|warp|To Lighthouse Beach|-1,-1,023-1.gat,105,112
-023-3.gat,70,95|warp|To Lighthouse Beach|-1,-1,023-1.gat,70,97
-023-3.gat,48,80|warp|To Lighthouse Beach|-1,-1,023-1.gat,48,82
-023-3.gat,61,36|warp|To Lighthouse Beach|-1,-1,023-1.gat,61,34
diff --git a/world/map/npc/023-3/mapflags.txt b/world/map/npc/023-3/mapflags.txt
deleted file mode 100644
index 8d7ca6b9..00000000
--- a/world/map/npc/023-3/mapflags.txt
+++ /dev/null
@@ -1 +0,0 @@
-023-3.gat|mapflag|resave|001-1,57,71
diff --git a/world/map/npc/024-2/_import.txt b/world/map/npc/024-2/_import.txt
deleted file mode 100644
index 685cb331..00000000
--- a/world/map/npc/024-2/_import.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-// Map 024-2: Tulimshar Magic School
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 024-2.gat
-npc: npc/024-2/_mobs.txt
-npc: npc/024-2/_warps.txt
-npc: npc/024-2/barrier.txt
-npc: npc/024-2/mapflags.txt
-npc: npc/024-2/tyer.txt
-npc: npc/024-2/tyer_trigger.txt
diff --git a/world/map/npc/024-2/_mobs.txt b/world/map/npc/024-2/_mobs.txt
deleted file mode 100644
index 14ac77bc..00000000
--- a/world/map/npc/024-2/_mobs.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Tulimshar Magic School mobs
-
-
-
-024-2.gat,0,0,0|script|Mob024-2|-1
-{
- end;
-}
diff --git a/world/map/npc/024-2/_warps.txt b/world/map/npc/024-2/_warps.txt
deleted file mode 100644
index b6e41de6..00000000
--- a/world/map/npc/024-2/_warps.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Tulimshar Magic School warps
-
-024-2.gat,26,27|warp|To Tulimshar Canyon|0,-1,024-1.gat,80,49
-024-2.gat,42,28|warp|To Outside|-1,-1,024-1.gat,86,49
diff --git a/world/map/npc/024-2/barrier.txt b/world/map/npc/024-2/barrier.txt
deleted file mode 100644
index 84405447..00000000
--- a/world/map/npc/024-2/barrier.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-// A barrier in the magic school to keep less experienced players out of the canyon
-
-024-2.gat,31,24,0|script|#MagicSchoolBarrier1#M|127,1,1
-{
- callfunc "MorganState";
- if (@morgan >= 4)
- goto L_End;
- goto L_PushBack;
-
-L_PushBack:
- warp "024-2.gat", 34, 24;
- goto L_End;
-
-L_End:
- end;
-}
diff --git a/world/map/npc/024-2/mapflags.txt b/world/map/npc/024-2/mapflags.txt
deleted file mode 100644
index 03190692..00000000
--- a/world/map/npc/024-2/mapflags.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-024-2.gat|mapflag|town
-024-2.gat|mapflag|resave|001-1,57,71
diff --git a/world/map/npc/024-2/tyer.txt b/world/map/npc/024-2/tyer.txt
deleted file mode 100644
index 21868e96..00000000
--- a/world/map/npc/024-2/tyer.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-// A man in the magic school
-
-024-2.gat,36,21,0|script|Tyer|157
-{
- mes "[Tyer]";
- mes "\"Hello. Welcome to the Magic Insitute of Tulimshar.\"";
- close;
-}
diff --git a/world/map/npc/024-2/tyer_trigger.txt b/world/map/npc/024-2/tyer_trigger.txt
deleted file mode 100644
index 6c532b62..00000000
--- a/world/map/npc/024-2/tyer_trigger.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-// A man in the magic school
-
-024-2.gat,33,24,0|script|#Tyer_Trigger|127,0,1
-{
- callfunc "MorganState";
- if (@morgan >= 4)
- goto L_Close;
-
- mes "[Tyer]";
- mes "\"You're not allowed to go in there.\"";
- menu
- "What do you mean I'm not allowed to go in there?", L_Explain,
- "Ah, right.", L_Close;
-
-L_Explain:
- mes "[Tyer]";
- mes "\"Access to those areas are for students of magic only.\"";
- next;
- mes "\"That barrier was made to keep those that are not students out.\"";
- goto L_Close;
-
-L_Close:
- close;
-}
diff --git a/world/map/npc/024-3/_import.txt b/world/map/npc/024-3/_import.txt
deleted file mode 100644
index 306ec8ee..00000000
--- a/world/map/npc/024-3/_import.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-// Map 024-3: Entry Ancient Amulets
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 024-3.gat
-npc: npc/024-3/_mobs.txt
-npc: npc/024-3/_warps.txt
diff --git a/world/map/npc/024-3/_mobs.txt b/world/map/npc/024-3/_mobs.txt
deleted file mode 100644
index c9456ee3..00000000
--- a/world/map/npc/024-3/_mobs.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Entry Ancient Amulets mobs
-
-
-
-024-3.gat,0,0,0|script|Mob024-3|-1
-{
- end;
-}
diff --git a/world/map/npc/024-3/_warps.txt b/world/map/npc/024-3/_warps.txt
deleted file mode 100644
index eb326a51..00000000
--- a/world/map/npc/024-3/_warps.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Entry Ancient Amulets warps
-
diff --git a/world/map/npc/024-4/_import.txt b/world/map/npc/024-4/_import.txt
deleted file mode 100644
index e76b609b..00000000
--- a/world/map/npc/024-4/_import.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-// Map 024-4: Giant Maze
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 024-4.gat
-npc: npc/024-4/_mobs.txt
-npc: npc/024-4/_warps.txt
diff --git a/world/map/npc/024-4/_mobs.txt b/world/map/npc/024-4/_mobs.txt
deleted file mode 100644
index bcb4d487..00000000
--- a/world/map/npc/024-4/_mobs.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Giant Maze mobs
-
-
-
-024-4.gat,0,0,0|script|Mob024-4|-1
-{
- end;
-}
diff --git a/world/map/npc/024-4/_warps.txt b/world/map/npc/024-4/_warps.txt
deleted file mode 100644
index cd46789f..00000000
--- a/world/map/npc/024-4/_warps.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Giant Maze warps
-
diff --git a/world/map/npc/029-3/barrier.txt b/world/map/npc/029-3/barrier.txt
index 27b472cf..e1d2c399 100644
--- a/world/map/npc/029-3/barrier.txt
+++ b/world/map/npc/029-3/barrier.txt
@@ -1,7 +1,7 @@
-029-3.gat,46,21,0|script|#FightCaveBarrier|45,0,0
+029-3.gat,49,54,0|script|#FightCaveBarrier|45,0,0
{
if ($@FIGHT_CAVE_STATUS == 1) goto L_Block;
- warp "029-1.gat", 54, 39;
+ warp "029-1.gat", 69, 62;
end;
L_Block:
diff --git a/world/map/npc/029-3/mapflags.txt b/world/map/npc/029-3/mapflags.txt
index 549377f1..f7cfbcaf 100644
--- a/world/map/npc/029-3/mapflags.txt
+++ b/world/map/npc/029-3/mapflags.txt
@@ -1,2 +1,2 @@
-029-3.gat|mapflag|nosave|029-1,69,69
-029-3.gat|mapflag|resave|029-1,69,69
+029-3.gat|mapflag|nosave|029-1,39,102
+029-3.gat|mapflag|resave|029-1,39,102
diff --git a/world/map/npc/031-1/frozenbeard.txt b/world/map/npc/031-1/frozenbeard.txt
index e05b3d67..ba656244 100644
--- a/world/map/npc/031-1/frozenbeard.txt
+++ b/world/map/npc/031-1/frozenbeard.txt
@@ -16,16 +16,7 @@ L_Explain:
mes "[Frozenbeard]";
mes "\"Arrr mate! I pioneered the trade routes between Nivalis and the rest of the World, so now merchants and adventurers can travel to and fro without any hassle other than the harsh weather up here, yarr.\"";
next;
- mes "\"You wait on the dock for the ship to come in. You'll be given a chance to board the boat when it comes into port.\"";
- mes "\"It lingers in port to allow you some time to board in case you are running behind.\"";
- mes "\"Once on the ship, it will sail to different ports and annouce where it is docking.\"";
- next;
- mes "\"There are 2 Ferrys, both ferrys are free to ride.\"";
- mes "\"The Main ferry travels from Argeas, Kaizei and Tonori. It docks in the major ports Hurnscald, Nivalis and the Tulimshar South Dock.\"";
- mes "\"The Candor Ferry only travels betwen Candor and the Tulimshar North Dock.\"";
- next;
- mes "\"Refreshments and supplies are offered aboard both ships during the voyage.\"";
- mes "\"We also have some slot machines in case you get bored.\"";
+ callfunc "FerryHelp";
goto L_Main;
L_Close:
diff --git a/world/map/npc/032-1/_import.txt b/world/map/npc/032-1/_import.txt
deleted file mode 100644
index 00df1589..00000000
--- a/world/map/npc/032-1/_import.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-// Map 032-1: Outback
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 032-1.gat
-npc: npc/032-1/_mobs.txt
-npc: npc/032-1/_warps.txt
-npc: npc/032-1/mapflags.txt
-npc: npc/032-1/miriam.txt
diff --git a/world/map/npc/032-1/_mobs.txt b/world/map/npc/032-1/_mobs.txt
deleted file mode 100644
index 5c41b90a..00000000
--- a/world/map/npc/032-1/_mobs.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Outback mobs
-
-032-1.gat,47,64,27,15|monster|BlackScorpion|1009,5,30000ms,100000ms,Mob032-1::On1009
-032-1.gat,24,72,27,24|monster|BlackScorpion|1009,5,30000ms,100000ms,Mob032-1::On1009
-032-1.gat,24,48,25,21|monster|BlackScorpion|1009,5,30000ms,100000ms,Mob032-1::On1009
-032-1.gat,57,44,23,18|monster|Snake|1010,13,30000ms,100000ms,Mob032-1::On1010
-032-1.gat,77,76,34,27|monster|Snake|1010,13,30000ms,100000ms,Mob032-1::On1010
-
-
-032-1.gat,0,0,0|script|Mob032-1|-1
-{
- end;
-
-On1009:
- set @mobID, 1009;
- callfunc "MobPoints";
- end;
-
-On1010:
- set @mobID, 1010;
- callfunc "MobPoints";
- end;
-}
diff --git a/world/map/npc/032-1/_warps.txt b/world/map/npc/032-1/_warps.txt
deleted file mode 100644
index bdef5c3f..00000000
--- a/world/map/npc/032-1/_warps.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Outback warps
-
-032-1.gat,64,52|warp|To Outback Cave|-1,-1,032-3.gat,56,60
diff --git a/world/map/npc/032-1/mapflags.txt b/world/map/npc/032-1/mapflags.txt
deleted file mode 100644
index 534224b6..00000000
--- a/world/map/npc/032-1/mapflags.txt
+++ /dev/null
@@ -1 +0,0 @@
-032-1.gat|mapflag|resave|032-1,77,23
diff --git a/world/map/npc/032-3/_warps.txt b/world/map/npc/032-3/_warps.txt
index b84c4e2c..f4569169 100644
--- a/world/map/npc/032-3/_warps.txt
+++ b/world/map/npc/032-3/_warps.txt
@@ -2,4 +2,4 @@
// Outback Cave warps
032-3.gat,128,34|warp|To Desert Mountains|-1,-1,006-1.gat,30,124
-032-3.gat,56,61|warp|To Outback|-1,-1,032-1.gat,64,53
+032-3.gat,56,61|warp|To Desert Mountains|-1,-1,006-1.gat,111,111
diff --git a/world/map/npc/032-3/mapflags.txt b/world/map/npc/032-3/mapflags.txt
index 3c28a3a0..d619bf99 100644
--- a/world/map/npc/032-3/mapflags.txt
+++ b/world/map/npc/032-3/mapflags.txt
@@ -1 +1 @@
-032-3.gat|mapflag|resave|032-1,77,23
+032-3.gat|mapflag|resave|006-1,36,18
diff --git a/world/map/npc/035-2/koga.txt b/world/map/npc/035-2/koga.txt
index c38221a4..616de0f3 100644
--- a/world/map/npc/035-2/koga.txt
+++ b/world/map/npc/035-2/koga.txt
@@ -17,7 +17,7 @@ L_Leave:
goto L_Close;
L_Tulimshar:
- warp "022-1.gat", 76, 72;
+ warp "001-1.gat", 63, 73;
goto L_Close;
L_Hurnscald:
diff --git a/world/map/npc/036-2/emblems.txt b/world/map/npc/036-2/emblems.txt
index ed73729b..1c8bad11 100644
--- a/world/map/npc/036-2/emblems.txt
+++ b/world/map/npc/036-2/emblems.txt
@@ -1,11 +1,11 @@
-036-2.gat,29,27,0|script|#k2city1e|410
+036-2.gat,29,27,0|script|#k2city1e|412
{
end;
OnInit:
disablenpc "#k2city1e";
end;
}
-036-2.gat,29,27,0|script|#k2city1d|411
+036-2.gat,29,27,0|script|#k2city1d|413
{
end;
}
diff --git a/world/map/npc/036-2/koga-candor.txt b/world/map/npc/036-2/koga-candor.txt
index 555fbec5..3b9fd932 100644
--- a/world/map/npc/036-2/koga-candor.txt
+++ b/world/map/npc/036-2/koga-candor.txt
@@ -11,15 +11,15 @@ L_Leave:
if ($@CandorCurrentDock == 0)
goto L_Candor;
if ($@CandorCurrentDock == 1)
- goto L_Tulimshar;
+ goto L_Hurnscald;
goto L_Close;
-L_Tulimshar:
- warp "022-1.gat", 60, 33;
+L_Hurnscald:
+ warp "008-1.gat", 137, 75;
goto L_Close;
L_Candor:
- warp "029-1.gat", 25, 37;
+ warp "029-1.gat", 46, 109;
goto L_Close;
L_Close:
diff --git a/world/map/npc/043-3/_warps.txt b/world/map/npc/043-3/_warps.txt
index 11506fb8..5decf57c 100644
--- a/world/map/npc/043-3/_warps.txt
+++ b/world/map/npc/043-3/_warps.txt
@@ -1,5 +1,7 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
// Sandy Dungeon Level 1 warps
-043-3.gat,32,36|warp|To Beach|0,-1,043-1.gat,52,39
+043-3.gat,31,26|warp|Mine Camp|-1,-1,002-3.gat,22,86
043-3.gat,77,30|warp|To Lower Level|-1,-1,043-4.gat,47,67
+043-3.gat,116,36|warp|To Snake Cave|-1,-1,005-3.gat,78,87
+043-3.gat,32,37|warp|To Snake Cave|0,-1,005-3.gat,33,83
diff --git a/world/map/npc/068-2/_import.txt b/world/map/npc/068-2/_import.txt
deleted file mode 100644
index 38ad884b..00000000
--- a/world/map/npc/068-2/_import.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-// Map 068-2: Tulimshar Noble Indoors
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 068-2.gat
-npc: npc/068-2/_mobs.txt
-npc: npc/068-2/_warps.txt
-npc: npc/068-2/bank.txt
-npc: npc/068-2/hetchel.txt
-npc: npc/068-2/inya.txt
-npc: npc/068-2/latoy.txt
-npc: npc/068-2/mapflags.txt
diff --git a/world/map/npc/068-2/_mobs.txt b/world/map/npc/068-2/_mobs.txt
deleted file mode 100644
index c0b6cd10..00000000
--- a/world/map/npc/068-2/_mobs.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Tulimshar Noble Indoors mobs
-
-068-2.gat,94,54,5,6|monster|Silkworm|1035,4,10000ms,85000ms,Mob068-2::On1035
-
-
-068-2.gat,0,0,0|script|Mob068-2|-1
-{
- end;
-
-On1035:
- set @mobID, 1035;
- callfunc "MobPoints";
- end;
-}
diff --git a/world/map/npc/068-2/_warps.txt b/world/map/npc/068-2/_warps.txt
deleted file mode 100644
index 3776ed28..00000000
--- a/world/map/npc/068-2/_warps.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Tulimshar Noble Indoors warps
-
-068-2.gat,89,92|warp|To Noble Quarter|-1,-1,068-1.gat,56,97
-068-2.gat,61,92|warp|To Noble Quarter|-1,-1,068-1.gat,50,97
-068-2.gat,94,61|warp|To Noble Quarter|-1,-1,068-1.gat,42,97
-068-2.gat,62,61|warp|To Noble Quarter|-1,-1,068-1.gat,47,39
-068-2.gat,31,92|warp|To Noble Quarter|-1,-1,068-1.gat,30,97
-068-2.gat,31,61|warp|To Noble Quarter|-1,-1,068-1.gat,29,85
-068-2.gat,76,30|warp|To Noble Quarter|-1,-1,068-1.gat,40,80
-068-2.gat,36,30|warp|To Noble Quarter|-1,-1,068-1.gat,52,49
-068-2.gat,84,50|warp|To Garden|-1,-1,068-1.gat,38,89
-068-2.gat,58,51|warp|To Noble Quarter|-1,-1,068-1.gat,47,30
diff --git a/world/map/npc/068-2/mapflags.txt b/world/map/npc/068-2/mapflags.txt
deleted file mode 100644
index 4968bf61..00000000
--- a/world/map/npc/068-2/mapflags.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-068-2.gat|mapflag|town
-068-2.gat|mapflag|resave|001-1,57,71
diff --git a/world/map/npc/069-2/_import.txt b/world/map/npc/069-2/_import.txt
deleted file mode 100644
index 250938b3..00000000
--- a/world/map/npc/069-2/_import.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-// Map 069-2: Tulimshar Castle Indoors
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-map: 069-2.gat
-npc: npc/069-2/_mobs.txt
-npc: npc/069-2/_warps.txt
-npc: npc/069-2/mapflags.txt
-npc: npc/069-2/wizards.txt
diff --git a/world/map/npc/069-2/_mobs.txt b/world/map/npc/069-2/_mobs.txt
deleted file mode 100644
index 561eec94..00000000
--- a/world/map/npc/069-2/_mobs.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Tulimshar Castle Indoors mobs
-
-
-
-069-2.gat,0,0,0|script|Mob069-2|-1
-{
- end;
-}
diff --git a/world/map/npc/069-2/_warps.txt b/world/map/npc/069-2/_warps.txt
deleted file mode 100644
index c556dd8e..00000000
--- a/world/map/npc/069-2/_warps.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Tulimshar Castle Indoors warps
-
-069-2.gat,24,31|warp|to Tulmishar Castle Out|-1,-1,069-1.gat,90,101
-069-2.gat,55,31|warp|to Tulmishar Castle Out|-1,-1,069-1.gat,98,80
-069-2.gat,86,31|warp|to Tulmishar Castle Out|-1,-1,069-1.gat,98,58
-069-2.gat,117,31|warp|to Tulmishar Castle Out|-1,-1,069-1.gat,90,41
-069-2.gat,24,62|warp|to Tulmishar Castle Out|-1,-1,069-1.gat,44,41
-069-2.gat,55,62|warp|to Tulmishar Castle Out|-1,-1,069-1.gat,35,58
-069-2.gat,86,62|warp|to Tulmishar Castle Out|-1,-1,069-1.gat,35,80
-069-2.gat,117,62|warp|to Tulmishar Castle Out|-1,-1,069-1.gat,43,100
-069-2.gat,45,127|warp|to Tulmishar Castle Out|2,-1,069-1.gat,66,57
-069-2.gat,45,83|warp|to Tulmishar Castle Thr|2,-1,069-2.gat,106,116
-069-2.gat,107,117|warp|to Tulmishar Castle Mai|2,-1,069-2.gat,44,84
-069-2.gat,107,117|warp|to Tulmishar Castle Mai|2,-1,069-2.gat,44,84
-069-2.gat,116,127|warp|to Tulmishar Castle Par|1,-1,069-1.gat,69,42
-069-2.gat,97,127|warp|to Tulmishar Castle Par|1,-1,069-1.gat,64,42
diff --git a/world/map/npc/069-2/mapflags.txt b/world/map/npc/069-2/mapflags.txt
deleted file mode 100644
index 7c8e2695..00000000
--- a/world/map/npc/069-2/mapflags.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-069-2.gat|mapflag|town
-069-2.gat|mapflag|resave|001-1,57,71
diff --git a/world/map/npc/069-2/wizards.txt b/world/map/npc/069-2/wizards.txt
deleted file mode 100644
index 1d827d18..00000000
--- a/world/map/npc/069-2/wizards.txt
+++ /dev/null
@@ -1,60 +0,0 @@
-// Council of Ruling Wizards Room
-
-// manaseed
-069-2.gat,106,82,0|script|Desert Mana Seed#_M|166
-{
- end;
-}
-
-//
-069-2.gat,101,85,0|script|Wizard#1|355
-{
- end;
-}
-
-//
-069-2.gat,94,87,0|script|Wizard#2|356
-{
- end;
-}
-
-//
-069-2.gat,94,93,0|script|Wizard#3|357
-{
- end;
-}
-
-//
-069-2.gat,101,95,0|script|Wizard#4|358
-{
- end;
-}
-
-//
-069-2.gat,112,85,0|script|Wizard#5|359
-{
- end;
-}
-
-//
-069-2.gat,119,87,0|script|Wizard#6|360
-{
- end;
-}
-
-//
-069-2.gat,119,93,0|script|Wizard#7|361
-{
- end;
-}
-
-//
-069-2.gat,112,95,0|script|Wizard#8|362
-{
- end;
-}
-//
-069-2.gat,106,90,0|script|Arch-Wizard#9|354
-{
- end;
-}
diff --git a/world/map/npc/_import.txt b/world/map/npc/_import.txt
index 71a3e3c5..2c9758ca 100644
--- a/world/map/npc/_import.txt
+++ b/world/map/npc/_import.txt
@@ -8,16 +8,10 @@ import: npc/002-2/_import.txt
import: npc/002-3/_import.txt
import: npc/002-4/_import.txt
import: npc/002-5/_import.txt
-import: npc/003-1/_import.txt
-import: npc/003-2/_import.txt
-import: npc/004-1/_import.txt
-import: npc/004-2/_import.txt
import: npc/004-3/_import.txt
import: npc/004-4/_import.txt
import: npc/004-5/_import.txt
-import: npc/005-1/_import.txt
import: npc/005-3/_import.txt
-import: npc/005-4/_import.txt
import: npc/006-1/_import.txt
import: npc/006-2/_import.txt
import: npc/006-3/_import.txt
@@ -61,17 +55,7 @@ import: npc/019-4/_import.txt
import: npc/020-1/_import.txt
import: npc/020-2/_import.txt
import: npc/020-3/_import.txt
-import: npc/021-1/_import.txt
-import: npc/021-2/_import.txt
import: npc/021-3/_import.txt
-import: npc/022-1/_import.txt
-import: npc/023-1/_import.txt
-import: npc/023-2/_import.txt
-import: npc/023-3/_import.txt
-import: npc/024-1/_import.txt
-import: npc/024-2/_import.txt
-import: npc/024-3/_import.txt
-import: npc/024-4/_import.txt
import: npc/025-1/_import.txt
import: npc/025-3/_import.txt
import: npc/025-4/_import.txt
@@ -87,6 +71,7 @@ import: npc/027-8/_import.txt
import: npc/028-1/_import.txt
import: npc/028-3/_import.txt
import: npc/029-1/_import.txt
+import: npc/029-2/_import.txt
import: npc/029-3/_import.txt
import: npc/030-1/_import.txt
import: npc/030-2/_import.txt
@@ -96,18 +81,12 @@ import: npc/031-1/_import.txt
import: npc/031-2/_import.txt
import: npc/031-3/_import.txt
import: npc/031-4/_import.txt
-import: npc/032-1/_import.txt
import: npc/032-3/_import.txt
import: npc/033-1/_import.txt
import: npc/034-1/_import.txt
import: npc/034-2/_import.txt
import: npc/035-2/_import.txt
import: npc/036-2/_import.txt
-import: npc/041-1/_import.txt
-import: npc/042-1/_import.txt
-import: npc/042-2/_import.txt
-import: npc/042-3/_import.txt
-import: npc/043-1/_import.txt
import: npc/043-3/_import.txt
import: npc/043-4/_import.txt
import: npc/044-1/_import.txt
@@ -127,8 +106,4 @@ import: npc/055-3/_import.txt
import: npc/056-1/_import.txt
import: npc/056-2/_import.txt
import: npc/057-1/_import.txt
-import: npc/068-1/_import.txt
-import: npc/068-2/_import.txt
-import: npc/069-1/_import.txt
-import: npc/069-2/_import.txt
import: npc/botcheck/_import.txt
diff --git a/world/map/npc/scripts.conf b/world/map/npc/scripts.conf
index af6ea91f..77e9c8a8 100644
--- a/world/map/npc/scripts.conf
+++ b/world/map/npc/scripts.conf
@@ -24,6 +24,7 @@ npc: npc/functions/default_npc_checks.txt
npc: npc/functions/undead_debug.txt
npc: npc/functions/headstyles.txt
npc: npc/functions/global_event_handler.txt
+npc: npc/functions/stat_reset.txt
// Item Functions
npc: npc/items/magic_gm_top_hat.txt