// 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; 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(".:: 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; }