From cf18ce071c79ae37e14ea38943e0b1d88da70a7b Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Fri, 9 Apr 2021 13:33:57 -0300 Subject: Override --- npc/013-2/wizard.txt | 142 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100755 npc/013-2/wizard.txt (limited to 'npc/013-2/wizard.txt') diff --git a/npc/013-2/wizard.txt b/npc/013-2/wizard.txt new file mode 100755 index 00000000..45d1c2e8 --- /dev/null +++ b/npc/013-2/wizard.txt @@ -0,0 +1,142 @@ +013-2,66,39,0 script Old Wizard#_W NPC116,{ + @has_magic = getskilllv(SKILL_MAGIC); + MAGIC_FLAGS = MAGIC_FLAGS | MFLAG_KNOWS_OLD_WIZARD; + + @run = ((QUEST_NorthTulimshar & TWOBIT_8_MASK) >> TWOBIT_8_SHIFT); + if ((@run == 2) && (QL_KYLIAN == 13)) + goto L_Deliver; + goto L_Start; + +L_Deliver: + menu + "I have a delivery for you", L_Delivery; + +L_Delivery: + mes "[Old Wizard]"; + mes "\"Good now I can get to work on some stronger brew..\""; + QL_KYLIAN = 14; + goto L_close; + +L_Start: + mes "[Old Wizard]"; + mes "\"Welcome, dear wanderer! Come into my humble home. Take a rest, eat and drink.\""; + next; + menu + "Thanks, that's very kind of you!", L_Thanks, + "Can you teach me magic?", L_TeachRude, + "Oh, shut up!", L_ShutUp; + +L_TeachRude: + mes "[Old Wizard]"; + mes "\"I certainly could, but I already have an apprentice.\""; + goto L_close; + +L_ShutUp: + mes "[Old Wizard]"; + mes "\"That attitude isn't going to get you very far, my dear.\""; + goto L_close; + +L_Thanks: + mes "[Old Wizard]"; + mes "\"Behind this door, my apprentice will serve you.\""; + next; + if (@has_magic) + menu + "Alright.", L_Agree, + "I am studying magic, can you help?", L_NewStudent, + "Your apprentice? ... No thanks.", L_Decline; + menu + "Alright.", L_Agree, + "Your apprentice? ... No thanks.", L_Decline; + +L_Decline: + mes "[Old Wizard]"; + mes "\"Goodbye, then!\""; + goto L_close; + +L_NewStudent: + mes "[Old Wizard]"; + 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; + + // check if the player has the knowledge of any skill + if (getskilllv(SKILL_POOL) && (getskilllv(SKILL_MAGIC_ASTRAL) < 1) || (getskilllv(SKILL_ASTRAL_SOUL) == 0)) + menu + "That would be very kind of you!", L_TeachSpell, + "Actually I am looking for someone teaching me some more magic skills.", L_AstralSoul, + "No, but thank you!", L_Decline; + menu + "That would be very kind of you!", L_TeachSpell, + "No, but thank you!", L_Decline; + +L_TeachSpell: + mes "[Old Wizard]"; + mes "\"This one may not seem too powerful, but it can be quite handy; it's the 'hide' spell. It will shield you from some forms of detection magic.\""; + next; + mes "[Old Wizard]"; + mes "\"Put a piece of cotton cloth on your head, and speak out '" + get(.invocation$, "spell-hide") + "', loudly and clearly. The protection lasts quite long, but you may have to renew it on occasion.\""; + next; + mes "[Old Wizard]"; + mes "\"You can also cast it on others, of course. Just speak their name after you pronounce the invocation.\""; + next; + mes "[Old Wizard]"; + mes "\"You may find it useful for getting a little peace and quiet at times, but it can also get in the way of friends trying to find you, so use it with care.\""; + next; + if (getskilllv(SKILL_MAGIC_ASTRAL) >= 2) + goto L_close; + mes "[Old Wizard]"; + mes "\"I'm not sure if you are experienced enough to cast it yet, though. You may need to first learn astral magic.\""; + goto L_close; + +L_AstralSoul: + mes "[Old Wizard]"; + mes "\"Oh yes, there are lots of ways to improve your magic. Skills -some people say mental focus for that- are another way to improve your magic. Of course learning more and more spells is also a need for good mages.\""; + next; + mes "\"I can teach you the ability to focus on magical stuff.\""; + next; + mes "\"To do so, I am in need of a pearl and about 100 acorns.\""; + menu + "Here we go.", L_Next, + "Ok be right back. I'll get them", L_Decline; + +L_Next: + if (countitem("Pearl") < 1 || countitem("Acorn") < 100) goto L_NotEnough; + delitem "Pearl", 1; + delitem "Acorn", 100; + mes "[Old Wizard]"; + mes "\"Okay, listen:\""; + next; + mes "\"Some parts of your brain is still unused. These parts will now get the ability to get focused to magic.\""; + next; + mes "\"To do so, think of a magic spell!\""; + next; + mes "The old wizard mumbles some invocations"; + next; + @SUP_lvl = 1; + @SUP_id = SKILL_ASTRAL_SOUL; + @SUP_name$ = "Astral Soul"; + @SUP_xp = 2500; + callfunc "SkillUp"; + mes "\"Now go and try to find someone who can actually activate that focus.\""; + next; + mes "\"You have the powers to focus on magic, but you need to get magic focused now.\""; + goto L_close; + +L_NotEnough: + mes "[Old Wizard]"; + mes "\"Please learn to count.\""; + next; + mes "\"When you are done with that, come back again.\""; + goto L_close; + +L_Agree: + mes "[Old Wizard]"; + mes "\"Beware the flying notes though, some of them are really dangerous. I haven't been able to persuade them to get back into their book. And avoid the mirror, it's been acting strange lately.\""; + next; + mes "\"Oh, and please don't take my apprentice too seriously. He still has a lot to learn.\""; + goto L_close; + +L_close: + @has_magic = 0; + close; +} -- cgit v1.2.3-60-g2f50