From 367370970161a620c60fee5eb13fa3ac7d99ea41 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Mon, 2 Jul 2018 00:16:14 -0300 Subject: Attempt to rewrite magic to use more function helpers --- npc/config/magic.txt | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ npc/magic/zarkor.txt | 46 ++++++---------------------------------------- npc/scripts.conf | 1 + 3 files changed, 55 insertions(+), 40 deletions(-) create mode 100644 npc/config/magic.txt diff --git a/npc/config/magic.txt b/npc/config/magic.txt new file mode 100644 index 000000000..0ec8dd99b --- /dev/null +++ b/npc/config/magic.txt @@ -0,0 +1,48 @@ +// TMW2 script +// Author: Jesusalva +// +// Magic Script Core Functions +// +// Used for our pseudo-magic. +// These are only helpers, you can add more restrictions and effects freely. + +// SkillID, Mana, MobID{, MP per level, Script} +function script SummonMagic { + .@sk=getarg(0); + .@mp=getarg(1); + .@id=getarg(2); + .@scr$=getarg(4,"Cassia::OnSkip"); + + // PRE EXECUTION + // Check Skill + if (getskilllv(.@sk) < 1) + end; + + // Load mana cost + .@amp=getarg(3,0); + .@mp=.@mp+getskilllv(.@sk)*.@amp-.@amp; + + // Check mana + if (readparam(Sp) < .@mp) { + dispbottom l("Insufficient mana: @@/@@.", readparam(Sp), .@mp); + end; + } + + + // EXECUTION + // Apply costs + heal 0, 0-.@mp; + + // Cause effect + getmapxy(.@map$,.@x,.@y,0); + monster(.@map$, .@x, .@y, "Summoned Monster", .@id, getskilllv(.@sk), .@scr, Size_Medium, 1); + dispbottom l("All monsters summoned!"); + /* AI Options + 0 = none (default) + 1 = attack/friendly + 2 = sphere (Alchemist skill) + 3 = flora (Alchemist skill) + 4 = zanzou (Kagerou/Oboro skill) + */ + +} diff --git a/npc/magic/zarkor.txt b/npc/magic/zarkor.txt index a52484bf5..20cbb3f12 100644 --- a/npc/magic/zarkor.txt +++ b/npc/magic/zarkor.txt @@ -14,57 +14,23 @@ OnNone: end; OnCall: - // PRE EXECUTION - // Check Skill - if (getskilllv(TMW2_ZARKOR) < 1) - end; - - // Check cooldown - /* - if (@skzarkor_cooldown > gettimetick(0)) { - dispbottom l("Cannot cast that now."); - end; - } - */ - - // Check mana - if (readparam(Sp) < 400) { - dispbottom l("Insufficient mana."); - end; - } - // Other requeriments if (countitem(ZarkorScroll) < 1) { dispbottom l("You need @@ to cast this skill.", getitemlink(ZarkorScroll)); end; } - // EXECUTION - // Apply costs - heal 0, -400; - - // Cause effect - getmapxy(.@map$,.@x,.@y,0); - monster(.@map$, .@x, .@y, "Summoned Monster", CaveMaggot, 1, "sk#zarkor::OnNone", Size_Medium, 1); - dispbottom l("All monsters summoned!"); - /* - can be: - Size_Medium = medium (default) - Size_Small = small - Size_Large = big + // Check cooldown + /* TODO */ - can be: - 0 = none (default) - 1 = attack/friendly - 2 = sphere (Alchemist skill) - 3 = flora (Alchemist skill) - 4 = zanzou (Kagerou/Oboro skill) + // Summon Magic + SummonMagic(TMW2_ZARKOR, 400, CaveMaggot, 75, "sk#zarkor::OnNone"); - */ - // POST EXECUTION + /* // set cooldown @skzarkor_cooldown=gettimetick(0)+20; + */ end; OnInit: diff --git a/npc/scripts.conf b/npc/scripts.conf index 69261c6a9..855348647 100644 --- a/npc/scripts.conf +++ b/npc/scripts.conf @@ -74,6 +74,7 @@ // config script "npc/config/hairstyle_config.txt", +"npc/config/magic.txt", // Magic Commands "npc/magic/zarkor.txt", -- cgit v1.2.3-60-g2f50