From 1d536fb5456efa5fd8eaea38c8212a02b1888800 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Thu, 2 Jul 2020 12:15:43 -0300 Subject: Fine tuning skills, Colin now teaches again a few basic skills --- npc/027-2/colin.txt | 132 +++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 106 insertions(+), 26 deletions(-) (limited to 'npc/027-2/colin.txt') diff --git a/npc/027-2/colin.txt b/npc/027-2/colin.txt index 70b6491c6..d066edc40 100644 --- a/npc/027-2/colin.txt +++ b/npc/027-2/colin.txt @@ -6,43 +6,53 @@ // 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; - do { mesc l("You have @@ magic skill points available.", sk_points()); - next; - mesc l("Fireball - Basic AoE (Area Of Effect) Skill"); - mesc l("Holy Light - Standard Holy Magical Attack"); - mesc l("Magic Strike - Standard Magical Attack"); - - mesc l("Napalm Beat - Spammable AoE Skill"); - mesc l("Frost Diver - Attempt to freeze an enemy, dealing damage"); - mesc l("Fire Walk - Creates a trail of fire, harming any pursuer"); - - mesc l("Frost Nova - Freeze everything in a range"); mesc l("Note: You can exchange 1 @@ for 3 @@", getitemlink(GemPowder), getitemlink(Quill)), 1; - menuint - rif(countitem(GemPowder), l("Exchange Gempowder for Quill")), -1, - l("Cancel"), 0; mes ""; + select + l("Basic Tricks"), + l("Standard Tricks"), + l("Advanced Tricks"), + 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; + } - switch (@menuret) { - case -1: - inventoryplace Quill, 3; - delitem GemPowder, 1; - getitem Quill, 3; - break; - case 0: - closeclientdialog; - break; - default: + // Handle result + mes ""; + if (@menuret) { if (!learn_magic(@menuret)) mesc l("You do not meet all requisites for this skill."), 1; - break; - } + } else { + closeclientdialog; + } + } while (@menuret); close; @@ -58,6 +68,76 @@ L_NoMagic: 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 ""; + menuint + l("Fire Arrow"), TMW2_FIREARROW, + l("Napalm Beat"), TMW2_NAPALMBEAT, + l("Magic Strike"), TMW2_MAGICSTRIKE, + l("Frost Diver"), TMW2_FROSTDIVER, + 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 ""; + menuint + l("Fireball"), TMW2_FIREBALL, + l("Holy Light"), TMW2_HOLYLIGHT, + l("Lightning Bolt"), TMW2_LIGHTNINGBOLT, + l("Frost Nova"), TMW2_FROSTNOVA, + 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 ""; + menuint + l("Armageddon"), TMW2_ARMAGEDDON, + l("Judgment"), TMW2_JUDGMENT, + l("Tempest"), TMW2_TEMPEST, + l("Nilfheim"), TMW2_NILFHEIM, + l("Cancel"), 0; + return; +} + + OnInit: .@npcId = getnpcid(.name$); setunitdata(.@npcId, UDT_HEADTOP, NPCEyes); -- cgit v1.2.3-60-g2f50