summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--conf/magic.conf.template54
-rw-r--r--db/const.txt4
-rw-r--r--npc/001-1_Tulimshar/children.txt1
-rw-r--r--npc/005-1_Snake_desert/spirit.txt8
-rw-r--r--npc/005-1_Snake_desert/tree.txt2
-rw-r--r--npc/008-1_Hurnscald_outskirts/hinnak.txt11
-rw-r--r--npc/009-2_Hurnscald/wyara.txt38
-rw-r--r--npc/009-3_Cave_beneath_Hurnscald/_import.txt1
-rw-r--r--npc/009-3_Cave_beneath_Hurnscald/sword.txt20
-rw-r--r--npc/011-1_Woodland/alchemist.txt21
-rw-r--r--npc/011-1_Woodland/auldsbel.txt57
-rw-r--r--npc/012-1_Woodland_Hills/injured-mouboo.txt34
-rw-r--r--npc/012-3_Cave/mana-seed.txt6
-rw-r--r--npc/013-1_Woodland_hills/sagatha.txt25
-rw-r--r--npc/015-1_Woodland/_import.txt1
-rw-r--r--npc/015-1_Woodland/sword.txt39
16 files changed, 192 insertions, 130 deletions
diff --git a/conf/magic.conf.template b/conf/magic.conf.template
index 646b412e..66e44cfa 100644
--- a/conf/magic.conf.template
+++ b/conf/magic.conf.template
@@ -121,11 +121,13 @@ PROCEDURE adjust_spellpower(school) =
experience = (script_int(caster, SCRIPT_XP) >> SCRIPT_XP_SHIFT) & SCRIPT_XP_MASK;
spellpower = spellpower + (skill(caster, MAGIC) + skill(caster, school)) * 10;
# Below, we adjust by special items
- IF ((school = LIFE || school = NATURE) && (target = partner(caster)))
- THEN (spellpower = spellpower + 200;
+ IF (not(failed(target)) && (school = LIFE || school = NATURE))
+ THEN IF (target)
+ THEN IF (pc(target) = partner(caster))
+ THEN (spellpower = spellpower + 200;
IF is_equipped(caster, "WeddingRing")
THEN spellpower = spellpower + 50;
- IF is_equipped(target, "WeddingRing")
+ IF is_equipped(pc(target), "WeddingRing")
THEN spellpower = spellpower + 50;)
PROCEDURE heal(target, max_heal) =
@@ -198,7 +200,6 @@ SPELL transmute-wood-to-mouboo : "#T00" =
school = TRANSMUTE
IN (MANA 5, CASTTIME 4000,
REQUIRE skill(caster, MAGIC) > level,
- REQUIRE skill(caster, school) > level,
COMPONENTS ["RawLog"])
=> EFFECT CALL adjust_spellpower(school);
CALL default_effect();
@@ -210,7 +211,6 @@ SPELL make-sulphur : "#T01" =
school = TRANSMUTE
IN (MANA 4, CASTTIME 4000,
REQUIRE skill(caster, MAGIC) > level,
- REQUIRE skill(caster, school) > level,
COMPONENTS ["PileOfAsh"])
=> EFFECT CALL adjust_spellpower(school);
CALL default_effect();
@@ -233,7 +233,7 @@ SPELL lesser-heal (target : STRING) : "#L00" =
THEN { mes "Your spell seems to have no effect on the mouboo."; next; close; }
ELSE target = caster;)
ELSE target = pc(target);
- CALL gain_heal_xp(100, 1); # report half values for non-instaheal
+ CALL gain_heal_xp(min(100, max_hp(target) - hp(target)) / 2, 1); # report half values for non-instaheal
CALL heal(target, 200);
CALL gain_xp(1);
@@ -838,7 +838,7 @@ SPELL debug : "debug" =
+ ", lastspell=" + ((script_int(caster, "MAGIC_EXPERIENCE") >> 16) & 0xff)
+ ", healexp=" + ((script_int(caster, "MAGIC_EXPERIENCE") >> 24) & 0xff));
message (caster, "STATUS: "
- + "auldsbel:" + (script_int(caster, "QUEST_MAGIC") & 0x1f) + "," + (script_int(caster, "QUEST_MAGIC") >> 5) + ", "
+ + "auldsbel:" + (script_int(caster, "QUEST_MAGIC") & 0x1f) + "," + ((script_int(caster, "QUEST_MAGIC") >> 5) & 0x7) + ", "
+ "dt/mb:" + ((script_int(caster, "QUEST_MAGIC") >> 8) & 0xf) + ", "
+ "s-unhappy:" + ((script_int(caster, "QUEST_MAGIC") >> 12) & 0xf) + ", "
+ "sagatha:" + ((script_int(caster, "QUEST_MAGIC") >> 16) & 0xff) + ", "
@@ -856,28 +856,28 @@ PROCEDURE debug_xmod(name, mask, shift, gain) =
CALL set_var(name, mask, shift, value);
PROCEDURE debug_mod(name, delta) =
- IF (name = "mexp") THEN CALL debug_xmod("MAGIC_EXP", 0xffff, 0, delta);
- ELSE IF (name = "lastspell") THEN CALL debug_xmod("MAGIC_EXP", 0xff, 16, delta);
- ELSE IF (name = "lifeexp") THEN CALL debug_xmod("MAGIC_EXP", 0xff, 24, delta);
- ELSE IF (name = "F:drank") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 0, delta);
- ELSE IF (name = "F:Kmseed") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 1, delta);
- ELSE IF (name = "F:touched-mseed") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 2, delta);
- ELSE IF (name = "F:mseed-max") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 3, delta);
- ELSE IF (name = "F:Kauldsbel") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 4, delta);
- ELSE IF (name = "F:Kwyara") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 5, delta);
- ELSE IF (name = "F:Ksagatha") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 6, delta);
- ELSE IF (name = "F:Kmpotion") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 7, delta);
- ELSE IF (name = "F:mseed-rumour") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 8, delta);
- ELSE IF (name = "F:Kcuttree") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 9, delta);
- ELSE IF (name = "F:cut") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 10, delta);
- ELSE IF (name = "F:Kdruidtree") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 11, delta);
- ELSE IF (name = "F:Kimp") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 12, delta);
- ELSE IF (name = "F:oldwiz") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 13, delta);
+ IF (name = "mexp") THEN CALL debug_xmod("MAGIC_EXPERIENCE", 0xffff, 0, delta);
+ ELSE IF (name = "lastspell") THEN CALL debug_xmod("MAGIC_EXPERIENCE", 0xff, 16, delta);
+ ELSE IF (name = "lifeexp") THEN CALL debug_xmod("MAGIC_EXPERIENCE", 0xff, 24, delta);
+ ELSE IF (name = "drank") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 0, delta);
+ ELSE IF (name = "Kmseed") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 1, delta);
+ ELSE IF (name = "touched-mseed") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 2, delta);
+ ELSE IF (name = "mseed-max") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 3, delta);
+ ELSE IF (name = "Kauldsbel") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 4, delta);
+ ELSE IF (name = "Kwyara") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 5, delta);
+ ELSE IF (name = "Ksagatha") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 6, delta);
+ ELSE IF (name = "Kmpotion") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 7, delta);
+ ELSE IF (name = "mseed-rumour") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 8, delta);
+ ELSE IF (name = "Kcuttree") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 9, delta);
+ ELSE IF (name = "cut") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 10, delta);
+ ELSE IF (name = "Kdruidtree") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 11, delta);
+ ELSE IF (name = "Kimp") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 12, delta);
+ ELSE IF (name = "oldwiz") THEN CALL debug_xmod("MAGIC_FLAGS", 0x1, 13, delta);
ELSE IF (name = "auldsbel") THEN CALL debug_xmod("QUEST_MAGIC", 0x1f, 0, delta);
ELSE IF (name = "Qauldsbel") THEN CALL debug_xmod("QUEST_MAGIC", 0x7, 5, delta);
ELSE IF (name = "dt") THEN CALL debug_xmod("QUEST_MAGIC", 0x3, 10, delta);
ELSE IF (name = "mb") THEN CALL debug_xmod("QUEST_MAGIC", 0x3, 8, delta);
- ELSE IF (name = "s-unhappy") THEN CALL debug_xmod("MAGIC_EXP", 0xff, 12, delta);
+ ELSE IF (name = "s-unhappy") THEN CALL debug_xmod("QUEST_MAGIC", 0xff, 12, delta);
ELSE IF (name = "sagatha") THEN CALL debug_xmod("QUEST_MAGIC", 0xff, 16, delta);
ELSE IF (name = "swords") THEN CALL debug_xmod("QUEST_MAGIC", 0xff, 24, delta);
ELSE IF (name = "imp") THEN CALL debug_xmod("QUEST_MAGIC2", 0xf, 0, delta);
@@ -908,10 +908,6 @@ SPELL debug-reset : "debug-reset" =
set_script_variable(caster, "MAGIC_FLAGS", 0);
set_script_variable(caster, "MAGIC_EXP", 0);
-SPELL debug-gotonpc (name : STRING) : "warpnpc" =
- REQUIRE DEBUG
- => EFFECT warp(caster, location(npc(name)));
-
#--------------------------------------------------------------------------------
# Special-purpose quasispells
diff --git a/db/const.txt b/db/const.txt
index 0cccd5dc..c5d06c7a 100644
--- a/db/const.txt
+++ b/db/const.txt
@@ -172,8 +172,8 @@ NIBBLE_5_MASK 15728640
NIBBLE_6_SHIFT 24
NIBBLE_6_MASK 251658240
-NIBBLE_7_SHIFT 28
-NIBBLE_7_MASK 4026531840
+NIBBLE_7_SHIFT 28 // Only three bits available in this one
+NIBBLE_7_MASK 1879048192 // should be 4026531840
// Magic skills
SKILL_MAGIC 340
diff --git a/npc/001-1_Tulimshar/children.txt b/npc/001-1_Tulimshar/children.txt
index 452df411..3f3ec522 100644
--- a/npc/001-1_Tulimshar/children.txt
+++ b/npc/001-1_Tulimshar/children.txt
@@ -102,6 +102,7 @@ L_8:
L_9:
mes "\"I know a very bad word. But I must not say it, because monsters will come and get me if I do!\"";
+ next;
menu
"A bad word?", L_tell,
"Oh, you better keep it for yourself then.", -;
diff --git a/npc/005-1_Snake_desert/spirit.txt b/npc/005-1_Snake_desert/spirit.txt
index 2ab3bf03..f51b242c 100644
--- a/npc/005-1_Snake_desert/spirit.txt
+++ b/npc/005-1_Snake_desert/spirit.txt
@@ -17,9 +17,9 @@ L_message:
set @BRANCH, 732;
- set @s, "girl";
+ set @s$, "girl";
if (Sex)
- set @s, "boy";
+ set @s$, "boy";
if (MAGIC_FLAGS & MFLAG_KNOWS_IMP)
goto L_wb;
@@ -116,7 +116,7 @@ L_Q_magic:
next;
mes "[Earth Spirit]";
- mes "\"Besides, think of it like that: if you want to bake a cake, you've got to break a few eggs. Not everything's sweetness in life, my " + @s + "!.\"";
+ mes "\"Besides, think of it like that: if you want to bake a cake, you've got to break a few eggs. Not everything's sweetness in life, my " + @s$ + "!.\"";
next;
menu
@@ -283,7 +283,7 @@ L_silly_close:
mes "[Earth Spirit]";
if (!(MAGIC_FLAGS & MFLAG_KNOWS_IMP))
mes "[Well]";
- mes "\"Silly " + @s + ".\"";
+ mes "\"Silly " + @s$ + ".\"";
L_close:
close;
diff --git a/npc/005-1_Snake_desert/tree.txt b/npc/005-1_Snake_desert/tree.txt
index 7c85c44b..5e576cea 100644
--- a/npc/005-1_Snake_desert/tree.txt
+++ b/npc/005-1_Snake_desert/tree.txt
@@ -101,7 +101,7 @@ L_givewater:
if (countitem(@WATER) < 1)
goto L_no_water;
delitem @WATER, 1;
- getitem @BOTTLE, 541;
+ getitem @BOTTLE, 1;
mes "[Dying Tree]";
mes "You pour a bottle of water into the sand. The water dissipates quickly, without any effect.";
diff --git a/npc/008-1_Hurnscald_outskirts/hinnak.txt b/npc/008-1_Hurnscald_outskirts/hinnak.txt
index cb7503b1..c2a547d4 100644
--- a/npc/008-1_Hurnscald_outskirts/hinnak.txt
+++ b/npc/008-1_Hurnscald_outskirts/hinnak.txt
@@ -107,14 +107,15 @@ L_ThanksAgain:
"You shouldn't drink while working!", -;
mes "[Farmer Hinnak]";
- mes "\"Well, I'm done for the day...\"";
+ mes "\"Well, I'm done for the day, and I'm quite old enough to decide when I can have a beer, thank you!\"";
+ next;
menu
"Sorry... here you are.", L_GiveBeer,
"I don't have any.", L_NoBeer;
L_GiveBeer:
- if (countitem(@BEER) < 0) goto L_NoBeer;
+ if (countitem(@BEER) < 1) goto L_NoBeer;
delitem @BEER, 1;
mes "[Farmer Hinnak]";
mes "Hinnak takes a sip.";
@@ -155,11 +156,11 @@ L_GiveBeer:
next;
mes "[Farmer Hinnak]";
- mes "\"So I go inside. I've barely entered when it starts raining outside, pouring cats and mouboos!\"";
+ mes "\"So I go inside. I'm barely in when it starts raining outside, pouring cats and mouboos!\"";
next;
mes "[Farmer Hinnak]";
- mes "\"Not so weird, perhaps, except that it had been bright and sunny just a second before! So I rush out, my wife telling me to leave her alone, and I see that witch standing there in the middle of the rain...\"";
+ mes "\"Not so weird, perhaps, except that it was been bright and sunny just a second before! So I rush out, my wife telling me to leave the witch alone, and I see her standing there in the middle of the rain...\"";
next;
mes "[Farmer Hinnak]";
@@ -194,7 +195,7 @@ L_Sagatha_hahaha:
L_Sagatha_scary:
mes "[Farmer Hinnak]";
mes "\"Yeah, you could say that...\"";
- mes "He stares into his empty beer jug, as if hoping for it to re-fill by magic.";
+ mes "He stares into his empty beer jug, as if wishing it weren't empty yet.";
next;
close;
diff --git a/npc/009-2_Hurnscald/wyara.txt b/npc/009-2_Hurnscald/wyara.txt
index 1666643d..d97f6c86 100644
--- a/npc/009-2_Hurnscald/wyara.txt
+++ b/npc/009-2_Hurnscald/wyara.txt
@@ -103,7 +103,7 @@ L_Q_old_wizard:
L_Q_elanore:
mes "[Wyara the Witch]";
- mes "\"Elanore is the Tulimshar healer. She is a very nice person and was very helpful when I first moved here.\"";
+ mes "\"Elanore is the Tulimshar healer. She is a very kind person and an outstanding healer.\"";
next;
goto L_Main;
@@ -129,16 +129,28 @@ L_Q_manapotion:
mes "[Wyara the Witch]";
mes "\"I have a simple recipe for making mana potions, but I don't have one ready right now. Can you bring me 40 mauve leaves and a bottle of water? I can make one from those quite easily.\"";
next;
- menu "OK", L_make_manapotion,
- "No", L_Main;
+ menu "Sure!", L_make_manapotion,
+ "No.", L_Main;
+ goto L_Main;
+
+L_manapotion_toomany:
+ mes "[Wyara the Witch]";
+ mes "\"Hmm... looking at you, I don't think that you would be able to carry it.\"";
+ next;
goto L_Main;
L_make_manapotion:
if(countitem(@MAUVE) < 40) goto L_make_manapotion_lack;
- if(countitem(@WATER) < 1) goto L_make_manapotion_lack;
+ if(countitem(@BOTTLE_WATER) < 1) goto L_make_manapotion_lack;
+ getinventorylist;
+ if ((@inventorylist_count == 100)
+ && (countitem(@MAUVE) > 40)
+ && (countitem(@BOTTLE_WATER) > 100)
+ && (countitem(@MANAPOTION) < 1))
+ goto L_manapotion_toomany;
delitem @MAUVE, 40;
- delitem @WATER, 1;
+ delitem @BOTTLE_WATER, 1;
getitem @MANAPOTION, 1;
mes "[Wyara the Witch]";
@@ -176,7 +188,7 @@ L_Q_sagatha:
next;
mes "[Wyara the Witch]";
- mes "\"She does hold all plants and animals very dear, though. Well, the peaceful ones more than the aggressive ones, I suppose.\"";
+ mes "\"She does hold all plants and animals very dear, though. Well, the peaceful ones more than the aggressive ones, I suppose, and scorpions not very much at all.\"";
next;
goto L_Main;
@@ -226,10 +238,10 @@ L_Magic_explain:
goto L_Magic_main;
L_Magic_spell:
- if (getskilllv(SKILL_MAGIC) > 1)
- goto L_Magic_spell2;
if (getskilllv(SKILL_MAGIC_NATURE) > 1)
goto L_Magic_spell3;
+ if (getskilllv(SKILL_MAGIC) > 1)
+ goto L_Magic_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;
@@ -246,11 +258,11 @@ L_Magic_spell2:
mes "\"Here is an easy and useful one: '" + getspellinvocation("detect-players") + "'. It will tell you the names of everyone nearby, but beware that there are ways to protect against it.\"";
next;
- if (!getpartnerid2(0))
+ if (!(getpartnerid2(0)))
goto L_Magic_main;
mes "[Wyara the Witch]";
- mes "\"Married partners can find each other even more easily. Use the '" + getspellinvocation("detect-spouse") + "' spell instead.\"";
+ mes "\"Married partners can find each other even more easily. Use the '" + getspellinvocation("sense-spouse") + "' spell instead.\"";
next;
goto L_Magic_main;
@@ -467,7 +479,7 @@ L_Magic_train_sagatha:
mes "[Wyara the Witch]";
mes "\"The tree has been there alone and unattended for a long time; what he needs most is water and affection. Give him both.\"";
next;
- goto Magic_main;
+ goto L_Magic_main;
L_Magic_train_tree_backgd:
mes "[Wyara the Witch]";
@@ -514,9 +526,9 @@ L_Magic_tree_menu:
menu
"How should I give him water?", L_Magic_tree_water,
"How should I thank him?", L_Magic_tree_remind,
- "OK.", -,
+ "I will.", -,
"No.", -;
- goto L_Magic_menu;
+ goto L_Magic_main;
L_Magic_tree_water:
mes "[Wyara the Witch]";
diff --git a/npc/009-3_Cave_beneath_Hurnscald/_import.txt b/npc/009-3_Cave_beneath_Hurnscald/_import.txt
index 0297260b..6a2a2a8e 100644
--- a/npc/009-3_Cave_beneath_Hurnscald/_import.txt
+++ b/npc/009-3_Cave_beneath_Hurnscald/_import.txt
@@ -2,3 +2,4 @@ map: 009-3.gat
npc: npc/009-3_Cave_beneath_Hurnscald/_mobs.txt
npc: npc/009-3_Cave_beneath_Hurnscald/_warps.txt
npc: npc/009-3_Cave_beneath_Hurnscald/monsters.txt
+npc: npc/009-3_Cave_beneath_Hurnscald/sword.txt
diff --git a/npc/009-3_Cave_beneath_Hurnscald/sword.txt b/npc/009-3_Cave_beneath_Hurnscald/sword.txt
index a1f9949a..d60ac123 100644
--- a/npc/009-3_Cave_beneath_Hurnscald/sword.txt
+++ b/npc/009-3_Cave_beneath_Hurnscald/sword.txt
@@ -19,7 +19,7 @@ L_message:
if (@Q_status == @STATUS_INITIAL) goto L_Initial;
if (@Q_status == @STATUS_LEARNED_FLAREDART) goto L_PostFlareDart;
- if (@Q_status == @STATUS_LEARNED_MAGICBLADE) goto L_PostFlareDart_teach;
+ if (@Q_status == @STATUS_LEARNED_MAGICBLADE) goto L_PostFlareDart_teach2;
if (@Q_status == @STATUS_LEVEL2) goto L_L2_W11;
if (@Q_status == @STATUS_W12) goto L_L2_W11;
if (@Q_status == @STATUS_W11) goto L_L2_almost_done;
@@ -46,7 +46,7 @@ L_Initial:
mes "[Magic Sword]";
mes "The deep basso voice continues.";
- mes "\"I know not what brought thee hither, but I kindly ask that you leave me alone in my sorrow.\"";
+ mes "\"I know not what brought thee hither, but I kindly ask that thou leavest me alone in my sorrow.\"";
next;
menu
@@ -68,7 +68,7 @@ L_PostFlareDart:
mes "\"Welcome, mortal!\"";
next;
- mes
+ menu
"Hi! How are you?", L_PostFlareDart_hi,
"Can you teach me magic?", L_PostFlareDart_teach,
"Your sister sent me.", L_PostFlareDart_sister,
@@ -109,7 +109,7 @@ L_PostFlareDart_teach:
mes "[Magic Sword]";
mes "\"So be it, fellow warrior. Hear the incantation for the blade spell: '" + getspellinvocation("magic-blade") + "'\"";
- mes "\"Hold a knife, sharp or regular, when you speak it.\"";
+ mes "\"Hold a knife, sharp or regular, when thou speakest it.\"";
set @Q_status, @STATUS_LEARNED_MAGICBLADE;
callsub S_update_var;
next;
@@ -119,7 +119,7 @@ L_PostFlareDart_teach:
next;
close;
-L_PostFlareDart_teach:
+L_PostFlareDart_teach2:
mes "[Magic Sword]";
mes "\"Seek out my sister, and leave me alone in my sorrows.\"";
next;
@@ -129,7 +129,7 @@ L_Close:
L_L2_W11:
mes "[Magic Sword]";
- mes "\"You have returned. That must mean that thy wish to learn the magic of war is still alive?\"";
+ mes "\"Thou hast returned. That must mean that thy wish to learn the magic of war is still alive?\"";
next;
menu
"No, I just wanted to say `hi'.", L_sayhi,
@@ -137,8 +137,8 @@ L_L2_W11:
mes "[Magic Sword]";
mes "\"If that is thy wish, I shall not stop thee. But do not expect to find merriment down this road.\"";
- mes "\"I must ask that you sacrifice a thousand monster points for this, however.\"";
-
+ mes "\"I must ask that thou sacrificest a thousand monster points for this, however.\"";
+ menu
"No, I don't want that.", L_farewell,
"I agree.", -;
@@ -165,13 +165,13 @@ L_L2_W11:
L_L2_almost_done:
mes "[Magic Sword]";
- mes "\"Return to my sister now. I expect that she shall teach you one more spell.\"";
+ mes "\"Return to my sister now. I expect that she shall teach thee one more spell.\"";
next;
close;
L_lacking_mobpoints:
mes "[Magic Sword]";
- mes "\"Thou lackest the monster points needed to prove thy worthiness. I shall not reveal more to you until thou hast slain more monsters.\"";
+ mes "\"Thou lackest the monster points needed to prove thy worthiness. I shall not reveal more to thee until thou hast slain more monsters.\"";
next;
close;
diff --git a/npc/011-1_Woodland/alchemist.txt b/npc/011-1_Woodland/alchemist.txt
index bc7b53f3..a821a3c1 100644
--- a/npc/011-1_Woodland/alchemist.txt
+++ b/npc/011-1_Woodland/alchemist.txt
@@ -109,16 +109,18 @@ L_post_sulphur_option:
L_post_ironpowder_option:
if (@Q_status == @SETZER_INITIAL)
- goto L_main_menu;
+ goto L_post_monster_oil;
set @menuitems$[@c], "Can you make monster oil?";
set @menuID[@c], @CHOICE_MONSTER_OIL;
set @c, @c + 1;
-L_main_menu:
+L_post_monster_oil:
set @menuitems$[@c], "No thanks.";
set @menuID[@c], @CHOICE_ABORT;
set @c, @c + 1;
+L_main_menu:
+
menu
@menuitems$[0], -,
@menuitems$[1], -,
@@ -260,6 +262,14 @@ L_get_mana_potion:
if(countitem(@ASH) < 5) goto L_mana_potion_lacking;
if(countitem(@PEARL) < 1) goto L_mana_potion_lacking;
if(countitem(@WATER) < 1) goto L_mana_potion_lacking;
+ getinventorylist;
+ if ((@inventorylist_count == 100)
+ && (countitem(@MAUVE) > 30)
+ && (countitem(@ASH) > 5)
+ && (countitem(@PEARL) > 1)
+ && (countitem(@WATER) > 1)
+ && (countitem(@MANAPOTION) < 1))
+ goto L_mana_potion_toomuch;
delitem @MAUVE, 30;
delitem @YELLOW, 20;
@@ -284,9 +294,16 @@ L_get_mana_potion:
goto L_main_menu;
+L_mana_potion_toomuch:
+ mes "[Rauk the Alchemist]";
+ mes "\"You look quite burdened already. Why don't you drop off a few things first, and come back later?\"";
+ next;
+ goto L_main_menu;
+
L_mana_potion_lacking:
mes "[Rauk the Alchemist]";
mes "\"Sorry, but I need one pearl, one bottle of water, 30 mauve leaves, 20 gamboge leaves, and five piles of volcanic ash.\"";
+ next;
goto L_main_menu;
L_iron:
diff --git a/npc/011-1_Woodland/auldsbel.txt b/npc/011-1_Woodland/auldsbel.txt
index 688fd690..f6d9c8a8 100644
--- a/npc/011-1_Woodland/auldsbel.txt
+++ b/npc/011-1_Woodland/auldsbel.txt
@@ -58,7 +58,7 @@
if (Sex == 0)
set @address$, "girl";
- if (@Q_status >= @Q_STATUS_POSTINTRO)
+ if (@Q_main_status >= @Q_STATUS_POSTINTRO)
goto L_short_intro;
mes "[Robed Man]";
@@ -105,7 +105,7 @@ L_intro_identity:
set @xmsg$, "Right... my name is " + strcharinfo(0) + ".";
if (strcharinfo(0) == "Padric")
- set @xmsg$, "Actually, I am, but I don't know you..?";
+ set @xmsg$, "Actually, I am, but I don't know you...?";
menu @xmsg$, L_intro_wrongperson,
"You're not very good with faces, are you?", L_intro_nogood,
@@ -213,16 +213,16 @@ L_ironpowder:
L_sulphur:
mes "[Auldsbel the Wizard]";
- set @cost, 400 - (@component_quest * 30);
- mes "\"Sulphur powder? Ah, so we have picked up a little offensive magic, haven't we? Good thinking, good thinking. And yes, of course I can transmute volcanic ashes into sulphur powder at a ratio of 1:5, for a mere " + @cost + " GP.\"";
+ set @cost, 400 - (@Q_component_quest * 30);
+ mes "\"Sulphur powder? Ah, so we have picked up a little offensive magic, haven't we? Good thinking, good thinking. And yes, of course I can transmute volcanic ashes into sulphur powder at a ratio of 1:5, for " + @cost + " GP.\"";
next;
- if (@Q_status >= @Q_STATUS_STUDENT)
+ if (@Q_main_status >= @Q_STATUS_STUDENT)
menu
"No, thank you.", -,
"I will see what I can find.", -,
"Can you teach me how to make it myself?", L_sulphur_teach_spell,
"Here you are.", L_sulphur_buy;
- if (@Q_status < @Q_STATUS_STUDENT)
+ if (@Q_main_status < @Q_STATUS_STUDENT)
menu
"No, thank you.", -,
"I will see what I can find.", -,
@@ -242,7 +242,7 @@ L_sulphur_buy:
set zeny, zeny - @cost;
delitem @ASH, 1;
- getitem @SULPHUR, 1;
+ getitem @SULPHUR, 5;
mes "[Auldsbel the Wizard]";
mes "\"I shall transmute it later. Here, have five half-ounces from my own stock.\"";
next;
@@ -521,6 +521,7 @@ L_question:
if (@c == 0) goto L_main_menu;
if (@c == @QQ_ELANORE) goto L_Q_elanore;
if (@c == @QQ_MANASEED) goto L_Q_manaseed;
+ if (@c == @QQ_MANAPOTION) goto L_make_mana_potion;
if (@c == @QQ_WYARA) goto L_Q_wyara;
if (@c == @QQ_SAGATHA) goto L_Q_sagatha;
if (@c == @QQ_IMP) goto L_Q_imp;
@@ -531,7 +532,7 @@ L_question:
next;
goto L_main_menu;
-L_Q_oldwiz:
+L_Q_old_wizard:
mes "[Auldsbel the Wizard]";
mes "\"I'm still not sure what exactly to make of him. At first appearance, he seems like a senile old man, but there can be no doubt that he has-- or at least had, at some point-- a very deep understanding of magic.\"";
next;
@@ -586,7 +587,7 @@ L_Q_manaseed:
mes "\"You have found an acual Mana Seed? That's impossible! Well, very unlikely... Then again, some others have told me similar rumours. I find it hard to believe that...\"";
next;
mes "[Auldsbel the Wizard]";
- mes "\"Well, if it's true, then try touching it. It should do you no harm, but if you are very, very lucky, it just might grant you some minuscle magical power.\"";
+ mes "\"Well, if it's true, then try touching it. That should do you no harm, but if you are very, very lucky, it just might grant you some minuscule amount of magical power.\"";
next;
goto L_main_menu;
@@ -600,7 +601,7 @@ L_Q_manaseed_touched:
goto L_Q_manaseed_touched_short;
mes "[Auldsbel the Wizard]";
- mes "\"Legend has it that you can substitute for such control by imbibing a Mana Potion. I am not sure whether that legend is true, but it might be worth trying out for you.\"";
+ mes "\"Legend has it that you can substitute for such control by imbibing a Mana Potion. I am not sure whether that legend is true, but for you it might be worth trying it out.\"";
next;
set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_KNOWS_MANAPOTION;
@@ -619,7 +620,7 @@ L_where_mana_potion:
L_make_mana_potion:
mes "[Auldsbel the Wizard]";
- mes "\"Certainly, I can transmute some components into a Mana Potion for you. Let's see... I will need one pearl, 10,000 GP, about twenty Mauve leaves, and some Gamboge ones... ten should do, I think. Oh, and a bottle of water, of course.\"";
+ mes "\"Well, I can transmute some components into a Mana Potion for you. Let's see... I will need one pearl, 10,000 GP, about twenty Mauve leaves, and some Gamboge ones... ten should do, I think. Oh, and a bottle of water, of course.\"";
next;
menu
"Here you are.", -,
@@ -636,6 +637,14 @@ L_make_mana_potion:
goto L_make_mana_potion_missing;
if (countitem(@BOTTLE_WATER) < 1)
goto L_make_mana_potion_missing;
+ getinventorylist;
+ if (@inventorylist_count == 100
+ && countitem(@YELLOW) > 10
+ && countitem(@MAUVE) > 20
+ && countitem(@PEARL) > 1
+ && countitem(@BOTTLE_WATER) > 1
+ && countitem(@MANA_POTION) < 1)
+ goto L_mana_potion_toomuch;
set zeny, zeny - 10000;
delitem @YELLOW, 10;
@@ -664,11 +673,17 @@ L_make_mana_potion:
goto L_main_menu;
+L_mana_potion_toomuch:
+ mes "[Auldsbel the Wizard]";
+ mes "\"Burndened as you are, I doubt you could carry it. Get rid of some of your old things first, will you?\"";
+ next;
+ goto L_main_menu;
+
L_make_mana_potion_missing:
mes "[Auldsbel the Wizard]";
mes "\"No, I need one pearl, 10,000 GP, 20 Mauve leaves, 10 Gamboge leaves, and one bottle of water.\"";
next;
- goto L_Q_manaseed_touched_short;
+ goto L_main_menu;
L_Q_manaseed_prepared:
mes "\"So you found a Mana Seed and preprared yourself by drinking a mana potion? I recommend that you visit the seed again and see if that actually works...\"";
@@ -972,7 +987,8 @@ LL_initiation:
menu
"Not yet.", -,
"How about this mouboo figurine?", LL_initiation_check;
- if (!countitem(@MOUBOO_FIGURINE))
+
+ if (!(countitem(@MOUBOO_FIGURINE)))
menu
"Not yet.", -,
"What was the spell again?", LL_repeat_spell;
@@ -988,7 +1004,7 @@ LL_initiation_fail:
goto L_main_menu;
LL_initiation_check:
- if (!countitem (@MOUBOO_FIGURINE))
+ if (!(countitem(@MOUBOO_FIGURINE)))
goto L_main_menu;
delitem @MOUBOO_FIGURINE, 1;
set @mexp, MAGIC_EXPERIENCE & 65535;
@@ -1020,18 +1036,19 @@ LL_initiation_check:
mes "[5000 experience points]";
mes "[Level 2 in Transmutation Magic]";
- set @Q_status, @Q_STATUS_STUDENT;
+ set @Q_main_status, @Q_STATUS_STUDENT;
callsub S_update_var;
getexp 5000, 0;
if (getskilllv(SKILL_MAGIC_TRANSMUTE) < 2)
skill SKILL_MAGIC_TRANSMUTE, 2;
+ next;
goto L_main_menu;
LL_student_start:
mes "[Auldsbel the Wizard]";
mes "\"Next, I shall teach you a higher-level transmutation spell.\"";
if (getskilllv(SKILL_MAGIC) < 2)
- msg "\"Beware, for you will not be able to use it yet.\"";
+ mes "\"Beware, for you will not be able to use it yet.\"";
next;
mes "[Auldsbel the Wizard]";
@@ -1047,7 +1064,7 @@ LL_student_start:
delitem @BUGLEG, 10;
getexp 1000, 0;
- set @Q_status, @Q_STATUS_STUDENT0;
+ set @Q_main_status, @Q_STATUS_STUDENT0;
callsub S_update_var;
mes "[Auldsbel the Wizard]";
@@ -1092,7 +1109,7 @@ LL_student_0:
delitem @MAUVE, 20;
getexp 1000, 0;
- set @Q_status, @Q_STATUS_STUDENT1;
+ set @Q_main_status, @Q_STATUS_STUDENT1;
callsub S_update_var;
mes "[Auldsbel the Wizard]";
@@ -1127,7 +1144,7 @@ LL_student_1:
delitem @STINGER, 10;
getexp 1000, 0;
- set @Q_status, @Q_STATUS_STUDENT2;
+ set @Q_main_status, @Q_STATUS_STUDENT2;
callsub S_update_var;
mes "[Auldsbel the Wizard]";
@@ -1162,7 +1179,7 @@ LL_student_2:
delitem @WOOD, 20;
getexp 1000, 0;
- set @Q_status, @Q_STATUS_STUDENT3;
+ set @Q_main_status, @Q_STATUS_STUDENT3;
callsub S_update_var;
mes "[Auldsbel the Wizard]";
diff --git a/npc/012-1_Woodland_Hills/injured-mouboo.txt b/npc/012-1_Woodland_Hills/injured-mouboo.txt
index c017a35a..c248b8e6 100644
--- a/npc/012-1_Woodland_Hills/injured-mouboo.txt
+++ b/npc/012-1_Woodland_Hills/injured-mouboo.txt
@@ -108,15 +108,17 @@ L_give:
setarray @choice_eat, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
set @n, 0;
+ set @ct, 0;
L_nloop:
set @k, @items[@n];
if (countitem(@k) == 0)
goto L_nloop_skip;
set @name$, getitemname(@k);
- set @choice$[@n], @name$;
- set @choice_idx[@n], @k;
- set @choice_eat[@n], @itemeat[@n];
+ set @choice$[@ct], @name$;
+ set @choice_idx[@ct], @k;
+ set @choice_eat[@ct], @itemeat[@n];
+ set @ct, @ct + 1;
L_nloop_skip:
@@ -124,19 +126,18 @@ L_nloop_skip:
if (@n < @items_nr)
goto L_nloop;
- menu
- @choice$[0], -
- @choice$[1], -
- @choice$[2], -
- @choice$[3], -
- @choice$[4], -
- @choice$[5], -
- @choice$[6], -
- @choice$[7], -
- @choice$[8], -
- @choice$[9], -
- @choice$[10], -
- @choice$[11], -;
+ menu @choice$[0], -,
+ @choice$[1], -,
+ @choice$[2], -,
+ @choice$[3], -,
+ @choice$[4], -,
+ @choice$[5], -,
+ @choice$[6], -,
+ @choice$[7], -,
+ @choice$[8], -,
+ @choice$[9], -,
+ @choice$[10], -,
+ @choice$[11], -;
set @menu, @menu - 1;
set @choice, @choice_idx[@menu];
@@ -163,6 +164,7 @@ L_consume:
mes "[Injured Mouboo]";
mes "Unfortunately, it seems to have had no effect.";
+ next;
goto L_menu;
L_do_heal:
diff --git a/npc/012-3_Cave/mana-seed.txt b/npc/012-3_Cave/mana-seed.txt
index 6ad8a37e..7b8c7796 100644
--- a/npc/012-3_Cave/mana-seed.txt
+++ b/npc/012-3_Cave/mana-seed.txt
@@ -127,8 +127,6 @@ L_magic_level_1:
mes "It is a light-headed feeling, and you find yourself forced to sit down for a few seconds to recover.";
mes "Something is different. A new power has grown within you and is waiting to be understood.";
mes "[1000 experience points]";
- next;
-
skill SKILL_MAGIC, 1;
getexp 1000, 0;
next;
@@ -182,7 +180,7 @@ L_magic_touch:
L_magic_levelup:
set @baselevel_needed, @min_level[getskilllv(SKILL_MAGIC) + 1];
- if (base_level < @baselevel_needed)
+ if (BaseLevel < @baselevel_needed)
goto L_insufficient_baselevel;
mes "Its energy permeates you, surrounds you. You are suddenly uncertain if it is you who is containing the orb's powers or if it is the orb who is seeking out yours.";
next;
@@ -248,7 +246,7 @@ L_magic_maxed_out:
goto L_magic_mainmenu;
-L_insufficent_baselevel:
+L_insufficient_baselevel:
mes "Its energies rush through you. You fight to keep them under control, to contain them in your body. Alas, your body is too frail-- you have to let go.";
mes "Frustrated, you give up. You have the skill needed to control this power, but you will have to grow up some more before your body can handle it.";
next;
diff --git a/npc/013-1_Woodland_hills/sagatha.txt b/npc/013-1_Woodland_hills/sagatha.txt
index ed2a20b6..222c1aa1 100644
--- a/npc/013-1_Woodland_hills/sagatha.txt
+++ b/npc/013-1_Woodland_hills/sagatha.txt
@@ -1,7 +1,7 @@
// Sagatha the witch, expert for nature and ether magic
//----------------------------------------
-function script QuestSagathaHappy {
+function script QuestSagathaHappy {
set @unhappiness, (QUEST_MAGIC & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT;
if (@unhappiness < @value)
goto L_zero;
@@ -18,7 +18,7 @@ L_write:
}
//----------------------------------------
-function script QuestSagathaAnnoy {
+function script QuestSagathaAnnoy {
set @unhappiness, (QUEST_MAGIC & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT;
if ((@unhappiness + @value) > 15)
goto L_max;
@@ -34,7 +34,7 @@ L_write:
return;
}
-function script SagathaStatus {
+function script SagathaStatus {
set @mexp, MAGIC_EXPERIENCE & 65535;
set @has_magic, getskilllv(SKILL_MAGIC);
set @evil, 0;
@@ -139,18 +139,18 @@ L_evil:
L_unhappy:
mes "The witch glares at you in anger.";
- mes "\"I wonder if you can still sleep after killing those innocent forest creatures! I am sure that they will come back to haunt you in your dreams!\"";
+ mes "\"I wonder if you can still sleep after killing those innocent forest creatures!";
+ mes "I am sure that they will come back to haunt you in your dreams!\"";
next;
close;
L_wb:
- mes "[Sagatha the Witch]";
if (@good > 1)
- msg "Sagatha nods as she notices you.";
+ mes "Sagatha nods as she notices you.";
if (@good == 1)
- msg "Sagatha raises an eyebrow as you address her.";
+ mes "Sagatha raises an eyebrow as you address her.";
if (@good == 0)
- msg "Sagatha glances at you, suspicion evident in her eyes.";
+ mes "Sagatha glances at you, suspicion evident in her eyes.";
next;
L_main:
@@ -187,6 +187,7 @@ L_teach_initial:
getexp 5000, 0;
if (getskilllv(SKILL_MAGIC_ETHER) < 2)
skill SKILL_MAGIC_ETHER, 2;
+ next;
mes "[Sagatha the Witch]";
mes "\"In the future, I will teach you nature and ether magic. For the other schools there are better teachers around.\"";
@@ -313,13 +314,13 @@ L_Q_old_wizard:
mes "[Sagatha the Witch]";
mes "\"A kind and wise wizard.\"";
next;
- goto L_main_menu;
+ goto L_main;
L_Q_imp:
mes "[Sagatha the Witch]";
mes "\"He is an evil and cruel one. He lies and cheats and will try to take advantage of you. Stay away from him.\"";
next;
- goto L_main_menu;
+ goto L_main;
L_Q_elanore:
mes "[Sagatha the Witch]";
@@ -338,14 +339,12 @@ L_Q_manaseed:
goto L_main;
L_Q_manaseed_unabsorbed:
- mes "[Sagatha the Witch]";
mes "\"If the mana seed didn't pass its magic to you, you clearly aren't attuned to magic.\"";
next;
goto L_main;
L_Q_manaseed_m:
- mes "[Sagatha the Witch]";
- mes "\"You were lucky that the mana seed gave you its magic.\"";
+ mes "\"You were lucky that the mana seed gave you its magic. I hope that you will use this power for something good now.\"";
next;
goto L_main;
diff --git a/npc/015-1_Woodland/_import.txt b/npc/015-1_Woodland/_import.txt
index d92e0749..fcefd199 100644
--- a/npc/015-1_Woodland/_import.txt
+++ b/npc/015-1_Woodland/_import.txt
@@ -3,3 +3,4 @@ npc: npc/015-1_Woodland/_mobs.txt
npc: npc/015-1_Woodland/_warps.txt
npc: npc/015-1_Woodland/alice.txt
npc: npc/015-1_Woodland/monsters.txt
+npc: npc/015-1_Woodland/sword.txt
diff --git a/npc/015-1_Woodland/sword.txt b/npc/015-1_Woodland/sword.txt
index d666777e..5713656b 100644
--- a/npc/015-1_Woodland/sword.txt
+++ b/npc/015-1_Woodland/sword.txt
@@ -74,11 +74,19 @@ L_Initial_learn:
mes "[Mystic Sword]";
mes "\"Alas, my nature is not quite conductive for spells of healing or protection, though I can bestow upon thee the powers for a rather more martial kind of power.\"";
- mes "\"But first... why is it that thou seekest this power?\"";
next;
- mes
- "Never mind.", L_Farewell;
+ menu
+ "I am not interested in that.", L_Farewell,
+ "It might be good for me to learn that.", -,
+ "I am quite interested.", -;
+
+ mes "[Mystic Sword]";
+ mes "\"Why is it that thou seekest this power?\"";
+ next;
+
+ menu
+ "Never mind.", L_Farewell,
"To become stronger!", L_Initial_selfish,
"To kill!", L_Initial_selfish,
"I don't know yet...", L_Initial_dontknow,
@@ -113,10 +121,19 @@ L_Initial_ok:
set @Q_status, @STATUS_LEARNED_FLAREDART;
callsub S_update_var;
next;
- close;
+
+ mes "[Mystic Sword]";
+ mes "\"From then on, thou canst shoot fiery missiles from thy fingers, for a limited time.\"";
+ next;
+
+ mes "[Mystic Sword]";
+ mes "\"Use it wisely, mortal!.\"";
+ next;
+
+ goto L_Farewell;
L_FlareStage:
- menu;
+ menu
"Uhm... Hello, Sword?", L_FlareStage_hello,
"Can you teach me more magic?", L_FlareStage_impolite,
"Where can I get sulphur powder?", L_FlareStage_impolite;
@@ -142,7 +159,7 @@ L_FlareStage_hello:
L_FlareStage_moremagic:
mes "[Mystic Sword]";
- mes "\"I can indeed! But first I must see if thou art worthy. Find my brother, and talk to him! If thou canst find him, she shall teach thee another spell.\"";
+ mes "\"I can indeed! But first I must see if thou art worthy. Find my brother, and talk to him! If thou canst find him, he shall teach thee another spell.\"";
next;
goto L_Farewell;
@@ -188,8 +205,8 @@ L_Levelup2_yes:
mes "[Mystic Sword]";
mes "The sword begins to chant in your head!";
mes " \"Lords of Thunder, Fire, Rage!\"";
- mes " \"Grant your powers to this mage,\"";
- mes " \"Rising with your dreadful roar,\"";
+ mes " \"Grant thy powers to this mage,\"";
+ mes " \"Rising with thy dreadful roar,\"";
if (Sex)
mes " \"Answer to his call to War!\"";
if (!Sex)
@@ -214,7 +231,7 @@ L_Levelup2_yes:
next;
mes "[Mystic Sword]";
- mes "\"You have now taken your first true step down the path of war magic. Seek out my brother for thy next spell!\"";
+ mes "\"Thou hast now taken thy first true step down the path of war magic. Seek out my brother for thy next spell!\"";
next;
goto L_Farewell;
@@ -267,7 +284,7 @@ L_L2_W12:
next;
mes "[Mystic Sword]";
- mes "\"Speak '" + getspellinvocation("magic-knuckles") + "' and take a glass of beer and drink it, without ever taking it off your lips. This will harden and enchant thy fists, turning them into powerful weapons.\"";
+ mes "\"Speak '" + getspellinvocation("magic-knuckles") + "' and take a glass of beer and drink it, without ever taking it off thy lips. This will harden and enchant thy fists, turning them into powerful weapons.\"";
next;
close;
@@ -291,7 +308,7 @@ L_L2_W10:
next;
menu
- "OK.", -;
+ "OK.", -,
"No way.", L_farewell;
if (countitem(@ORE) < 1)