summaryrefslogblamecommitdiff
path: root/npc/027-3/luca.txt
blob: d92fbb6ddbcd043bc9f58ad11b37f945cccfc07e (plain) (tree)
1
2
3
4
5
6
7
8




               
                                      
 
                                            


                           
                                   

                                                                                

         
                                                                     
          



                             
           









                                   
 


                        
                                         
                                                                            

                     


                              
 
                       




          
                                                                    







                                                                                                                                                     

                                      
                                   








                                                                                     
                                    


                                              
           













                                                                                       
           









                                                                                        
           

 
       
                               
                                               
                                                        

                                                      

                                            




                  
// TMW2 script.
// Author:
//    Saulc
//    Jesusalva
// Description:
//    Luca, of Physical Science Class.

027-3,24,36,0	script	Luca	NPC_PLAYER,{
    function basicMagic;
    function standardMagic;
    function advancedMagic;
    if (!MAGIC_LVL) goto L_NoMagic;
    mes l(".:: Physical Sciences Class ::.");
    mesc l("Specialized in skills with weapon-based damage and Assassination.");
    next;
    mesn;
    mesc l("You have @@ magic skill points available.", sk_points());
    select
        l("Basic Magic"),
        l("Standard Magic"),
        l("Advanced Magic");
        //l("Mastery Magic");
    mes "";
    .@lv=@menu;
    do
    {
        // Display appropriate menu
        if (.@lv == 1)
            basicMagic();
        else if (.@lv == 2)
            standardMagic();
        else if (.@lv == 3)
            advancedMagic();

        // Handle result
        mes "";
        if (@menuret) {
            if (!learn_magic(@menuret)) {
                mesc l("You do not meet all requisites for this skill."), 1;
                next;
            }
        } else {
            closeclientdialog;
        }

    } while (@menuret);
    close;

L_NoMagic:
    next;
    mesn;
    mesq l("You do not have enough magic power for these classes.");
    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;

function basicMagic {
    if (MAGIC_LVL < 1) goto L_NoMagic;
    mes l(".:: Falkon Strike ::.");
    mesc l("Bash your weapon against your enemies with raised damage and accuracy.");
    mes "";
    mes l(".:: Ground Strike ::.");
    mesc l("Hit the ground, exploding the surroundings and disabling enemies.");
    mes "";
    mes l(".:: Sharpshooter ::.");
    mesc l("Shoot an arrow or bullet which damages everything on its way.");
    mes "";
    menuint
        l("Falkon Strike"), SM_BASH,
        l("Ground Strike"), ASC_METEORASSAULT,
        l("Sharpshooter"), SN_SHARPSHOOTING,
        l("Cancel"), 0;
    return;
}

function standardMagic {
    if (MAGIC_LVL < 2) goto L_NoMagic;
    mes l(".:: Supreme Attack ::.");
    mesc l("Cause a very strong attack with lowered accuracy.");
    mes "";
    mes l(".:: Arrow Shower ::.");
    mesc l("Shoot FIVE arrows or bullets to the air and cause Area Of Effect Damage.");
    mes "";
    menuint
        l("Supreme Attack"), MC_MAMMONITE,
        l("Arrow Shower"), AC_SHOWER,
        l("Cancel"), 0;
    return;
}

function advancedMagic {
    if (MAGIC_LVL < 3) goto L_NoMagic;
    mes l(".:: Counter Attack ::.");
    mesc l("Retaliates next attack with a critical hit. This instance lasts a second.");
    mes "";
    menuint
        l("Counter Attack"), KN_AUTOCOUNTER,
        l("Cancel"), 0;
    return;
}

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

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