summaryrefslogtreecommitdiff
path: root/world/map/npc/functions/magic.txt
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/functions/magic.txt')
-rw-r--r--world/map/npc/functions/magic.txt235
1 files changed, 118 insertions, 117 deletions
diff --git a/world/map/npc/functions/magic.txt b/world/map/npc/functions/magic.txt
index c4abcab6..bbd242c8 100644
--- a/world/map/npc/functions/magic.txt
+++ b/world/map/npc/functions/magic.txt
@@ -10,27 +10,27 @@
// ------------------------------------------------------------
// Gain initial magic skill
// ------------------------------------------------------------
-function script MagicGainBasic {
+function|script|MagicGainBasic|{
- set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_DRANK_POTION;
- close;
+ set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_DRANK_POTION;
+ close;
}
// ------------------------------------------------------------
// Initialise Menu for selecting a choice of things to ask about
// ------------------------------------------------------------
-function script MagicTalkOptionsSetup {
- set @QQ_ELANORE, 1;
- set @QQ_MANASEED, 2;
- set @QQ_MANAPOTION, 4;
- set @QQ_WYARA, 8;
- set @QQ_SAGATHA, 16;
- set @QQ_AULDSBEL, 32;
- set @QQ_IMP, 64;
- set @QQ_OLDWIZ, 128;
- set @QQ_ASTRALSOUL, 256;
- return;
+function|script|MagicTalkOptionsSetup|{
+ set @QQ_ELANORE, 1;
+ set @QQ_MANASEED, 2;
+ set @QQ_MANAPOTION, 4;
+ set @QQ_WYARA, 8;
+ set @QQ_SAGATHA, 16;
+ set @QQ_AULDSBEL, 32;
+ set @QQ_IMP, 64;
+ set @QQ_OLDWIZ, 128;
+ set @QQ_ASTRALSOUL, 256;
+ return;
}
// ------------------------------------------------------------
@@ -40,114 +40,115 @@ function script MagicTalkOptionsSetup {
// ------------------------------------------------------------
-function script MagicTalkMenu {
- setarray @choice$, "", "", "", "", "", "", "", "", "", "";
- set @choices_nr, 0;
- setarray @choice_idx, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
+function|script|MagicTalkMenu|{
+ setarray @choice$, "", "", "", "", "", "", "", "", "", "";
+ set @choices_nr, 0;
+ setarray @choice_idx, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
+
+ if (@ignore & @QQ_ELANORE)
+ goto L_Q_post_elanore;
+ set @choice$[@choices_nr], "...Elanore the Healer?";
+ set @choice_idx[@choices_nr], @QQ_ELANORE;
+ set @choices_nr, @choices_nr + 1;
- if (@ignore & @QQ_ELANORE)
- goto L_Q_post_elanore;
- set @choice$[@choices_nr], "...Elanore the Healer?";
- set @choice_idx[@choices_nr], @QQ_ELANORE;
- set @choices_nr, @choices_nr + 1;
L_Q_post_elanore:
+ if (@ignore == @QQ_MANASEED)
+ goto L_Q_post_manaseed;
+ if (!(MAGIC_FLAGS & (MFLAG_KNOWS_MANASEED | MFLAG_MANASEED_RUMOUR)))
+ goto L_Q_post_manaseed;
+ set @choice$[@choices_nr], "...the Mana Seed?";
+ set @choice_idx[@choices_nr], @QQ_MANASEED;
+ set @choices_nr, @choices_nr + 1;
- if (@ignore == @QQ_MANASEED)
- goto L_Q_post_manaseed;
- if (!(MAGIC_FLAGS & (MFLAG_KNOWS_MANASEED | MFLAG_MANASEED_RUMOUR)))
- goto L_Q_post_manaseed;
- set @choice$[@choices_nr], "...the Mana Seed?";
- set @choice_idx[@choices_nr], @QQ_MANASEED;
- set @choices_nr, @choices_nr + 1;
L_Q_post_manaseed:
+ if (@ignore & @QQ_MANAPOTION)
+ goto L_Q_post_manapotion;
+ if (!(MAGIC_FLAGS & MFLAG_KNOWS_MANAPOTION))
+ goto L_Q_post_manapotion;
+ set @choice$[@choices_nr], "...Mana Potions?";
+ set @choice_idx[@choices_nr], @QQ_MANAPOTION;
+ set @choices_nr, @choices_nr + 1;
- if (@ignore & @QQ_MANAPOTION)
- goto L_Q_post_manapotion;
- if (!(MAGIC_FLAGS & MFLAG_KNOWS_MANAPOTION))
- goto L_Q_post_manapotion;
- set @choice$[@choices_nr], "...Mana Potions?";
- set @choice_idx[@choices_nr], @QQ_MANAPOTION;
- set @choices_nr, @choices_nr + 1;
L_Q_post_manapotion:
+ if (@ignore & @QQ_WYARA)
+ goto L_Q_post_wyara;
+ if (!(MAGIC_FLAGS & MFLAG_KNOWS_WYARA))
+ goto L_Q_post_wyara;
+ set @choice$[@choices_nr], "...Wyara the Witch?";
+ set @choice_idx[@choices_nr], @QQ_WYARA;
+ set @choices_nr, @choices_nr + 1;
- if (@ignore & @QQ_WYARA)
- goto L_Q_post_wyara;
- if (!(MAGIC_FLAGS & MFLAG_KNOWS_WYARA))
- goto L_Q_post_wyara;
- set @choice$[@choices_nr], "...Wyara the Witch?";
- set @choice_idx[@choices_nr], @QQ_WYARA;
- set @choices_nr, @choices_nr + 1;
L_Q_post_wyara:
+ if (@ignore & @QQ_SAGATHA)
+ goto L_Q_post_sagatha;
+ if (!(MAGIC_FLAGS & MFLAG_KNOWS_SAGATHA))
+ goto L_Q_post_sagatha;
+ set @choice$[@choices_nr], "...Sagatha the Witch?";
+ set @choice_idx[@choices_nr], @QQ_SAGATHA;
+ set @choices_nr, @choices_nr + 1;
- if (@ignore & @QQ_SAGATHA)
- goto L_Q_post_sagatha;
- if (!(MAGIC_FLAGS & MFLAG_KNOWS_SAGATHA))
- goto L_Q_post_sagatha;
- set @choice$[@choices_nr], "...Sagatha the Witch?";
- set @choice_idx[@choices_nr], @QQ_SAGATHA;
- set @choices_nr, @choices_nr + 1;
L_Q_post_sagatha:
+ if (@ignore & @QQ_AULDSBEL)
+ goto L_Q_post_auldsbel;
+ if (!(MAGIC_FLAGS & MFLAG_KNOWS_AULDSBEL))
+ goto L_Q_post_auldsbel;
+ set @choice$[@choices_nr], "...Auldsbel the Wizard?";
+ set @choice_idx[@choices_nr], @QQ_AULDSBEL;
+ set @choices_nr, @choices_nr + 1;
- if (@ignore & @QQ_AULDSBEL)
- goto L_Q_post_auldsbel;
- if (!(MAGIC_FLAGS & MFLAG_KNOWS_AULDSBEL))
- goto L_Q_post_auldsbel;
- set @choice$[@choices_nr], "...Auldsbel the Wizard?";
- set @choice_idx[@choices_nr], @QQ_AULDSBEL;
- set @choices_nr, @choices_nr + 1;
L_Q_post_auldsbel:
+ if (@ignore & @QQ_OLDWIZ)
+ goto L_Q_post_oldwiz;
+ if (!(MAGIC_FLAGS & MFLAG_KNOWS_OLD_WIZARD))
+ goto L_Q_post_oldwiz;
+ set @choice$[@choices_nr], "...the Old Wizard?";
+ set @choice_idx[@choices_nr], @QQ_OLDWIZ;
+ set @choices_nr, @choices_nr + 1;
- if (@ignore & @QQ_OLDWIZ)
- goto L_Q_post_oldwiz;
- if (!(MAGIC_FLAGS & MFLAG_KNOWS_OLD_WIZARD))
- goto L_Q_post_oldwiz;
- set @choice$[@choices_nr], "...the Old Wizard?";
- set @choice_idx[@choices_nr], @QQ_OLDWIZ;
- set @choices_nr, @choices_nr + 1;
L_Q_post_oldwiz:
+ if (@ignore & @QQ_IMP)
+ goto L_Q_post_imp;
+ if (!(MAGIC_FLAGS & MFLAG_KNOWS_IMP))
+ goto L_Q_post_imp;
+ set @choice$[@choices_nr], "...the Earth Spirit in the desert well?";
+ set @choice_idx[@choices_nr], @QQ_IMP;
+ set @choices_nr, @choices_nr + 1;
- if (@ignore & @QQ_IMP)
- goto L_Q_post_imp;
- if (!(MAGIC_FLAGS & MFLAG_KNOWS_IMP))
- goto L_Q_post_imp;
- set @choice$[@choices_nr], "...the Earth Spirit in the desert well?";
- set @choice_idx[@choices_nr], @QQ_IMP;
- set @choices_nr, @choices_nr + 1;
L_Q_post_imp:
+ if (@ignore & @QQ_ASTRALSOUL)
+ goto L_Q_post_astralsoul;
+ if (!(getskilllv(SKILL_MAGIC)))
+ goto L_Q_post_astralsoul;
+ if (!(getskilllv(SKILL_POOL)))
+ goto L_Q_post_astralsoul;
+ set @choice$[@choices_nr], "...ways to improve my magic?";
+ set @choice_idx[@choices_nr], @QQ_ASTRALSOUL;
+ set @choices_nr, @choices_nr + 1;
- if (@ignore & @QQ_ASTRALSOUL)
- goto L_Q_post_astralsoul;
- if (!(getskilllv(SKILL_MAGIC)))
- goto L_Q_post_astralsoul;
- if (!(getskilllv(SKILL_POOL)))
- goto L_Q_post_astralsoul;
- set @choice$[@choices_nr], "...ways to improve my magic?";
- set @choice_idx[@choices_nr], @QQ_ASTRALSOUL;
- set @choices_nr, @choices_nr + 1;
L_Q_post_astralsoul:
-
- set @choice$[@choices_nr], "...never mind.";
- set @choice_idx[@choices_nr], 0;
- set @choices_nr, @choices_nr + 1;
-
- menu @choice$[0], -,
- @choice$[1], -,
- @choice$[2], -,
- @choice$[3], -,
- @choice$[4], -,
- @choice$[5], -,
- @choice$[6], -,
- @choice$[7], -,
- @choice$[8], -,
- @choice$[9], -;
-
- set @menu, @menu - 1;
-
- if (@menu >= @choices_nr)
- set @menu, 0;
-
- set @c, @choice_idx[@menu];
- return;
+ set @choice$[@choices_nr], "...never mind.";
+ set @choice_idx[@choices_nr], 0;
+ set @choices_nr, @choices_nr + 1;
+
+ menu
+ @choice$[0], -,
+ @choice$[1], -,
+ @choice$[2], -,
+ @choice$[3], -,
+ @choice$[4], -,
+ @choice$[5], -,
+ @choice$[6], -,
+ @choice$[7], -,
+ @choice$[8], -,
+ @choice$[9], -;
+
+ set @menu, @menu - 1;
+
+ if (@menu >= @choices_nr)
+ set @menu, 0;
+
+ set @c, @choice_idx[@menu];
+ return;
}
@@ -158,19 +159,19 @@ L_Q_post_astralsoul:
// @SUP_name$ name of the skill to level up
// @SUP_xp # of experience points to award if the level up succeeds
// ------------------------------------------------------------
-function script SkillUp {
- if (getskilllv(@SUP_id) >= @SUP_lvl)
- goto L_shortcut;
-
- misceffect sfx_skillup, strcharinfo(0);
- setskill @SUP_id, @SUP_lvl;
- getexp @SUP_xp, 0;
- if (@SUP_xp)
- mes "[" + @SUP_xp + " experience points]";
- mes "[Level " + @SUP_lvl + " in " + @SUP_name$ + "]";
- return;
+function|script|SkillUp|{
+ if (getskilllv(@SUP_id) >= @SUP_lvl)
+ goto L_shortcut;
+
+ misceffect sfx_skillup, strcharinfo(0);
+ setskill @SUP_id, @SUP_lvl;
+ getexp @SUP_xp, 0;
+ if (@SUP_xp)
+ mes "[" + @SUP_xp + " experience points]";
+ mes "[Level " + @SUP_lvl + " in " + @SUP_name$ + "]";
+ return;
L_shortcut:
- mes "[You already have level " + getskilllv(@SUP_id) + " in " + @SUP_name$ + "]";
- return;
+ mes "[You already have level " + getskilllv(@SUP_id) + " in " + @SUP_name$ + "]";
+ return;
}