diff options
author | Jesusaves <cpntb1@ymail.com> | 2020-09-17 14:08:38 +0000 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2020-09-17 14:08:38 +0000 |
commit | 15a5e4001e6b38698fa08e7dedb33bfe46ad292a (patch) | |
tree | dc74a7d74762c2fa25ed8b3521cc46623a42982f /npc | |
parent | ee1f4206d271f4dcac8fc3edc57cc83fee89ef7a (diff) | |
download | serverdata-15a5e4001e6b38698fa08e7dedb33bfe46ad292a.tar.gz serverdata-15a5e4001e6b38698fa08e7dedb33bfe46ad292a.tar.bz2 serverdata-15a5e4001e6b38698fa08e7dedb33bfe46ad292a.tar.xz serverdata-15a5e4001e6b38698fa08e7dedb33bfe46ad292a.zip |
Magic v1 Core Declaration
Technical feature only.
Subject to changes post-commit.
Diffstat (limited to 'npc')
-rw-r--r-- | npc/008-1/auldsbel.txt | 22 | ||||
-rw-r--r-- | npc/config/magic.txt | 168 | ||||
-rw-r--r-- | npc/items/master_skillbook.txt | 4 |
3 files changed, 182 insertions, 12 deletions
diff --git a/npc/008-1/auldsbel.txt b/npc/008-1/auldsbel.txt index 7ee1994b..7f0bc2b1 100644 --- a/npc/008-1/auldsbel.txt +++ b/npc/008-1/auldsbel.txt @@ -22,18 +22,28 @@ } speech l("Hello."), - l("Oh, you look more interested in magic.. the brotherhood did forbid most of the interesting paths of magic, but boring baby spells are still allowed."), - lg("If you come back later, I may teach you something. But psst, practising magic is quite dangerous these days."); - - // Placeholder please remove - if (debug) { + l("Oh, you look more interested in magic.. the brotherhood did forbid most of the interesting paths of magic, but boring baby spells are still allowed."); + // Give poor Auldsbel some weak magic D: + if (!MAGIC_CLU[EVOL_MONSTER_IDENTIFY]) { mesn; mesq l("May I interest you in an useless skill?"); + ShowAbizit(true); + next; + mesc l("Identify Monsters - Unlocks the %s chat command.", "##B/mi##b"); + mesc l("It will analyse and inform about the monster stats and drops."); + mesc l("If multiple monsters have same name, all of them will be listed."); + mesc l("Alias: %s", "##B@monsterinfo##b"); next; + mesn; + mesq l("May I interest you in an useless skill?"); + mesc l("Skill: %s", getskillname(EVOL_MONSTER_IDENTIFY)); + // FIXME You know that learn_magic has its own prompt, right? if (askyesno() == ASK_YES) { learn_magic(EVOL_MONSTER_IDENTIFY); } - ShowAbizit(true); + } else { + mesn; + mesq lg("If you come back later, I may teach you something. But psst, practising magic is quite dangerous these days."); } close; diff --git a/npc/config/magic.txt b/npc/config/magic.txt index 3fbafbdf..dbe665a6 100644 --- a/npc/config/magic.txt +++ b/npc/config/magic.txt @@ -19,11 +19,6 @@ // Array of (skill ID, Level) for sk_canlevelup -// PLACEHOLDER -function script getskillname { - return getarg(0); -} - // This function will add MAGIC_EXP // And manage last skills used memory // GetManaExp(SkillID, EXP Points) @@ -282,11 +277,174 @@ function script RegisterMagic { OnInit: /* RegisterMagic(MSP, Skill, MaxLv, Item, Amount, Class, Cost, {PreReq, PostReq}) */ + // (B) - Brawling + // (A) - Active + // (R) - Ranged (bows only) + // (M) - Magic + // (S) - Support + // (T) - Terrain + // (G) - GP on usage + // (P) - Passive + // (X) - Area Of Effect //////////////////////// Other: Misc // Monster Identify RegisterMagic(0, EVOL_MONSTER_IDENTIFY, 1, Beer, 1, CLASS_OTHER, 5000); + // Bash (B) + RegisterMagic(0, SM_BASH, 1, MagicFeather, 1, + CLASS_OTHER, 0); + // Free Cast (P) + RegisterMagic(0, SA_FREECAST, 1, MagicFeather, 1, + CLASS_OTHER, 0); + // Full Throttle (A) + RegisterMagic(0, ALL_FULL_THROTTLE, 1, MagicFeather, 1, + CLASS_OTHER, 0); + + + //////////////////////// Master Skill Book: Skills + // These skills are handled by the Master Skill Book + // So the definition here is duplicate. + // Dragon Slayer (P) + RegisterMagic(0, SA_DRAGONOLOGY, 1, MagicFeather, 1, + CLASS_MASTER, 0); + // HP/DEF Boosting (P) + RegisterMagic(0, CR_TRUST, 1, MagicFeather, 1, + CLASS_MASTER, 0); + // HP Recovery (P) + RegisterMagic(0, SM_RECOVERY, 1, MagicFeather, 1, + CLASS_MASTER, 0); + // MP Recovery (P) + RegisterMagic(0, MG_SRECOVERY, 1, MagicFeather, 1, + CLASS_MASTER, 0); + // Mammonite (G) + RegisterMagic(0, MC_MAMMONITE, 1, MagicFeather, 1, + CLASS_MASTER, 0); + // Anti-Poison (A) + RegisterMagic(0, TF_DETOXIFY, 1, MagicFeather, 1, + CLASS_MASTER, 0); + // Trick Dead (A) + RegisterMagic(0, NV_TRICKDEAD, 1, MagicFeather, 1, + CLASS_MASTER, 0); + // Sudden Attack (A) + RegisterMagic(0, GC_DARKILLUSION, 1, MagicFeather, 1, + CLASS_MASTER, 0); + + //////////////////////// Master Skill Book: Spells + // MATK Charge (A) + RegisterMagic(0, HW_MAGICPOWER, 1, MagicFeather, 1, + CLASS_MASTER, 0); + // Poison (?) + RegisterMagic(0, TF_POISON, 1, MagicFeather, 1, + CLASS_MASTER, 0); + // Backslide (A) + RegisterMagic(0, TF_BACKSLIDING, 1, MagicFeather, 1, + CLASS_MASTER, 0); + // Discount (P) + RegisterMagic(0, MC_DISCOUNT, 1, MagicFeather, 1, + CLASS_MASTER, 0); + + + //////////////////////// War Magic: Skills + // Charged Shot (R) + RegisterMagic(1, AC_CHARGEARROW, 1, MagicFeather, 1, + CLASS_WAR, 0); + // Arrow Shower (RX) + RegisterMagic(1, AC_SHOWER, 1, MagicFeather, 1, + CLASS_WAR, 0); + // Ground Strike (AX) + RegisterMagic(1, ASC_METEORASSAULT, 1, MagicFeather, 1, + CLASS_WAR, 0); + // Sharp Shooter (R) + RegisterMagic(1, SN_SHARPSHOOTING, 1, MagicFeather, 1, + CLASS_WAR, 0); + // Critical Counter Attack (A) + RegisterMagic(1, KN_AUTOCOUNTER, 1, MagicFeather, 1, + CLASS_WAR, 0); + // Mallard's Eye (PR) + RegisterMagic(1, AC_VULTURE, 1, MagicFeather, 1, + CLASS_WAR, 0); + + //////////////////////// War Magic: Spells + // Soul Strike (M) + RegisterMagic(1, MG_SOULSTRIKE, 1, MagicFeather, 1, + CLASS_WAR, 0); + // Napalm Beat (MX) + RegisterMagic(1, MG_NAPALMBEAT, 1, MagicFeather, 1, + CLASS_WAR, 0); + + + //////////////////////// Nature Magic: Skills + // Nature Weapon (S) + RegisterMagic(1, SA_SEISMICWEAPON, 1, MagicFeather, 1, + CLASS_NATURE, 0); + // Wind Walker (A) + RegisterMagic(1, SN_WINDWALK, 1, MagicFeather, 1, + CLASS_NATURE, 0); + //////////////////////// Nature Magic: Spells + // Lightning Arrow (M) + RegisterMagic(1, MG_LIGHTNINGBOLT, 1, MagicFeather, 1, + CLASS_NATURE, 0); + // Nature Wall (T) + RegisterMagic(1, MG_FIREWALL, 1, MagicFeather, 1, + CLASS_NATURE, 0); + + + //////////////////////// Fire Magic: Skills + // Fire Weapon (S) + RegisterMagic(1, SA_FLAMELAUNCHER, 1, MagicFeather, 1, + CLASS_FIRE, 0); + //////////////////////// Fire Magic: Spells + // Fire Arrow (M) + RegisterMagic(1, MG_FIREBOLT, 1, MagicFeather, 1, + CLASS_FIRE, 0); + // Fire Ball (MX) + RegisterMagic(1, MG_FIREBALL, 1, MagicFeather, 1, + CLASS_FIRE, 0); + // Fire Walk (MX) + RegisterMagic(2, SO_FIREWALK, 1, MagicFeather, 1, + CLASS_FIRE, 0); + + + //////////////////////// Water Magic: Skills + // Frost Weapon (S) + RegisterMagic(1, SA_FROSTWEAPON, 1, MagicFeather, 1, + CLASS_WATER, 0); + //////////////////////// Water Magic: Spells + // Frost Diver (M) + RegisterMagic(1, MG_FROSTDIVER, 1, MagicFeather, 1, + CLASS_WATER, 0); + // Frost Nova (MX) + RegisterMagic(2, WZ_FROSTNOVA, 1, MagicFeather, 1, + CLASS_WATER, 0); + + + //////////////////////// Harmony Magic: Skills + // Provoke (A) + RegisterMagic(1, SM_PROVOKE, 1, MagicFeather, 1, + CLASS_HARMONY, 0); + // Mass Provoke (A) + RegisterMagic(1, EVOL_MASS_PROVOKE, 1, MagicFeather, 1, + CLASS_HARMONY, 0); + // Stealing (A) + RegisterMagic(1, TF_STEAL, 1, MagicFeather, 1, + CLASS_HARMONY, 0); + // Barter (P) + RegisterMagic(1, MC_OVERCHARGE, 1, MagicFeather, 1, + CLASS_HARMONY, 0); + // Backpack Floating (P) + RegisterMagic(1, ALL_INCCARRY, 1, MagicFeather, 1, + CLASS_HARMONY, 0); + //////////////////////// Harmony Magic: Spells + // Holy Light (M) + RegisterMagic(1, AL_HOLYLIGHT, 1, MagicFeather, 1, + CLASS_HARMONY, 0); + // Healing (MS) + RegisterMagic(1, AL_HEAL, 1, MagicFeather, 1, + CLASS_HARMONY, 0); + // High Healing (MS) + RegisterMagic(2, AB_HIGHNESSHEAL, 1, MagicFeather, 1, + CLASS_HARMONY, 0); end; } diff --git a/npc/items/master_skillbook.txt b/npc/items/master_skillbook.txt index d5ded1de..efd582a4 100644 --- a/npc/items/master_skillbook.txt +++ b/npc/items/master_skillbook.txt @@ -4,7 +4,7 @@ // Elvano // Description: // Contains master skills which can only be learnt after killing boss -// See also: <link to tmw forum topic> +// See also: https://forums.themanaworld.org/viewtopic.php?f=2&t=19918 // Notes: // Not exactly as Elvano proposal. I actually care for restrictions you know... // Variables: @@ -27,6 +27,8 @@ // TODO: Reset @mb_* when register_skill() finish // TODO: You cannot get Magic Feather anywhere in the game (yet) // TODO: See if the time (15s) is enough. +// TODO: Skill level up +// TODO: Use the data supplied by magic.txt - script #MasterBook NPC_HIDDEN,{ |