// TMW2 script.
// Author:
// Saulc
// Jesusalva
// Description:
// Colin, of Destructive Magic Class.
027-2,28,23,0 script Colin NPC_PLAYER,{
function basicMagic;
function standardMagic;
function advancedMagic;
if (!MAGIC_LVL) goto L_NoMagic;
mes l(".:: Destructive Magic Class ::.");
mesc l("Specialized in destructive, magical skills.");
next;
mesn;
mesc l("You have @@ magic skill points available.", sk_points());
mesc l("Note: You can exchange 1 @@ for 3 @@", getitemlink(GemPowder), getitemlink(Quill)), 1;
mes "";
select
l("Basic Magic"),
l("Standard Magic"),
l("Advanced Magic"),
//l("Mastery Magic"),
rif(countitem(GemPowder), l("Exchange Gempowder for Quill"));
mes "";
.@lv=@menu;
do
{
switch (.@lv) {
case 1:
basicMagic();
break;
case 2:
standardMagic();
break;
case 3:
advancedMagic();
break;
case 4:
inventoryplace Quill, 3;
delitem GemPowder, 1;
getitem Quill, 3;
@menuret=0;
break;
}
// 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(".:: Fire Arrow ::.");
mesc l("Basic fire single target attack. May burn targets.");
mes "";
mes l(".:: Napalm Beat ::.");
mesc l("Basic multi-target holy attack. Is actually weak.");
mes "";
mes l(".:: Magic Strike ::.");
mesc l("Basic wind single target attack. Strong in overall.");
mes "";
mes l(".:: Frost Diver ::.");
mesc l("Basic ice single target attack. May freeze targets.");
mes "";
mes l(".:: Meteor Strike ::.");
mesc l("Basic earth single target attack. May stun targets.");
mes "";
menuint
l("Fire Arrow"), TMW2_FIREARROW,
l("Napalm Beat"), TMW2_NAPALMBEAT,
l("Magic Strike"), TMW2_MAGICSTRIKE,
l("Frost Diver"), TMW2_FROSTDIVER,
l("Meteor Strike"), TMW2_METEORSTRIKE,
l("Cancel"), 0;
return;
}
function standardMagic {
if (MAGIC_LVL < 2) goto L_NoMagic;
mes l(".:: Fireball ::.");
mesc l("Area of effect fire damage. May burn targets.");
mes "";
mes l(".:: Holy Light ::.");
mesc l("Basic single target holy attack. Splashes in the nearby tiles.");
mes "";
mes l(".:: Lightning Bolt ::.");
mesc l("Strong wind single target attack.");
mes "";
mes l(".:: Frost Nova ::.");
mesc l("Basic ice area attack. May freeze targets.");
mes "";
mes l(".:: Meteor Shower ::.");
mesc l("Basic earth area attack. May stun targets.");
mes "";
mes l(".:: Firewalk ::.");
mesc l("Superior damage on enemies who walk over the fire.");
mes "";
menuint
l("Fireball"), TMW2_FIREBALL,
l("Holy Light"), TMW2_HOLYLIGHT,
l("Lightning Bolt"), TMW2_LIGHTNINGBOLT,
l("Frost Nova"), TMW2_FROSTNOVA,
l("Meteor Shower"), TMW2_METEORSHOWER,
l("Firewalk"), SO_FIREWALK,
l("Cancel"), 0;
return;
}
function advancedMagic {
if (MAGIC_LVL < 4) goto L_NoMagic;
mes l(".:: Armageddon ::.");
mesc l("Huge area of effect fire damage. May burn targets.");
mes "";
mes l(".:: Judgment ::.");
mesc l("Superior single target damage which splashes in area.");
mes "";
mes l(".:: Tempest ::.");
mesc l("Strong wind area of effect attack.");
mes "";
mes l(".:: Nilfheim ::.");
mesc l("Basic ice area attack. Freeze targets in a big area.");
mes "";
mes l(".:: Gaia Break ::.");
mesc l("Destroys everything in a line (earth). Boosts allied forces DEF.");
mes "";
menuint
l("Armageddon"), TMW2_ARMAGEDDON,
l("Judgment"), TMW2_JUDGMENT,
l("Tempest"), TMW2_TEMPEST,
l("Nilfheim"), TMW2_NILFHEIM,
l("Gaia Break"), TMW2_GAIABREAK,
l("Cancel"), 0;
return;
}
OnInit:
.@npcId = getnpcid(.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;
}