// Tut mage // Author: Wushin // Gains Access to Magic School // See 024-2 clean that shit up // Morgan, liana function|script|MorganState { callfunc "ClearVariables"; set @morgan, ((STARTAREA & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT); return; } function|script|SetMorganMask { set STARTAREA, (STARTAREA & ~(NIBBLE_3_MASK) | (@morgan_tmp << NIBBLE_3_SHIFT)); set @morgan_tmp, 0; return; } 042-2,105,57,0|script|MorganDebug|355 { mes "[Morgan Debug]"; mes "Reset?"; menu "Yes.", L_Reset, "No.", L_End; L_Reset: set STARTAREA, (STARTAREA & ~(NIBBLE_3_MASK) | (0 << NIBBLE_3_SHIFT)); mes "Reset!"; goto L_End; L_End: end; OnInit: if (!debug) disablenpc "MorganDebug"; end; } 042-2,101,57,0|script|Morgan|355 { setarray @npc_loc, 101, 57, 4; callfunc "PCtoNPCRange"; if (@npc_check) goto L_Close; callfunc "MorganState"; if (readparam(bInt) >= 5) goto L_Learn; goto L_NotMagic; L_Learn: if (@morgan == 0) goto L_NotSeen; if (@morgan == 1) goto L_Seen; if (@morgan == 2) goto L_Started; if (@morgan == 3) goto L_CastOnce; if (@morgan == 4) goto L_LearningDone; goto L_Close; L_NotSeen: set @morgan_tmp, 1; callfunc "SetMorganMask"; mes "[Morgan]"; mes "\"Welcome to the Magic Insitute of Tulimshar!\""; next; mes "\"My name is Morgan, I'm the Dean of Wizardry.\""; next; mes "\"You appear to have the markings to use magic.\""; next; mes "\"Granted you are still to young to cast spells.\""; next; mes "\"But we can teach you to use simple magic devices.\""; next; 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.\""; goto L_Close; L_Start: set @morgan_tmp, 2; callfunc "SetMorganMask"; mes "\"Great, lets begin your first lesson.\""; next; getitem 1171, 1; mes "\"This is a wand, there are many like it but this one is now yours.\""; next; mes "\"Various wands and staffs are found throughout the land with many different strengths and weaknesses.\""; next; mes "\"To use the wand you need to have it equipped and speak the incantation to let it tap into your mana.\""; next; mes "\"As the power of your magic grows so will the spells you can cast.\""; next; mes "\"Lets start with a basic wand attack. " + getspellinvocation("wand") + "\""; next; mes "\"Equip the wand and lets try out that spell.\""; next; mes "\"Speak to me again once you've cast the spell.\""; goto L_Close; L_Started: mes "[Morgan]"; mes "\"Lets start with a basic wand attack. " + getspellinvocation("wand") + "\""; next; mes "\"Equip the wand and lets try out that spell.\""; next; mes "\"Speak to me again once you've cast the spell.\""; goto L_Close; L_CastOnce: mes "[Morgan]"; mes "\"Ok, good job! Looks like you have good mana flow.\""; next; mes "\"Onto the next lesson. Now that you have " + getspellinvocation("wand") + " cast,\""; next; mes "\"Each time you attack the wand will convert a bit of you mana into a magic bolt.\""; next; mes "\"After so many attacks, you will need to recast the invocation to stay attuned to the wand.\""; next; mes "\"(Logging out will also cancel any spell effects currently active in-game.).\""; next; set @morgan_tmp, 4; callfunc "SetMorganMask"; goto L_Close; L_LearningDone: mes "[Morgan]"; mes "\"I've taught you all I can for now. Come back later.\""; goto L_Close; L_Close: close; }