// 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;
if ($FIRESOFSTEAM < 9) {
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;
}