029-2,105,57,0 script MorganDebug NPC355,{ mes "[Morgan Debug]"; mes "Reset?"; menu "Yes.", L_Reset, "No.", L_End; L_Reset: QL_MORGAN = 0; mes "Reset!"; goto L_End; L_End: end; OnInit: if (!debug) disablenpc "MorganDebug"; end; } 029-2,101,57,0 script Morgan#_M NPC355,{ callfunc "PCtoNPCRange"; if(@npc_check) end; if (readparam(bInt) >= 5) goto L_Learn; goto L_NotMagic; L_Learn: if (QL_MORGAN == 0) goto L_NotSeen; if (QL_MORGAN == 1) goto L_Seen; if (QL_MORGAN == 2) goto L_Started; if (QL_MORGAN == 3) goto L_CastOnce; if (QL_MORGAN == 4) goto L_LearningDone; goto L_close; L_NotSeen: QL_MORGAN = 1; mes "[Morgan]"; mes "\"Welcome to the magic school of Candor\""; mes "\"My name is Morgan, I'm Head of Wizardry.\""; mes "\"You appear to have the markings to use magic.\""; mes "\"Granted you are still to young to cast spells.\""; mes "\"But we can teach you to use simple magic devices.\""; mes "\"Would you like to learn some apprentice skills?\""; menu "Yes.", L_Start, "Maybe later", L_close; L_Seen: mes "[Morgan]"; mes "\"Have you returned to learn some magic?\""; menu "Yes.", L_Start, "Maybe later", L_close; L_NotMagic: mes "[Morgan]"; mes "\"Hrmm you don't appear to posses enough magical talent to teach.\""; close; L_Start: mesn; mesq l("Great, lets begin your first lesson."); next; mesn; mesq l("This is a wand, there are many like it but this one is now yours."); getitem Wand, 1; learnskill SKILL_CONFRINGO; QL_MORGAN = 2; next; mesn; mesq l("Various wands and staffs are found throughout the land with many different strengths and weaknesses."); next; mesq l("To use the wand you need to have it equipped and speak the incantation to let it tap into your mana."); next; mesn; mesq l("As the power of your magic grows so will the spells you can cast."); mesq l("Lets start with a basic wand attack: %s.", b("confringo")); next; mesn; mesq l("Equip the wand and lets try out that spell."); mesc l("To cast a spell open the skill window, select the spell you wish to use, and press the %s button.", b(l("Use"))); next; mesn; mesq l("It might be a good idea to drag the spell to the shortcut window, so you can target and attack using your keyboard instead of mouse."); next; mesn; mesq l("Speak to me again once you've cast the spell."); mesc l("As an offensive spell, it'll only work if you have a valid target, like a monster."); close; L_Started: mesn; mesq l("Lets start with a basic wand attack: %s.", b("confringo")); mesq l("Equip the wand and lets try out that spell."); mesc l("To cast a spell open the skill window, select the spell you wish to use, and press the %s button.", b(l("Use"))); mesq l("Speak to me again once you've cast the spell."); mesc l("As an offensive spell, it'll only work if you have a valid target, like a monster."); close; L_CastOnce: mesn; mesq l("Ok, good job! Looks like you have good mana flow."); mesq l("Onto the next lesson. Now that you have %s cast,", b("confringo")); mesq l("Each time you attack the wand will convert a bit of you mana into a magic bolt."); next; mesq l("If an offensive spell requires an item, then after so many attacks, you may need to recast the whole invocation to stay attuned to the wand."); mesc l("(Logging out will also cancel any spell effects currently active in-game.)."); next; mesq l("In other words, offensive spells which require reagents won't consume these every time you cast, but will still require the items frequently."); next; mesq l("I've taught you all I can for now. You should search for the Mana Seed, I've heard there was one north west of Hurnscald."); QL_MORGAN = 4; close; L_LearningDone: mesn; mesq l("%s is a basic wand attack.", b("confringo")); mesq l("A Wand must be equipped to use the spell."); mesc l("To cast a spell open the skill window, select the spell you wish to use, and press the %s button.", b(l("Use"))); mesq l("I've taught you all I can for now. You should search for the Mana Seed, I've heard there was one north west of Hurnscald."); learnskill SKILL_CONFRINGO; if (get_nibble(##03_TMWQUEST, 0) == 1) { mes ""; select l("Gotcha."), l("Actually, have you ever heard of Yeti's kidnapping little girls?"); mes ""; if (@menu == 2) { mesn; mesq l("No, but maybe someone %s would know better?", b(l("old"))); } } close; L_close: close; } 029-2,113,59,0 script Zitoni NPC103,{ shop .name$; goodbye; close; OnInit: tradertype(NST_ZENY); sellitem CactusDrink; sellitem CactusPotion; sellitem TinyManaElixir, 50; sellitem SmallManaElixir, 100; .distance = 5; end; }