// 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; }