diff options
Diffstat (limited to 'npc')
-rw-r--r-- | npc/003-0/_import.txt | 4 | ||||
-rw-r--r-- | npc/003-0/colin.txt | 4 | ||||
-rw-r--r-- | npc/003-0/luca.txt | 4 | ||||
-rw-r--r-- | npc/003-0/sage.txt | 188 | ||||
-rw-r--r-- | npc/003-0/saves.txt | 31 | ||||
-rw-r--r-- | npc/003-0/trickmaster.txt | 31 | ||||
-rw-r--r-- | npc/003-0/wizard.txt | 191 |
7 files changed, 68 insertions, 385 deletions
diff --git a/npc/003-0/_import.txt b/npc/003-0/_import.txt index f2e4c81d9..0ec5970cb 100644 --- a/npc/003-0/_import.txt +++ b/npc/003-0/_import.txt @@ -4,5 +4,5 @@ "npc/003-0/colin.txt", "npc/003-0/luca.txt", "npc/003-0/recepcionist.txt", -"npc/003-0/sage.txt", -"npc/003-0/wizard.txt", +"npc/003-0/saves.txt", +"npc/003-0/trickmaster.txt", diff --git a/npc/003-0/colin.txt b/npc/003-0/colin.txt index aff8474b6..1a7bb2c3b 100644 --- a/npc/003-0/colin.txt +++ b/npc/003-0/colin.txt @@ -3,9 +3,9 @@ // Saulc // Jesusalva // Description: -// Luca and Colin assigns player a class. Colin is the Wizard Master. +// Colin, of Destructive Magic Class. -003-0,41,25,0 script Colin NPC_PLAYER,{ +003-0,58,29,0 script Colin NPC_PLAYER,{ mesn; mesq l("I am the @@ master.", l("Wizard Mages")); if (!MAGIC_LVL) goto L_NoMagic; diff --git a/npc/003-0/luca.txt b/npc/003-0/luca.txt index 3c0fd60db..3ffb716cc 100644 --- a/npc/003-0/luca.txt +++ b/npc/003-0/luca.txt @@ -3,9 +3,9 @@ // Saulc // Jesusalva // Description: -// Luca and Colin assigns player a class. Luca is the Warrior Master. +// Luca, of Physical Science Class. -003-0,31,26,0 script Luca NPC_PLAYER,{ +003-0,34,41,0 script Luca NPC_PLAYER,{ mesn; mesq l("I am the @@ master.", l("Magic Warriors")); if (!MAGIC_LVL) goto L_NoMagic; diff --git a/npc/003-0/sage.txt b/npc/003-0/sage.txt deleted file mode 100644 index 9df6a2dec..000000000 --- a/npc/003-0/sage.txt +++ /dev/null @@ -1,188 +0,0 @@ -// TMW2 scripts. -// Authors: -// Jesusalva -// Description: -// Leader of the SAGE class - -003-0,61,25,0 script Sage Master NPC_PLAYER,{ - /* - if (!is_staff()) - goto L_Close; - */ - if (!(MAGIC_SUBCLASS & CL_SAGE)) - goto L_SignUp; - goto L_Member; - -// Sign Up -L_SignUp: - // Not allowed if subclass filled or not from main class - if (total_subclass() >= max_subclass() || getskilllv(WIZARD_MAGE) < 2) - goto L_Close; - mesn; - mesq l("Hey there! Do you want to join the Sage Class?"); - mesc l("Warning: If you join a subclass, you can't leave it later!"), 1; - mesc b(l("Warning: This class haven't been tested/balanced yet. Feedback is required!")), 1; - next; - if (askyesno() != ASK_YES) - close; - // TODO: Requeriment for signing up to a subclass? Or is the tier + skill quest hard enough? - MAGIC_SUBCLASS=MAGIC_SUBCLASS|CL_SAGE; - mesn; - mesq l("Welcome to the sage guild!"); - close; - -// Close -L_Close: - goodbye; - closedialog; - close; - -L_Missing: - mesn; - mesq l("Hey hey! You don't have that stuff, CAN'T YOU READ?!"); - percentheal 0, -10; - next; - goto L_Member; - -// Membership area -// Sage -// CR_TRUST (raise Max HP in 200 and Holy Resistance in 5%, passive) -// AL_ANGELUS (DEF Increase 5% for 15s/LVL, 14x14 area for PARTY) -// PR_REDEMPTIO (suicide with death penalty. Revive dead party members on a 29x29 area. Min. 1% xp. 0.01% xp penalty reduction per revive) -// MER_INCAGI (raise agi and move speed for 20s/LVL. Have an HP cost.) -// SM_BASH up to level 4 (+220% dmg and +20% acc). PS. If you have MP, SM_BASH is very powerful. - -L_Member: - mesn; - mesq l("Hey there! Do you want to learn new skills for a very small teaching fee?"); - select - rif(sk_intcost(SA_FREECAST) && getskilllv(SA_FREECAST) < (1+degree_subclass()/2), l("Learn Action Casting")), - rif(sk_intcost(SA_DRAGONOLOGY) && getskilllv(SA_DRAGONOLOGY) < (1+degree_subclass()/2), l("Learn Dragon Slayer")), - rif(sk_intcost(TMW2_SAGE) && sk_canlvup(TMW2_SAGE), l("Improve Mana Wisdom")), - rif(sk_intcost(SA_FLAMELAUNCHER) && sk_canlvup(SA_FLAMELAUNCHER), l("Improve Fire Weapon")), - rif(sk_intcost(SA_FROSTWEAPON) && sk_canlvup(SA_FROSTWEAPON), l("Improve Ice Weapon")), - rif(sk_intcost(SA_LIGHTNINGLOADER) && sk_canlvup(SA_LIGHTNINGLOADER), l("Improve Wind Weapon")), - rif(sk_intcost(SA_SEISMICWEAPON) && sk_canlvup(SA_SEISMICWEAPON), l("Improve Earth Weapon")), - l("Leave Subclass"), - l("Nothing at the moment."); - mes ""; - switch (@menu) { - case 1: - mesc l("[Action Casting]"); - mesc l("Allows to move/attack while casting. (Melee attacks still interrupt casting!)"); - mes ""; - mesn; - if (!mlearn(SA_FREECAST, - Tentacles, 10, - MushroomSpores, 5, - WolvernTooth, 3, - RedScorpionClaw, 1)) - goto L_Missing; - break; - case 2: - mesc l("[Dragon Slayer]"); - mesc l("Raises attack and resistance against dragons. Also raises int. Passive."); - mes ""; - mesn; - if (!mlearn(SA_DRAGONOLOGY, - Acorn, 70, - Root, 10, - FrozenYetiTear, 2, - FluoPowder, 1)) - goto L_Missing; - break; - case 3: - mesc l("[Mana Wisdom]"); - mesc l("Increase mana experience gain, when using mana skills."); - mes ""; - mesn; - if (!mlearn(TMW2_SAGE, - Acorn, 60, - Bread, 25, - PinkBlobime, 20, - SmallMushroom, 15, - RedApple, 12)) - goto L_Missing; - break; - // Weapon Enhance - case 4: - case 5: - case 6: - case 7: - setarray .@ASkill, SA_FLAMELAUNCHER, SA_FROSTWEAPON, SA_LIGHTNINGLOADER, SA_SEISMICWEAPON; - setarray .@AItem, Curshroom, Coral, BatWing, PileOfAsh; - setarray .@BItem, Ruby, Sapphire, Emerald, Topaz; - setarray .@ASkill$, "Fire", "Ice", "Wind", "Earth"; - - .@index=@menu-4; - - .@Skill$=.@ASkill$[.@index]; - .@Skill=.@ASkill[.@index]; - .@Item=.@AItem[.@index]; - .@ItemB=.@BItem[.@index]; - - deletearray(.@ASkill); - deletearray(.@AItem); - deletearray(.@BItem); - deletearray(.@ASkill$); - - mesc l("[@@ Weapon]", .@Skill$); - mesc l("Temporaly switch weapon element to @@. Success rate is fixed at 70%.", .@Skill$); - mes ""; - mesn; - if (!mlearn(.@Skill, - .@Item, 30, - FluoPowder, 10, - WoodenLog, 5, - HerbalTea, 3, - .@ItemB, 1)) - goto L_Missing; - break; - case 8: - // All skills related may include the basic class skills if they're related. - mesc l("WARNING: If you leave the subclass, you'll lose all skills related to it!"), 1; - mesc l("This cannot be undone. Are you sure?"), 1; - mes ""; - if (askyesno() == ASK_YES) { - mes ""; - if (validatepin()) { - skill SA_FREECAST, 0, 0; - skill SA_DRAGONOLOGY, 0, 0; - skill TMW2_SAGE, 0, 0; - skill SA_FLAMELAUNCHER, 0, 0; - skill SA_FROSTWEAPON, 0, 0; - skill SA_LIGHTNINGLOADER, 0, 0; - skill SA_SEISMICWEAPON, 0, 0; - MAGIC_SUBCLASS=MAGIC_SUBCLASS^CL_SAGE; - mesc l("You abandoned the SAGE class!"), 1; - close; - } else { - mesc l("Failed to validate pin. Aborting."); - next; - } - } else { - mes ""; - mesc l("Operation aborted. Phew!"); - next; - } - break; - default: - goto L_Close; - } - - goto L_Member; - -OnInit: - .@npcId = getnpcid(.name$); - //setunitdata(.@npcId, UDT_HEADTOP, WarlordHelmet); // TODO: wizard hat - setunitdata(.@npcId, UDT_HEADMIDDLE, SorcererRobe); - setunitdata(.@npcId, UDT_HEADBOTTOM, NPCEyes); - setunitdata(.@npcId, UDT_WEAPON, JeansChaps); - setunitdata(.@npcId, UDT_HAIRSTYLE, 2); - setunitdata(.@npcId, UDT_HAIRCOLOR, 4); - - .sex=G_MALE; - .distance=5; - end; -} - diff --git a/npc/003-0/saves.txt b/npc/003-0/saves.txt new file mode 100644 index 000000000..89f8b3b53 --- /dev/null +++ b/npc/003-0/saves.txt @@ -0,0 +1,31 @@ +// TMW2 Script +// Author: +// Jesusalva +// Description: +// Mr. Saves of Scholar Class + +003-0,34,25,0 script Mr Saves NPC_BLACKALCHEMIST,{ + if (!MAGIC_LVL) goto L_NoMagic; + mesn; + mesq l("You are a noob."); + close; + +L_NoMagic: + next; + mesn; + mesq l("Your lack of magical power is critical. I dare say, you might never in your life get access to a Mana Stone."); + 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; + +OnInit: + .sex = G_MALE; + .distance = 5; + end; + +} + diff --git a/npc/003-0/trickmaster.txt b/npc/003-0/trickmaster.txt new file mode 100644 index 000000000..2fbce745e --- /dev/null +++ b/npc/003-0/trickmaster.txt @@ -0,0 +1,31 @@ +// TMW2 Script +// Author: +// Jesusalva +// Description: +// Trickmaster of Tricksters Class + +003-0,40,30,0 script Trickmaster NPC_BLACKALCHEMIST,{ + if (!MAGIC_LVL) goto L_NoMagic; + mesn; + mesq l("You are a noob."); + close; + +L_NoMagic: + next; + mesn; + mesq l("Your lack of magical power is critical. I dare say, you might never in your life get access to a Mana Stone."); + 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; + +OnInit: + .sex = G_FEMALE; + .distance = 5; + end; + +} + diff --git a/npc/003-0/wizard.txt b/npc/003-0/wizard.txt deleted file mode 100644 index d4ca14a52..000000000 --- a/npc/003-0/wizard.txt +++ /dev/null @@ -1,191 +0,0 @@ -// TMW2 scripts. -// Authors: -// Jesusalva -// Description: -// Leader of the WIZARD class -// TODO: Improve Fireball - -003-0,55,25,0 script Wizard Master NPC_PLAYER,{ - if (!(MAGIC_SUBCLASS & CL_WIZARD)) - goto L_SignUp; - goto L_Member; - -// Sign Up -L_SignUp: - // Not allowed if subclass filled or not from main class - if (total_subclass() >= max_subclass() || getskilllv(WIZARD_MAGE) < 2) - goto L_Close; - mesn; - mesq l("Hey there! Do you want to join the Wizard Class?"); - mesc l("Warning: If you join a subclass, you can't leave it later!"), 1; - //mesc b(l("Warning: This class haven't been tested/balanced yet. Feedback is required!")), 1; - next; - if (askyesno() != ASK_YES) - close; - // TODO: Requeriment for signing up to a subclass? Or is the tier + skill quest hard enough? - MAGIC_SUBCLASS=MAGIC_SUBCLASS|CL_WIZARD; - mesn; - mesq l("Welcome to the wizard guild!"); - close; - -// Close -L_Close: - goodbye; - closedialog; - close; - -L_Missing: - mesn; - mesq l("Hey hey! You don't have that stuff, CAN'T YOU READ?!"); - percentheal 0, -10; - next; - goto L_Member; - -// Membership area -// Wizard -// MG_COLDBOLT (ice) -// MG_LIGHTNINGBOLT (wind) -// WZ_EARTHSPIKE (earth) -// MG_NAPALMBEAT (ghost) -// MG_ENERGYCOAT (For 5 minutes, raise damage reduction, but that eats MP) -// TODO: We have many other cool skills for Wizard (more AoE skills, more damage, etc) -// I will worry with that later, as that also means providing extra skills for Sage & Priest -// Note: the number of hits of bolts is the same as the skill level :D - -L_Member: - mesn; - mesq l("Hey there! Do you want to learn new skills for a very small teaching fee?"); - select - rif(sk_intcost(MG_ENERGYCOAT) && !getskilllv(MG_ENERGYCOAT), l("Learn Energy Coating")), - rif(sk_intcost(MG_NAPALMBEAT) && sk_canlvup(MG_NAPALMBEAT), l("Improve Napalm Beat")), - rif(sk_intcost(MG_COLDBOLT) && sk_canlvup(MG_COLDBOLT), l("Improve Cold Bolt")), - rif(sk_intcost(MG_LIGHTNINGBOLT) && sk_canlvup(MG_LIGHTNINGBOLT), l("Improve Thunder Bolt")), - rif(sk_intcost(WZ_EARTHSPIKE) && sk_canlvup(WZ_EARTHSPIKE), l("Improve Earth Spike")), - rif(sk_intcost(MG_FIREBOLT) && sk_canlvup(MG_FIREBOLT), l("Improve Fire Bolt")), - rif(sk_intcost(MG_FIREBALL) && getskilllv(MG_FIREBALL) < (3+degree_subclass()), l("Improve Fire Ball")), - l("Leave Subclass"), - l("Nothing at the moment."); - mes ""; - switch (@menu) { - case 1: - mesc l("[Energy Coating]"); - mesc l("Drains Mana to reduce damage taken. The only defensive skill from wizards."); - mes ""; - mesn; - if (!mlearn(MG_ENERGYCOAT, - Tentacles, 10, - MushroomSpores, 5, - WolvernTooth, 3, - RedScorpionClaw, 1)) - goto L_Missing; - break; - case 2: - mesc l("[Napalm Beat]"); - mesc l("Neutral attack with low damage value, but with low cost, high range and wide Effect Area."); - //mesc l("Useful in PvP when your enemy have equipped a @@", getitemlink(AstralCube)); - mes ""; - mesn; - if (!mlearn(MG_NAPALMBEAT, - Acorn, 60, - Bread, 30, - SmallMushroom, 20, - PinkBlobime, 20, - RedApple, 15)) - goto L_Missing; - break; - // Magic Bolts - case 3: - case 4: - case 5: - case 6: - setarray .@ASkill, MG_COLDBOLT, MG_LIGHTNINGBOLT, WZ_EARTHSPIKE, MG_FIREBOLT; - setarray .@AItem, Coral, BatWing, PileOfAsh, Curshroom; - setarray .@BItem, Sapphire, Emerald, Topaz, Ruby; - setarray .@ASkill$, "Ice", "Wind", "Earth", "Fire"; - - .@index=@menu-3; - - .@Skill$=.@ASkill$[.@index]; - .@Skill=.@ASkill[.@index]; - .@Item=.@AItem[.@index]; - .@ItemB=.@BItem[.@index]; - - deletearray(.@ASkill); - deletearray(.@AItem); - deletearray(.@BItem); - deletearray(.@ASkill$); - - mesc l("[@@ Bolt]", .@Skill$); - mesc l("Causes a @@ bolt on the enemy. Number of hits is the skill level.", .@Skill$); - mes ""; - mesn; - if (!mlearn(.@Skill, - .@Item, 30, - FluoPowder, 8, - HerbalTea, 3, - DiamondPowder, 2, - .@ItemB, 1)) - goto L_Missing; - break; - case 7: - mesc l("[Fire Ball]"); - mesc l("Standard fireball skill."); - mes ""; - mesn; - if (!mlearn(MG_FIREBALL, - Curshroom, 10, - SulfurPowder, 10, - FluoPowder, 10, - PolishedRuby, 3, - HerbalTea, 1)) - goto L_Missing; - break; - case 8: - // All skills related may include the basic class skills if they're related. - mesc l("WARNING: If you leave the subclass, you'll lose all skills related to it!"), 1; - mesc l("This cannot be undone. Are you sure?"), 1; - mes ""; - if (askyesno() == ASK_YES) { - mes ""; - if (validatepin()) { - skill MG_ENERGYCOAT, 0, 0; - skill SA_DRAGONOLOGY, 0, 0; - skill MG_NAPALMBEAT, 0, 0; - skill MG_COLDBOLT, 0, 0; - skill MG_LIGHTNINGBOLT, 0, 0; - skill WZ_EARTHSPIKE, 0, 0; - skill MG_FIREBOLT, 0, 0; - skill MG_FIREBALL, 2, 0; - MAGIC_SUBCLASS=MAGIC_SUBCLASS^CL_WIZARD; - mesc l("You abandoned the WIZARD class!"), 1; - close; - } else { - mesc l("Failed to validate pin. Aborting."); - next; - } - } else { - mes ""; - mesc l("Operation aborted. Phew!"); - next; - } - break; - default: - goto L_Close; - } - - goto L_Member; - -OnInit: - .@npcId = getnpcid(.name$); - setunitdata(.@npcId, UDT_HEADTOP, FancyHat); // TODO: wizard hat - setunitdata(.@npcId, UDT_HEADMIDDLE, SorcererRobe); - setunitdata(.@npcId, UDT_HEADBOTTOM, NPCEyes); - setunitdata(.@npcId, UDT_WEAPON, JeansShorts); - setunitdata(.@npcId, UDT_HAIRSTYLE, 2); - setunitdata(.@npcId, UDT_HAIRCOLOR, 5); - - .sex=G_MALE; - .distance=5; - end; -} - |