diff options
Diffstat (limited to 'npc/functions/magic.txt')
-rw-r--r-- | npc/functions/magic.txt | 176 |
1 files changed, 0 insertions, 176 deletions
diff --git a/npc/functions/magic.txt b/npc/functions/magic.txt deleted file mode 100644 index c4abcab6..00000000 --- a/npc/functions/magic.txt +++ /dev/null @@ -1,176 +0,0 @@ -// Basic magic functionality - -// Magic system uses: -// - MAGIC_EXP (magic experience points, gained for spellcasting) -// - MAGIC_FLAGS -// Magic quests use: -// - QUEST_MAGIC -// - QUEST_MAGIC2 - -// ------------------------------------------------------------ -// Gain initial magic skill -// ------------------------------------------------------------ -function script MagicGainBasic { - - 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; -} - -// ------------------------------------------------------------ -// Print and run menu for choice of things to ask about -// Ignores the entry in @ignore -// Returns the result in @c, or returns 0 if there is no result -// ------------------------------------------------------------ - - -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; -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; -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; -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; -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; -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; -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; -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; -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; -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; -} - - -// ------------------------------------------------------------ -// Level up a skill -// @SUP_id skill ID to level up -// @SUP_lvl skill level to attain -// @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; - -L_shortcut: - mes "[You already have level " + getskilllv(@SUP_id) + " in " + @SUP_name$ + "]"; - return; -} |