summaryrefslogtreecommitdiff
path: root/world/map/npc/009-2
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/009-2')
-rw-r--r--world/map/npc/009-2/_mobs.txt2
-rw-r--r--world/map/npc/009-2/_warps.txt42
-rw-r--r--world/map/npc/009-2/airlia.txt64
-rw-r--r--world/map/npc/009-2/alan.txt4
-rw-r--r--world/map/npc/009-2/bernard.txt3
-rw-r--r--world/map/npc/009-2/doctor.txt2
-rw-r--r--world/map/npc/009-2/entertainer.txt10
-rw-r--r--world/map/npc/009-2/inspector.txt70
-rw-r--r--world/map/npc/009-2/kfahr.txt104
-rw-r--r--world/map/npc/009-2/lena.txt15
-rw-r--r--world/map/npc/009-2/nurse.txt1
-rw-r--r--world/map/npc/009-2/peter.txt12
-rw-r--r--world/map/npc/009-2/richard.txt1
-rw-r--r--world/map/npc/009-2/selim.txt101
-rw-r--r--world/map/npc/009-2/wyara.txt168
15 files changed, 319 insertions, 280 deletions
diff --git a/world/map/npc/009-2/_mobs.txt b/world/map/npc/009-2/_mobs.txt
index 22518d34..e0b8a1a0 100644
--- a/world/map/npc/009-2/_mobs.txt
+++ b/world/map/npc/009-2/_mobs.txt
@@ -3,7 +3,7 @@
-009-2,0,0,0|script|Mob009-2|-1
+009-2,0,0,0|script|Mob009-2|32767
{
end;
}
diff --git a/world/map/npc/009-2/_warps.txt b/world/map/npc/009-2/_warps.txt
index 673bfac7..ca2f04f2 100644
--- a/world/map/npc/009-2/_warps.txt
+++ b/world/map/npc/009-2/_warps.txt
@@ -1,24 +1,24 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
// Hurnscald Indoor warps
-009-2,75,23|warp|To First Floor|0,-1,009-2,74,47
-009-2,95,30|warp|To Outside|-1,-1,009-1,59,34
-009-2,130,26|warp|To Outside|-1,-1,009-1,71,31
-009-2,144,26|warp|To Second Floor|0,-1,009-2,144,43
-009-2,144,42|warp|To Third Floor|0,-1,009-2,144,25
-009-2,155,48|warp|To First Floor|0,-1,009-2,155,63
-009-2,114,46|warp|To First Floor|0,-1,009-2,114,70
-009-2,50,55|warp|To Outside|-1,-1,009-1,35,31
-009-2,74,53|warp|To Cellar|-1,-1,009-2,143,78
-009-2,74,46|warp|To Second Floor|0,-1,009-2,75,22
-009-2,114,78|warp|To Outside|-1,-1,009-1,72,45
-009-2,114,69|warp|To Second Floor|0,-1,009-2,114,45
-009-2,149,67|warp|To Outside|-1,-1,009-1,80,32
-009-2,143,77|warp|To First Floor|-1,-1,009-2,74,52
-009-2,155,62|warp|To Second Floor|0,-1,009-2,155,46
-009-2,182,67|warp|To Outside|0,-1,009-1,91,47
-009-2,147,90|warp|To Hurnscald Cave|-1,-1,009-3,173,21
-009-2,27,107|warp|To Outside|-1,-1,009-1,58,47
-009-2,46,50|warp|To Inn Private Room|-1,-1,009-2,76,78
-009-2,77,78|warp|To Hurnscald Inn|-1,-1,009-2,47,50
-009-2,31,91|warp|To Outside|-1,-1,009-1,59,41
+009-2,75,23|warp|To First Floor#009-20|0,-1,009-2,74,47
+009-2,95,30|warp|To Outside#009-21|-1,-1,009-1,59,34
+009-2,130,26|warp|To Outside#009-22|-1,-1,009-1,71,31
+009-2,144,26|warp|To Second Floor#009-23|0,-1,009-2,144,43
+009-2,144,42|warp|To Third Floor#009-24|0,-1,009-2,144,25
+009-2,155,48|warp|To First Floor#009-25|0,-1,009-2,155,63
+009-2,114,46|warp|To First Floor#009-26|0,-1,009-2,114,70
+009-2,50,55|warp|To Outside#009-27|-1,-1,009-1,35,31
+009-2,74,53|warp|To Cellar#009-28|-1,-1,009-2,143,78
+009-2,74,46|warp|To Second Floor#009-29|0,-1,009-2,75,22
+009-2,114,78|warp|To Outside#009-210|-1,-1,009-1,72,45
+009-2,114,69|warp|To Second Floor#009-211|0,-1,009-2,114,45
+009-2,149,67|warp|To Outside#009-212|-1,-1,009-1,80,32
+009-2,143,77|warp|To First Floor#009-213|-1,-1,009-2,74,52
+009-2,155,62|warp|To Second Floor#009-214|0,-1,009-2,155,46
+009-2,182,67|warp|To Outside#009-215|0,-1,009-1,91,47
+009-2,147,90|warp|To Hurnscald Ca#009-216|-1,-1,009-3,173,21
+009-2,27,107|warp|To Outside#009-217|-1,-1,009-1,58,47
+009-2,46,50|warp|To Inn Private #009-218|-1,-1,009-2,76,78
+009-2,77,78|warp|To Hurnscald In#009-219|-1,-1,009-2,47,50
+009-2,31,91|warp|To Outside#009-220|-1,-1,009-1,59,41
diff --git a/world/map/npc/009-2/airlia.txt b/world/map/npc/009-2/airlia.txt
index c7e52273..71726331 100644
--- a/world/map/npc/009-2/airlia.txt
+++ b/world/map/npc/009-2/airlia.txt
@@ -42,7 +42,7 @@
if (QUEST_Airlia == @Q_STATUS_INITIAL_FETCH_REWARDED) goto L_Rewarded;
if (QUEST_Airlia == @Q_STATUS_HELP_AIRLIA) goto L_Fetch;
- if (QUEST_Graveyard_Caretaker > @Q_STATUS_RECIEVED_FIRST_LETTER) goto L_Airlia_intro;
+ if (QUEST_Graveyard_Caretaker > @Q_STATUS_RECIEVED_FIRST_LETTER) goto L_intro;
goto L_Caretaker;
L_Caretaker:
@@ -52,12 +52,12 @@ L_Caretaker:
if (QUEST_Graveyard_Caretaker < @Q_STATUS_RECIEVED_FIRST_LETTER)
menu
"Sorry, no.", L_Next,
- "My what?", L_Caretaker_mount;
+ "My what?", L_mount;
if (QUEST_Graveyard_Caretaker == @Q_STATUS_RECIEVED_FIRST_LETTER)
menu
"Sorry, no.", L_Next,
- "I have a letter from your father.", L_Caretaker_first_reward,
- "My what?", L_Caretaker_mount;
+ "I have a letter from your father.", L_first_reward,
+ "My what?", L_mount;
goto L_Next;
L_Next:
@@ -65,12 +65,12 @@ L_Next:
mes "\"Nobody ever does...\"";
close;
-L_Caretaker_mount:
+L_mount:
// The mention of mounts will certainly gather some interest from players,
// this section may be extended.
close;
-L_Caretaker_first_reward:
+L_first_reward:
mes "[Airlia]";
mes "\"Oh! Thank you very, very much! Please take this for your trouble.\"";
if (@LETTER_REWARD_GOLD_INITIAL > 0)
@@ -82,7 +82,7 @@ L_Caretaker_first_reward:
set QUEST_Graveyard_Caretaker, @Q_STATUS_DELIVERED_FIRST_LETTER;
close;
-L_Caretaker_later_rewards:
+L_later_rewards:
mes "[Airlia]";
mes "\"Oh! Thank you very, very much! Please take this for your trouble.\"";
if (@LETTER_REWARD_GOLD > 0)
@@ -94,7 +94,7 @@ L_Caretaker_later_rewards:
set QUEST_Graveyard_Caretaker, @Q_STATUS_HAS_NO_NEW_LETTER;
close;
-L_Airlia_intro:
+L_intro:
mes "[Airlia]";
mes "\"My poor father, doomed to that awful cemetery.\"";
next;
@@ -112,7 +112,7 @@ L_Airlia_intro:
if (QUEST_Graveyard_Caretaker == @Q_STATUS_HAS_NEW_LETTER)
menu
"...", L_Next3,
- "Oh, I have a letter from him.", L_Caretaker_later_rewards;
+ "Oh, I have a letter from him.", L_later_rewards;
goto L_Next3;
L_Next3:
@@ -121,8 +121,8 @@ L_Next3:
mes "Eventually, there will not be enough mana for them to rise again and they can be at rest. Do you believe this is true?\"";
next;
menu
- "I believe so, yes.", L_Airlia_intro_mana_loss,
- "Maybe...", L_Airlia_intro_mana_loss,
+ "I believe so, yes.", L_intro_mana_loss,
+ "Maybe...", L_intro_mana_loss,
"No, that is not proven.", L_Next1;
L_Next1:
@@ -130,40 +130,40 @@ L_Next1:
mes "\"Oh...\"";
close;
-L_Airlia_intro_mana_loss:
+L_intro_mana_loss:
mes "[Airlia]";
mes "\"When I am not working, I recruit help for the esteemed Fighters of the Undead, or FoU.";
mes "They are an official group effort of the Warriors' Guild and Magicians, you know, a very prestigious group.\"";
next;
menu
- "...", L_Airlia_intro_fou,
- "I have heard of them.", L_Airlia_intro_fou,
+ "...", L_intro_fou,
+ "I have heard of them.", L_intro_fou,
"Keep up the good work. I have to go now, bye.", L_Close;
-L_Airlia_intro_fou:
+L_intro_fou:
mes "[Airlia]";
mes "\"If we drain those evil creatures of their mana, I can get my father back. He is getting very old. Will you help us?\"";
next;
menu
- "Of course I will.", L_Airlia_intro_fight,
- "Sure, I guess.", L_Airlia_intro_fight,
+ "Of course I will.", L_intro_fight,
+ "Sure, I guess.", L_intro_fight,
"Thanks, but no thanks. I have other business to attend to.", L_Close;
-L_Airlia_intro_fight:
+L_intro_fight:
mes "[Airlia]";
mes "\"Great, just kill any of the undead creatures you can and bring me proof of your work, and I will put in a word for you with the guild.\"";
next;
menu
"I'm on it.", L_Next2,
- "What sort of proof?", L_Airlia_intro_proof;
+ "What sort of proof?", L_intro_proof;
L_Next2:
set QUEST_Airlia, @Q_STATUS_HELP_AIRLIA;
goto L_Close;
-L_Airlia_intro_proof:
+L_intro_proof:
mes "[Airlia]";
- mes "\"Let's say " + @FETCH_AMOUNT_INITIAL + " " + getitemname(@FETCH_LABEL_INITIAL$) + "s. You don't know how much this means to me, thank you.\"";
+ mes "\"Let's say " + @FETCH_AMOUNT_INITIAL + " " + getitemlink(@FETCH_LABEL_INITIAL$) + "s. You don't know how much this means to me, thank you.\"";
set QUEST_Airlia, @Q_STATUS_HELP_AIRLIA;
close;
@@ -171,6 +171,7 @@ L_Fetch:
mes "[Airlia]";
mes "\"Thank you for helping my father.\"";
next;
+ mes "\"Have you collected the " + @FETCH_AMOUNT_INITIAL + " " + getitemlink(@FETCH_LABEL_INITIAL$) + "?\"";
// Make sure to check if the player has a letter to deliver.
// If the check is not made then there is a bug, where the player
@@ -179,13 +180,13 @@ L_Fetch:
if (QUEST_Graveyard_Caretaker < @Q_STATUS_HAS_NEW_LETTER)
menu
- "You are welcome.", L_Close,
- "I have collected the " + @FETCH_AMOUNT_INITIAL + " " + getitemname(@FETCH_LABEL_INITIAL$) + "s.", L_Fetch_initial_reward;
+ "Yes.", L_Fetch_initial_reward,
+ "No.", L_Close;
if (QUEST_Graveyard_Caretaker == @Q_STATUS_HAS_NEW_LETTER)
menu
- "You are welcome.", L_Close,
- "I have another letter from your father.", L_Caretaker_later_rewards,
- "I have collected the " + @FETCH_AMOUNT_INITIAL + " " + getitemname(@FETCH_LABEL_INITIAL$) + "s.", L_Fetch_initial_reward;
+ "I have another letter from your father.", L_later_rewards,
+ "Yes.", L_Fetch_initial_reward,
+ "No.", L_Close;
goto L_Close;
L_Fetch_initial_reward:
@@ -230,15 +231,16 @@ L_Rewarded:
mes "[Airlia]";
mes "\"Thank you for your help.\"";
next;
+ mes "\"Have you collected the " + @FETCH_AMOUNT + " " + getitemlink(@FETCH_LABEL$) + "s?\"";
if (QUEST_Graveyard_Caretaker < @Q_STATUS_HAS_NEW_LETTER)
menu
- "You are welcome.", L_Close,
- "I have collected the " + @FETCH_AMOUNT + " " + getitemname(@FETCH_LABEL$) + "s.", L_Fetch_later_rewards;
+ "Yes.", L_Fetch_later_rewards,
+ "No.", L_Close;
if (QUEST_Graveyard_Caretaker == @Q_STATUS_HAS_NEW_LETTER)
menu
- "You are welcome.", L_Close,
- "I have another letter from your father.", L_Caretaker_later_rewards,
- "I have collected the " + @FETCH_AMOUNT + " " + getitemname(@FETCH_LABEL$) + "s.", L_Fetch_later_rewards;
+ "I have another letter from your father.", L_later_rewards,
+ "Yes.", L_Fetch_later_rewards,
+ "No.", L_Close;
goto L_Close;
L_Close:
diff --git a/world/map/npc/009-2/alan.txt b/world/map/npc/009-2/alan.txt
index 12f5cde8..6e0e6f21 100644
--- a/world/map/npc/009-2/alan.txt
+++ b/world/map/npc/009-2/alan.txt
@@ -10,8 +10,6 @@
// Archer Shop Master
009-2,99,23,0|script|Alan|125
{
- callfunc "ClearVariables";
-
set @Q_MASK, NIBBLE_0_MASK;
set @Q_SHIFT, NIBBLE_0_SHIFT;
@@ -98,7 +96,7 @@ L_State_2:
next;
if (@inspector == 1)
menu
- "Yes, I did. He said that the trees turned into dangerous monsters.", L_Next,
+ "Yes, I did. He said that the trees turned into dangerous monsters.", L_Next1,
"Have you seen anything strange recently that might be connected to the robberies?", L_NohMask_Answer;
if (@inspector != 1)
menu
diff --git a/world/map/npc/009-2/bernard.txt b/world/map/npc/009-2/bernard.txt
index f0c03fbc..1d6b4229 100644
--- a/world/map/npc/009-2/bernard.txt
+++ b/world/map/npc/009-2/bernard.txt
@@ -2,9 +2,6 @@
009-2,67,79,0|script|Bernard|117
{
- // This NPC previously used the variable TMW_Quest
- callfunc "ClearVarTMW_Quest";
-
set @state, ((QUEST_SouthTulimshar & NIBBLE_0_MASK) >> NIBBLE_0_SHIFT);
if (@state >= 6) goto L_Done3;
diff --git a/world/map/npc/009-2/doctor.txt b/world/map/npc/009-2/doctor.txt
index 9137d8d4..f44cda64 100644
--- a/world/map/npc/009-2/doctor.txt
+++ b/world/map/npc/009-2/doctor.txt
@@ -2,8 +2,6 @@
009-2,148,25,0|script|Doctor|107
{
- callfunc "ClearVariables";
-
set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
if (getequipid(equip_head) == 616) goto L_Axe;
diff --git a/world/map/npc/009-2/entertainer.txt b/world/map/npc/009-2/entertainer.txt
index 57119894..61306b25 100644
--- a/world/map/npc/009-2/entertainer.txt
+++ b/world/map/npc/009-2/entertainer.txt
@@ -27,9 +27,13 @@ L_Close:
close;
OnTimer3000:
- emotion rand(EMOTE_DISGUST, EMOTE_TEARS);
- setnpctimer 0;
- end;
+ if(rand(0,1) == 1) goto L_manaplus;
+ emotion rand(EMOTE_DISGUST, EMOTE_BLAH);
+ goto OnInit;
+
+L_manaplus:
+ emotion rand(EMOTE_MEOW, EMOTE_TEARS);
+ goto OnInit;
OnInit:
if (debug >= 2) end;
diff --git a/world/map/npc/009-2/inspector.txt b/world/map/npc/009-2/inspector.txt
index 1effd16b..d61fc708 100644
--- a/world/map/npc/009-2/inspector.txt
+++ b/world/map/npc/009-2/inspector.txt
@@ -2,31 +2,29 @@
009-2,24,99,0|script|Inspector#Hurnscald|150
{
- callfunc "ClearVariables";
-
set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
- if (@inspector == 0 && BaseLevel >= 30) goto L_NohMask_Start;
- if (@inspector == 1) goto L_NohMask_AskVillage;
- if (@inspector == 2) goto L_NohMask_OldWoman;
- if (@inspector == 3) goto L_NohMask_TheaterMask;
- if (@inspector == 4) goto L_NohMask_TravelingTroupe;
- if (@inspector == 5) goto L_NohMask_OldMan;
- if (@inspector == 6) goto L_NohMask_OldMan_2;
- if (@inspector == 7) goto L_NohMask_Alibi;
- if (@inspector == 8) goto L_NohMask_Alibi_2;
- if (@inspector == 9) goto L_NohMask_Alibi_3;
- if (@inspector == 10) goto L_NohMask_Satchel;
- if (@inspector == 11) goto L_NohMask_Basement;
- if (@inspector == 12) goto L_NohMask_Note;
- if (@inspector == 13) goto L_NohMask_TravelingTroupe_2;
- if (@inspector == 14) goto L_NohMask_Over;
- if (@inspector == 15) goto L_NohMask_End;
+ if (@inspector == 0 && BaseLevel >= 30) goto L_Start;
+ if (@inspector == 1) goto L_AskVillage;
+ if (@inspector == 2) goto L_OldWoman;
+ if (@inspector == 3) goto L_TheaterMask;
+ if (@inspector == 4) goto L_TravelingTroupe;
+ if (@inspector == 5) goto L_OldMan;
+ if (@inspector == 6) goto L_OldMan_2;
+ if (@inspector == 7) goto L_Alibi;
+ if (@inspector == 8) goto L_Alibi_2;
+ if (@inspector == 9) goto L_Alibi_3;
+ if (@inspector == 10) goto L_Satchel;
+ if (@inspector == 11) goto L_Basement;
+ if (@inspector == 12) goto L_Note;
+ if (@inspector == 13) goto L_TravelingTroupe_2;
+ if (@inspector == 14) goto L_Over;
+ if (@inspector == 15) goto L_End;
mes "[Inspector]";
mes "\"I'm sorry, but I'm busy looking into this string of robberies.\"";
goto L_Close;
-L_NohMask_Start:
+L_Start:
mes "\"Hmm...what to do.\"";
mes "He looks up and into your face.";
next;
@@ -34,78 +32,78 @@ L_NohMask_Start:
mes "\"You look capable, will you help me solve these robberies?\"";
next;
menu
- "Yes.", L_NohMask_Accept,
+ "Yes.", L_Accept,
"No.", L_Close;
-L_NohMask_Accept:
+L_Accept:
set @inspector, 1;
callsub S_Update_Mask;
mes "[Inspector]";
mes "\"Ok then. I'd like you to ask the villagers about the recent string of robberies.\"";
goto L_Close;
-L_NohMask_AskVillage:
+L_AskVillage:
mes "[Inspector]";
mes "\"Please continue talking to the villagers.\"";
goto L_Close;
-L_NohMask_OldWoman:
+L_OldWoman:
mes "[Inspector]";
mes "\"Hm...I don't know if I trust her eyesight or memory. See if someone else knows anything.\"";
goto L_Close;
-L_NohMask_TheaterMask:
+L_TheaterMask:
set @inspector, 4;
callsub S_Update_Mask;
mes "[Inspector]";
mes "\"Someone in a theater mask, eh? There was a traveling theater troupe in town recently, but they've moved on to Tulimshar. Please go talk to their leader about this.\"";
goto L_Close;
-L_NohMask_TravelingTroupe:
+L_TravelingTroupe:
mes "[Inspector]";
mes "\"Please go talk to the leader of the traveling troupe about the theater mask.\"";
goto L_Close;
-L_NohMask_OldMan:
+L_OldMan:
set @inspector, 6;
callsub S_Update_Mask;
mes "[Inspector]";
mes "\"Hm...an old man? Could you interrogate him for me?\"";
goto L_Close;
-L_NohMask_OldMan_2:
+L_OldMan_2:
mes "[Inspector]";
mes "\"Have you talked with the old man yet?\"";
goto L_Close;
-L_NohMask_Alibi:
+L_Alibi:
mes "[Inspector]";
mes "\"Can you verify that with his wife?\"";
goto L_Close;
-L_NohMask_Alibi_2:
+L_Alibi_2:
set @inspector, 9;
callsub S_Update_Mask;
mes "[Inspector]";
mes "\"Hm...then it couldn't be him. I'm not sure where to go from here, maybe you can find something else. Try talking to everyone again.\"";
goto L_Close;
-L_NohMask_Alibi_3:
+L_Alibi_3:
mes "[Inspector]";
mes "\"Made any progress yet?\"";
goto L_Close;
-L_NohMask_Satchel:
+L_Satchel:
mes "[Inspector]";
mes "\"Then go north and investigate!\"";
goto L_Close;
-L_NohMask_Basement:
+L_Basement:
mes "[Inspector]";
mes "\"Did you look over the basement?\"";
goto L_Close;
-L_NohMask_Note:
+L_Note:
set @inspector, 13;
callsub S_Update_Mask;
mes "[Inspector]";
@@ -114,12 +112,12 @@ L_NohMask_Note:
mes "\"By the way, stay sharp! I may call upon you again.\"";
goto L_Close;
-L_NohMask_TravelingTroupe_2:
+L_TravelingTroupe_2:
mes "[Inspector]";
mes "\"Please return the mask to the traveling troupe.\"";
goto L_Close;
-L_NohMask_Over:
+L_Over:
set @inspector, 15;
callsub S_Update_Mask;
mes "[Inspector]";
@@ -128,7 +126,7 @@ L_NohMask_Over:
getexp 2500, 0;
goto L_Close;
-L_NohMask_End:
+L_End:
mes "[Inspector]";
mes "\"Remember to stay sharp. I might need your help on another case.\"";
goto L_Close;
diff --git a/world/map/npc/009-2/kfahr.txt b/world/map/npc/009-2/kfahr.txt
index 49e0c449..8b6cb37d 100644
--- a/world/map/npc/009-2/kfahr.txt
+++ b/world/map/npc/009-2/kfahr.txt
@@ -41,9 +41,9 @@
set @Q_needs_stinger, ((QUEST_Forestbow_state & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT) > 1;
- if (@Q_status == @QS_KNIFE_QUEST) goto L_knife_quest_check;
+ if (@Q_status == @QS_KNIFE_QUEST) goto L_Check;
- if (@Q_status == @QS_STINGER_QUEST) goto L_stinger_quest_check;
+ if (@Q_status == @QS_STINGER_QUEST) goto L_stinger_check;
if (@Q_status > @QS_NEWBIE) goto L_meet_again;
@@ -281,11 +281,11 @@ L_worm_bones:
L_worm_see_bones:
if (@Q_status == @QS_KNIFE_QUEST)
- goto L_boneknife_quest_ip;
+ goto L_bone_ip;
if (@Q_status > @QS_KNIFE_QUEST)
goto L_worm_continue2;
if (BaseLevel >= 40)
- goto L_boneknife_quest;
+ goto L_bone_quest;
mes "[Kfahr the Warrior]";
mes "\"Of course!\"";
@@ -580,9 +580,9 @@ L_tale_desert:
L_gain_power:
if ((@beer_count - @has_beer) < 1)
- goto L_listen_to_a_story_first;
+ goto L_story_first;
if (@Q_status < @QS_KNIFE_QUEST)
- goto L_boneknife_quest;
+ goto L_bone_quest;
mes "[Kfahr the Warrior]";
mes "\"Yeees, yes... doesn't everyone?\"";
@@ -591,19 +591,19 @@ L_gain_power:
next;
goto L_main_menu;
-L_listen_to_a_story_first:
+L_story_first:
mes "[Kfahr the Warrior]";
mes "\"That's the spirit! Perhaps you better listen to one of my tales, then!\"";
next;
goto L_main_menu;
-L_boneknife_quest:
+L_bone_quest:
if (@Q_status == @QS_KNIFE_QUEST)
- goto L_boneknife_quest_ip;
+ goto L_bone_ip;
if (@Q_status > @QS_KNIFE_QUEST)
- goto L_boneknife_quest_completed;
+ goto L_bone_completed;
if (BaseLevel < 40)
- goto L_boneknife_quest_tooweak;
+ goto L_bone_tooweak;
mes "[Kfahr the Warrior]";
mes "Kfahr stares at you for a moment, then nods.";
@@ -612,9 +612,9 @@ L_boneknife_quest:
set @Q_status, @QS_KNIFE_QUEST;
callsub L_Update_Var;
next;
- goto L_boneknife_quest_ip;
+ goto L_bone_ip;
-L_boneknife_quest_ip:
+L_bone_ip:
mes "[Kfahr the Warrior]";
mes "\"Bring me " + @BLACK_STINGERS_NR + " black scorpion stingers and " + @MUSHROOMS_NR + " small mushrooms to prove that you are a competent warrior, and I'll see if I have something for you.\"";
mes "He grins.";
@@ -624,35 +624,35 @@ L_boneknife_quest_ip:
next;
goto L_main_menu;
-L_boneknife_quest_completed:
+L_bone_completed:
mes "[Kfahr the Warrior]";
mes "\"I really don't have anything else I'd want to give away to make you stronger. Look around a bit yourself! You won't become a hero if you keep begging for help!\"";
next;
goto L_main_menu;
-L_boneknife_quest_tooweak:
+L_bone_tooweak:
mes "[Kfahr the Warrior]";
mes "\"You know, little one, if you keep practicing a little and come back once you're a bit stronger, I might have something for you...\"";
mes "He winks.";
next;
goto L_main_menu;
-L_knife_quest_check:
+L_Check:
mes "[Kfahr the Warrior]";
mes "Kfahr eyes you with unconcealed amusement.";
mes "\"Welcome back! Did you bring me the things I asked for?\"";
next;
menu
- "Yes, here they are!", L_knife_quest_completecheck,
- "Er, what were those things again?", L_boneknife_quest_ip,
+ "Yes, here they are!", L_completecheck,
+ "Er, what were those things again?", L_bone_ip,
"No, sorry, I didn't have the time.", L_main_menu,
"I forgot! Let me get them right now.", L_end;
-L_knife_quest_completecheck:
+L_completecheck:
if (countitem("BlackScorpionStinger") < @BLACK_STINGERS_NR)
- goto L_knife_quest_missing_stingers;
+ goto L_missing_stingers;
if (countitem("SmallMushroom") < @MUSHROOMS_NR)
- goto L_knife_quest_missing_mushrooms;
+ goto L_missing_mushrooms;
mes "[Kfahr the Warrior]";
mes "Kfahr is delighted.";
@@ -672,9 +672,9 @@ L_knife_quest_completecheck:
mes "I had the nomads make me a few of them, and I hardly use them nowadays, so I think I can part with this one.";
next;
if (countitem("BlackScorpionStinger") < @BLACK_STINGERS_NR)
- goto L_knife_quest_missing_stingers_2;
+ goto L_missing_stingers_2;
if (countitem("SmallMushroom") < @MUSHROOMS_NR)
- goto L_knife_quest_missing_mushrooms_2;
+ goto L_missing_mushrooms_2;
getinventorylist;
if (@inventorylist_count == 100) goto L_Knife_TooMany;
mes "[Kfahr the Warrior]";
@@ -696,7 +696,7 @@ L_Knife_TooMany:
mes "\"You don't have room for this. Come back when you do.\"";
close;
-L_knife_quest_missing_stingers:
+L_missing_stingers:
mes "[Kfahr the Warrior]";
mes "\"No, no... I said " + @BLACK_STINGERS_NR + " black scorpion stingers.";
if (countitem("BlackScorpionStinger"))
@@ -705,7 +705,7 @@ L_knife_quest_missing_stingers:
mes "You didn't bring even a single one!\"";
close;
-L_knife_quest_missing_stingers_2:
+L_missing_stingers_2:
mes "[Kfahr the Warrior]";
mes "\"You just had " + @BLACK_STINGERS_NR + " black scorpion stingers. What happened to them?";
if (countitem("BlackScorpionStinger"))
@@ -714,7 +714,7 @@ L_knife_quest_missing_stingers_2:
mes "You didn't bring even a single one!\"";
close;
-L_knife_quest_missing_mushrooms:
+L_missing_mushrooms:
mes "[Kfahr the Warrior]";
mes "\"No, no... I said " + @MUSHROOMS_NR + " small mushrooms.";
if (countitem("SmallMushroom"))
@@ -723,7 +723,7 @@ L_knife_quest_missing_mushrooms:
mes "You didn't bring me even a single little mushroom!\"";
close;
-L_knife_quest_missing_mushrooms_2:
+L_missing_mushrooms_2:
mes "[Kfahr the Warrior]";
mes "\"You just had " + @MUSHROOMS_NR + " small mushrooms. What happened to them?";
if (countitem("SmallMushroom"))
@@ -732,17 +732,17 @@ L_knife_quest_missing_mushrooms_2:
mes "You didn't bring me even a single little mushroom!\"";
close;
-L_stinger_quest_check:
+L_stinger_check:
mes "[Kfahr the Warrior]";
mes "Kfahr grins at you.";
mes "\"Welcome, welcome! Did you bring me my snake skins?\"";
next;
menu
- "Yes, here they are!", L_snakeskins_completecheck,
+ "Yes, here they are!", L_ss_cc,
"No, sorry, I didn't have the time.", L_main_menu,
"I forgot! Let me get them right now.", L_end;
-L_snakeskins_completecheck:
+L_ss_cc:
if (countitem("SnakeSkin") < @SNAKE_SKINS_NR)
goto L_snakeskins_missing;
getinventorylist;
@@ -831,11 +831,11 @@ L_player_out_of_beer:
L_golden_scorpion:
if (@Q_status > @QS_STINGER_QUEST)
- goto L_golden_scorpion_over_ask;
+ goto L_gs_over_ask;
if (@Q_status == @QS_STINGER_QUEST)
- goto L_golden_scorpion_ask_again;
+ goto L_gs_ask_again;
if (@Q_status == @QS_LOST_WRESTLING)
- goto L_golden_scorpion_wrestle_again;
+ goto L_gs_wrestle_again;
mes "[Kfahr the Warrior]";
mes "He grins.";
@@ -849,11 +849,11 @@ L_Next2:
mes "[Kfahr the Warrior]";
mes "\"A golden scorpion stinger? Those are rare and valuable, I hope that you know that!\"";
if (BaseLevel < 60)
- goto L_too_lowlevel_for_stinger;
+ goto L_lowlvl_for_stinger;
if (@Q_status < @QS_KNIFE_QUEST)
- goto L_golden_requires_knife_quest;
+ goto L_golden_requires_quest;
if (@Q_status < @QS_KNIFE_QUEST_DONE)
- goto L_golden_requires_knife_quest_done;
+ goto L_golden_requires_done;
mes "\"Still, you are a warrior of repute. I'll consider giving it to you...\"";
next;
@@ -861,57 +861,57 @@ L_Next2:
mes "A mischievous sparkle lightens up in his eyes.";
mes "\"...if you arm-wrestle me for it!\"";
next;
- goto L_golden_scorpion_wrestle_intro;
+ goto L_gs_wrestle_intro;
-L_golden_scorpion_wrestle_intro:
+L_gs_wrestle_intro:
menu
"Never!", L_main_menu,
"Wait... what?", L_wrestle_explain,
- "Bring it on!", L_golden_scorpion_wrestle;
+ "Bring it on!", L_gs_wrestle;
-L_golden_requires_knife_quest_done:
+L_golden_requires_done:
mes "He hesitates.";
mes "\"But no, this is too valuable. Perhaps if you finish that other quest I gave you...?\".";
next;
goto L_main_menu;
-L_golden_requires_knife_quest:
+L_golden_requires_quest:
mes "He hesitates.";
mes "\"But no, this is too valuable. I think I should have you prove your worthiness with another quest first...\"";
next;
- goto L_boneknife_quest;
+ goto L_bone_quest;
L_wrestle_explain:
mes "[Kfahr the Warrior]";
mes "\"Arm wrestling! Arm against arm! And whoever is stronger wins! If you manage to defeat me, I'll give you a little quest for the stinger. How about it?\"";
next;
- goto L_golden_scorpion_wrestle_intro;
+ goto L_gs_wrestle_intro;
-L_too_lowlevel_for_stinger:
+L_lowlvl_for_stinger:
mes "\"Well, I have one, but I can't just give it to anyone. Maybe if you train a little and become a worthy warrior I will consider giving it away...\"";
next;
goto L_main_menu;
-L_golden_scorpion_over_ask:
+L_gs_over_ask:
mes "[Kfahr the Warrior]";
mes "\"Is this about the stingers again? I already gave you a golden stinger, I'm not going to part with any more.\"";
next;
goto L_main_menu;
-L_golden_scorpion_ask_again:
+L_gs_ask_again:
mes "[Kfahr the Warrior]";
mes "\"This is about the stinger again, right? Well, just bring me " + @SNAKE_SKINS_NR + " snake skins, and you can have one.\"";
next;
goto L_main_menu;
-L_golden_scorpion_wrestle_again:
+L_gs_wrestle_again:
mes "[Kfahr the Warrior]";
mes "\"This is about the stinger again, eh? So you want to give it another try?\"";
mes "He grins broadly.";
next;
- goto L_golden_scorpion_wrestle;
+ goto L_gs_wrestle;
-L_golden_scorpion_wrestle:
+L_gs_wrestle:
mes "[Kfahr the Warrior]";
mes "You sit down. Both of you place your arms on the table, on opposing sides, and grab each other's hands.";
next;
@@ -920,9 +920,9 @@ L_golden_scorpion_wrestle:
set @KFAHR_AGI, 60 - @beer_count * 5;
set @kfahr_stamina, 120;
- set @PC_STR, readparam(bStr);
- set @PC_AGI, readparam(bAgi);
- set @PC_MAX_STAMINA, readparam(bVit) + 20;
+ set @PC_STR, Str;
+ set @PC_AGI, Agi;
+ set @PC_MAX_STAMINA, Vit + 20;
set @pc_stamina, @PC_MAX_STAMINA;
setarray @positions$,
diff --git a/world/map/npc/009-2/lena.txt b/world/map/npc/009-2/lena.txt
index 3917cec0..6f22030a 100644
--- a/world/map/npc/009-2/lena.txt
+++ b/world/map/npc/009-2/lena.txt
@@ -3,15 +3,12 @@
009-2,146,43,0|script|Lena|182
{
- // This NPC previously used the variable TMW_Quest
- callfunc "ClearVarTMW_Quest";
-
set @state, ((QUEST_Hurnscald & NIBBLE_0_MASK) >> NIBBLE_0_SHIFT);
if (@state >= 6) goto L_Lena_Done;
if (@state == 5) goto L_Lena_Success;
- if (@state == 4) goto L_Lena_Bandit_Leader_Fail;
- if (@state == 3) goto L_Lena_Bandit_Leader_Fail;
+ if (@state == 4) goto L_LBL_Fail;
+ if (@state == 3) goto L_LBL_Fail;
if (@state == 2) goto L_Lena_Bandit_Leader;
if (@state == 1) goto L_Lena_Fairy_Hat;
if (BaseLevel >= 30) goto L_Lena_Start;
@@ -58,7 +55,7 @@ L_Lena_Fairy_Hat:
next;
mes "\"Unfortunately, I feel this bandit threat may have grown. Perhaps they are being lead? I noticed many of them seem to hang around a cave just west of Hurnscald. If you could defeat their leader I know they will become less of a threat to Hurnscald. I'll reward you with armor like mine if you do. Sound like something you could do?\"";
menu
- "Consider it done!", L_Lena_Bandit_Leader_Yes,
+ "Consider it done!", L_LBL_Yes,
"Woah there, that sounds a bit harder than what I can succeed at.", L_Lena_NoWay;
L_Lena_NotEnough:
@@ -70,10 +67,10 @@ L_Lena_Bandit_Leader:
mes "[Lena]";
mes "\"I feel this bandit threat may have grown. Perhaps they are being lead? I noticed many of them seem to hang around a cave just west of Hurnscald. If you could defeat their leader I know they will become less of a threat to Hurnscald. I'll reward you with armor like mine if you do. Sound like something you could do?\"";
menu
- "Consider it done!", L_Lena_Bandit_Leader_Yes,
+ "Consider it done!", L_LBL_Yes,
"Woah there, that sounds a bit harder than what I can succeed at.", L_Lena_NoWay;
-L_Lena_Bandit_Leader_Yes:
+L_LBL_Yes:
set @state, 3;
callsub S_Update_Var;
areamonster "008-1",25,60,40,65,"Bandit",1064,3, "::";
@@ -87,7 +84,7 @@ L_Lena_NoWay:
mes "\"That is too bad. Feel free to return at any time. This bandit threat needs to be pushed back.\"";
goto L_Close;
-L_Lena_Bandit_Leader_Fail:
+L_LBL_Fail:
set @state, 3;
callsub S_Update_Var;
mes "[Lena]";
diff --git a/world/map/npc/009-2/nurse.txt b/world/map/npc/009-2/nurse.txt
index fa1ee5d2..8a5b3862 100644
--- a/world/map/npc/009-2/nurse.txt
+++ b/world/map/npc/009-2/nurse.txt
@@ -24,7 +24,6 @@
//######################################################################################
009-2,147,65,0|script|Nurse|119
{
- callfunc "ClearVariables";
set @halloween_npc_id, $@halloween_npc_nurse;
callfunc "TrickOrTreat";
diff --git a/world/map/npc/009-2/peter.txt b/world/map/npc/009-2/peter.txt
index 818f09cf..bbb336e2 100644
--- a/world/map/npc/009-2/peter.txt
+++ b/world/map/npc/009-2/peter.txt
@@ -1,5 +1,5 @@
// Nicholas' Apprentice and Armorsmith
-009-2,183,57,0|shop|#PeterShop|127,Knife:*1,SharpKnife:*1,Dagger:*1
+009-2,183,57,0|shop|#PeterShop|32767,Knife:*1,SharpKnife:*1,Dagger:*1
009-2,183,57,0|script|Peter|157
{
@@ -39,7 +39,7 @@ L_Peter_Chain_Mail:
set @peter_crafting_iron_ingot, @peter_chain_mail_ingot;
set @peter_crafting_money, @peter_chain_mail_money;
set @peter_crafting_item$, "ChainmailShirt";
- callsub S_Peter_Get_Smithery_Item;
+ callsub S_Smithery_Item;
goto L_Close;
L_Peter_Light_Plate:
@@ -47,7 +47,7 @@ L_Peter_Light_Plate:
set @peter_crafting_iron_ingot, @peter_light_plate_ingot;
set @peter_crafting_money, @peter_light_plate_money;
set @peter_crafting_item$, "LightPlatemail";
- callsub S_Peter_Get_Smithery_Item;
+ callsub S_Smithery_Item;
goto L_Close;
L_Peter_Warlord_Plate:
@@ -55,7 +55,7 @@ L_Peter_Warlord_Plate:
set @peter_crafting_iron_ingot, @peter_warlord_plate_ingot;
set @peter_crafting_money, @peter_warlord_plate_money;
set @peter_crafting_item$, "WarlordPlate";
- callsub S_Peter_Get_Smithery_Item;
+ callsub S_Smithery_Item;
goto L_Close;
L_Peter_New_Skills:
@@ -75,10 +75,10 @@ L_Peter_Warlord_Boots:
set @peter_crafting_iron_ingot, @peter_warlord_boots_ingot;
set @peter_crafting_money, @peter_warlord_boots_money;
set @peter_crafting_item$, "WarlordBoots";
- callsub S_Peter_Get_Smithery_Item;
+ callsub S_Smithery_Item;
goto L_Close;
-S_Peter_Get_Smithery_Item:
+S_Smithery_Item:
if (Zeny < @peter_crafting_money)
goto L_Peter_NotEnough_Zeny;
if (countitem("IronIngot") < @peter_crafting_iron_ingot)
diff --git a/world/map/npc/009-2/richard.txt b/world/map/npc/009-2/richard.txt
index b39a7969..11c180d4 100644
--- a/world/map/npc/009-2/richard.txt
+++ b/world/map/npc/009-2/richard.txt
@@ -2,7 +2,6 @@
009-2,20,99,0|script|Richard|161
{
- callfunc "ClearVariables";
set @npcname$, "Richard";
callfunc "Banker";
close;
diff --git a/world/map/npc/009-2/selim.txt b/world/map/npc/009-2/selim.txt
index f9dc3b40..474dec3c 100644
--- a/world/map/npc/009-2/selim.txt
+++ b/world/map/npc/009-2/selim.txt
@@ -1,22 +1,57 @@
-//#################################################################################
-//# #
-//# This script file contains the script for the cloth dyer. It has been #
-//# revised to require dye items; collaborating NPCs are Selim and Angus. #
-//# #
-//#################################################################################
-
009-2,32,104,0|script|Selim|326
{
- setarray @all_colours$, "red", "green", "dark blue", "yellow", "light blue", "pink", "black", "orange", "purple", "dark green";
-
cleararray @items$, "", getarraysize(@items$);
cleararray @item_names$, "", getarraysize(@item_names$);
- cleararray @items_new, "", getarraysize(@items_new);
- setarray @items_new, 5131, 2250, 2060, 2070, 2110, 2180, 2100, 2170, 2090, 2120, 2080, 2140, 2130, 2150, 2160, 2190, 2200, 2210, 2230, 2240, 5131, 2220, 5000, 5011, 5022, 5033, 5044, 5055, 5066, 5077, 5088, 5099;
- setarray @items$, "CottonShirt", "CottonCloth", "VNeckSweater", "TurtleneckSweater", "CottonShorts", "CottonTrousers", "CottonSkirt", "Miniskirt", "TankTop", "ShortTankTop", "SilkRobe", "CottonHeadband", "DesertHat", "CottonBoots", "CottonGloves", "WhiteRabbitEars", "WizardHat", "BowlerHat", "BowlerHatBrown", "FineDress", "ContributorShirt", "SorcererRobeRed", "SorcererRobeGreen", "SorcererRobeDarkBlue", "SorcererRobeYellow", "SorcererRobeLightBlue", "SorcererRobePink", "SorcererRobeBlack", "SorcererRobeOrange", "SorcererRobePurple", "SorcererRobeDarkGreen", "SorcererRobeWhite";
- setarray @item_names$, "Cotton Shirt", "Cotton Cloth", "V-Neck Sweater", "Turtleneck Sweater", "Cotton Shorts", "Cotton Trousers", "Cotton Skirt", "Miniskirt", "Tank Top", "Short Tank Top", "Silk Robe", "Cotton Headband", "Desert Hat", "Cotton Boots", "Cotton Gloves", "White Rabbit Ears", "Wizard Hat", "Bowler Hat", "Bowler Hat (brown)", "Fine Dress", "Contributor Shirt", "Red lined Sorcerer Robe", "Green lined Sorcerer Robe", "Dark Blue lined Sorcerer Robe", "Yellow lined Sorcerer Robe", "Light Blue lined Sorcerer Robe", "Pink lined Sorcerer Robe", "Black lined Sorcerer Robe", "Orange lined Sorcerer Robe", "Purple lined Sorcerer Robe", "Dark Green lined Sorcerer Robe", "White lined Sorcerer Robe";
- set @default_choice$, "About these sorcerer robes...";
- goto L_clothes_choice;
+ set @r, 0;
+ set @j, getarraysize($@DYE_items$);
+ goto L_CloneArray; // clone the array from DyeConfig
+
+L_CloneArray:
+ set @items$[@r], $@DYE_items$[@r];
+ set @item_names$[@r], $@DYE_item_names$[@r];
+ set @r, @r + 1;
+ if(@r < @j) goto L_CloneArray;
+ set @r, 0;
+ set @j, 0;
+ goto L_Main;
+
+
+L_Main:
+ mes "[Selim]";
+ mes "\"Greetings, fair traveler. With what may I help you?\"";
+ menu
+ "Greetings, are you the store merchant?", L_ask_selim,
+ "But what are dyes and what purpose do they serve?", L_ask_dye,
+ "Can you dye something for me?", L_clothes_choice,
+ "Can you also remove color from clothing?", L_ask_bleach,
+ "About these sorcerer robes...", L_asksorcererrobe,
+ "Never mind.", L_Close;
+
+L_ask_bleach:
+ mes "[Selim]";
+ mes "\"I'm afraid no.";
+ mes "For that, you would need to visit Candide in the Tulimshar marketplace.\"";
+ goto L_Main;
+
+L_ask_selim:
+ mes "[Selim]";
+ mes "\"That is an honest mistake you have made.";
+ mes "However I am not the merchant, but rather a Master Dyer here to serve the good people of this town.";
+ mes "I dye things, upon request.\"";
+ menu
+ "But what are dyes and where can I get them?", L_ask_dye,
+ "Can you dye something for me?", L_clothes_choice,
+ "Can you also remove color from clothing?", L_ask_bleach,
+ "Good bye.", L_Close;
+
+L_ask_dye:
+ mes "[Selim]";
+ mes "\"Dyes are special liquids used to add color to clothing. If you want me to dye something for you you will have to bring me some dye first.";
+ mes "Those behind me are nearly empty and won't last for your item.\"";
+ menu
+ "What do you mean, `bring you dye'?", L_explain_dye,
+ "Where would I get dye?", L_explain_dye,
+ "Good bye.", L_Close;
L_clothes_choice:
mes "[Selim]";
@@ -25,11 +60,10 @@ L_clothes_choice:
callfunc "DynamicItemMenu$";
set @default_choice$, "";
set @item_del$, @item$;
- set @item_new, @items_new[@index];
set @name$, @item_names$[@index];
cleararray @items$, "", getarraysize(@items$);
cleararray @item_names$, "", getarraysize(@item_names$);
- if(@item$ == "") goto L_asksorcererrobe;
+ if(@item$ == "") goto L_Close;
goto L_picked_item;
@@ -53,7 +87,6 @@ L_Next:
mes "\"Of course I can help you by dyeing the materials your tailor will want.";
mes "All I need is a piece of Cotton Cloth.\"";
set @item_del$, "CottonCloth";
- set @item_new, 2250;
menu
"Sure. Here is one.", L_picked_item,
"I have to go pick that.", L_Close;
@@ -66,8 +99,9 @@ L_colour:
mes "[Selim]";
mes "\"Excellent. Now, what color do you want?\"";
next;
- setarray @items$, "RedDye", "GreenDye", "DarkBlueDye", "YellowDye", "LightBlueDye", "PinkDye", "BlackDye", "OrangeDye", "PurpleDye", "DarkGreenDye";
- setarray @item_names$, "red", "green", "dark blue", "yellow", "light blue", "pink", "black", "orange", "purple", "dark green";
+ set @r, 0;
+ set @j, getarraysize($@DYE_colors$);
+ callsub S_CloneColors;
set @default_choice$, "I have no dye.";
callfunc "DynamicItemMenu$";
cleararray @items$, "", getarraysize(@items$);
@@ -75,9 +109,17 @@ L_colour:
set @default_choice$, "";
if (@item$ == "") goto L_no_dye;
set @colour, @index;
- set @vial, 690 + @colour;
goto L_finish;
+S_CloneColors:
+ set @items$[@r], $@DYE_colors$[@r] + "Dye";
+ set @item_names$[@r], $@DYE_color_names$[@r];
+ set @r, @r + 1;
+ if(@r < @j) goto S_CloneColors;
+ set @r, 0;
+ set @j, 0;
+ return;
+
L_no_dye:
mes "[Selim]";
mes "\"I would love to dye your " + @name$ + " for you, but you will have to bring me some dye first.";
@@ -95,15 +137,17 @@ L_explain_dye:
mes "[Selim]";
mes "\"Well, dye is very expensive, and since I don't charge adventurers anything, I can't give you any for free.";
mes "But most alchemists can make dye; perhaps you can find one around here.\"";
- close;
+ goto L_Close;
L_finish:
- delitem @vial, 1;
+ if(getitemlink($@DYE_colors$[@colour] + @item_del$) == "Unknown Item") mapexit;
+ if(countitem(@item_del$) < 1) goto L_havenone;
+ delitem @item$, 1;
delitem @item_del$, 1;
- getitem @item_new + @colour, 1;
+ getitem $@DYE_colors$[@colour] + @item_del$, 1;
mes "[Selim]";
- mes "\"Here's your " + @all_colours$[@colour] + " " + @name$ + "! Please let dry for a minute.\"";
- close;
+ mes "\"Here's your " + $@DYE_color_names$[@colour] + " " + @name$ + "! Please let dry for a minute.\"";
+ goto L_Close;
L_havenone:
mes "[Selim]";
@@ -113,5 +157,8 @@ L_havenone:
goto L_clothes_choice;
L_Close:
- close;
+ mes "\"Farewell and good luck in your journeys!\"";
+ close2;
+ emotion EMOTE_WINK, strcharinfo(0);
+ end;
}
diff --git a/world/map/npc/009-2/wyara.txt b/world/map/npc/009-2/wyara.txt
index c6875740..17f6bc61 100644
--- a/world/map/npc/009-2/wyara.txt
+++ b/world/map/npc/009-2/wyara.txt
@@ -27,8 +27,8 @@
set @has_magic, getskilllv(SKILL_MAGIC);
- if (@Q_status == @STATUS_PURIFY_ONCE) goto L_Magic_purify_once;
- if (@Q_status == @STATUS_PURIFY_TWICE) goto L_Magic_purify_done;
+ if (@Q_status == @STATUS_PURIFY_ONCE) goto L_M_purify_once;
+ if (@Q_status == @STATUS_PURIFY_TWICE) goto L_M_purify_done;
mes "[Wyara the witch]";
if (!Sex)
@@ -63,7 +63,7 @@ L_Shop:
close;
L_StatReset:
- set @NpcName$, "Wyara";
+ set @npcname$, "Wyara";
callfunc "StatReset";
goto L_Close;
@@ -200,7 +200,7 @@ L_Q_auldsbel:
next;
goto L_Main;
-L_Magic_no:
+L_M_no:
mes "[Wyara the Witch]";
mes "\"I am sorry, but you don't seem to be able to control any magic. That means that I really can't help you with that.\"";
next;
@@ -208,20 +208,20 @@ L_Magic_no:
L_Magic:
if (!@has_magic)
- goto L_Magic_no;
+ goto L_M_no;
mes "[Wyara the Witch]";
mes "\"Perhaps I can help you a little, but I am not a master of any school of magic.\"";
next;
- goto L_Magic_main;
+ goto L_M_main;
-L_Magic_main:
+L_M_main:
menu
- "Can you explain magic to me?", L_Magic_explain,
- "Can you teach me a spell?", L_Magic_spell,
- "Can you train me?", L_Magic_train,
+ "Can you explain magic to me?", L_M_explain,
+ "Can you teach me a spell?", L_M_spell,
+ "Can you train me?", L_M_train,
"Never mind.", L_Main;
-L_Magic_explain:
+L_M_explain:
mes "[Wyara the Witch]";
mes "\"Magic is just a name for the force that lives in all plants and animals and emanates from there into all things, living or dead.\"";
next;
@@ -231,76 +231,76 @@ L_Magic_explain:
mes "[Wyara the Witch]";
mes "\"There are different kinds of magic, too; nature, astral, and so on, but if this interests you, you should talk to a scholar.\"";
next;
- goto L_Magic_main;
+ goto L_M_main;
-L_Magic_spell:
+L_M_spell:
if (getskilllv(SKILL_MAGIC_NATURE) > 1)
- goto L_Magic_spell3;
+ goto L_M_spell3;
if (getskilllv(SKILL_MAGIC) > 1)
- goto L_Magic_spell2;
+ goto L_M_spell2;
mes "[Wyara the Witch]";
mes "\"No... I don't think that you are ready yet. But please ask me again when you have some more control over your magical powers.\"";
next;
- goto L_Magic_main;
+ goto L_M_main;
-L_Magic_spell3:
+L_M_spell3:
mes "[Wyara the Witch]";
mes "\"Now that you know the basics of nature magic, here is one of my favourites: '" + getspellinvocation("rain") + "' will summon rain, whereever you are standing. It will consume a bottle of water, though.\"";
if (getskilllv(SKILL_MAGIC) < 2)
mes "\"You are not powerful enough to use it yet, though; you will first have to absorb more magic from the mana seed.\"";
next;
- goto L_Magic_spell2;
+ goto L_M_spell2;
-L_Magic_spell2:
+L_M_spell2:
mes "[Wyara the Witch]";
mes "\"Here is another useful one: '" + getspellinvocation("detect-players") + "'. It will tell you the names of everyone nearby, but beware that there are ways to protect against it.\"";
if (getskilllv(SKILL_MAGIC) < 2)
mes "\"Hmm. You aren't powerful enough for this one either yet, I think.\"";
next;
if (!(getpartnerid2()))
- goto L_Magic_main;
+ goto L_M_main;
mes "[Wyara the Witch]";
mes "\"Married partners can find each other even more easily. Use the '" + getspellinvocation("sense-spouse") + "' spell instead.\"";
next;
- goto L_Magic_main;
+ goto L_M_main;
-L_Magic_train:
+L_M_train:
if (getskilllv(SKILL_MAGIC_NATURE) > 1)
- goto L_Magic_train_no;
+ goto L_M_train_no;
mes "[Wyara the Witch]";
if (@Q_status >= @STATUS_PURIFY_EXPLAINED)
- goto L_Magic_train_wb;
+ goto L_M_train_wb;
mes "\"Train you? No... you should talk to Sagatha.\"";
mes "She hesitates.";
next;
callfunc "SagathaStatus";
- if (@evil) goto L_Magic_train_evil;
+ if (@evil) goto L_M_train_evil;
mes "[Wyara the Witch]";
mes "\"It would be difficult to ask her to accept you unless you understand some of the basics already.\"";
next;
- goto L_Magic_train_dispatch;
+ goto L_M_train_dispatch;
-L_Magic_train_evil:
+L_M_train_evil:
mes "Wyara looks at you sadly.";
mes "\"I have heard that you have done something unforgiveable. No witch in this land will teach you now.\"";
next;
- goto L_Magic_main;
+ goto L_M_main;
-L_Magic_train_wb:
+L_M_train_wb:
callfunc "SagathaStatus";
if (@evil)
- goto L_Magic_train_evil;
+ goto L_M_train_evil;
mes "\"Ah, yes, your training...\"";
next;
- goto L_Magic_train_dispatch;
+ goto L_M_train_dispatch;
-L_Magic_train_dispatch:
+L_M_train_dispatch:
if (@Q_status == @STATUS_PURIFY_TWICE)
- goto L_Magic_purify_done;
+ goto L_M_purify_done;
if (@Q_status == @STATUS_PURIFY_ONCE)
- goto L_Magic_purify_once;
+ goto L_M_purify_once;
if (@Q_status == @STATUS_PURIFY_EXPLAINED)
- goto L_Magic_purify_explained;
+ goto L_M_purify_explained;
mes "[Wyara the Witch]";
mes "\"Well, let me help you get started, then! But first, to make sure that you are serious, I have a small task for you.\"";
@@ -313,60 +313,60 @@ L_Magic_train_dispatch:
next;
set @Q_status, @STATUS_PURIFY_EXPLAINED;
callsub S_update_var;
- goto L_Magic_purify_explained;
+ goto L_M_purify_explained;
-L_Magic_purify_explained:
+L_M_purify_explained:
if (countitem("PurificationPotion"))
- goto L_Magic_purify_doit;
+ goto L_M_purify_doit;
mes "[Wyara the Witch]";
mes "\"To make the purification potion, I will need twenty maggot slimes and twenty leaves of mauve.\"";
next;
menu
- "I shall get them later.", L_Magic_main,
- "Booring.", L_Magic_main,
+ "I shall get them later.", L_M_main,
+ "Booring.", L_M_main,
"Here they are.", L_Next;
L_Next:
getinventorylist;
if ((@inventorylist_count == 100) && (countitem("MauveHerb") > 20) && (countitem("MaggotSlime") > 20))
- goto L_Magic_purify_nospace;
+ goto L_M_purify_nospace;
if (countitem("MauveHerb") < 20)
- goto L_Magic_purify_lacking;
+ goto L_M_purify_lacking;
if (countitem("MaggotSlime") < 20)
- goto L_Magic_purify_lacking;
+ goto L_M_purify_lacking;
delitem "MauveHerb", 20;
delitem "MaggotSlime", 20;
getitem "PurificationPotion", 1;
mes "[Wyara the Witch]";
mes "Wyara grinds the leaves and mixes them with the slime, boils them, then speaks a brief incantation over them and hands you the result.";
next;
- goto L_Magic_purify_doit;
+ goto L_M_purify_doit;
-L_Magic_purify_doit:
+L_M_purify_doit:
mes "[Wyara the Witch]";
mes "\"Take your purification potion to the pond, right next to its center, and pour the potion in.\"";
close;
-L_Magic_purify_nospace:
+L_M_purify_nospace:
mes "[Wyara the Witch]";
mes "\"You don't have enough space to carry the potion. Please come back later.\"";
next;
- goto L_Magic_main;
+ goto L_M_main;
-L_Magic_purify_lacking:
+L_M_purify_lacking:
mes "[Wyara the Witch]";
mes "\"You'll need twenty mauve leaves and twenty maggot slimes for the potion.\"";
next;
- goto L_Magic_main;
+ goto L_M_main;
-L_Magic_purify_once:
+L_M_purify_once:
mes "[Wyara the Witch]";
mes "Wyara nods.";
mes "\"You have purified the pond a little, but not enough, I think. We'll need another potion.\"";
next;
if (countitem("PurificationPotion"))
- goto L_Magic_purify_doit2;
+ goto L_M_purify_doit2;
mes "[Wyara the Witch]";
mes "\"I'll need twenty more maggot slimes and leaves of mauve.\"";
next;
@@ -378,25 +378,25 @@ L_Magic_purify_once:
L_Next1:
getinventorylist;
if ((@inventorylist_count == 100) && (countitem("MauveHerb") > 20) && (countitem("MaggotSlime") > 20))
- goto L_Magic_purify_nospace;
+ goto L_M_purify_nospace;
if (countitem("MauveHerb") < 20)
- goto L_Magic_purify_lacking;
+ goto L_M_purify_lacking;
if (countitem("MaggotSlime") < 20)
- goto L_Magic_purify_lacking;
+ goto L_M_purify_lacking;
delitem "MauveHerb", 20;
delitem "MaggotSlime", 20;
getitem "PurificationPotion", 1;
mes "[Wyara the Witch]";
mes "Wyara brews another purification potion.";
next;
- goto L_Magic_purify_doit2;
+ goto L_M_purify_doit2;
-L_Magic_purify_doit2:
+L_M_purify_doit2:
mes "[Wyara the Witch]";
mes "\"Please apply this one quickly, again.\"";
close;
-L_Magic_purify_done:
+L_M_purify_done:
mes "[Wyara the Witch]";
mes "Wyara smiles at you.";
mes "\"A friend told me... you have saved the pond for now. Perhaps it will need some more attention later, but I'll ask others for this.\"";
@@ -406,7 +406,7 @@ L_Magic_purify_done:
next;
menu
"Very well.", L_Next2,
- "No way!", L_Magic_purify_abort;
+ "No way!", L_M_purify_abort;
L_Next2:
mes "[Wyara the Witch]";
@@ -430,29 +430,29 @@ L_Next2:
callsub S_update_var;
close;
-L_Magic_purify_abort:
+L_M_purify_abort:
mes "[Wyara the Witch]";
mes "\"I can't help you if you don't subject yourself to the ritual.\"";
close;
-L_Magic_train_no:
+L_M_train_no:
mes "[Wyara the Witch]";
mes "\"I can't teach you anything at this time. Perhaps Sagatha can help you, but I'm not sure if she will accept you as a student.\"";
next;
- goto L_Magic_train_sagatha;
+ goto L_M_train_sagatha;
-L_Magic_train_sagatha:
+L_M_train_sagatha:
menu
- "OK.", L_Magic_main,
+ "OK.", L_M_main,
"How can I convince her to accept me?", L_Next3;
L_Next3:
callfunc "SagathaStatus";
mes "[Wyara the Witch]";
if (@evil)
- goto L_Magic_train_sagatha_fail;
+ goto L_M_train_s_fail;
if (getskilllv(SKILL_MAGIC) < 2)
- goto L_Magic_train_sagatha_lvl1;
+ goto L_M_train_s_lvl1;
if (@good > 1)
mes "\"Come to think of it, I have heard good things about you. Perhaps she will be willing to accept you as a student now?\"";
if (@good == 1)
@@ -461,7 +461,7 @@ L_Next3:
mes "\"Sagatha cares greatly about all living creatures, but particularly about the creatures of the forest. If you are kind to them, she will be more likely to be kind to you.\"";
next;
if (@druid == 3)
- goto L_Magic_main;
+ goto L_M_main;
mes "[Wyara the Witch]";
mes "She smiles.";
mes "\"Actually, I think I know of a good thing you could do. There is a very special tree in the desert south-east of Tulimshar, a tree that has been there for a very long time.\"";
@@ -471,9 +471,9 @@ L_Next3:
next;
set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_KNOWS_DRUIDTREE;
menu
- "What is that tree?", L_Magic_train_tree_backgd,
+ "What is that tree?", L_M_train_t_backgd,
"How should I tend to it?", L_Next4,
- "Nah.", L_Magic_main;
+ "Nah.", L_M_main;
L_Next4:
mes "[Wyara the Witch]";
@@ -483,9 +483,9 @@ L_Next4:
mes "She hesitates for a moment.";
mes "\"But stay away from the well in the area. There is no water in there anymore, and it's also dangerous.\"";
next;
- goto L_Magic_main;
+ goto L_M_main;
-L_Magic_train_tree_backgd:
+L_M_train_t_backgd:
mes "[Wyara the Witch]";
mes "\"Many generations ago, there was a lush, green oasis in the desert south-east of Tulimshar. Plants of all kinds grew there, and many animals, including mouboos, made this place their home.\"";
next;
@@ -516,40 +516,40 @@ L_Magic_train_tree_backgd:
mes "[Wyara the Witch]";
mes "\"Please give him water, for he is always in need of it, and thank him for his sacrifice. It is all we can do for him now.\"";
next;
- goto L_Magic_tree_menu;
+ goto L_M_t_menu;
-L_Magic_tree_menu:
+L_M_t_menu:
menu
- "How should I give him water?", L_Magic_tree_water,
- "How should I thank him?", L_Magic_tree_remind,
- "I will.", L_Magic_main,
- "No.", L_Magic_main;
+ "How should I give him water?", L_M_t_water,
+ "How should I thank him?", L_M_t_remind,
+ "I will.", L_M_main,
+ "No.", L_M_main;
-L_Magic_tree_water:
+L_M_t_water:
mes "[Wyara the Witch]";
mes "\"A bottle of water would probably not be enough. No, you would have to water the ground all around... that's too many bottles. You will have to get water from elsewhere.\"";
next;
- goto L_Magic_tree_menu;
+ goto L_M_t_menu;
-L_Magic_tree_remind:
+L_M_t_remind:
mes "[Wyara the Witch]";
mes "\"Give him a sign of affection. Something that works with a tree, but also something that humans might do to each other, to remind him of his days as a human.\"";
next;
mes "[Wyara the Witch]";
mes "\"Yes... that would be important. Show your affection in the same way that you might towards a human.\"";
next;
- goto L_Magic_tree_menu;
+ goto L_M_t_menu;
-L_Magic_train_sagatha_fail:
+L_M_train_s_fail:
mes "She shakes her head.";
mes "\"No... from what I have heard, you have done something unforgivable. I very much doubt that you can be her student now, and I won't teach you any further either.\"";
next;
- goto L_Magic_main;
+ goto L_M_main;
-L_Magic_train_sagatha_lvl1:
+L_M_train_s_lvl1:
mes "\"Well, you're still a bit of a beginner, so I don't think she will accept you yet. Maybe you can absorb some more power from the mana seed? If you can grow your magical powers a little, I might be able to help you.\"";
next;
- goto L_Magic_main;
+ goto L_M_main;
L_Close:
close;