summaryrefslogtreecommitdiff
path: root/world/map/npc/029-2
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/029-2')
-rw-r--r--world/map/npc/029-2/_import.txt18
-rw-r--r--world/map/npc/029-2/_mobs.txt4
-rw-r--r--world/map/npc/029-2/_nodes.txt16
-rw-r--r--world/map/npc/029-2/_warps.txt9
-rw-r--r--world/map/npc/029-2/alchemy.txt138
-rw-r--r--world/map/npc/029-2/bankroom.txt9
-rw-r--r--world/map/npc/029-2/barrels.txt55
-rw-r--r--world/map/npc/029-2/barrels_config.txt88
-rw-r--r--world/map/npc/029-2/cynric.txt8
-rw-r--r--world/map/npc/029-2/mapflags.txt3
-rw-r--r--world/map/npc/029-2/morgan.txt120
-rw-r--r--world/map/npc/029-2/nyle.txt51
-rw-r--r--world/map/npc/029-2/sorfina.txt419
-rw-r--r--world/map/npc/029-2/stat_reset.txt51
-rw-r--r--world/map/npc/029-2/tanisha.txt291
-rw-r--r--world/map/npc/029-2/two_arms.txt4
16 files changed, 0 insertions, 1284 deletions
diff --git a/world/map/npc/029-2/_import.txt b/world/map/npc/029-2/_import.txt
deleted file mode 100644
index b87b6dc1..00000000
--- a/world/map/npc/029-2/_import.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-// Map 029-2: Candor Island Indoor
-// This file is generated automatically. All manually added changes will be removed when running the Converter.
-map: 029-2
-npc: npc/029-2/_mobs.txt
-npc: npc/029-2/_nodes.txt
-npc: npc/029-2/_warps.txt
-npc: npc/029-2/alchemy.txt
-npc: npc/029-2/bankroom.txt
-npc: npc/029-2/barrels.txt
-npc: npc/029-2/barrels_config.txt
-npc: npc/029-2/cynric.txt
-npc: npc/029-2/mapflags.txt
-npc: npc/029-2/morgan.txt
-npc: npc/029-2/nyle.txt
-npc: npc/029-2/sorfina.txt
-npc: npc/029-2/stat_reset.txt
-npc: npc/029-2/tanisha.txt
-npc: npc/029-2/two_arms.txt
diff --git a/world/map/npc/029-2/_mobs.txt b/world/map/npc/029-2/_mobs.txt
deleted file mode 100644
index a63fae65..00000000
--- a/world/map/npc/029-2/_mobs.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-// This file is generated automatically. All manually added changes will be removed when running the Converter.
-// Candor Island Indoor mobs
-
-029-2,33,57,24,7|monster|HouseMaggot|1050,7,100000ms,30000ms
diff --git a/world/map/npc/029-2/_nodes.txt b/world/map/npc/029-2/_nodes.txt
deleted file mode 100644
index 9e38e0e1..00000000
--- a/world/map/npc/029-2/_nodes.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-// This file is generated automatically. All manually added changes will be removed when running the Converter.
-// Candor Island Indoor nodes
-
-029-2,0,0,0|script|Node029-2|32767
-{
- end;
-OnInit:
- setarray .m$, "_N-Alchemy", "029-2";
- setarray .x1, "_N-Alchemy", 113;
- setarray .y1, "_N-Alchemy", 57;
- setarray .x2, "_N-Alchemy", 0;
- setarray .y2, "_N-Alchemy", 0;
- setarray .id, "_N-Alchemy", 0;
- donpcevent "_N-Alchemy::OnMaybeStart";
- destroy;
-}
diff --git a/world/map/npc/029-2/_warps.txt b/world/map/npc/029-2/_warps.txt
deleted file mode 100644
index 26c5ed80..00000000
--- a/world/map/npc/029-2/_warps.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-// This file is generated automatically. All manually added changes will be removed when running the Converter.
-// Candor Island Indoor warps
-
-029-2,29,62|warp|-1,-1,029-1,40,89
-029-2,22,93|warp|-1,-1,029-1,44,84
-029-2,112,84|warp|-1,-1,029-2,44,30
-029-2,103,62|warp|-1,-1,029-1,52,85
-029-2,94,31|warp|-1,-1,029-1,58,80
-029-2,24,124|warp|-1,-1,029-1,49,78
diff --git a/world/map/npc/029-2/alchemy.txt b/world/map/npc/029-2/alchemy.txt
deleted file mode 100644
index 7bc58337..00000000
--- a/world/map/npc/029-2/alchemy.txt
+++ /dev/null
@@ -1,138 +0,0 @@
--|script|_N-Alchemy|32767
-{
- set @npc_distance, 1;
- callfunc "PCtoNPCRange";
- if (@npc_check) end;
-
- title "Alchemy Lab";
- mes "This is an alchemy lab.";
- mes "With it, you can combine reagents together to create powerful potions.";
- next;
- clear;
- mes "##BDrag & drop 2 items from your inventory. All items used will be lost.##b";
- cleararray @alchlab_items$[0], "", 2; // since we're not using a scoped (.@) array, we need to clean it
- requestitem @alchlab_items$[0], 2; // TODO: add a craft builtin (npc action 12)
- clear;
- if (@alchlab_items$[0] == "" || @alchlab_items$[1] == "")
- goto L_NoItems;
-
- mes "You are about to combine the following:";
- mes " ["+ getitemlink(@alchlab_items$[0]) +"]";
- mes " ["+ getitemlink(@alchlab_items$[1]) +"]";
- mes;
- mes "##BWarning! This will permanently destroy the selected items.##b";
- // can not use a scope variable to store item names because menu is a script terminator (destroys the scope)
- menu
- "Abort Mission.", L_Abort,
- "Proceed.", L_Proceed,
- "I want to make several.", L_Multi;
-
-L_Proceed:
- // XXX: here we could make it wait a little, while the potion is boiling (and show an animation/particles/sound)
- if (countitem(@alchlab_items$[0]) < 1 || countitem(@alchlab_items$[1]) < 1) // this shouldn't happen, but just to be safe..
- goto L_NoItems;
- delitem @alchlab_items$[0], 1;
- delitem @alchlab_items$[1], 1;
- if (@alchlab_items$[0] == "BottleOfWater" || @alchlab_items$[1] == "BottleOfWater") // give back used bottles
- getitem "EmptyBottle", if_then_else(@alchlab_items$[0] == "BottleOfWater" && @alchlab_items$[1] == "BottleOfWater",2,1);
-
- set .@n, -3;
- goto L_CheckRecipes;
-
-L_CheckRecipes:
- set .@n, .@n+3;
- if (.@n == get(.rsize, "_N-Alchemy"))
- goto L_Failed;
- if (!(get(.recipes$[.@n], "_N-Alchemy") == @alchlab_items$[0] && get(.recipes$[.@n+1], "_N-Alchemy") == @alchlab_items$[1]) &&
- !(get(.recipes$[.@n], "_N-Alchemy") == @alchlab_items$[1] && get(.recipes$[.@n+1], "_N-Alchemy") == @alchlab_items$[0]))
- goto L_CheckRecipes;
-
- getitem get(.recipes$[.@n+2], "_N-Alchemy"), 1; // XXX: here we could also make it fail sometimes depending on your expertise
-
- // XXX: here we could make it give profession/crafting exp
- clear;
- mes "You combined the following:";
- mes " ["+ getitemlink(@alchlab_items$[0]) +"]";
- mes " ["+ getitemlink(@alchlab_items$[1]) +"]";
- mes;
- mes "You obtained:";
- mes " ["+ getitemlink(get(.recipes$[.@n+2], "_N-Alchemy")) +"]";
- close;
-
-L_NoItems:
- mes "You must put exactly 2 items.";
- close;
-
-L_Failed:
- mes "The potion bubbles violently and evaporates."; // XXX: here we could have random failure messages
- close;
-
-L_Abort:
- close;
-
-// Bikeshedding starts here
-L_Multi:
- mes "How many?";
- mes "##BWarning! This will permanently destroy the selected items.##b";
- input @count;
- if (@count == 0)
- close;
-
- if (countitem(@alchlab_items$[0]) < @count || countitem(@alchlab_items$[1]) < @count)
- goto L_NoItems;
- delitem @alchlab_items$[0], @count;
- delitem @alchlab_items$[1], @count;
- if (@alchlab_items$[0] == "BottleOfWater" || @alchlab_items$[1] == "BottleOfWater")
- getitem "EmptyBottle", if_then_else(@alchlab_items$[0] == "BottleOfWater" && @alchlab_items$[1] == "BottleOfWater",2*@count,@count);
-
- set .@n, -3;
- goto L_CheckRecipesMulti;
-
-L_CheckRecipesMulti:
- set .@n, .@n+3;
- if (.@n == get(.rsize, "_N-Alchemy"))
- goto L_Failed;
- if (!(get(.recipes$[.@n], "_N-Alchemy") == @alchlab_items$[0] && get(.recipes$[.@n+1], "_N-Alchemy") == @alchlab_items$[1]) &&
- !(get(.recipes$[.@n], "_N-Alchemy") == @alchlab_items$[1] && get(.recipes$[.@n+1], "_N-Alchemy") == @alchlab_items$[0]))
- goto L_CheckRecipesMulti;
-
- getitem get(.recipes$[.@n+2], "_N-Alchemy"), @count;
-
- clear;
- mes "You combined the following:";
- mes " ["+ getitemlink(@alchlab_items$[0]) +"]";
- mes " ["+ getitemlink(@alchlab_items$[1]) +"]";
- mes;
- mes "You obtained:";
- mes " ["+ getitemlink(get(.recipes$[.@n+2], "_N-Alchemy")) +"]";
- close;
-// Bikeshedding ends here
-
-S_Spawn:
- set .@s, getarraysize(.x1);
- if (.spawned >= .@s)
- goto S_Return;
- set .@n$, "#_Al-lab"+chr(3)+.spawned;
- if (puppet(.m$[.spawned], .x1[.spawned], .y1[.spawned], .@n$, 399) < 1) mapexit;
- set .spawned, .spawned + 1;
- if (.spawned < .@s)
- goto S_Spawn;
- return;
-
-S_Return:
- return;
-
-OnMaybeStart:
- callsub S_Spawn;
- if (.started == 0)
- goto L_InitVars;
- end;
-
-L_InitVars:
- setarray .recipes$[0], 0,
- "DilutedConcentrationPot", "DarkConcentrationPotion", "ConcentrationPotion",
- "CactusDrink", "CactusDrink", "CactusPotion",
- "PinkPetal", "BottleOfWater", "ConcentrationPotion";
- set .rsize, getarraysize(.recipes$);
- end;
-}
diff --git a/world/map/npc/029-2/bankroom.txt b/world/map/npc/029-2/bankroom.txt
deleted file mode 100644
index 44dc3b4d..00000000
--- a/world/map/npc/029-2/bankroom.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-// Nyle is part of the Tutorial.
-// He explains how to use the bank.
-// Author: Cassy
-
-029-2,35,122,0|script|#BankRoom|32767,0,0
-{
- message strcharinfo(0), "The door is locked. This must be where Cynric saves the people's money and items.";
- end;
-}
diff --git a/world/map/npc/029-2/barrels.txt b/world/map/npc/029-2/barrels.txt
deleted file mode 100644
index 39bd0ad3..00000000
--- a/world/map/npc/029-2/barrels.txt
+++ /dev/null
@@ -1,55 +0,0 @@
-// Barrels
-// Author: Wushin
-029-2,23,86,0|script|Barrel#0|400
-{
- set @barrel, 0;
- callfunc "CheckBarrel";
- end;
-
-OnMaggotDeath:
- set @mobID, 1050;
- callfunc "MobPoints";
- end;
-}
-029-2,28,86,0|script|Barrel#1|400
-{
- set @barrel, 1;
- callfunc "CheckBarrel";
- end;
-}
-029-2,31,91,0|script|Barrel#2|400
-{
- set @barrel, 2;
- callfunc "CheckBarrel";
- end;
-}
-029-2,36,85,0|script|Barrel#3|400
-{
- set @barrel, 3;
- callfunc "CheckBarrel";
- end;
-}
-029-2,40,89,0|script|Barrel#4|400
-{
- set @barrel, 4;
- callfunc "CheckBarrel";
- end;
-}
-029-2,38,91,0|script|Barrel#5|400
-{
- set @barrel, 5;
- callfunc "CheckBarrel";
- end;
-}
-029-2,29,92,0|script|Barrel#6|400
-{
- set @barrel, 6;
- callfunc "CheckBarrel";
- end;
-}
-029-2,24,91,0|script|Barrel#7|400
-{
- set @barrel, 7;
- callfunc "CheckBarrel";
- end;
-}
diff --git a/world/map/npc/029-2/barrels_config.txt b/world/map/npc/029-2/barrels_config.txt
deleted file mode 100644
index 9fe9de71..00000000
--- a/world/map/npc/029-2/barrels_config.txt
+++ /dev/null
@@ -1,88 +0,0 @@
-// Barrels
-// Author: Wushin
-029-2,33,88,24,7|monster|HouseMaggot|1050,2,100000ms,30000ms,Barrel#0::OnMaggotDeath
--|script|#BarrelConfig|32767
-{
- end;
-
-OnInit:
- setarray $@BarrelBits, (1 << 20), (1 << 21), (1 << 22), (1 << 23), (1 << 24), (1 << 25), (1 << 26), (1 << 27);
- setarray $@BarrelRewards, 533, 507, 505, 518, 537, 526;
- set $@BarrelSpawnCnt, 1;
- set $@BarrelSpawnId, 1050;
- set $@BarrelMax, getarraysize($@BarrelBits);
- end;
-}
-function|script|CountBarrels
-{
- set @barrel_count, 0;
- set @count_tmp, 0;
- goto L_Loop;
-
-L_Loop:
- if (STARTAREA & $@BarrelBits[@barrel_count])
- goto L_AddOne;
- goto L_LoopAgain;
-
-L_AddOne:
- set @barrel_count, (@barrel_count + 1);
- goto L_LoopAgain;
-
-L_LoopAgain:
- set @count_tmp, (@count_tmp + 1);
- if (@count_tmp == getarraysize($@BarrelBits))
- goto L_BarrelTally;
- goto L_Loop;
-
-L_BarrelTally:
- return;
-}
-function|script|CheckBarrel
-{
- set @npc_distance, 2;
- callfunc "PCtoNPCRange";
- if(@npc_check) goto L_Return;
- if (!(QL_ZEGAS == 2))
- goto L_NoI;
- if (STARTAREA & $@BarrelBits[@barrel])
- goto L_Empty;
- set STARTAREA, STARTAREA | $@BarrelBits[@barrel];
-
- callfunc "CountBarrels";
- if (@barrel_count == $@BarrelMax)
- goto L_QuestReward;
- set @player_random, rand(@barrel_count * 10);
- set @barrel_random, rand(@barrel_count * $@BarrelMax);
- if (@barrel_random > @player_random)
- goto L_Spawn;
- goto L_Reward;
-
-L_NoI:
- message strcharinfo(0), "Nothing interesting here.";
- goto L_Return;
-
-L_Empty:
- message strcharinfo(0), "You've already searched this barrel.";
- goto L_Return;
-
-L_QuestReward:
- message strcharinfo(0), "You found the bug bomb.";
- misceffect 33;
- set QL_ZEGAS, 3;
- killmonster getmap() + "", "Barrel#0::OnMaggotDeath";
- goto L_Return;
-
-L_Spawn:
- message strcharinfo(0), "Uck, More Maggots!";
- setarray @npc_loc, getnpcx(), getnpcy();
- areamonster getmap(), @npc_loc[0], @npc_loc[1], (@npc_loc[0] + 1), (@npc_loc[1] + 1), "", $@BarrelSpawnId, $@BarrelSpawnCnt, "Barrel#0::OnMaggotDeath";
- cleararray @npc_loc, 0, 2;
- goto L_Return;
-
-L_Reward:
- getitem $@BarrelRewards[rand(getarraysize($@BarrelRewards))], 1;
- goto L_Return;
-
-L_Return:
- return;
-}
diff --git a/world/map/npc/029-2/cynric.txt b/world/map/npc/029-2/cynric.txt
deleted file mode 100644
index 2a133e41..00000000
--- a/world/map/npc/029-2/cynric.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-//
-
-029-2,30,118,0|script|Cynric|161
-{
- set @npcname$, "Cynric";
- callfunc "Banker";
- close;
-}
diff --git a/world/map/npc/029-2/mapflags.txt b/world/map/npc/029-2/mapflags.txt
deleted file mode 100644
index 09b62b45..00000000
--- a/world/map/npc/029-2/mapflags.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-029-2|mapflag|nosave|029-2,22,24
-029-2|mapflag|resave|029-2,22,24
-029-2|mapflag|mask|1
diff --git a/world/map/npc/029-2/morgan.txt b/world/map/npc/029-2/morgan.txt
deleted file mode 100644
index a72bfa1d..00000000
--- a/world/map/npc/029-2/morgan.txt
+++ /dev/null
@@ -1,120 +0,0 @@
-// Tut mage
-// Author: Wushin
-// Gains Access to Magic School
-// See 024-2 clean that shit up
-// Morgan, liana
-029-2,105,57,0|script|MorganDebug|355
-{
- mes "[Morgan Debug]";
- mes "Reset?";
- menu
- "Yes.", L_Reset,
- "No.", L_End;
-L_Reset:
- set QL_MORGAN, 0;
- mes "Reset!";
- goto L_End;
-
-L_End:
- end;
-
-OnInit:
- if (!debug)
- disablenpc "MorganDebug";
- end;
-}
-029-2,101,57,0|script|Morgan#_M|355
-{
- callfunc "PCtoNPCRange";
- if(@npc_check) end;
-
- if (Int >= 5)
- goto L_Learn;
- goto L_NotMagic;
-
-L_Learn:
- if (QL_MORGAN == 0)
- goto L_NotSeen;
- if (QL_MORGAN == 1)
- goto L_Seen;
- if (QL_MORGAN == 2)
- goto L_Started;
- if (QL_MORGAN == 3)
- goto L_CastOnce;
- if (QL_MORGAN == 4)
- goto L_LearningDone;
- goto L_Close;
-
-L_NotSeen:
- set QL_MORGAN, 1;
- mes "[Morgan]";
- mes "\"Welcome to the magic school of Candor\"";
- mes "\"My name is Morgan, I'm Head of Wizardry.\"";
- mes "\"You appear to have the markings to use magic.\"";
- mes "\"Granted you are still to young to cast spells.\"";
- mes "\"But we can teach you to use simple magic devices.\"";
- mes "\"Would you like to learn some apprentice skills?\"";
- menu
- "Yes.", L_Start,
- "Maybe later", L_Close;
-
-L_Seen:
- mes "[Morgan]";
- mes "\"Have you returned to learn some magic?\"";
- menu
- "Yes.", L_Start,
- "Maybe later", L_Close;
-
-L_NotMagic:
- mes "[Morgan]";
- mes "\"Hrmm you don't appear to posses enough magical talent to teach.\"";
- goto L_Close;
-
-L_Start:
- set QL_MORGAN, 2;
- mes "\"Great, lets begin your first lesson.\"";
- getitem 1171, 1;
- mes "\"This is a wand, there are many like it but this one is now yours.\"";
- mes "\"Various wands and staffs are found throughout the land with many different strengths and weaknesses.\"";
- mes "\"To use the wand you need to have it equipped and speak the incantation to let it tap into your mana.\"";
- mes "\"As the power of your magic grows so will the spells you can cast.\"";
- mes "\"Lets start with a basic wand attack. " + get(.invocation$, "spell-wand") + "\"";
- mes "\"Equip the wand and lets try out that spell.\"";
- mes "\"To cast a spell open the chat window, type the invocation and press enter.\"";
- mes "\"Speak to me again once you've cast the spell.\"";
- goto L_Close;
-
-L_Started:
- mes "[Morgan]";
- mes "\"Lets start with a basic wand attack. " + get(.invocation$, "spell-wand") + "\"";
- mes "\"Equip the wand and lets try out that spell.\"";
- mes "\"To cast a spell open the chat window, type the invocation and press enter.\"";
- mes "\"Speak to me again once you've cast the spell.\"";
- goto L_Close;
-
-L_CastOnce:
- mes "[Morgan]";
- mes "\"Ok, good job! Looks like you have good mana flow.\"";
- mes "\"Onto the next lesson. Now that you have " + get(.invocation$, "spell-wand") + " cast,\"";
- mes "\"Each time you attack the wand will convert a bit of you mana into a magic bolt.\"";
- mes "\"After so many attacks, you will need to recast the invocation to stay attuned to the wand.\"";
- mes "\"(Logging out will also cancel any spell effects currently active in-game.).\"";
- next;
- mes "\"I've taught you all I can for now. You should visit the Mana Seed north west of Hurnscald.\"";
- set QL_MORGAN, 4;
- goto L_Close;
-
-L_LearningDone:
- mes "[Morgan]";
- mes "\"" + get(.invocation$, "spell-wand") + " is a basic wand attack.\"";
- mes "\"A Wand must be equipped to use the spell.\"";
- mes "\"To cast a spell open the chat window, type the invocation and press enter.\"";
- mes "\"You can also discharge any active spell by saying " + get(.invocation$, "discharge spell") + ".\"";
- mes "\"I've taught you all I can for now. You should visit the Mana Seed north west of Hurnscald.\"";
- goto L_Close;
-
-L_Close:
- close;
-}
-
-029-2,113,59,0|shop|Zitoni|103,CactusDrink:*1,CactusPotion:*1,TinyManaElixir:*5,SmallManaElixir:*5
diff --git a/world/map/npc/029-2/nyle.txt b/world/map/npc/029-2/nyle.txt
deleted file mode 100644
index f705b585..00000000
--- a/world/map/npc/029-2/nyle.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-// Nyle is part of the Tutorial.
-// He explains how to use the bank.
-// Author: Cassy
-
-029-2,26,120,6|script|Nyle|101
-{
- mes "[Nyle]";
- mes "\"Visiting the bank too right? We're only a small village but Cynric is the best bank guy I know.\"";
- menu
- "Yeah, you're right.", L_Close,
- "What is banking?", L_Explain;
-
-L_Explain:
- mes "[Nyle]";
- mes "\"There are banks all over the world. Usually every important village or city has one.";
- mes "You can save both items and money at a bank.\"";
- menu
- "How do I save items?", L_Items,
- "How do I save money?", L_Money,
- "Thanks!", L_Thanks;
-
-L_Items:
- mes "[Nyle]";
- mes "\"Let Cynric open your storage. You might also want to open your inventory.";
- mes "Pick an item from either storage or inventory and choose what you want to do with it by clicking the right button.";
- mes "You can also pick and drag items from one window into the other but this will move all items of this kind.";
- next;
- mes "Items in your storage are totally safe. Banking itself is totally safe.\"";
- menu
- "And how do I save money?", L_Money,
- "Thanks!", L_Thanks;
-
-L_Money:
- mes "[Nyle]";
- mes "\"That's easy. Cynric will save your money when you ask him to deposit. Or you pick up your money by asking to withdraw.";
- mes "You only have to tell him how much you want to deposit or withdraw.";
- mes "Also you can ask how much he already save for you by checking your balance.";
- next;
- mes "Money in your storage is totally safe. Banking itself is totally safe.\"";
- menu
- "And how do I save items?", L_Items,
- "Thanks!", L_Thanks;
-
-L_Thanks:
- mes "[Nyle]";
- mes "\"You are very welcome.\"";
- goto L_Close;
-
-L_Close:
- close;
-}
diff --git a/world/map/npc/029-2/sorfina.txt b/world/map/npc/029-2/sorfina.txt
deleted file mode 100644
index 7c6a589f..00000000
--- a/world/map/npc/029-2/sorfina.txt
+++ /dev/null
@@ -1,419 +0,0 @@
-// This file is part of the Tutorial
-// Author: Jenalya
-029-2,27,27,0|script|Sorfina|154,0,1
-{
- set @npc_distance, 2;
- callfunc "PCtoNPCRange";
- if(@npc_check) end;
- goto L_Main;
-
-L_Main:
- if (QL_BEGIN == 10) goto L_Hasan;
- if (QL_BEGIN >= 4) goto L_Again;
- if (QL_BEGIN == 3) goto L_Clothes;
- if (QL_BEGIN == 2) goto L_Dresser;
- if (QL_BEGIN == 1) goto L_Carpet;
- goto L_Start;
-
-L_Start:
- mes "You open your eyes.";
- mes "";
- mes "[Old Woman]";
- mes "\"Ah, you woke up. You washed ashore on the beach 3 days ago. You've been asleep since.";
- mes "You must have been thrown off one of the ships sailing during that last tremor.\"";
- mes "\"My little granddaughter Tanisha found you. Kaan was able to carry you to bed.";
- mes "We've been taking care of you ever since. Waiting for you to wake up.\"";
- mes "\"You didn't have any possessions on you when we found you and no one knows who you are.\"";
- mes "Do you have a name?";
- menu
- strcharinfo(0), L_Name;
-
-L_Name:
- mes "[Old Woman]";
- mes "\"Well " + strcharinfo(0) + " what else can you tell me about yourself?.\"";
- menu
- "I'm a woman from ...", L_Woman,
- "I'm a man that lived in ...", L_Man,
- "My home is in ...", L_N;
-
-L_Woman:
- set Sex, 0;
- goto L_Species;
-
-L_Man:
- set Sex, 1;
- goto L_Species;
-
-L_N:
- set Sex, 2;
- goto L_Species;
-
-L_Species:
- mes "[Old Woman]";
- mes "\"Go on. If you need to think a bit, take your time.\"";
- menu
- "... Tulimshar in Tonori ... I'm a Talpan.", L_Talpan;
-
-L_Talpan:
- set Class, 1;
- goto L_AnythingElse;
-
-L_AnythingElse:
- mes "[Old Woman]";
- mes "\"Anything else you can remember?\"";
- menu
- "Umm... no... I... I don't remember anything else...", L_KnowNothing;
-
-L_KnowNothing:
- mes "[Old Woman]";
- mes "\"Well I can tell you some useful things, if you want to hear.";
- mes "Some of it might jog your memory or at least help you catch your bearings.";
- mes "Oh, and by the way my name is Sorfina.\"";
- menu
- "That would be great!",L_Tut,
- "No, thanks. I already know how things are going.",L_SkipTut;
-
-L_Tut:
- mes "She smiles at you.";
- mes "[Sorfina]";
- mes "\"You have arrived at a very strange time. The Council is visiting Candor today.\"";
- mes "\"All the recent rumbling from the cave has all of Candor worried.\"";
- mes "\"Our guess is something with the last big shaker was the reason you ended up here.\"";
- mes "\"Ok, lets start by getting you dressed.\"";
- goto L_Carpet;
-
-L_Carpet:
- mes "[Sorfina]";
- mes "\"Try to take a few steps and walk to that carpet over there.";
- next;
- camera "#Carpet";
- mapmask getmask() | 4;
- next;
- camera;
- mes "Press [###keyMoveUp;] to move up, press [###keyMoveDown;] to move down, ";
- mes "press [###keyMoveLeft;] to move left, press [###keyMoveRight;] to move right ";
- mes " or click on the place you want to go to.\"";
- set QL_BEGIN, 1;
- goto L_Close;
-
-L_Dresser:
- mes "[Sorfina]";
- mes "\"You should get dressed now.\"";
- next;
- camera "Dresser#tutorial";
- mapmask getmask() | 32;
- mes "\"In that dresser there are some clothes you can wear.\"";
- mes "\"To interact with things in your environment or talk to NPCs you can either click on it or press [###keyTargetNPC;] to focus and [###keyTalk;] to talk/activate.\"";
- next;
- camera;
- mes "\"Now get the clothes out of the dresser.\"";
- goto L_Close;
-
-L_Naked:
- mes "[Sorfina]";
- mes "\"Press [###keyWindowInventory;] or click on the Inventory button in the bar at the upper right corner to open your bag.\"";
- mes "\"Once we stop talking, double-click on the clothes to equip.\"";
- mes "\"Talk to me again after you get dressed. You can either click on me, or press [###keyTargetNPC;] to focus on me and [###keyTalk;] to talk.\"";
- goto L_Close;
-
-L_Clothes:
- if (getequipid(equip_torso) < 0)
- goto L_Naked;
- mes "[Sorfina]";
- mes "\"That's much better, don't you think?\"";
- mes "\"Here take this.\"";
- getitem "HitchhikersTowel", 1;
- mes "\"Your HitchHikers Towel will return you to your last set soul menhir or here if not set.\"";
- mes "\"It can't be used constantly as the magic needs time to power the jump.\"";
- mes "\"I think this will help you a bit. To get more information, press the button Setup and look at the controls on the Keyboard tab. You can also change them as you like.";
- mes "Talk to me again if you want me to explain more things.\"";
-
- mes "\"Oh, and if you're looking for extra work, you should talk to Aidan and Valon when you go outside. They're giving rewards for monster hunting.";
- mes "You can find Aidan near the camp fire outside and Valon out by the fields in the east.\"";
- next;
-
- mes "She digs in her pocket for a moment.";
- mes "\"And here is some money for you. Don't spend it all in one place.";
- mes "Now go help Tanisha downstairs.\"";
- mapmask getmask() | 8;
- set Zeny, Zeny + 30;
- set QL_BEGIN, 4;
- goto L_Close;
-
-L_Again:
- mes "[Sorfina]";
- mes "\"Make yourself at home! Do you have any questions?\"";
- menu
- "Yes, could you explain about...",L_Explain,
- "Could I get Healed?",L_Heal,
- "No, thanks.",L_Close;
-
-L_Heal:
- if (BaseLevel > 20)
- goto L_NoHeal;
- mes "[Sorfina]";
- mes "\"Hello Dear! You look tired, you should rest a moment.\"";
- mes "You take a short nap and feel refreshed.";
- heal MaxHp, 0;
- goto L_Main;
-
-L_NoHeal:
- mes "[Sorfina]";
- mes "\"I'm sorry but your wounds are far to advanced for my skills.\"";
- goto L_Main;
-
-L_Explain:
- menu
- "... walking?",L_Walk,
- "... talking?",L_Talk,
- "... the inventory and items?",L_Items,
- "... shortcuts?",L_Shortcut,
- "... what to do in Candor?",L_Aidan,
- "... change my appearence?",L_Barber,
- "... nevermind.",L_Close;
-
-L_Walk:
- mes "[Sorfina]";
- mes "\"You can use the arrow keys to walk around.";
- mes "Press [###keyMoveUp;] to move up, press [###keyMoveDown;] to move down, ";
- mes "press [###keyMoveLeft;] to move left, press [###keyMoveRight;] to move right ";
- mes " or click on the place you want to go to.";
- mes "This only works if that place is reachable and walkable.\"";
- goto L_Close;
-
-L_Talk:
- mes "[Sorfina]";
- mes "\"If you want to talk to a normal person, you can click at him or her.";
- mes "Or you can press [###keyTargetNPC;] to focus on the nearest person and then press [###keyTalk;] to talk.\"";
- next;
- mes "\"If you want to talk to other adventurers, press [###keyChat;] to open your chat window.";
- mes "Then type your message and press Enter to send.\"";
- next;
- mes "\"You may want to talk privately to another adventurer sometimes. In that case you can whisper.";
- mes "After pressing [###keyChat;] type '/whisper [name] [message]'.";
- mes "Or you can right click on someone and choose the whisper option.\"";
- next;
- mes "\"Press [###keyWindowChat;] to show and hide your chat window.\"";
- goto L_Close;
-
-L_Items:
- mes "[Sorfina]";
- mes "\"There are three types of items.";
- mes "They can be Consumables, Equipment or Miscellaneous.\"";
- next;
- mes "\"Consumable items such as Potions, can be used only once.";
- mes "After use, they will disappear from your inventory.";
- mes "There are some rare items that can be used but don't get consumed.\"";
- next;
- mes "\"Equipment items like Armors, Weapons, Accessories can be equipped for fashionable purposes or to raise your status.\"";
- next;
- mes "\"Miscellaneous items such as maggot slime, can be used in creating other items, or just to trade and sell.\"";
- next;
- mes "\"Your HitchHikers Towel will return you to your last set soul menhir or here if not set.\"";
- mes "\"It can't be used constantly as the magic needs time to power the jump.\"";
- next;
- mes "\"Press [###keyWindowInventory;] to open your inventory.";
- mes "When placing your cursor over an item there, you can see a box with some information about that item.\"";
- next;
- mes "\"To use or equip an item, select it by double-clicking on it.";
- mes "Selecting the item then pressing Use or Equip also works.\"";
- goto L_Close;
-
-L_Shortcut:
- mes "[Sorfina]";
- mes "\"Press [###keyWindowShortcut;] or click the Shortcut button in the bar at the upper right to open your shortcut window.\"";
- next;
- mes "\"You can select the item you want to put on a shortcut with your mouse and then click on the position in the shortcut window you want to place it.\"";
- next;
- mes "\"Now you can use or equip/unequip it by pressing the number of the shortcut.\"";
- goto L_Close;
-
-L_Aidan:
- mes "[Sorfina]";
- mes "\"I heard Aidan and Valon are looking for brave adventurers, you might want to talk to them. ";
- mes "You can find Aidan near the camp fire outside. The fields are just south of the town exit. ";
- mes "You'll see Valon of the city gaurd standing there. They both are offering rewards for monster hunting.\"";
- next;
- mes "\"When you leave this area to the South, you'll come to the docks.";
- mes "They will take you to Hurnscald, a major trading port.\"";
- next;
- mes "\"Go east out of Candor and north. You will find the cave everyone is talking about to the north.";
- next;
- mes "Talk to everybody. You can never tell when they might know something useful.\"";
- goto L_Close;
-
-L_Barber:
- mes "[Sorfina]";
- mes "\"Jessie downstairs can change your appearance.\"";
- mes "\"They will allow you to change your hair color or style as well as gender.\"";
- next;
- mes "\"There are a number of people across the continent that can change this for you.\"";
- mes "\"There is no cost or limit to the number of times it can be changed.\"";
- goto L_Close;
-
-L_Hasan:
- mes "[Sorfina]";
- mes "\"Make yourself at home! Do you have any questions?\"";
- menu
- "A guy named Hasan is bullying people.",L_Next,
- "Yes, could you explain again about...",L_Explain,
- "No, thanks.",L_Close;
-
-L_Next:
- mes "\"Ah, Hasan. He's causing trouble again?\"";
- mes "She shakes her head.";
- mes "[Sorfina]";
- mes "\"This guy has been a plague ever since he could walk. He's always causing trouble.\"";
- mes "\"And his father... Well, one day his father thought he should teach Hasan a lesson.\"";
- mes "\"He took him into the desert and then left him there!";
- mes "Hasan was only seven years old!\"";
- mes "\"I never understood how someone could do something like that to a child, even if it's a rascal like Hasan.\"";
- mes "\"Anyway, Hasan tried to find his way back home, but stumbled into a nest of scorpions!\"";
- mes "She shakes her head.";
- mes "\"If Valon hadn't have come along that moment, Hasan would have died that day.\"";
- mes "\"However, the scorpions poison caused a bad fever and once Hasan had recovered from that, he was even more malicious than before.\"";
- mes "She sighs.";
- set QL_BEGIN, 11;
- goto L_Close;
-
-L_SkipTut:
- mes "[Sorfina]";
- mes "\"Really? You seem quite unexperienced. Listening to some advice won't hurt.\"";
- menu
- "Thinking about it twice... please tell me.",L_Tut,
- "Yeah, but thanks for the offer. Bye.",L_Bye;
-
-L_Bye:
- mes "[Sorfina]";
- mes "\"Alright, if you say so. But take at least this. See you later.\"";
- getitem "Knife", 1;
- getitem "SlingShot", 1;
- getitem "SlingBullet", 500;
- getitem "HitchhikersTowel", 1;
- getitem "CottonShirt", 1;
- getitem "RaggedShorts", 1;
- set Zeny, Zeny + 35; // tanisha gives 5 zeny
- set QL_BEGIN, 8;
- goto L_Close;
-
-L_Close:
- close;
-
-OnTouch:
- if (QL_BEGIN > 0)
- end;
- goto L_Start;
-}
-
-029-2,33,27,0|script|#Carpet|127,1,1
-{
- if (QL_BEGIN != 1)
- end;
- mapmask getmask();
- mes "[Sorfina]";
- mes "\"You should get dressed now.\"";
- next;
- camera "Dresser#tutorial";
- mapmask getmask() | 16;
- mes "\"In that dresser there are some clothes you can wear.\"";
- mes "\"To interact with things in your environment or talk to NPCs you can either click on it or press N to focus and T to talk/activate.\"";
- next;
- camera;
- mes "\"Now get the clothes out of the dresser.\"";
- set QL_BEGIN, 2;
- close;
-}
-
-029-2,29,23,0|script|Dresser#tutorial|400
-{
- set @npc_distance, 2;
- set @distance_handler, 1;
- callfunc "PCtoNPCRange";
- if (@npc_check)
- goto L_CloseDis;
- if (QL_BEGIN > 2) goto L_Empty;
- if (QL_BEGIN == 2) goto L_Shirt;
- goto L_Walk;
-
-L_Walk:
- mes "[Sorfina]";
- mes "\"Thats not what I said to do. Please don't skip ahead.\"";
- close;
-
-L_Shirt:
- mapmask getmask();
- mes "You take a simple Cotton Shirt and some very worn-out Ragged Shorts out of the dresser.";
- getitem "CottonShirt", 1;
- getitem "RaggedShorts", 1;
- mes "[Sorfina]";
- mes "\"Great! Now you can equip it.\"";
- mes "\"You can open your inventory by pressing F3 or clicking on the 'Inventory' button in the bar at the upper right corner.\"";
- next;
- mes "\"After we finish talking, click on the clothes and press the equip button.\"";
- set QL_BEGIN, 3;
- close;
-
-L_Empty:
- mes "The dresser is empty.";
- close;
-
-L_CloseDis:
- mes "You cannot reach that far.";
- close;
-}
-
-029-2,44,31,0|script|#DoorOutTut1|45,0,0
-{
- if (QL_BEGIN < 4)
- goto L_Block;
- mapmask getmask();
- warp "029-2", 112, 85;
- end;
-
-L_Block:
- message strcharinfo(0), "Sorfina : ##BWait a moment! ##bYou're not ready to leave.";
- // FIXME: this should be changed to npctalk with strcharinfo(0) once we increase the view area
- end;
-}
-029-2,23,24,0|script|#GameRules1|32767,0,1
-{
- if (TUT_var > 0)
- end;
- mes "[Server/Client Notice]";
- mes "The explanations in this tutorial are based on the official client, Manaplus.";
- mes "If you're using another client, settings and controls may be different.";
- callfunc "GameRules";
- close;
-}
-029-2,21,24,0|script|#GameRules2|32767,0,1
-{
- if (TUT_var > 0)
- end;
- mes "[Server/Client Notice]";
- mes "The explanations in this tutorial are based on the official client, Manaplus.";
- mes "If you're using another client, settings and controls may be different.";
- callfunc "GameRules";
- close;
-}
-029-2,22,26,0|script|#GameRules3|32767,1,0
-{
- if (TUT_var == 0)
- goto L_KnockBack;
- end;
-
-L_KnockBack:
- message strcharinfo(0), "Server : ##BPlease Accept the Game rules";
- warp "029-2", 22, 24;
- end;
-}
-029-2,24,24,0|script|#GameRules4|32767,0,1
-{
- if (TUT_var == 0)
- goto L_KnockBack;
- end;
-
-L_KnockBack:
- message strcharinfo(0), "Server : ##BPlease Accept the Game rules";
- warp "029-2", 22, 24;
- end;
-}
diff --git a/world/map/npc/029-2/stat_reset.txt b/world/map/npc/029-2/stat_reset.txt
deleted file mode 100644
index 427a1da5..00000000
--- a/world/map/npc/029-2/stat_reset.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-//
-
-029-2,98,92,0|script|Jessie|159
-{
- callfunc "PCtoNPCRange";
- if(@npc_check) end;
-
- if (BaseLevel >= 10)
- goto L_Sorry;
-
- mes "[Jessie]";
- mes "\"I know a spell that will";
- mes "reset status points on the youngings.";
- mes "";
- mes "I can also change their appearance.\"";
- next;
- menu
- "Reset my stats",L_Reset,
- "Change my appearance", L_Appearance,
- "Forget about it",L_Pass;
-
-L_Appearance:
- callfunc "Barber";
- goto L_Pass;
-
-L_Reset:
- resetstatus;
-
- mes "[Jessie]";
- mes "\"There you are.";
- mes "";
- mes "Good as new!\"";
- goto L_Close;
-
-L_Pass:
- mes "[Jessie]";
- mes "\"Very well then, see you.\"";
- goto L_Close;
-
-L_Sorry:
- mes "[Jessie]";
- mes "\"My spell only works on the very young, sorry.\"";
- next;
- mes "\"You can try Mailvox in the Tulimshar Bazaar or Wyara in the Potion Shop in Hurnscald.\"";
- menu
- "Change my appearance", L_Appearance,
- "Bye", L_Close;
-
-L_Close:
- close;
-}
diff --git a/world/map/npc/029-2/tanisha.txt b/world/map/npc/029-2/tanisha.txt
deleted file mode 100644
index 025cc499..00000000
--- a/world/map/npc/029-2/tanisha.txt
+++ /dev/null
@@ -1,291 +0,0 @@
-// This file is part of the Tutorial
-// Authors: Jenalya, alastrim
-// Cleanup: o11c
-
-029-2,110,88,0|script|Tanisha|114
-{
- callfunc "PCtoNPCRange";
- if(@npc_check) end;
-
- if (isin("029-2", 98, 84, 106, 89))
- goto L_Fighting;
-
- if (QL_BEGIN >= 8) goto L_Tut_Done;
- if (QL_BEGIN == 7) goto L_Stats;
- if (QL_BEGIN == 6) goto L_Fail;
- if (QL_BEGIN == 5) goto L_Maggots;
-
- mes "[Tanisha]";
- mes "\"Hey! You're up again!\"";
- emotion EMOTE_HAPPY, strcharinfo(0);
- mes "\"Are you feeling better?\"";
- menu
- "Yes, thank you.",L_Next,
- "Yeah, but everything is gone. My stuff and memories..",L_Next;
-
-L_Next:
- mes "[Tanisha]";
- mes "\"I'm glad you're feeling better. It was really bad luck what happened to you.";
- mes "Hey, I have an idea.\"";
- set QL_BEGIN, 5;
- goto L_Maggots;
-
-L_Maggots:
- mes "[Tanisha]";
- mes "\"There are some maggots eating the goods and I'm supposed to get rid of them.";
- mes "But they're so yucky!\"";
- mes "\"If you kill them, I'll give you my knife.";
- mes "What do you say?\"";
- menu
- "I guess it's the least I can do.",L_Next1;
-
-L_Next1:
- mes "[Tanisha]";
- mes "\"Wonderful.";
- // since the check happens here, it is actually possible to have
- // more than $@Maggot_MaxHunters in the area at one time
- // but that's not a BIG problem
- if (getareausers("029-2", 98, 84, 106, 89) >= $@Maggot_MaxHunters)
- goto L_Crowded;
- next;
- goto L_Fight_Again;
-
-L_Fight_Again:
- mes "[Tanisha]";
- mes "\"Ok, listen what to do.";
- mes "Equip a weapon and kill the maggots.\"";
- mes "\"Press [###keyTargetMonster;] to focus on a monster. With [###keyTargetAttack;] you can focus and start attacking the same time.";
- mes "But it also works to click on the monster with your mouse.\"";
- next;
- mes "\"If you press the [###keyTarget;], you can abort your attack.\"";
- next;
- mes "\"Maggots aren't aggressive, so they won't harm you until you attack them first. Take them out one by one.\"";
- next;
- mes "\"Sometimes dead monsters leave some useful things. You can pick them up by pressing [###keyPickup;] or clicking on the items with your mouse.\"";
- close2;
- // The getitem must be in the same place as set QL_BEGIN, 2;
- // since it was moved to after L_Fight_Again, add it conditionally
- if (QL_BEGIN == 5)
- goto L_GetFightItems;
- goto L_ContinueFight;
-
-L_GetFightItems:
- set QL_BEGIN, 6;
- getitem "Knife", 1;
- getitem "SlingShot", 1;
- getitem "SlingBullet", 500;
- goto L_ContinueFight;
-
-L_ContinueFight:
- set QL_BEGIN, 6;
- set @Maggot_Kills, 0;
- set @time, 0;
- if (getareausers("029-2", 98, 84, 106, 89) == 0)
- initnpctimer;
- warp "029-2", 101, 87;
- goto L_Summon;
-
-L_Summon:
- areamonster "029-2", 98, 84, 106, 89, "", 1002, 1, "Tanisha::OnMaggotDeath";
- end;
-
-L_Stats:
- mes "[Tanisha]";
- mes "\"That was great! Like a professional exterminator!\"";
- mes "\"And it seems you became stronger and more experienced.";
- mes "That means you got some status points which you can use to increase your abilities.\"";
- mes "\"Press [###keyWindowStatus;] or click the Status button in the bar at the upper right to see your status window. There you can distribute your points on six different properties.\"";
- mapmask getmask() | 2;
- next;
- goto L_StatsRe;
-
-L_StatsRe:
- mes "\"Strength makes you hit harder and you can carry more weight.\"";
- mes "\"Agility increases your attack speed and your ability to dodge attacks.\"";
- mes "\"Vitality gives you more hit points and more defense against physical attacks.\"";
- mes "\"Intelligence is useful for magic attack and defense.";
- mes "But as long as you don't know any magic, you shouldn't use your points on this.\"";
- mes "\"Dexterity is needed to hit monsters. It's also very important for the damage if you use a ranged weapon.\"";
- mes "\"Luck gives you the chance to do critical hits and lowers the chance to receive a critical hit from your opponent.\"";
- next;
- mes "\"Think about how you want to play before assigning the points.\"";
- mes "\"My Uncle sitting at the counter knows a spell to help the younglings reset their stats.\"";
- mes "\"He can also change your hair style and color, along with your gender.\"";
- mes "\"Furthermore, he knows of mages with even more powerful reset spells for your stats.\"";
- next;
- if (QL_BEGIN == 7)
- goto L_Money;
- goto L_Advice;
-
-L_Money:
- next;
- mes "[Tanisha]";
- mes "\"Hey, you are so smart taking out all that yucky maggots for me.";
- mes "You can have my pocket money. Here.\"";
- set QL_BEGIN, 8;
- set Zeny, Zeny + 5;
- next;
- goto L_Advice;
-
-L_Advice:
- mes "\"When you go to Hurnscald, you should see Bernard. He can make a delicious soup!";
- mes "Good luck!\"";
- emotion EMOTE_HAPPY, strcharinfo(0);
- goto L_Close;
-
-L_Explain:
- menu
- "... how to fight?",L_Fight,
- "... monsters?",L_Mob,
- "... status points?",L_StatsRe,
- "... what to do in Hurnscald?",L_Advice,
- "... nevermind.",L_Close;
-
-L_Fight:
- mes "[Tanisha]";
- mes "\"Press [###keyTargetMonster;] to focus on a monster. With [###keyTargetAttack;] you can focus and attack.";
- mes "But it also works to click on the monster with your mouse.\"";
- next;
- mes "\"If you press the [###keyTarget;] button, you can abort your attack.\"";
- next;
- mes "\"Sometimes dead monsters leave some useful things. You can pick them up with pressing [###keyPickup;] or clicking on the items with your mouse.\"";
- next;
- mes "\"If you feel exhausted from battle you can sit down by pressing [###keyBeingSit;] to recover faster.\"";
- goto L_Close;
-
-L_Mob:
- mes "[Tanisha]";
- mes "\"I don't know much about monsters, I'm just a little girl. But I know a few things.";
- mes "There are several types of monsters...Aggressive, Neutral, and Assistants.\"";
- next;
- mes "\"Aggressive monsters will attack you as soon as they see you.\"";
- next;
- mes "\"Neutral monsters are peaceful until they get attacked.\"";
- next;
- mes "\"Assistants are monsters who help each other.\"";
- goto L_Close;
-
-L_Tut_Done:
- mes "[Tanisha]";
- mes "\"These yucky maggots! They're eating our goods!";
- mes "No matter how many of them you kill, they always come back.\"";
- mes "She sighs.";
- mes "[Tanisha]";
- mes "\"Do you have any questions?\"";
- menu
- "Yes, could you explain about...", L_Explain,
- "No, thanks.", L_Close;
-
-L_Crowded:
- mes "[Tanisha]";
- mes "\"That's great! But...";
- mes "it seems a little crowded in there.\"";
- mes "\"Let's wait a short while.\"";
- goto L_Close;
-
-L_Sleep:
- warp "029-2", 101, 87;
- mes "[Tanisha]";
- mes "\"What are you doing in there?";
- mes "Sleeping?";
- mes "Come back when you're serious.\"";
- set @Maggot_Kills, 0;
- set @time, 0;
- close2;
- if (getareausers("029-2", 98, 84, 106, 89) == 0)
- goto L_CleanUp;
- end;
-
-L_Fail:
- mes "Tanisha seems to be trying hard to supress laughter.";
- mes "[Tanisha]";
- mes "\"The maggots defeated you.\"";
- mes "She bursts out with laughter.";
- mes "\"Oops, I'm sorry. It's just too funny.";
- mes "Do you want to try it again?\"";
- menu
- "Sure!", L_Next2,
- "No, I need a rest.", L_Close;
-
-L_Next2:
- if (getareausers("029-2", 98, 84, 106, 89) >= $@Maggot_MaxHunters)
- goto L_Crowded;
- goto L_Fight_Again;
-
-L_Fighting:
- npctalk strnpcinfo(0), "##3I believe in you!", strcharinfo(0);
- end;
-
-OnTimer1000:
- setnpctimer 0;
- if (getareausers("029-2", 98, 84, 106, 89) == 0)
- goto L_CleanUp;
- // This is needed because multiple players can be in the area at once
- areatimer 0, "029-2", 98, 84, 106, 89, 0, "Tanisha::OnTick";
- end;
-
-L_CleanUp:
- killmonster "029-2", "Tanisha::OnMaggotDeath";
- set $@Maggot_Hunters, 0;
- stopnpctimer;
- areamonster "029-2", 98, 84, 106, 89, "", 1002, 1, "Tanisha::OnMaggotDeath";
- end;
-
-OnTick:
- set @time, @time + 1;
- if (@time > 300)
- goto L_Sleep;
- if (isdead())
- end;
- if (Hp > 20)
- end;
- heal MaxHp, 0;
- npctalk strnpcinfo(0), "##3You're doing good!", strcharinfo(0);
- end;
-
-OnMaggotDeath:
- if (@Maggot_Kills == 1)
- npctalk strnpcinfo(0), "##3Aaahhhh... another one! It will crawl up your legs!", strcharinfo(0);
- if (@Maggot_Kills == 2)
- npctalk strnpcinfo(0), "##3Ohh... Irrhk... Eeeeww... They just appear from nowhere!", strcharinfo(0);
- if (@Maggot_Kills == 3)
- npctalk strnpcinfo(0), "##3Yuck... I think I am getting sick.", strcharinfo(0);
- if (isin("029-2", 98, 84, 106, 89))
- set @Maggot_Kills, @Maggot_Kills + 1;
- if (@Maggot_Kills < 5)
- goto L_Summon;
- // else, complete
- warp "029-2", 110, 88;
- set QL_BEGIN, 7;
- set @Maggot_Kills, 0;
- set @time, 0;
- if (getareausers("029-2", 98, 84, 106, 89) == 0)
- goto L_CleanUp;
- end;
-
-L_Close:
- close;
-
-OnInit:
- set $@Maggot_MaxHunters, 4;
- areamonster "029-2", 98, 84, 106, 89, "", 1002, 1, "Tanisha::OnMaggotDeath";
- end;
-}
-029-2,114,93,0|script|#DoorOutTut2|45,0,0
-{
- end;
-
-OnTouch:
- if (QL_BEGIN >= 8)
- goto L_Warp;
- goto L_Block;
-
-L_Warp:
- mapmask getmask();
- warp "029-1", 32, 100;
- end;
-
-L_Block:
- npctalk "Tanisha", "##3##BPlease come here. ##bI'd like some help!", strcharinfo(0);
- end;
-}
diff --git a/world/map/npc/029-2/two_arms.txt b/world/map/npc/029-2/two_arms.txt
deleted file mode 100644
index 07fcf065..00000000
--- a/world/map/npc/029-2/two_arms.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-// Forge Shops
-
-029-2,99,25,0|shop|Rosen|311,SlingShot:*1,SlingBullet:*1,ShortBow:*4,Arrow:*2,IronArrow:*1
-029-2,112,24,0|shop|Toichi|377,Knife:*1,SharpKnife:*1,Dagger:*1,LeatherShirt:*1,LeatherShield:*1