diff options
Diffstat (limited to 'world/map/npc/042-2/morgan.txt')
-rw-r--r-- | world/map/npc/042-2/morgan.txt | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/world/map/npc/042-2/morgan.txt b/world/map/npc/042-2/morgan.txt new file mode 100644 index 00000000..3ea1a2e8 --- /dev/null +++ b/world/map/npc/042-2/morgan.txt @@ -0,0 +1,142 @@ +// 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, ((TUTORIAL & NIBBLE_6_MASK) >> NIBBLE_6_SHIFT); + return; +} +function|script|SetMorganMask|, +{ + set TUTORIAL, (TUTORIAL & ~(NIBBLE_6_MASK) | (@morgan_tmp << NIBBLE_6_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 TUTORIAL, (TUTORIAL & ~(NIBBLE_6_MASK) | (0 << NIBBLE_6_SHIFT)); + mes "Reset!"; + goto L_End; + +L_End: + end; + +OnInit: + if (!debug) + disablenpc "MorganDebug"; + end; +} +042-2,101,57,0|script|Morgan|355, +{ + 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; +} |