summaryrefslogblamecommitdiff
path: root/world/map/npc/029-2/morgan.txt
blob: f6679f6763d13e1c5b72e3942b0788fdd830db94 (plain) (tree)
1
2
3
4
5
6
7
8
9




                               
                           

                              
                                                                 

           
                             
 
                                                                                    


                       
                                     






                         
                                                                          










                                 
                                   
 



                                  





















                             

                                                       
                                                            
                                                             
                                                                




















                                                                              

                                                                                
                                                                                                                   
                                                                                                                   
                                                                                
                                                                                      
                                                          
                                                                                         





                                                                                      
                                                          
                                                                                         





                                                                
                                                                                               
                                                                                              
                                                                                                         
                                                                                          





                             



                                                                                                         




                 
// 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;
}
029-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;
}
029-2,101,57,0|script|Morgan#_M|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 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.\"";
    goto L_Close;

L_Start:
    set @morgan_tmp, 2;
    callfunc "SetMorganMask";
    mes "\"Great, lets begin your first lesson.\"";
    getitem 1171, 1;
    mes "\"This is a wand, there are many like it but this one is now yours.\"";
    mes "\"Various wands and staffs are found throughout the land with many different strengths and weaknesses.\"";
    mes "\"To use the wand you need to have it equipped and speak the incantation to let it tap into your mana.\"";
    mes "\"As the power of your magic grows so will the spells you can cast.\"";
    mes "\"Lets start with a basic wand attack. " + getspellinvocation("wand") + "\"";
    mes "\"Equip the wand and lets try out that spell.\"";
    mes "\"To cast a spell open the chat window, type the invocation and press enter.\"";
    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") + "\"";
    mes "\"Equip the wand and lets try out that spell.\"";
    mes "\"To cast a spell open the chat window, type the invocation and press enter.\"";
    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.\"";
    mes "\"Onto the next lesson. Now that you have " + getspellinvocation("wand") + " cast,\"";
    mes "\"Each time you attack the wand will convert a bit of you mana into a magic bolt.\"";
    mes "\"After so many attacks, you will need to recast the invocation to stay attuned to the wand.\"";
    mes "\"(Logging out will also cancel any spell effects currently active in-game.).\"";
    set @morgan_tmp, 4;
    callfunc "SetMorganMask";
    goto L_Close;

L_LearningDone:
    mes "[Morgan]";
    mes "\"" + getspellinvocation("wand") + " is a basic wand attack.\"";
    mes "\"A Wand must be equipped to use the spell.\"";
    mes "\"To cast a spell open the chat window, type the invocation and press enter.\"";
    mes "\"I've taught you all I can for now. You should visit the Mana Seed north west of Hurnscald.\"";
    goto L_Close;

L_Close:
    close;
}