summaryrefslogblamecommitdiff
path: root/npc/003-0-1/colin.txt
blob: d2c22263b84b88f65b6ccd361691c8b88adabc84 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12











                                                                                 
                                   
                                                        
 


                                                                                                                                              

























































                                                                                                                                           











                                                                                                                                                     

          




























































                                                                                                                                                                                                


                                               
                                                       

                                                      

                                            




                  
// TMW2 script.
// Author:
//    Saulc
//    Jesusalva
// Description:
//    Luca and Colin assigns player a class. This may end up contradicting races,
//    so expect core changes!

003-0-1,58,29,0	script	Colin	NPC_PLAYER,{

    mesn;
    mesq l("I am the Wizard Mages master.");
    if (!MAGIC_LVL) goto L_NoMagic;
    if (getskilllv(MAGIC_WARRIOR) && !is_admin()) close;

    if (getskilllv(WIZARD_MAGE) == 1 && MAGIC_LVL >= 2 && ST_TIER == 0) goto L_Tier2;
    if (getskilllv(WIZARD_MAGE) == 1 && MAGIC_LVL >= 2 && ST_TIER == 1) mes col("...Where is the recipe for the potion? Ah, I lost it...", 9);

    // Sanity check
    if (getskilllv(MG_FIREBALL) >= 1) mesq l("Are you using my skill?");
    if (getskilllv(MG_FIREBALL) >= 1) close;
    // could grant MG_THUNDERSTORM perhaps, oh, I don't care.

    if (getskilllv(WIZARD_MAGE) == 0) goto L_SignUp;
    close;

L_SignUp:
    next;
    mesn;
    mesq l("You have some magic power. Do you want to join the Wizard Mages? ##BThis cannot be undone##b.");
    next;
    mesn;
    mesq l("We use sheer magic to destroy, explode, burn, freeze, and in overall kill our opponents!");
    next;
    menu
        l("What do I need to do to join?"), L_JoinReq,
        l("I'm not interested, sorry."), -;
    close;

L_JoinReq:
    mesn;
    mesq l("Ah, nothing too major, as you already have magic.");
    next;
    mesn;
    mesq l("We only require a small fee of 1 @@, or 40 @@", getitemlink(DivineApple), getitemlink(SnakeEgg));
    next;
    switch(select(
        rif(countitem(DivineApple) >= 1, l("I got the apple.")),
        rif(countitem(SnakeEgg) >= 40, l("I got the eggs.")),
        l("I will apply later."))) {

        case 1:
            delitem DivineApple, 1;
            goto L_Tier1Ok;
            break;
        case 2:
            // If player had 40 eggs, and eat 1 - they are clearly cheating.
            // It will delete all 39 eggs, and when it tries to delete the 40th,
            // it won't find and will terminate the script. No lame cheating.
            // Of course, all 39 eggs are gone for and I can't do anything about it.
            delitem SnakeEgg, 40;
            goto L_Tier1Ok;
            break;
        default:
            break;
    }

    close;

L_Tier1Ok:
    // The last argument is duration: 0 - permanent 1- temporary. If omitted, defaults to 1.
    skill(MG_FIREBALL,1,0);
    skill(WIZARD_MAGE,1,0);
    mes "";
    mesn;
    mesq l("Here, learn the ##BFireball##b. It is on Magical skills tab. You can drag it to the shortcut list. Use it to protect people!");
    close;

L_NoMagic:
    next;
    mesn;
    mesq l("Your lack of magical power is critical. I dare say, you might never in your life get access to a Mana Stone.");
    next;
    mesn;
    mesq l("Besides the Magic Council, Andrei Sakar have his own Mana Stone, but I doubt he would train the likes of you, or share his Mana Stone.");
    next;
    mesn;
    mesq l("Perhaps, in the city, someone knows rumors about Mana Stones and can teach you. Other than that, you're on your own.");
    close;

// progressbar("<color>", <seconds>)
// Script will be canceled if character moves :D
// So I probably could *try* to reuse TMW-BR Magic Tier 2 Scripts.
L_Tier2:
    next;
    mesn;
    mesq l("Wha, your magic power increased! How?! Ah, nevermind. You are eligible to get tier 2!");
    next;
    mesn;
    mesq l("But whoa, not so fast! You must pass the seven steps of a trial first!");
    next;
    mesn;
    mesq l("The first trial is simple, I'm not doing anything in special. Bring me 1 @@, or 20 @@ and 20 @@.", getitemlink(DivineApple), getitemlink(SilkCocoon), getitemlink(ChocolateMouboo));
    next;
    switch(select(
        rif(countitem(DivineApple) >= 1, l("I got the apple.")),
        rif(countitem(SilkCocoon) >= 20 && countitem(ChocolateMouboo) >= 20, l("I got the silk and chocolate.")),
        l("I will apply later."))) {

        case 1:
            delitem DivineApple, 1;
            goto L_Tier2Ok;
            break;
        case 2:
            delitem SilkCocoon, 20;
            delitem ChocolateMouboo, 20;
            goto L_Tier2Ok;
            break;
        default:
            break;
    }

    close;

L_Tier2Ok:
    // The last argument is duration: 0 - permanent 1- temporary. If omitted, defaults to 1.
    addtoskill(MG_FIREBALL,1,0);
    getexp 10000, 0;
    ST_TIER=1;
    mes "";
    mesn;
    mesq l("Good, good. The skill you got earlier just raised a single level. I'll also impair some experience on you, no biggies.");
    next;
    mesn;
    mesq l("Now, the real challenge will start. You have a lot of raw power, but that doesn't gives you a lot of skills to learn.");
    next;
    mesn;
    mesq l("I can make a nice, simple potion for you. Once you drink it, the raw mana will settle on your body.");
    next;
    mesn;
    mesq l("However, beware! That potion is short-lived, you'll be running against time. Get ready to travel a lot.");
    next;
    mesn;
    mesq l("Come talk to me when you're ready, and we can begin.");
    close;

L_T2_S1:
    addtoskill(WIZARD_MAGE,1,0);
    getexp 40000, 0; // Yes, 40k experience points. Waw.
    close;

OnInit:
    .@npcId = getnpcid(0, .name$);
    setunitdata(.@npcId, UDT_HEADTOP, NPCEyes);
    setunitdata(.@npcId, UDT_HEADMIDDLE, SorcererRobe);
    setunitdata(.@npcId, UDT_HEADBOTTOM, JeansShorts);
    setunitdata(.@npcId, UDT_WEAPON, DeepBlackBoots);
    setunitdata(.@npcId, UDT_HAIRSTYLE, 21);
    setunitdata(.@npcId, UDT_HAIRCOLOR, 20);

    .sex = G_MALE;
    .distance = 5;
    end;
}