diff options
Diffstat (limited to 'world/map/npc/functions/magic.txt')
-rw-r--r-- | world/map/npc/functions/magic.txt | 191 |
1 files changed, 0 insertions, 191 deletions
diff --git a/world/map/npc/functions/magic.txt b/world/map/npc/functions/magic.txt deleted file mode 100644 index 426bf28c..00000000 --- a/world/map/npc/functions/magic.txt +++ /dev/null @@ -1,191 +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; - // Doomsday Act 5 utils - if (getmap() == "099-5") - addtimer 10, "Zax De'Kagen#0::OnAdjustPotion"; - return; -} - -// ------------------------------------------------------------ -// 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; - goto L_Q_post_elanore; - -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; - goto L_Q_post_manaseed; - -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; - goto L_Q_post_manapotion; - -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; - goto L_Q_post_wyara; - -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; - goto L_Q_post_sagatha; - -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; - goto L_Q_post_auldsbel; - -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; - goto L_Q_post_oldwiz; - -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; - goto L_Q_post_imp; - -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; - goto L_Q_post_astralsoul; - -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], L_MenuItems, - @choice$[1], L_MenuItems, - @choice$[2], L_MenuItems, - @choice$[3], L_MenuItems, - @choice$[4], L_MenuItems, - @choice$[5], L_MenuItems, - @choice$[6], L_MenuItems, - @choice$[7], L_MenuItems, - @choice$[8], L_MenuItems, - @choice$[9], L_MenuItems; - -L_MenuItems: - 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; -} |