diff options
-rw-r--r-- | conf/magic.conf.template | 400 | ||||
-rw-r--r-- | npc/001-1_Tulimshar/elanore.txt | 19 | ||||
-rw-r--r-- | npc/009-1_Hurnscald/old_woman.txt | 255 | ||||
-rw-r--r-- | npc/009-2_Hurnscald/wyara.txt | 15 | ||||
-rw-r--r-- | npc/011-1_Woodland/auldsbel.txt | 47 | ||||
-rw-r--r-- | npc/013-1_Woodland_hills/sagatha.txt | 32 | ||||
-rw-r--r-- | npc/013-2_Magic_house/wizard.txt | 65 | ||||
-rw-r--r-- | npc/028-1/Portal.txt | 131 | ||||
-rwxr-xr-x | npc/028-1/_import.txt | 11 | ||||
-rwxr-xr-x | npc/028-1/_warps.txt | 1 | ||||
-rw-r--r-- | npc/scripts.conf | 3 |
11 files changed, 362 insertions, 617 deletions
diff --git a/conf/magic.conf.template b/conf/magic.conf.template index 12621a34..87f8b49c 100644 --- a/conf/magic.conf.template +++ b/conf/magic.conf.template @@ -1306,166 +1306,166 @@ LOCAL SPELL mouboo-smell : "#s" = CONST E10_FLAG_USED_FREE_WARP_SHIFT = 17 -NONMAGIC SILENT SPELL easter (type : STRING) : "#m" = - (REQUIRE name_of(caster) == "Freeyorp") => - EFFECT IF (type == "EE_RF") THEN ( - { - doevent("Old Woman::OnReplenish"); - } - ) ELSE IF (type == "EE_SUS") THEN ( - { - doevent "Old Woman::OnManualStopTimer"; - } - ) ELSE IF (type == "EE_INIT") THEN ( - { - doevent "Old Woman::OnManualStartTimer"; - } - ) ELSE IF (type == "BLOCKER_DISABLE") THEN ( - { - set $Easter_2010_Npc_State2, ($Easter_2010_Npc_State2 & ~(E10_BARRIER_MASK << E10_BARRIER_SHIFT)) | (E10_BARRIER_OPEN << E10_BARRIER_SHIFT); - } - ) ELSE IF (type == "BLOCKER_ENABLE") THEN ( - { - set $Easter_2010_Npc_State2, ($Easter_2010_Npc_State2 & ~(E10_BARRIER_MASK << E10_BARRIER_SHIFT)) | (E10_BARRIER_ACTIVE << E10_BARRIER_SHIFT); - } - ) ELSE message(caster, "Unknown action '" + type + "'!"); - -// Invader spells - -NONMAGIC SILENT SPELL easter-invader-init : "#i" = - (REQUIRE name_of(caster) == "Xakelbael the Dark") => - EFFECT warp(caster, @("028-1.gat", 139, 46)); - { - gmcommand strcharinfo(0)+":@blvl -255"; - gmcommand strcharinfo(0)+":@blvl 199"; - gmcommand strcharinfo(0)+":@setmagic all 5 Xakelbael the Dark"; - gmcommand strcharinfo(0)+":@allstats"; - savepoint "028-1.gat", 130, 46; - } - create_item(caster, "DarkTalisman", 1); - -NONMAGIC SILENT SPELL easter-invader-hide : "#h" = - (REQUIRE name_of(caster) == "Xakelbael the Dark") => - EFFECT { if (checkoption(4096)) goto L_toggle; - setoption(4096); - end; - L_toggle: - setoption(0); - end; }; - warp(caster, location(caster)); - -NONMAGIC SILENT SPELL easter-invader-warp-taunt : "#o" = - (REQUIRE name_of(caster) == "Xakelbael the Dark") => - EFFECT warp(caster, @("009-1.gat", 48, 35)); - WAIT 80; - sfx(caster, 32, 0); - WAIT 80; - FOREACH PC p IN rbox(location(caster), 50) - DO IF (p <> caster) THEN ( - message(p, "A powerful explosion " + if_then_else(distance(location(caster), location(p)) < 10, "right around you nearly deafens you!", if_then_else(distance(location(caster), location(p)) < 30, "nearby shocks you!", "in the distance erupts... you're not sure of the source, but it will be something big..."))); - itemheal(p, -1 - random(hp(p)), 0-(random(sp(p) >> 2))); - ) - WAIT 1000; - FOREACH PC p IN rbox(location(caster), 15) - DO ( - message(p, "As the smoke clears, you hear a distant, sickly laughing ringing in your ears..."); - ) - -NONMAGIC SILENT SPELL easter-invader-warp-taunt-explosion : "#q" = - (REQUIRE name_of(caster) == "Xakelbael the Dark") => - EFFECT sfx(caster, 32, 0); - WAIT 100; - sfx(caster, 31, 0); - WAIT 30; - sfx(caster, 30, 0); - WAIT 30; - sfx(caster, 30, 0); - WAIT 20; - sfx(caster, 30, 0); - WAIT 10; - sfx(caster, 30, 0); - WAIT 10; - -NONMAGIC SILENT SPELL easter-invader-warp-taunt-end : "#p" = - (REQUIRE name_of(caster) == "Xakelbael the Dark") => - EFFECT FOREACH PC p IN rbox(location(caster), 50) DO IF (p <> caster) - THEN ( script_target = p; - { gmcommand strcharinfo(0)+":@jump"; } - message(p, "A powerful force sends you flying!"); - ) - warp(caster, @("028-1.gat", 130, 46)); - - -NONMAGIC SILENT SPELL easter-invader-attack-pulse : "#a" = - (REQUIRE name_of(caster) == "Xakelbael the Dark") => - EFFECT IF (script_int(caster, "InvState") == 1) THEN ( set_script_variable(caster, "InvState", 0); ABORT; ); - set_script_variable(caster, "InvState", 1); - FOR i = 1 TO 500 - DO ( sfx(caster, 31, 0); - WAIT 80; - FOREACH PC p IN rbox(location(caster), 4) - DO IF (p <> caster) THEN ( injure(caster, p, 30 - random(random(25)) - random(5) + random(i), 0); ) - WAIT 420; - IF (script_int(caster, "InvState") == 0) THEN ABORT; - ) - set_script_variable(caster, "InvState", 0); - -NONMAGIC SILENT SPELL easter-invader-command : "#d" = - (REQUIRE name_of(caster) == "Xakelbael the Dark") => - EFFECT override_attack(caster, 3, ((200 - agi(caster)) * 5000) / 200, - 8, ATTACK_ICON_GENERIC, 31, 0); - ATTRIGGER CALL attack_check(target); - area = rbox(location(target), 8); - FOREACH MOB m IN area - DO (message(caster, "Class Id: " + mob_id(m)); - IF (mob_id(m) = 1040 || mob_id(m) == 1042 || mob_id(m) == 1047) THEN ( - CALL sfx_generic(m); - aggravate(m, 0, target); - ) - ) - -NONMAGIC SILENT SPELL easter-invader-spike : "#w" = - (REQUIRE name_of(caster) == "Xakelbael the Dark") => - EFFECT FOR i = 1 TO 40 - DO ( point = random_location(rbox(location(caster), sqrt(i) << 1)); - IF (random(3)) - THEN (sfx(point, 32, 0); - WAIT 50; - FOREACH PC p IN rbox(point, sqrt(i) >> 1) - DO IF (p <> caster) - THEN (injure(caster, p, i + random(i << 1), random(random(i)));) - ) ELSE (sfx(point, 31, 0); - WAIT 50; - FOREACH PC p IN rbox(point, sqrt(i)) - DO IF (p <> caster) - THEN (injure(caster, p, i + random(i << 2), random(random(i)));) - ) - WAIT 400 - (i << 3); - ) - -NONMAGIC SILENT SPELL easter-invader-jump (t : STRING) : "#j" = - (REQUIRE name_of(caster) == "Xakelbael the Dark") => - EFFECT IF not (status_option(caster, 4096)) THEN ( sfx(caster, 33, 0); - WAIT 200; ); - IF (t == "r") THEN ( warp(caster, @("028-1.gat", 129, 46)); ) - ELSE IF (t == "s") THEN ( warp(caster, @("028-1.gat", 69, 96)); ) - ELSE IF (t == "c") THEN ( warp(caster, @("028-3.gat", 50, 58)); ) - ELSE IF (t == "t") THEN ( warp(caster, @("009-1.gat", 48, 35)); ) - ELSE { gmcommand strcharinfo(0)+":@jump"; }; - -NONMAGIC SILENT SPELL easter-invader-taunt-local (s : STRING) : "#l" = - (REQUIRE name_of(caster) == "Xakelbael the Dark") => - EFFECT FOREACH PC p IN rbox(location(caster), 20) DO message(p, s); - -NONMAGIC SILENT SPELL easter-invader-taunt-global (s : STRING) : "#b" = - (REQUIRE name_of(caster) == "Xakelbael the Dark") => - EFFECT FOREACH PC p IN rbox(location(caster), 100) DO message(p, s); - -NONMAGIC SILENT SPELL easter-invader-spawn : "#c" = - (REQUIRE name_of(caster) == "Xakelbael the Dark") => - EFFECT spawn(rbox(location(caster), 20), caster, 1040, random(random(5)), 1, 100000); - spawn(rbox(location(caster), 20), caster, 1042, random(random(5)), 1, 100000); - spawn(rbox(location(caster), 20), caster, 1047, random(random(5)), 1, 100000); +#NONMAGIC SILENT SPELL easter (type : STRING) : "#m" = +# (REQUIRE name_of(caster) == "Freeyorp") => +# EFFECT IF (type == "EE_RF") THEN ( +# { +# doevent("Old Woman::OnReplenish"); +# } +# ) ELSE IF (type == "EE_SUS") THEN ( +# { +# doevent "Old Woman::OnManualStopTimer"; +# } +# ) ELSE IF (type == "EE_INIT") THEN ( +# { +# doevent "Old Woman::OnManualStartTimer"; +# } +# ) ELSE IF (type == "BLOCKER_DISABLE") THEN ( +# { +# set $Easter_2010_Npc_State2, ($Easter_2010_Npc_State2 & ~(E10_BARRIER_MASK << E10_BARRIER_SHIFT)) | (E10_BARRIER_OPEN << E10_BARRIER_SHIFT); +# } +# ) ELSE IF (type == "BLOCKER_ENABLE") THEN ( +# { +# set $Easter_2010_Npc_State2, ($Easter_2010_Npc_State2 & ~(E10_BARRIER_MASK << E10_BARRIER_SHIFT)) | (E10_BARRIER_ACTIVE << E10_BARRIER_SHIFT); +# } +# ) ELSE message(caster, "Unknown action '" + type + "'!"); + +# Invader spells + +#NONMAGIC SILENT SPELL easter-invader-init : "#i" = +# (REQUIRE name_of(caster) == "Xakelbael the Dark") => +# EFFECT warp(caster, @("028-1.gat", 139, 46)); +# { +# gmcommand strcharinfo(0)+":@blvl -255"; +# gmcommand strcharinfo(0)+":@blvl 199"; +# gmcommand strcharinfo(0)+":@setmagic all 5 Xakelbael the Dark"; +# gmcommand strcharinfo(0)+":@allstats"; +# savepoint "028-1.gat", 130, 46; +# } +# create_item(caster, "DarkTalisman", 1); + +#NONMAGIC SILENT SPELL easter-invader-hide : "#h" = +# (REQUIRE name_of(caster) == "Xakelbael the Dark") => +# EFFECT { if (checkoption(4096)) goto L_toggle; +# setoption(4096); +# end; +# L_toggle: +# setoption(0); +# end; }; +# warp(caster, location(caster)); + +#NONMAGIC SILENT SPELL easter-invader-warp-taunt : "#o" = +# (REQUIRE name_of(caster) == "Xakelbael the Dark") => +# EFFECT warp(caster, @("009-1.gat", 48, 35)); +# WAIT 80; +# sfx(caster, 32, 0); +# WAIT 80; +# FOREACH PC p IN rbox(location(caster), 50) +# DO IF (p <> caster) THEN ( +# message(p, "A powerful explosion " + if_then_else(distance(location(caster), location(p)) < 10, "right around you nearly deafens you!", if_then_else(distance(location(caster), location(p)) < 30, "nearby shocks you!", "in the distance erupts... you're not sure of the source, but it will be something big..."))); +# itemheal(p, -1 - random(hp(p)), 0-(random(sp(p) >> 2))); +# ) +# WAIT 1000; +# FOREACH PC p IN rbox(location(caster), 15) +# DO ( +# message(p, "As the smoke clears, you hear a distant, sickly laughing ringing in your ears..."); +# ) + +#NONMAGIC SILENT SPELL easter-invader-warp-taunt-explosion : "#q" = +# (REQUIRE name_of(caster) == "Xakelbael the Dark") => +# EFFECT sfx(caster, 32, 0); +# WAIT 100; +# sfx(caster, 31, 0); +# WAIT 30; +# sfx(caster, 30, 0); +# WAIT 30; +# sfx(caster, 30, 0); +# WAIT 20; +# sfx(caster, 30, 0); +# WAIT 10; +# sfx(caster, 30, 0); +# WAIT 10; + +#NONMAGIC SILENT SPELL easter-invader-warp-taunt-end : "#p" = +# (REQUIRE name_of(caster) == "Xakelbael the Dark") => +# EFFECT FOREACH PC p IN rbox(location(caster), 50) DO IF (p <> caster) +# THEN ( script_target = p; +# { gmcommand strcharinfo(0)+":@jump"; } +# message(p, "A powerful force sends you flying!"); +# ) +# warp(caster, @("028-1.gat", 130, 46)); + + +#NONMAGIC SILENT SPELL easter-invader-attack-pulse : "#a" = +# (REQUIRE name_of(caster) == "Xakelbael the Dark") => +# EFFECT IF (script_int(caster, "InvState") == 1) THEN ( set_script_variable(caster, "InvState", 0); ABORT; ); +# set_script_variable(caster, "InvState", 1); +# FOR i = 1 TO 500 +# DO ( sfx(caster, 31, 0); +# WAIT 80; +# FOREACH PC p IN rbox(location(caster), 4) +# DO IF (p <> caster) THEN ( injure(caster, p, 30 - random(random(25)) - random(5) + random(i), 0); ) +# WAIT 420; +# IF (script_int(caster, "InvState") == 0) THEN ABORT; +# ) +# set_script_variable(caster, "InvState", 0); + +#NONMAGIC SILENT SPELL easter-invader-command : "#d" = +# (REQUIRE name_of(caster) == "Xakelbael the Dark") => +# EFFECT override_attack(caster, 3, ((200 - agi(caster)) * 5000) / 200, +# 8, ATTACK_ICON_GENERIC, 31, 0); +# ATTRIGGER CALL attack_check(target); +# area = rbox(location(target), 8); +# FOREACH MOB m IN area +# DO (message(caster, "Class Id: " + mob_id(m)); +# IF (mob_id(m) = 1040 || mob_id(m) == 1042 || mob_id(m) == 1047) THEN ( +# CALL sfx_generic(m); +# aggravate(m, 0, target); +# ) +# ) + +#NONMAGIC SILENT SPELL easter-invader-spike : "#w" = +# (REQUIRE name_of(caster) == "Xakelbael the Dark") => +# EFFECT FOR i = 1 TO 40 +# DO ( point = random_location(rbox(location(caster), sqrt(i) << 1)); +# IF (random(3)) +# THEN (sfx(point, 32, 0); +# WAIT 50; +# FOREACH PC p IN rbox(point, sqrt(i) >> 1) +# DO IF (p <> caster) +# THEN (injure(caster, p, i + random(i << 1), random(random(i)));) +# ) ELSE (sfx(point, 31, 0); +# WAIT 50; +# FOREACH PC p IN rbox(point, sqrt(i)) +# DO IF (p <> caster) +# THEN (injure(caster, p, i + random(i << 2), random(random(i)));) +# ) +# WAIT 400 - (i << 3); +# ) + +#NONMAGIC SILENT SPELL easter-invader-jump (t : STRING) : "#j" = +# (REQUIRE name_of(caster) == "Xakelbael the Dark") => +# EFFECT IF not (status_option(caster, 4096)) THEN ( sfx(caster, 33, 0); +# WAIT 200; ); +# IF (t == "r") THEN ( warp(caster, @("028-1.gat", 129, 46)); ) +# ELSE IF (t == "s") THEN ( warp(caster, @("028-1.gat", 69, 96)); ) +# ELSE IF (t == "c") THEN ( warp(caster, @("028-3.gat", 50, 58)); ) +# ELSE IF (t == "t") THEN ( warp(caster, @("009-1.gat", 48, 35)); ) +# ELSE { gmcommand strcharinfo(0)+":@jump"; }; + +#NONMAGIC SILENT SPELL easter-invader-taunt-local (s : STRING) : "#l" = +# (REQUIRE name_of(caster) == "Xakelbael the Dark") => +# EFFECT FOREACH PC p IN rbox(location(caster), 20) DO message(p, s); + +#NONMAGIC SILENT SPELL easter-invader-taunt-global (s : STRING) : "#b" = +# (REQUIRE name_of(caster) == "Xakelbael the Dark") => +# EFFECT FOREACH PC p IN rbox(location(caster), 100) DO message(p, s); + +#NONMAGIC SILENT SPELL easter-invader-spawn : "#c" = +# (REQUIRE name_of(caster) == "Xakelbael the Dark") => +# EFFECT spawn(rbox(location(caster), 20), caster, 1040, random(random(5)), 1, 100000); +# spawn(rbox(location(caster), 20), caster, 1042, random(random(5)), 1, 100000); +# spawn(rbox(location(caster), 20), caster, 1047, random(random(5)), 1, 100000); NONMAGIC SILENT SPELL world-shift : "#S00" = (REQUIRE (script_int(caster, "Easter_2010_QuestState") >> 16) & 1 == 1 && (script_int(caster, "Easter_2010_QuestState") >> 7) & 3 == 2) => # Travel only works when you have both helped the doctor at least thrice and have defeated the invader - top level requirement. @@ -1507,42 +1507,42 @@ NONMAGIC SILENT SPELL world-shift : "#S00" = ) ) -NONMAGIC SILENT SPELL easter-invader-killer : "#z" = - (REQUIRE name_of(caster) == "Xakelbael the Dark") => - EFFECT { gmcommand strcharinfo(0)+"@killer"; } - -NONMAGIC SILENT SPELL easter-invader-killable : "#x" = - (REQUIRE name_of(caster) == "Xakelbael the Dark") => - EFFECT { gmcommand strcharinfo(0)+"@killable"; } - -NONMAGIC SILENT SPELL easter-debug-reset (s : STRING) : "#r" = - (REQUIRE name_of(caster) == "Freeyorp") => - EFFECT set_script_variable(pc(s), "Easter_2010_QuestState", 0); - -NONMAGIC SILENT SPELL easter-set-flag (s : PC) : "#k" = - (REQUIRE name_of(caster) == "Freeyorp" || name_of(caster) == "Xakelbael the Dark") => - EFFECT IF (s == caster) THEN ABORT; - IF ((script_int(s, "Easter_2010_QuestState") >> 16) & 1) THEN ( message(caster, s + " already has the flag set!"); ABORT; ) - script_target = s; - { set Easter_2010_QuestState, Easter_2010_QuestState | (1 << 16); // RETURN_READY flag - mes "As the smoke clears, you feel stronger, vivified."; - next; - mes "The world seems more vibrant. It looks the same as ever, but you get a sense of something more."; - next; - mes "You feel something familiar."; - next; - mes "This sensation... could it be home?"; - next; - mes "A single word comes to your mind - " + getspellinvocation("world-shift") + ". While it sounds magical, you know with certainty that you will not need any magical power to use it."; - next; - mes "Could this be the way to move to and from the worlds? Either way, the dark petal the rose vanished into seems to be the key."; - next; - mes "Though you might be able to succeed in one trip without it, returning home."; - if ((Easter_2010_QuestState >> E10_STATE_ROSE_SHIFT) & E10_STATE_ROSE_MASK == E10_STATE_ROSE_ROSE_COMPLETE) close; - next; - mes "But the world is still not quite right. Perhaps there is someone you should help before the world releases its hold on you?"; - close; - } +#NONMAGIC SILENT SPELL easter-invader-killer : "#z" = +# (REQUIRE name_of(caster) == "Xakelbael the Dark") => +# EFFECT { gmcommand strcharinfo(0)+"@killer"; } + +#NONMAGIC SILENT SPELL easter-invader-killable : "#x" = +# (REQUIRE name_of(caster) == "Xakelbael the Dark") => +# EFFECT { gmcommand strcharinfo(0)+"@killable"; } + +#NONMAGIC SILENT SPELL easter-debug-reset (s : STRING) : "#r" = +# (REQUIRE name_of(caster) == "Freeyorp") => +# EFFECT set_script_variable(pc(s), "Easter_2010_QuestState", 0); + +#NONMAGIC SILENT SPELL easter-set-flag (s : PC) : "#k" = +# (REQUIRE name_of(caster) == "Freeyorp" || name_of(caster) == "Xakelbael the Dark") => +# EFFECT IF (s == caster) THEN ABORT; +# IF ((script_int(s, "Easter_2010_QuestState") >> 16) & 1) THEN ( message(caster, s + " already has the flag set!"); ABORT; ) +# script_target = s; +# { set Easter_2010_QuestState, Easter_2010_QuestState | (1 << 16); // RETURN_READY flag +# mes "As the smoke clears, you feel stronger, vivified."; +# next; +# mes "The world seems more vibrant. It looks the same as ever, but you get a sense of something more."; +# next; +# mes "You feel something familiar."; +# next; +# mes "This sensation... could it be home?"; +# next; +# mes "A single word comes to your mind - " + getspellinvocation("world-shift") + ". While it sounds magical, you know with certainty that you will not need any magical power to use it."; +# next; +# mes "Could this be the way to move to and from the worlds? Either way, the dark petal the rose vanished into seems to be the key."; +# next; +# mes "Though you might be able to succeed in one trip without it, returning home."; +# if ((Easter_2010_QuestState >> E10_STATE_ROSE_SHIFT) & E10_STATE_ROSE_MASK == E10_STATE_ROSE_ROSE_COMPLETE) close; +# next; +# mes "But the world is still not quite right. Perhaps there is someone you should help before the world releases its hold on you?"; +# close; +# } NONMAGIC SILENT SPELL easter-get-debug (p : PC) : "#e" = (REQUIRE name_of(caster) == "Freeyorp" || name_of(caster) == "Xakelbael the Dark") => @@ -1560,10 +1560,10 @@ NONMAGIC SILENT SPELL easter-get-debug (p : PC) : "#e" = message(caster, "Local state egg4: " + script_int(p, "Easter_2010_EggState4")); message(caster, "Local state egg5: " + script_int(p, "Easter_2010_EggState5")); message(caster, "Local state quest: " + script_int(p, "Easter_2010_QuestState")); - - - - + + + + PROCEDURE hug_tree(target) = IF (target = "" || target = "tree" || target = "tree*" diff --git a/npc/001-1_Tulimshar/elanore.txt b/npc/001-1_Tulimshar/elanore.txt index 48062d10..7dea2a32 100644 --- a/npc/001-1_Tulimshar/elanore.txt +++ b/npc/001-1_Tulimshar/elanore.txt @@ -145,7 +145,6 @@ L_Chat: L_Main: if (@has_magic && (@Q_status == @STATUS_INITIAL)) menu - "Are you okay? You seem worried.", L_easter_worried, "Can you heal me?", L_NoHealMessage, "Can you teach me magic?", L_Teach, "What do you know about...", L_Question, @@ -153,7 +152,6 @@ L_Main: if (@has_magic && (@Q_status > @STATUS_INITIAL)) menu - "Are you okay? You seem worried.", L_easter_worried, "Can you heal me?", L_NoHealMessage, "Can you teach me more?", L_Teach, "Where can I get more lifestones?", L_Lifestones, @@ -162,7 +160,6 @@ L_Main: if (!@has_magic) menu - "Are you okay? You seem worried.", L_easter_worried, "Can you heal me?", L_NoHealMessage, "What do you know about...", L_Question, "Goodbye!", L_bye; @@ -183,7 +180,7 @@ L_OnPcKillFinish: L_Lifestones: mes "[Elanore the Healer]"; - mes "\"I always need components for my own healing spells. If you bring me ten gamboge leaves, ten alizarin leaves, ten mauve leaves and ten cobalt leaves, I suppose I can make ten lifestones; I will give you half of them.\""; + mes "\"I always need components for my own healing spells. If you bring me ten gamboge leaves, ten alizarin leaves, ten mauve leaves and ten cobalt leaves, I can make ten lifestones; I will give you half of them.\""; next; menu @@ -639,20 +636,6 @@ L_bye: mes "\"Goodbye!\""; close; -L_easter_worried: - mes "[Elanore the Healer]"; - mes "\"Oh... well... no, not really. I'm just feeling worried some reason.\""; - next; - menu - "Is there anything I can do?", L_easter_offer, - "That's too bad. But I've got chocolate to stuff myself on - haha, seeya round!", -, - close; - -L_easter_offer: - mes "[Elanore the Healer]"; - mes "\"It's very kind of you to offer, but I don't think there's anything you can do.\""; - close; - S_update_var: set QUEST_MAGIC2, (QUEST_MAGIC2 & ~(@Q_MASK) diff --git a/npc/009-1_Hurnscald/old_woman.txt b/npc/009-1_Hurnscald/old_woman.txt index 7adfab5c..b20df136 100644 --- a/npc/009-1_Hurnscald/old_woman.txt +++ b/npc/009-1_Hurnscald/old_woman.txt @@ -7,12 +7,9 @@ mes "\"Hello deary.\""; next; - goto L_Easter; - if ((Inspector >= 1 && Inspector <= 7) || Inspector == 9) goto L_NohMask; - L_Continue: - if ((Inspector >= 1 && Inspector <= 7) || Inspector == 9) goto L_NohMask; - close; + if ((Inspector >= 1 && Inspector <= 7) || Inspector == 9) goto L_NohMask; + close; L_Lower: mes "[Old Woman]"; @@ -67,261 +64,15 @@ L_NohMask_Fake_Satchel: set Inspector, 10; close; -L_Easter: - if ((Easter_2010_QuestState >> E10_STATE_ROSE_SHIFT) & E10_STATE_ROSE_MASK == E10_STATE_ROSE_ROSE_COMPLETE) goto L_Easter_Complete; - if ((Easter_2010_QuestState >> E10_STATE_ROSE_SHIFT) & E10_STATE_ROSE_MASK == E10_STATE_ROSE_RETURNED) goto L_Easter_Gaveup; - if ((Easter_2010_QuestState >> E10_FLAG_RETURN_READY_SHIFT) & E10_FLAG_RETURN_READY_MASK == E10_FLAG_RETURN_READY) goto L_Defeat_Impossible; - if ((Easter_2010_QuestState & E10_STATE_EGG_MASK) == E10_STATE_EGG_COLLECTING) goto L_Easter_Check; - if ((Easter_2010_QuestState & E10_STATE_EGG_MASK) == E10_STATE_EGG_COLLECTED) goto L_Easter_Reward; - if ((Easter_2010_QuestState & E10_STATE_EGG_MASK) == E10_STATE_EGG_REWARDED) goto L_Easter_Hint; - - mes "[Old Woman]"; - mes "\"Would you be able to do something for me, dear?\""; - next; - menu "Sure", L_Easter_Accept_Explain, - "What do you need?", L_Easter_Explain, - "No.", -; - close; - -L_Easter_Explain: - mes "[Old Woman]"; - mes "\"Well, my grandchildren are coming to stay for Easter, and I'm afraid I've forgotten to buy any eggs. Now, there're three of them, and the youngest will want... four eggs. And the middle child will want... seven eggs. And the eldest child will want... nine eggs. And the youngest child will want... four eggs. And the middle child will want...\""; - next; - -L_Easter_Menu: - menu "\"Uh... yeah, I can do that.\"", L_Easter_Accept, - "What did you need again?", L_Easter_Explain, - "No.", -; - close; - -L_Easter_Accept_Explain: - mes "[Old Woman]"; - mes "\"Oh! Thank you very much, " + strcharinfo(0) + ". Please bring me those Easter eggs as quickly as you can - my grandchildren will be here soon, and if they arrive and there's no chocolate for them they will be most upset!\""; - set Easter_2010_QuestState, (Easter_2010_QuestState & ~E10_STATE_EGG_MASK) | E10_STATE_EGG_COLLECTING; - close; - -L_Easter_Accept: - mes "[Old Woman]"; - mes "\"Thank you, dear. What luck you dropped by here!\""; - set Easter_2010_QuestState, (Easter_2010_QuestState & ~E10_STATE_EGG_MASK) | E10_STATE_EGG_COLLECTING; - close; - -L_Easter_Check: - mes "[Old Woman]"; - if (countitem(E10_COLLECT_EGGS_ID) + ((Easter_2010_QuestState >> E10_STATE_EGGS_COLLECTED_SHIFT) & E10_STATE_EGGS_COLLECTED_MASK) < 20) goto L_Easter_Check_Not_Enough; - mes "\"Thank you, dear; that should be all I need.\""; - delitem E10_COLLECT_EGGS_ID, 20 - ((Easter_2010_QuestState >> E10_STATE_EGGS_COLLECTED_SHIFT) & E10_STATE_EGGS_COLLECTED_MASK); - set Easter_2010_QuestState, (Easter_2010_QuestState & ~((E10_STATE_EGGS_COLLECTED_MASK << E10_STATE_EGGS_COLLECTED_SHIFT) | E10_STATE_EGG_MASK)) | (20 << E10_STATE_EGGS_COLLECTED_SHIFT) | E10_STATE_EGG_COLLECTED; - close; - -L_Easter_Check_Not_Enough: - if (countitem(E10_COLLECT_EGGS_ID) + ((Easter_2010_QuestState >> E10_STATE_EGGS_COLLECTED_SHIFT) & E10_STATE_EGGS_COLLECTED_MASK) == 0) goto L_Easter_Check_None; - if (countitem(E10_COLLECT_EGGS_ID) == 0) goto L_Easter_No_More_To_Add; - set Easter_2010_QuestState, (Easter_2010_QuestState & ~((E10_STATE_EGGS_COLLECTED_MASK << E10_STATE_EGGS_COLLECTED_SHIFT) | E10_STATE_EGG_MASK)) | ((countitem(E10_COLLECT_EGGS_ID) + ((Easter_2010_QuestState >> E10_STATE_EGGS_COLLECTED_SHIFT) & E10_STATE_EGGS_COLLECTED_MASK)) << E10_STATE_EGGS_COLLECTED_SHIFT) | E10_STATE_EGG_COLLECTING; - delitem E10_COLLECT_EGGS_ID, countitem(E10_COLLECT_EGGS_ID); // In order to reach this point, the player must not have enough eggs to complete the quest anyway - - mes "\"Thank you... that makes " + ((Easter_2010_QuestState >> E10_STATE_EGGS_COLLECTED_SHIFT) & E10_STATE_EGGS_COLLECTED_MASK) + " eggs from you so far.\""; - if (((Easter_2010_QuestState >> E10_STATE_EGGS_COLLECTED_SHIFT) & E10_STATE_EGGS_COLLECTED_MASK) > 15) mes "\"If you could get just a few more, it would be very much appreciated...\""; - if (((Easter_2010_QuestState >> E10_STATE_EGGS_COLLECTED_SHIFT) & E10_STATE_EGGS_COLLECTED_MASK) <= 15) mes "\"My mind isn't what it used to be, but if you could get somewhere around " + (20 - ((Easter_2010_QuestState >> E10_STATE_EGGS_COLLECTED_SHIFT) & E10_STATE_EGGS_COLLECTED_MASK) + rand(3) - rand(3)) + " more for us, it would be very much appreciated...\""; // Add some jitter to make her seem more absent-minded. Rand called twice to create a curve - close; - -L_Easter_No_More_To_Add: - if (((Easter_2010_QuestState >> E10_STATE_EGGS_COLLECTED_SHIFT) & E10_STATE_EGGS_COLLECTED_MASK) > 15) mes "\"Thank you for you help so far... if you could get just a few more, it would be very much appreciated...\""; - if (((Easter_2010_QuestState >> E10_STATE_EGGS_COLLECTED_SHIFT) & E10_STATE_EGGS_COLLECTED_MASK) <= 15) mes "\"Thank you for your help so far. You don't have to, but if you could find " + (20 - ((Easter_2010_QuestState >> E10_STATE_EGGS_COLLECTED_SHIFT) & E10_STATE_EGGS_COLLECTED_MASK)) + " more eggs, it would be very helpful to this old lady, and much appreciated...\""; - close; - -L_Easter_Check_None: - mes "\"My memory isn't what it used to be, dear, but I think I saw some people looking around under rocks and trees outside town... maybe there're some eggs out there you can find?\""; - close; - -L_Easter_Reward: - mes "[Old Woman]"; - mes "\"Ah, your reward... I was going to give you a hat, as seems to be the tradition around here, but I have a feeling of... something that I have not felt in a long time.\""; - mes "She hesitates."; - next; - - getinventorylist; - if (@inventorylist_count == 100) - goto L_Easter_No_Room; - - mes "[Old Woman]"; - mes "\"In light of this... you had best take this... rose with you. It might not seem like much, but in the right place, it can do much, much more than you think...\""; - mes "She seems restless, and not at all as frail as she was moments before."; - next; - - mes "[Old Woman]"; - mes "\"Take this, and carry it with you wherever you go... even in the darkest of moments, you may yet see the light with this...\""; - set Easter_2010_QuestState, (Easter_2010_QuestState & ~E10_STATE_EGG_MASK) | E10_STATE_EGG_REWARDED; - getitem E10_TOKEN_ID, 1; - close; - -L_Easter_No_Room: - mes "[Old Woman]"; - mes "She looks at you briefly with a sudden, fierce searching look."; - mes "She mutters, \"Though it doesn't matter right now I suppose... you wouldn't have the room for it anyway...\""; - next; - - mes "[Old Woman]"; - mes "\"Yet you have shown yourself to be kind and good... if you make some room, I will have something very special for you when you return.\""; - close; - -L_Easter_Hint: - mes "[Old Woman]"; - setarray @hints$, "\"The rose I gave you? To be honest with you, some strange things have been happening...\"", "\"This world knows many perils, and in times of uncertainty we often need something--to hold, dear, to guide us...\"", "\"I can't quite describe it, but if I were you, I'd hold on to that rose, especially when the light seems to fade...\"", "\"A power beyond my understanding seems to be stirring, I'm afraid.\""; - mes @hints$[rand(getarraysize(@hints$))]; - close; - - -L_Easter_Complete: - if ((Easter_2010_QuestState >> E10_FLAG_RETURN_READY_SHIFT) & E10_FLAG_RETURN_READY_MASK != E10_FLAG_RETURN_READY) goto L_Help_Impossible; - if ((Easter_2010_QuestState >> E10_STATE_REWARDS_SHIFT) & E10_STATE_REWARDS_MASK == 0) goto L_Easter_Complete_New_Rewards; - if ((Easter_2010_QuestState >> E10_STATE_REWARDS_SHIFT) & E10_STATE_REWARDS_MASK == E10_STATE_REWARDS_MASK) goto L_Easter_Done_All; - - // Done some. - if ((~(Easter_2010_QuestState >> E10_DOCTOR_HELP_STATES_SHIFT) & E10_DOCTOR_HELP_STATES_MASK) == 0) goto L_Easter_Finish_Reward; - // Helped thrice, and has already been rewarded. Hint that there is more to be done, but still thank the player for the help. - mes "[Old Woman]"; - mes "\"I just can't get over how helpful you've been lately. You know, I hear there might be more to do still, if you're interested. Either way, you have my sincerest thanks.\""; - close; - -L_Easter_Complete_New_Rewards: -// Player hasn't been rewarded yet. Give them the items and set states accordingly. - if ((~(Easter_2010_QuestState >> E10_DOCTOR_HELP_STATES_SHIFT) & E10_DOCTOR_HELP_STATES_MASK) == 0) goto L_Easter_Reward_All; - // Player helped thrice. Give one of the two items, and set one of the flags accordingly. - if (rand(2) == 0) goto L_Half_Reward_Rabbit_Hat; - getinventorylist; - if (@inventorylist_count == 100) goto L_Hats_No_Room; - // Reward Eggshell hat here - mes "[Old Woman]"; - mes "\"Oh, it's good to see you again, sweetie! After giving out gifts to all the children I noticed I still had quite a few of them left. I thought you might enjoy one yourself.\""; - getitem "EggshellHat", 1; - set Easter_2010_QuestState, Easter_2010_QuestState | (E10_STATE_REWARD_EGGSHELL << E10_STATE_REWARDS_SHIFT); - close; - -L_Half_Reward_Rabbit_Hat: - // Reward Rabbit hat here - getinventorylist; - if (@inventorylist_count == 100) goto L_Hats_No_Room; - mes "[Old Woman]"; - mes "\"Hehe, oh, I'm glad I ran into you again! Look at these! Aren't they just adorable? You should have seen my grandchildren, bless them. Of course I saved you a pair!\""; - getitem "WhiteRabbitEars", 1; - set Easter_2010_QuestState, Easter_2010_QuestState | (E10_STATE_REWARD_RABBIT_EARS << E10_STATE_REWARDS_SHIFT); - close; - -L_Easter_Finish_Reward: - // The player has already been rewarded once, but has gone back and helped. Give the other reward here. - if ((Easter_2010_QuestState >> E10_STATE_REWARDS_SHIFT) & E10_STATE_REWARDS_MASK == E10_STATE_REWARD_RABBIT_EARS) goto L_Easter_Finish_Reward_Eggshell; - - // Give the Rabbit ears, as the player already has the eggshell. - getinventorylist; - if (@inventorylist_count == 100) goto L_Hats_No_Room; - mes "[Old Woman]"; - mes "The old woman looks upon you as though you had been missing. \"Oh, so wonderful to see your kind face again! Rumour has it that you've been hopping about being more helpful. At least that's what I had heard.\""; - getitem "WhiteRabbitEars", 1; - set Easter_2010_QuestState, Easter_2010_QuestState | (E10_STATE_REWARD_RABBIT_EARS << E10_STATE_REWARDS_SHIFT); - - goto L_Easter_All_done; - -L_Easter_Finish_Reward_Eggshell: - // Give the eggshll, as the player already has the ears. - getinventorylist; - if (@inventorylist_count == 100) goto L_Hats_No_Room; - mes "[Old Woman]"; - mes "\"Oh, I knew you could do it! I'm sure it was difficult, but you showed real patience throughout. I was saving this for you, just in case you came back. I think it's... eggsquisite!\" She giggles and gives you a hat."; - getitem "EggshellHat", 1; - set Easter_2010_QuestState, Easter_2010_QuestState | (E10_STATE_REWARD_EGGSHELL << E10_STATE_REWARDS_SHIFT); - goto L_Easter_All_Done; - -L_Easter_Reward_All: - // The player has not yet been rewarded, but has helped with everything. Give both hats and set flags accordingly. - mes "[Old Woman]"; - mes "\"Oh my, you're safe and sound! I was so worried, but it seems you have done so well.\""; - next; - mes "[Old Woman]"; - mes "After a moment, she continues. \"I believe reflecting upon one's actions to be very revealing.\""; - next; - mes "[Old Woman]"; - mes "\"You, my dear, are a shining example, demonstrating, among other things, perseverance and compassion.\""; - next; - mes "[Old Woman]"; - mes "\"So for that, and for helping me with my grandchildren, I would like to give you these tokens of my appreciation.\""; - next; - getinventorylist; - if (@inventorylist_count > 98) goto L_Hats_No_Room; - mes "[Old Woman]"; - mes "\"Hold out your hands please, sweetie.\" You do so, and receive two very well-crafted hats."; - getitem "EggshellHat", 1; - getitem "WhiteRabbitEars", 1; - set Easter_2010_QuestState, Easter_2010_QuestState | ((E10_STATE_REWARD_EGGSHELL | E10_STATE_REWARD_RABBIT_EARS) << E10_STATE_REWARDS_SHIFT); - next; - -L_Easter_Done_All: - mes "[Old Woman]"; - mes "\"Hehe, I could tell you were a little confused by my first gift, yes? People really seem to enjoy these sorts of things, so I decided to reconsider my hat policy. And you've earned everything, every step of the way.\""; - close; - -L_Easter_Gaveup: - mes "[Old Woman]"; - mes "\"Oh no,\" she gasps, extremely disheartened at your early return. \"I was expecting so much more from you once I heard what had happened.\""; - next; - mes "[Old Woman]"; - mes "She shakes her head, obviously upset. \"In fact, I had planned on giving you some extra treats for being so helpful and brave.\""; - next; - mes "[Old Woman]"; - mes "\"But I guess you did your best, honey. Maybe that's all that matters.\""; - close; - -L_Hats_No_Room: - mes "[Old Woman]"; - mes "\"Oh, no, no, that won't do. I'll wait until you have some more room for carrying things. I wouldn't want you to lose a gift.\""; - mes "\"Please see me again when you are ready, honey.\""; - close; - -L_Help_Impossible: - mes "[Old Woman]"; - mes "She seems confused. \"How did you get back here without defeating the evil force plaguing that world, and without giving up? That shouldn't be possible...\""; - close; - -L_Defeat_Impossible: - mes "[Old Woman]"; - mes "She seems confused. \"How did you manage to get back here without helping that nice man to fix things, and without giving up? That shouldn't be possible...\""; - close; - -// The all important rose die script. Hooked into the old woman script for now. OnPCDieEvent: if (countitem(E10_TOKEN_ID) < 1) end; delitem E10_TOKEN_ID, 1; getitem "DarkPetal", 1; message strcharinfo(0), "As you fall, the dark rose crumbles..."; if ((Easter_2010_QuestState >> E10_STATE_ROSE_SHIFT) & E10_STATE_ROSE_MASK >= E10_STATE_ROSE_ROSE_USED) end; - savepoint "028-1", 63, 68; message strcharinfo(0), "There is a strange feeling pulling at you. A place... unfamiliar, yet unavoidable."; + message strcharinfo(0), "But you do not move... the force is too distant, too weak, a shadow of the power that it might have once been."; set Easter_2010_QuestState, (Easter_2010_QuestState & ~(E10_STATE_ROSE_MASK << E10_STATE_ROSE_SHIFT)) | (E10_STATE_ROSE_ROSE_USED << E10_STATE_ROSE_SHIFT); end; -OnManualStartTimer: - initnpctimer; - end; - -OnManualStopTimer: - stopnpctimer; - end; - - -OnTimer30000: - setnpctimer 0; - if ($Easter_2010_Npc_State1 & E10_TIMER_STATE_EGGS_MASK < ($Easter_2010_Npc_State1 >> E10_EGGS_TIMER_OVERTICK_SHIFT) & E10_EGGS_TIMER_OVERTICK_MASK) goto L_timer_increment; - -OnResetReplenish: - set $Easter_2010_Npc_State1, $Easter_2010_Npc_State1 & ~E10_TIMER_STATE_EGGS_MASK; -OnReplenish: - set $Easter_2010_Egg_Loc_State1, $Easter_2010_Egg_Loc_State1 | (rand(2147483647) & rand(2147483647)); - set $Easter_2010_Egg_Loc_State2, $Easter_2010_Egg_Loc_State2 | (rand(2147483647) & rand(2147483647)); - set $Easter_2010_Egg_Loc_State3, $Easter_2010_Egg_Loc_State3 | (rand(2147483647) & rand(2147483647)); - set $Easter_2010_Egg_Loc_State4, $Easter_2010_Egg_Loc_State4 | (rand(2147483647) & rand(2147483647)); - set $Easter_2010_Egg_Loc_State5, $Easter_2010_Egg_Loc_State5 | (rand(2147483647) & rand(2147483647)); - end; - -L_timer_increment: - set $Easter_2010_Npc_State1, ($Easter_2010_Npc_State1 & ~E10_TIMER_STATE_EGGS_MASK) | (($Easter_2010_Npc_State1 & E10_TIMER_STATE_EGGS_MASK) + 1 ); } diff --git a/npc/009-2_Hurnscald/wyara.txt b/npc/009-2_Hurnscald/wyara.txt index 2a8a2062..256c036c 100644 --- a/npc/009-2_Hurnscald/wyara.txt +++ b/npc/009-2_Hurnscald/wyara.txt @@ -33,23 +33,21 @@ mes "[Wyara the witch]"; if (!Sex) - mes "\"Oh! Er, sorry, you startled me... How can I help?\""; + mes "\"Greetings, fair traveller! What can I do for you?\""; if (Sex) - mes "\"Ah! Oh, er, hello... what are you doing here?\""; + mes "\"Hello! What brings you here?\""; next; set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_KNOWS_WYARA; L_Main: if (!@has_magic && (MAGIC_FLAGS & MFLAG_TOUCHED_MANASEED)) - menu "Hello! You seem worried, are you alright?", L_easter_worried, - "What do you know about...", L_Question, + menu "What do you know about...", L_Question, "Can you help me use the mana seed?", L_Q_manaseed_unabsorbed, "Can you help me learn magic?", L_Magic, "I would like to buy potions.", L_Shop, "Bye!", -; if (!(!@has_magic && (MAGIC_FLAGS & MFLAG_TOUCHED_MANASEED))) - menu "You seem worried. Are you alright?", L_easter_worried, - "What do you know about...", L_Question, + menu "What do you know about...", L_Question, "Can you help me learn magic?", L_Magic, "I would like to buy potions.", L_Shop, "Bye!", -; @@ -579,11 +577,6 @@ L_Magic_train_sagatha_lvl1: next; goto L_Magic_main; -L_easter_worried: - mes "[Wyara the Witch]"; - mes "\"I don't know. I'm just - maybe I should talk to Sagatha...\""; - close; - S_update_var: set QUEST_MAGIC2, (QUEST_MAGIC2 & ~(@Q_MASK) diff --git a/npc/011-1_Woodland/auldsbel.txt b/npc/011-1_Woodland/auldsbel.txt index 24f051ae..595c1a9f 100644 --- a/npc/011-1_Woodland/auldsbel.txt +++ b/npc/011-1_Woodland/auldsbel.txt @@ -141,7 +141,7 @@ L_intro_who_are_you: L_short_intro: mes "[Auldsbel the Wizard]"; - mes "\"Padric, you're back. Well done. I mean...\""; + mes "\"Welcome back, Padric!\""; next; goto L_main_menu; @@ -149,8 +149,7 @@ L_main_menu: if (@has_magic) goto L_main_menu_magic; - menu "Why the long face?", L_easter_nomagic, - "How does this 'magic' work?", L_about_magic, + menu "How does this 'magic' work?", L_about_magic, "I want to become a wizard!", L_learn_magic, "Where are you from?", L_about_auldsbel, "Do you need help with your experiments?", L_quest, @@ -160,8 +159,7 @@ L_main_menu: L_main_menu_magic: if (@wants_sulphur && @wants_ironpowder) - menu "Are you alright? You seem worried.", L_easter_magic, - "How does magic work?", L_about_magic, + menu "How does magic work?", L_about_magic, "Can you teach me a spell?", L_learn_spell, "Where are you from?", L_about_auldsbel, "Do you need help with your experiments?", L_quest, @@ -188,7 +186,7 @@ L_main_menu_magic: L_ironpowder: mes "[Auldsbel the Wizard]"; - mes "\"I'm afraid I don't know the spell for this.. I expect that it shouldn't be too hard an invocation, but I'm too busy to work it out.\""; + mes "\"No, I do not know the spell for this. I expect that it shouldn't be too hard an invocation, but I'm too busy to work it out.\""; next; mes "[Auldsbel the Wizard]"; mes "\"I know that they used to make iron ore around here, though, many years ago. Perhaps the secret is still hidden somewhere?\""; @@ -198,7 +196,7 @@ L_ironpowder: L_sulphur: mes "[Auldsbel the Wizard]"; set @cost, 400 - (@Q_component_quest * 30); - mes "\"Sulphur Powder? Picked up a little offensive magic, h'm? Good thinking, I suppose... oh, and of course I can transmute volcanic ashes into sulphur powder... at a ratio of 1:5? For " + @cost + " GP.\""; + 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_main_status >= @Q_STATUS_STUDENT) menu @@ -246,7 +244,7 @@ L_sulphur_noash: L_sulphur_noroom: mes "[Auldsbel the Wizard]"; - mes "\"How do you expect me to give you this sulphur powder when you've got no room in your pack? Please come back when you've made some room!\""; + mes "\"Hmm, you really managed to squeeze something into every little place you had that we could have stored the powder in... you might want to return once you have resolved this matter.\""; next; goto L_main_menu; @@ -254,7 +252,7 @@ L_sulphur_teach_spell: if (@Q_component_quest <= 4) goto L_sulphur_teach_spell_no; mes "[Auldsbel the Wizard]"; - mes "\"Very well, then. You have been quite helpful with my experiments, after all, even if they... uh, well, as you may have noticed, the spell takes a pile of volcanic ashes. Close your hands around it, then whisper the invocation.\""; + mes "\"Very well, then. You have been quite helpful with my experiments, after all. As you may have noticed, the spell takes a pile of volcanic ashes. Close your hands around it, then whisper the invocation.\""; next; mes "[Auldsbel the Wizard]"; mes "\"That invocation is '" + getspellinvocation("make-sulphur") + "'.\""; @@ -483,14 +481,14 @@ L_about_auldsbel: L_about_auldsbel_2: mes "[Auldsbel the Wizard]"; - mes "\"Oh, myself? Well... I was just vacationing here, but lately... I don't know. And my newest experiment isn't going well either, I'm afraid.\""; + mes "\"Oh, myself? I am just vacationing in the area. Very relaxed and peaceful place, the Hurnscald area. And plenty of splendid specimen for experimentation.\""; next; goto L_main_menu; L_learn_magic: mes "[Auldsbel the Wizard]"; - mes "Auldsbel frowns."; - mes "\"Oh, if only it were so easy! No, my young friend, I fear that 'learning magic' here is not an option. Either you are born with it, or without.\""; + mes "Auldsbel laughs heartily."; + mes "\"Hah, if only it were so easy! No, my young friend, I fear that 'learning magic' here is not an option. Either you are born with it, or without.\""; next; mes "[Auldsbel the Wizard]"; mes "\"Sure, there are a few entities that may grant you magic-- Ether Spirits or Mana Seeds or Great Dragons-- but those are the stuff of legends, so I suggest that you don't waste your life trying to find one of them.\""; @@ -554,7 +552,7 @@ L_Q_sagatha: goto L_main_menu; L_Q_manaseed_rumour: - mes "\"A mana seed? Around here? No, I'm afraid they've been pulling your leg... Those things are extremely rare, after all.\""; + mes "\"A mana seed? Around here? Nah, they've been pulling your leg. Those things are extremely rare, after all.\""; next; goto L_main_menu; @@ -568,7 +566,7 @@ L_Q_manaseed: goto L_Q_manaseed_prepared; if (MAGIC_FLAGS & MFLAG_TOUCHED_MANASEED) goto L_Q_manaseed_touched; - mes "\"You have found an actual Mana Seed? That's impossible! Well, very unlikely... Then again, some others have told me similar rumours. I find it hard to believe that...\""; + 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. That should do you no harm, but if you are very, very lucky, it just might grant you some minuscule amount of magical power.\""; @@ -960,27 +958,6 @@ L_learn_spell: callsub S_update_var; goto L_main_menu; -L_easter_nomagic: - mes "[Auldsbel the Wizard]"; - mes "\"H'm? What? Long face? My face is perfectly normal, thank you very much. Although... I am a little worried about my current experiment. It's not going well.\""; - next; - goto L_main_menu; - -L_easter_magic: - mes "[Auldsbel the Wizard]"; - mes "\"Ah, Padric. It's my experiments... they're confusing me, and I fear they're not going at all well.\""; - next; - menu - "Is there anything I can do?", L_easter_help, - "Well that's just too bad.", -; - close; - -L_easter_help: - mes "[Auldsbel the Wizard"; - mes "\"Alas... you've helped with my experiments before, but I fear that this is beyond your capabilities. Thank you for the offer, though.\""; - next; - goto L_main_menu; - LL_repeat_spell: mes "[Auldsbel the Wizard]"; mes "\"The invocation is `" + getspellinvocation("transmute-wood-to-figurine") + ",' followed by the last syllable of the name of the creature you want to shape the log into. So `" + getspellinvocation("transmute-wood-to-figurine") + " lurk' for a Skrytlurk figurine.\""; diff --git a/npc/013-1_Woodland_hills/sagatha.txt b/npc/013-1_Woodland_hills/sagatha.txt index cb1fd6ad..f5e2f606 100644 --- a/npc/013-1_Woodland_hills/sagatha.txt +++ b/npc/013-1_Woodland_hills/sagatha.txt @@ -110,7 +110,6 @@ L_next: next; menu - "Hi, lady. Why are you sad?", L_easter_inquireone, "Who are you?", -, "What's your name?", L_intro_name, "Hello! My name is " + strcharinfo(0) + ".", L_intro_givename, @@ -184,14 +183,12 @@ L_wb: L_main: if (@Q_status) menu - "You seem upset. Are you okay?", L_easter_inquiretwo, "Can you explain magic to me?", L_explain_magic, "Can you teach me more magic?", L_teach, "What do you know about...", L_Question, "Goodbye.", L_close; if (!@Q_status) menu - "You seem upset. Are you okay?", L_easter_inquiretwo, "Can you explain magic to me?", L_explain_magic, "Can you teach me magic?", L_teach_initial, "What do you know about...", L_Question, @@ -413,35 +410,6 @@ L_Q_auldsbel: next; goto L_main; -L_easter_inquireone: - mes "[Sagatha the Witch]"; - mes "\"Never you mind.\""; - close; - -L_easter_inquiretwo: - mes "[Sagatha the Witch]"; - mes "\"Well... *she looks at you for a moment* I don't know exactly... there's something... the animals can feel it too. They're worried as well...\""; - menu - "Okay... is there anything I can do?", L_easter_offer, - "How can you tell what animals are feeling?", L_easter_feelings, - "Gee, I hope nothing happens to the little animals!", L_easter_gee, - close; - -L_easter_offer: - mes "[Sagatha the Witch]"; - mes "\"Thank you for the offer, but no, there isn't anything...\""; - close; - -L_easter_feelings: - mes "[Sagatha the Witch]"; - mes "\"Hm? What? Oh... the same way you do, I suppose.\""; - close; - -L_easter_gee: - mes "[Sagatha the Witch]"; - mes "\"Yes, so do I...\""; - close; - L_close: close; diff --git a/npc/013-2_Magic_house/wizard.txt b/npc/013-2_Magic_house/wizard.txt index 45fd8034..e74b15ec 100644 --- a/npc/013-2_Magic_house/wizard.txt +++ b/npc/013-2_Magic_house/wizard.txt @@ -3,11 +3,10 @@ set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_KNOWS_OLD_WIZARD; mes "[Old Wizard]"; - mes "\"Ah, hello... \""; + mes "\"Welcome, dear wanderer! Come into my humble home. Take a rest, eat and drink.\""; next; menu - "Hey old man, you look worried - you okay?", L_easter_worried, "Thanks, that's very kind of you!",thanks, "Can you teach me magic?", L_teach_rude, "Oh, shut up!",shutup; @@ -42,7 +41,7 @@ nothx: L_new_student: mes "[Old Wizard]"; - mes "\"Studying is very good for the mind... um, I'm afraid that just at the moment I'm - well, I suppose I could teach you one spell.\""; + mes "\"Studying is always an excellent use of one's mind! I fear that I can't offer too much assistance to you, however. But if you are interested, I could perhaps teach you a simple spell?\""; next; menu @@ -78,65 +77,5 @@ ok: next; mes "\"Oh, and please don't take my apprentice too seriously. He still has a lot to learn.\""; close; - -L_easter_worried: - mes "[Old Wizard]"; - setarray @cryptic$, "\"Mm, I'm alright. But you'd better head off home... doesn't do to be abroad of late.\"", "\"An intruder is abroad, my young man. It may be nothing, but I doubt it! Best go home before it gets dark.\"", "\"Darkness, my boy, darkness. I'm not afraid, but I'm worried!\"", "\"I was out gathering herbs, but... well, you should go home as well.\""; - set @random_index, rand(getarraysize(@cryptic$)); - mes @cryptic$[@random_index]; - if (@random_index == 1) goto L_easter_abroad; - if (@random_index == 2) goto L_easter_abroad; - if (@random_index == 3) goto L_easter_darkness; - if (@random_index == 4) goto L_easter_gohome; - close; - -L_easter_abroad: - menu - "Abroad? You mean like, the beach? Sand, sun and... palm trees?", L_easter_holiday, - "Um, okay.", -, - close; - -L_easter_holiday: - mes "[Old Wizard]"; - mes "\"No, you fool! I mean like... about. You know? *sigh* Never mind...\""; - close; - -L_easter_darkness: - menu - "Ha! Bet you are afraid.", L_easter_afraid, - "Worried? Why?", L_easter_whyworried, - "Okay. Bye.", -; - close; - -L_easter_afraid: - mes "[Old Wizard]"; - mes "\"Don't be ridiculous! Humph!\""; - close; - -L_easter_whyworried: - mes "[Old Wizard]"; - mes "\"I'm afraid I can't tell you that...\""; - next; - mes "\"I don't know myself!\""; - close; - -L_easter_gohome: - menu - "Leave me alone, you crazy old man.", L_easter_crazy, - "Thanks for the advice, I guess...", L_easter_thanks, - "Yeah, I think so too.", -, - close; - -L_easter_crazy: - mes "[Old Wizard]"; - mes "\"Humph! Young scoundrel, be off with you! Do something useful for once... I hear the old woman in Hurnscald was looking for some help.\""; - close; - -L_easter_thanks: - mes "[Old Wizard]"; - mes "\"Take care, now, my boy.\""; - close; - - } diff --git a/npc/028-1/Portal.txt b/npc/028-1/Portal.txt new file mode 100644 index 00000000..ff7cea7f --- /dev/null +++ b/npc/028-1/Portal.txt @@ -0,0 +1,131 @@ +028-1.gat,63,68,0 script Portal#_M 127,{ + +if (isin("028-1.gat",59,64,67,70)) goto L_Main; + +mes "There is something there, but you aren't quite close enough to see exactly what it is."; +close; + +L_Main: + +mes "[Portal]"; +mes ""; +mes "A strange field hovers about waist high above the ground."; +next; +mes "[Portal]"; +mes ""; +mes "You sense a feeling of familiarity radiating out from it."; +mes ""; +mes "It looks just wide enough to jump through."; +next; +mes "[Portal]"; +mes ""; +mes "You're not quite sure if there will be a way to return once you enter, though."; +next; +mes "[Portal]"; +mes ""; +mes "What do you do?"; +menu "Jump through, without looking back.", L_No_Hesitation, + "Take one more look around.", L_Look, + "Leave it alone.", -; + +close; + +L_No_Hesitation: +mes "There has been quite enough of this harsh place. You jump through without hesitation..."; +next; +mes "...and fall, and fall..."; +next; +mes "Dizzying colors whirl around you. You collapse."; +savepoint "009-1", 52, 39; +itemheal -hp -1, 0; +close; + +L_Look: +mes "[Portal]"; +mes ""; +mes "There was a lot here. You don't know where it came from, or quite how you ended up here."; +if ((Easter_2010_QuestState >> E10_STATE_ROSE_SHIFT) & E10_STATE_ROSE_MASK == E10_STATE_ROSE_ROSE_COMPLETE) goto L_Full_Helped; +if ((Easter_2010_QuestState >> E10_HELPED_DOCTOR_SHIFT) & E10_HELPED_DOCTOR_MASK) goto L_Somewhat_Helped; +if ((Easter_2010_QuestState >> E10_FLAG_KNOWS_DOCTOR_SHIFT) & E10_FLAG_KNOWS_DOCTOR) goto L_Met; + +if ((Easter_2010_QuestState >> E10_FLAG_RETURN_READY_SHIFT) & E10_FLAG_RETURN_READY_MASK) goto L_Unknown_Defeat; + +mes "Come to think of it, there is still quite a lot you're not sure about. There was talk about something big, but you must have missed it... whatever it was, it seems gone now."; +goto L_Post_Look; + + +L_Full_Helped: +if ((Easter_2010_QuestState >> E10_FLAG_RETURN_READY_SHIFT) & E10_FLAG_RETURN_READY_MASK) goto L_Full_Helped_Defeat; +mes "Your assistance was helpful, you know that much. If only you could have faced the darkness that plagued this world more directly..."; +goto L_Post_Look; + +L_Full_Helped_Defeat: +mes "You know you have done everything that you could have. Your determination will have surely meant the world will be restored, once more."; +goto L_Post_Look; + +L_Somewhat_Helped: +if ((Easter_2010_QuestState >> E10_FLAG_RETURN_READY_SHIFT) & E10_FLAG_RETURN_READY_MASK) goto L_Somewhat_Helped_Defeat; +mes "You feel your help was not for nothing, though you can't quite shake the feeling there was still something more to do."; +goto L_Post_Look; + +L_Somewhat_Helped_Defeat: +mes "Your help was not for nothing. Your destruction of evil would surely help heal this world!"; +goto L_Post_Look; + +L_Met: +if ((Easter_2010_QuestState >> E10_FLAG_RETURN_READY_SHIFT) & E10_FLAG_RETURN_READY_MASK) goto L_Met_Defeat; +mes "While you only met the Doctor briefly, he seemed to think there was something wrong. If only there was a way you could have helped, somehow."; +goto L_Post_Look; + +L_Met_Defeat: +mes "Striking down that evil, dark, figure would surely make a difference. While you only met the Doctor briefly, he seemed to think there was something wrong... with any luck, this defeat would be, at the very least, a significant setback."; +goto L_Post_Look; + +L_Unknown_Defeat: +mes "Striking down that evil, dark, figure would surely make a difference. You just wish you knew what that was about... if only there had been someone that could have explained it all."; +goto L_Post_Look; + +L_Post_Look: +next; +mes "What do you do?"; +menu "Jump through", L_Jump, + "Leave it alone", -; + +close; + +L_Jump: +mes "[Portal]"; +mes ""; +mes "A tingling sensation surrounds you as you enter."; +next; +mes "[Portal]"; +mes ""; +mes "Inside, your senses seem heightened, sharpened..."; +next; +mes "[Portal]"; +mes ""; +mes "You can detect many entities all around you, yet you are not quite sure how."; +next; +mes "[Portal]"; +mes ""; +mes "Colors swirl around you. There is a sensation of great speed, of great power, of energy..."; +next; +mes "[Portal]"; +mes ""; +mes "A tearing motion. The blobs of color skew, and stretch into long thin lines... and somehow, a taste of peanuts."; +next; +mes "[Portal]"; +mes ""; +mes "A mass of green and yellow, moving at high speed... or perhaps it is you who is moving?"; +next; +mes "[Portal]"; +mes ""; +mes "Whichever it is, one of you slows just as you begin to recognise some details..."; +warp "009-1.gat", 52, 39; +savepoint "009-1", 52, 39; +mes "[Home]"; +mes ""; +mes "You land softly. It is good to be home..."; +close; + +} diff --git a/npc/028-1/_import.txt b/npc/028-1/_import.txt index 0855eb7b..dcace217 100755 --- a/npc/028-1/_import.txt +++ b/npc/028-1/_import.txt @@ -1,8 +1,9 @@ map: 028-1.gat npc: npc/028-1/_mobs.txt npc: npc/028-1/_warps.txt -npc: npc/028-1/Doctor.txt -npc: npc/028-1/Doctor2.txt -npc: npc/028-1/Doctor3.txt -npc: npc/028-1/Doctor4.txt -npc: npc/028-1/Blocker.txt +//npc: npc/028-1/Doctor.txt +//npc: npc/028-1/Doctor2.txt +//npc: npc/028-1/Doctor3.txt +//npc: npc/028-1/Doctor4.txt +//npc: npc/028-1/Blocker.txt +npc: npc/028-1/Portal.txt diff --git a/npc/028-1/_warps.txt b/npc/028-1/_warps.txt index 74d3cd30..399491fe 100755 --- a/npc/028-1/_warps.txt +++ b/npc/028-1/_warps.txt @@ -1,2 +1,3 @@ // 028-1 warps +028-1.gat,114,122 warp To028-3 -1,-1,028-3.gat,33,78 diff --git a/npc/scripts.conf b/npc/scripts.conf index a6ce4b41..d630571b 100644 --- a/npc/scripts.conf +++ b/npc/scripts.conf @@ -68,4 +68,5 @@ import: npc/_import.txt // npc: npc/xmas/2009/event.txt // Easter 2010 -import: npc/easter/2010/_import.txt +// When enabling, some entries in 028-1 would also need to be uncommented, the warp from 028-1 would need to be commented out. The changes to the old woman and some other NPCs weren't able to be preserved, but are recorded in the git repository. +//import: npc/easter/2010/_import.txt |