summaryrefslogtreecommitdiff
path: root/world/map/npc/042-2/morgan.txt
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/042-2/morgan.txt')
-rw-r--r--world/map/npc/042-2/morgan.txt142
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;
+}