// 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;
}