summaryrefslogtreecommitdiff
path: root/world/map/npc
diff options
context:
space:
mode:
authorLed Mitz <smoothshifter@tuta.io>2023-11-27 13:48:01 +0000
committerLed Mitz <smoothshifter@tuta.io>2023-11-27 13:48:01 +0000
commitdee21706a816da2df1e888f3c0945d093b8136a5 (patch)
treebe50261be0bde9b19248ffbc6e5cf60eedbbb10e /world/map/npc
parent53c1f8c78cff7f031ada478df191626976d8da64 (diff)
parent7a08866907468155b6ea56e326e6c23bb8a2b0f0 (diff)
downloadserverdata-dee21706a816da2df1e888f3c0945d093b8136a5.tar.gz
serverdata-dee21706a816da2df1e888f3c0945d093b8136a5.tar.bz2
serverdata-dee21706a816da2df1e888f3c0945d093b8136a5.tar.xz
serverdata-dee21706a816da2df1e888f3c0945d093b8136a5.zip
Merge branch 'activity' into 'master'
activity checks and casts counting See merge request legacy/serverdata!689
Diffstat (limited to 'world/map/npc')
-rw-r--r--world/map/npc/magic/event-summon-managuardian.txt2
-rw-r--r--world/map/npc/magic/event-summon-manatyrant.txt2
-rw-r--r--world/map/npc/magic/level0-antiprotect.txt2
-rw-r--r--world/map/npc/magic/level0-discharge.txt2
-rw-r--r--world/map/npc/magic/level0-wand.txt2
-rw-r--r--world/map/npc/magic/level1-aggravate.txt2
-rw-r--r--world/map/npc/magic/level1-detect-magic.txt2
-rw-r--r--world/map/npc/magic/level1-experience.txt2
-rw-r--r--world/map/npc/magic/level1-flare-dart.txt2
-rw-r--r--world/map/npc/magic/level1-grow-alizarin.txt2
-rw-r--r--world/map/npc/magic/level1-grow-cobalt.txt2
-rw-r--r--world/map/npc/magic/level1-grow-gamboge.txt2
-rw-r--r--world/map/npc/magic/level1-grow-mauve.txt2
-rw-r--r--world/map/npc/magic/level1-lesser-heal.txt2
-rw-r--r--world/map/npc/magic/level1-magic-blade.txt2
-rw-r--r--world/map/npc/magic/level1-make-sulphur.txt2
-rw-r--r--world/map/npc/magic/level1-sense-spouse.txt2
-rw-r--r--world/map/npc/magic/level1-summon-maggots.txt2
-rw-r--r--world/map/npc/magic/level1-transmute-wood.txt2
-rw-r--r--world/map/npc/magic/level2-arrow-hail.txt2
-rw-r--r--world/map/npc/magic/level2-barrier.txt2
-rw-r--r--world/map/npc/magic/level2-detect-players.txt2
-rw-r--r--world/map/npc/magic/level2-enchant-lifestone.txt2
-rw-r--r--world/map/npc/magic/level2-flying-backpack.txt2
-rw-r--r--world/map/npc/magic/level2-happy-curse.txt2
-rw-r--r--world/map/npc/magic/level2-hide.txt2
-rw-r--r--world/map/npc/magic/level2-lay-on-hands.txt2
-rw-r--r--world/map/npc/magic/level2-lightning-strike.txt2
-rw-r--r--world/map/npc/magic/level2-magic-knuckles.txt2
-rw-r--r--world/map/npc/magic/level2-make-arrows.txt2
-rw-r--r--world/map/npc/magic/level2-make-bones.txt2
-rw-r--r--world/map/npc/magic/level2-make-iron-powder.txt2
-rw-r--r--world/map/npc/magic/level2-make-shirt.txt2
-rw-r--r--world/map/npc/magic/level2-make-short-tanktop.txt2
-rw-r--r--world/map/npc/magic/level2-make-tanktop.txt2
-rw-r--r--world/map/npc/magic/level2-protect.txt2
-rw-r--r--world/map/npc/magic/level2-rain.txt2
-rw-r--r--world/map/npc/magic/level2-shear.txt2
-rw-r--r--world/map/npc/magic/level2-summon-fluffies.txt2
-rw-r--r--world/map/npc/magic/level2-summon-mouboo.txt2
-rw-r--r--world/map/npc/magic/level2-summon-pinkie.txt2
-rw-r--r--world/map/npc/magic/level2-summon-snakes.txt2
-rw-r--r--world/map/npc/magic/level2-summon-spiky-mushroom.txt2
-rw-r--r--world/map/npc/magic/level2-summon-wickedmushroom.txt2
-rw-r--r--world/map/npc/magic/level2-toxic-dart.txt2
-rw-r--r--world/map/npc/magic/level3-necromancy.txt2
46 files changed, 92 insertions, 0 deletions
diff --git a/world/map/npc/magic/event-summon-managuardian.txt b/world/map/npc/magic/event-summon-managuardian.txt
index 79df2efa..e66c3eb7 100644
--- a/world/map/npc/magic/event-summon-managuardian.txt
+++ b/world/map/npc/magic/event-summon-managuardian.txt
@@ -22,6 +22,8 @@ L_Pay:
sc_start SC_COOLDOWN, 15000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 100;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_MAGGOT_CAST, strcharinfo(0);
callfunc "magic_exp";
set .@puppet$, "#"+strnpcinfo(0)+"#"+BL_ID;
diff --git a/world/map/npc/magic/event-summon-manatyrant.txt b/world/map/npc/magic/event-summon-manatyrant.txt
index bb36d415..bf2634c5 100644
--- a/world/map/npc/magic/event-summon-manatyrant.txt
+++ b/world/map/npc/magic/event-summon-manatyrant.txt
@@ -21,6 +21,8 @@ L_Pay:
sc_start SC_COOLDOWN, 15000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 100;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_MAGGOT_CAST, strcharinfo(0);
callfunc "magic_exp";
set .@puppet$, "#"+strnpcinfo(0)+"#"+BL_ID;
diff --git a/world/map/npc/magic/level0-antiprotect.txt b/world/map/npc/magic/level0-antiprotect.txt
index 129d3c62..47106f74 100644
--- a/world/map/npc/magic/level0-antiprotect.txt
+++ b/world/map/npc/magic/level0-antiprotect.txt
@@ -1,6 +1,8 @@
-|script|antiprotect|32767
{
if(call("magic_checks", 1)) end;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
callfunc "magic_exp";
if (@antiprotect)
diff --git a/world/map/npc/magic/level0-discharge.txt b/world/map/npc/magic/level0-discharge.txt
index 7b2cfa8c..17d1da76 100644
--- a/world/map/npc/magic/level0-discharge.txt
+++ b/world/map/npc/magic/level0-discharge.txt
@@ -1,6 +1,8 @@
-|script|discharge spell|32767
{
if(call("magic_checks")) end;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
callfunc "magic_exp";
// tell the spells they were discharged
diff --git a/world/map/npc/magic/level0-wand.txt b/world/map/npc/magic/level0-wand.txt
index 7a0f6c25..efb49ba8 100644
--- a/world/map/npc/magic/level0-wand.txt
+++ b/world/map/npc/magic/level0-wand.txt
@@ -10,6 +10,8 @@
set @_M_BLOCK, 1; // block casting, until the timer clears it
addtimer 500, "Magic Timer::OnClear"; // set the new debuff
sc_start SC_COOLDOWN, 500, 0, BL_ID;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_WAND_CAST, strcharinfo(0);
callfunc "magic_exp";
diff --git a/world/map/npc/magic/level1-aggravate.txt b/world/map/npc/magic/level1-aggravate.txt
index 97ae4151..05eee811 100644
--- a/world/map/npc/magic/level1-aggravate.txt
+++ b/world/map/npc/magic/level1-aggravate.txt
@@ -9,6 +9,8 @@
set @args$, ""; callfunc "adjust_spellpower"; // we reset @args$ because this spell should not have a target
set @distance, (2 + (@spellpower / 50));
set Sp, Sp - 3;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_AGGRAVATE_CAST, strcharinfo(0);
callfunc "magic_exp";
foreach 2, getmap(), (POS_X - @distance), (POS_Y - @distance), (POS_X + @distance), (POS_Y + @distance), strnpcinfo(0) + "::OnMob";
diff --git a/world/map/npc/magic/level1-detect-magic.txt b/world/map/npc/magic/level1-detect-magic.txt
index bfe320a4..33597d02 100644
--- a/world/map/npc/magic/level1-detect-magic.txt
+++ b/world/map/npc/magic/level1-detect-magic.txt
@@ -8,6 +8,8 @@
sc_start SC_COOLDOWN, 6000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 3;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_DETECT_CAST, strcharinfo(0);
set .@range, (@spellpower/50)+1;
foreach 1, getmap(), POS_X - .@range, POS_Y - .@range, POS_X + .@range, POS_Y + .@range,
diff --git a/world/map/npc/magic/level1-experience.txt b/world/map/npc/magic/level1-experience.txt
index 76d6b888..bfd73378 100644
--- a/world/map/npc/magic/level1-experience.txt
+++ b/world/map/npc/magic/level1-experience.txt
@@ -14,6 +14,8 @@
if (@level < .level) end;
callfunc "adjust_spellpower";
set Sp, Sp - 1;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_EXP_CAST, strcharinfo(0);
callfunc "magic_exp";
set @ratio, ((@last_exp*10) - rand(.MAX_MAGIC_EXP[@level]/30))/.MAX_MAGIC_EXP[@level];
diff --git a/world/map/npc/magic/level1-flare-dart.txt b/world/map/npc/magic/level1-flare-dart.txt
index d7d387cd..66a3a24b 100644
--- a/world/map/npc/magic/level1-flare-dart.txt
+++ b/world/map/npc/magic/level1-flare-dart.txt
@@ -11,6 +11,8 @@
sc_start SC_COOLDOWN, 500, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 10;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_DART_CAST, strcharinfo(0);
setarray @flarspell[0],
sqrt(@spellpower) * 5, //dmg
diff --git a/world/map/npc/magic/level1-grow-alizarin.txt b/world/map/npc/magic/level1-grow-alizarin.txt
index 4169c729..d82288cd 100644
--- a/world/map/npc/magic/level1-grow-alizarin.txt
+++ b/world/map/npc/magic/level1-grow-alizarin.txt
@@ -11,6 +11,8 @@
sc_start SC_COOLDOWN, 2000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 4;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_GROW_CAST, strcharinfo(0);
setarray @summon[0], 0, (getskilllv(.school)/2)+1;
callfunc "magic_exp";
diff --git a/world/map/npc/magic/level1-grow-cobalt.txt b/world/map/npc/magic/level1-grow-cobalt.txt
index e50cfb39..58028e8c 100644
--- a/world/map/npc/magic/level1-grow-cobalt.txt
+++ b/world/map/npc/magic/level1-grow-cobalt.txt
@@ -11,6 +11,8 @@
sc_start SC_COOLDOWN, 2000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 4;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_GROW_CAST, strcharinfo(0);
setarray @summon[0], 0, (getskilllv(.school)/2)+1;
callfunc "magic_exp";
diff --git a/world/map/npc/magic/level1-grow-gamboge.txt b/world/map/npc/magic/level1-grow-gamboge.txt
index cb7f6221..fae2cf7d 100644
--- a/world/map/npc/magic/level1-grow-gamboge.txt
+++ b/world/map/npc/magic/level1-grow-gamboge.txt
@@ -11,6 +11,8 @@
sc_start SC_COOLDOWN, 2000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 4;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_GROW_CAST, strcharinfo(0);
setarray @summon[0], 0, (getskilllv(.school)/2)+1;
callfunc "magic_exp";
diff --git a/world/map/npc/magic/level1-grow-mauve.txt b/world/map/npc/magic/level1-grow-mauve.txt
index f90b3b89..af8f54d8 100644
--- a/world/map/npc/magic/level1-grow-mauve.txt
+++ b/world/map/npc/magic/level1-grow-mauve.txt
@@ -11,6 +11,8 @@
sc_start SC_COOLDOWN, 2000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 4;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_GROW_CAST, strcharinfo(0);
setarray @summon[0], 0, (getskilllv(.school)/2)+1;
callfunc "magic_exp";
diff --git a/world/map/npc/magic/level1-lesser-heal.txt b/world/map/npc/magic/level1-lesser-heal.txt
index 051445fb..0c124ff3 100644
--- a/world/map/npc/magic/level1-lesser-heal.txt
+++ b/world/map/npc/magic/level1-lesser-heal.txt
@@ -22,6 +22,8 @@ L_Pay:
delitem "Lifestone", 1;
callfunc "adjust_spellpower";
set Sp, Sp - 6;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_HEAL_CAST, strcharinfo(0);
callfunc "magic_exp";
if (@target_id != BL_ID) goto L_NotMe;
diff --git a/world/map/npc/magic/level1-magic-blade.txt b/world/map/npc/magic/level1-magic-blade.txt
index 91ff5967..53ab8572 100644
--- a/world/map/npc/magic/level1-magic-blade.txt
+++ b/world/map/npc/magic/level1-magic-blade.txt
@@ -13,6 +13,8 @@
sc_start SC_COOLDOWN, 500, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 9;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_BLADE_CAST, strcharinfo(0);
setarray @chizaspell[0],
if_then_else(.@component$ == "Knife", 40, 60), // dmg
diff --git a/world/map/npc/magic/level1-make-sulphur.txt b/world/map/npc/magic/level1-make-sulphur.txt
index fa728106..4371ba6a 100644
--- a/world/map/npc/magic/level1-make-sulphur.txt
+++ b/world/map/npc/magic/level1-make-sulphur.txt
@@ -9,6 +9,8 @@
sc_start SC_COOLDOWN, 4000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 4;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_SULPHUR_CAST, strcharinfo(0);
setarray @create_params[0], (@spellpower/100)+1+(rand(max(1,(800-@spellpower)))/180), 50;
setarray @create_items$[0], "SulphurPowder", "PileOfAsh";
diff --git a/world/map/npc/magic/level1-sense-spouse.txt b/world/map/npc/magic/level1-sense-spouse.txt
index fe95c094..607847f3 100644
--- a/world/map/npc/magic/level1-sense-spouse.txt
+++ b/world/map/npc/magic/level1-sense-spouse.txt
@@ -1,6 +1,8 @@
-|script|sense-spouse|32767
{
set .@m, getpartnerid2();
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
if (.@m < 1)
goto L_NotMarried;
if (isloggedin(.@m) < 1)
diff --git a/world/map/npc/magic/level1-summon-maggots.txt b/world/map/npc/magic/level1-summon-maggots.txt
index a70ab869..8700e39a 100644
--- a/world/map/npc/magic/level1-summon-maggots.txt
+++ b/world/map/npc/magic/level1-summon-maggots.txt
@@ -19,6 +19,8 @@ L_Pay:
sc_start SC_COOLDOWN, 20000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 21;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_MAGGOT_CAST, strcharinfo(0);
callfunc "magic_exp";
set .@puppet$, "#"+strnpcinfo(0)+"#"+BL_ID;
diff --git a/world/map/npc/magic/level1-transmute-wood.txt b/world/map/npc/magic/level1-transmute-wood.txt
index 2bb07251..f60b35da 100644
--- a/world/map/npc/magic/level1-transmute-wood.txt
+++ b/world/map/npc/magic/level1-transmute-wood.txt
@@ -9,6 +9,8 @@
sc_start SC_COOLDOWN, 4000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 5;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_WOOD_CAST, strcharinfo(0);
if (@args$ == "boo") goto L_Mouboo;
elif (@args$ == "lurk") goto L_Skytlurk;
diff --git a/world/map/npc/magic/level2-arrow-hail.txt b/world/map/npc/magic/level2-arrow-hail.txt
index 6b6c78b9..90d3e9fc 100644
--- a/world/map/npc/magic/level2-arrow-hail.txt
+++ b/world/map/npc/magic/level2-arrow-hail.txt
@@ -25,6 +25,8 @@ L_Pay:
else delitem "IronArrow", 20;
delitem "SulphurPowder", 1;
set Sp, Sp - 25;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
set @_M_BLOCK, 1; // block casting, until the timer clears it
addtimer 5000, "Magic Timer::OnClear"; // set the new debuff
sc_start SC_COOLDOWN, 5000, 0, BL_ID;
diff --git a/world/map/npc/magic/level2-barrier.txt b/world/map/npc/magic/level2-barrier.txt
index 2c170ae4..b9e90209 100644
--- a/world/map/npc/magic/level2-barrier.txt
+++ b/world/map/npc/magic/level2-barrier.txt
@@ -24,6 +24,8 @@ L_Pay:
addtimer 1000, "Magic Timer::OnClear"; // set the new debuff
sc_start SC_COOLDOWN, 1000, 0, BL_ID;
set Sp, Sp - 15;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_BARRIER_CAST, strcharinfo(0);
callfunc "magic_exp";
if (BL_ID != @target_id) misceffect FX_MAGIC_BARRIER_HIT, @args$;
diff --git a/world/map/npc/magic/level2-detect-players.txt b/world/map/npc/magic/level2-detect-players.txt
index 828733a4..0fd57a1c 100644
--- a/world/map/npc/magic/level2-detect-players.txt
+++ b/world/map/npc/magic/level2-detect-players.txt
@@ -8,6 +8,8 @@
sc_start SC_COOLDOWN, 300, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 7;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_WHO_CAST, strcharinfo(0);
callfunc "magic_exp";
set @inwilt$, "";
diff --git a/world/map/npc/magic/level2-enchant-lifestone.txt b/world/map/npc/magic/level2-enchant-lifestone.txt
index 178bf18c..a03e645b 100644
--- a/world/map/npc/magic/level2-enchant-lifestone.txt
+++ b/world/map/npc/magic/level2-enchant-lifestone.txt
@@ -22,6 +22,8 @@ L_Proceed:
sc_start SC_COOLDOWN, 4000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 15;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_STONE_CAST, strcharinfo(0);
getitem "Lifestone", 1;
callfunc "magic_exp";
diff --git a/world/map/npc/magic/level2-flying-backpack.txt b/world/map/npc/magic/level2-flying-backpack.txt
index c6d3c461..994e4084 100644
--- a/world/map/npc/magic/level2-flying-backpack.txt
+++ b/world/map/npc/magic/level2-flying-backpack.txt
@@ -23,6 +23,8 @@ L_Pay:
addtimer 1000, "Magic Timer::OnClear"; // set the new debuff
sc_start SC_COOLDOWN, 1000, 0, BL_ID;
set Sp, Sp - 12;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_FLYING_CAST, strcharinfo(0);
callfunc "magic_exp";
if (BL_ID != @target_id) misceffect FX_MAGIC_FLYING_HIT, @args$;
diff --git a/world/map/npc/magic/level2-happy-curse.txt b/world/map/npc/magic/level2-happy-curse.txt
index 55516541..aa7be828 100644
--- a/world/map/npc/magic/level2-happy-curse.txt
+++ b/world/map/npc/magic/level2-happy-curse.txt
@@ -13,6 +13,8 @@
sc_start SC_COOLDOWN, 1000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 13;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_JOY_CAST, strcharinfo(0);
callfunc "magic_exp";
diff --git a/world/map/npc/magic/level2-hide.txt b/world/map/npc/magic/level2-hide.txt
index 6f78f1cf..1274f7a2 100644
--- a/world/map/npc/magic/level2-hide.txt
+++ b/world/map/npc/magic/level2-hide.txt
@@ -16,6 +16,8 @@
sc_start SC_COOLDOWN, 1000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 11;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_HIDE_CAST, strcharinfo(0);
callfunc "magic_exp";
diff --git a/world/map/npc/magic/level2-lay-on-hands.txt b/world/map/npc/magic/level2-lay-on-hands.txt
index 8feb9107..1270dfb2 100644
--- a/world/map/npc/magic/level2-lay-on-hands.txt
+++ b/world/map/npc/magic/level2-lay-on-hands.txt
@@ -24,6 +24,8 @@ L_Pay:
addtimer 500, "Magic Timer::OnClear"; // XXX should this be 0 ?
sc_start SC_COOLDOWN, 500, 0, BL_ID;
set Sp, Sp - 10;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_LAY_CAST, strcharinfo(0); // on caster
misceffect FX_MAGIC_LAY_HIT, @args$; // on target
diff --git a/world/map/npc/magic/level2-lightning-strike.txt b/world/map/npc/magic/level2-lightning-strike.txt
index ce89652c..bdd311a6 100644
--- a/world/map/npc/magic/level2-lightning-strike.txt
+++ b/world/map/npc/magic/level2-lightning-strike.txt
@@ -12,6 +12,8 @@
sc_start SC_COOLDOWN, 1000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 20;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_BOLT_CAST, strcharinfo(0);
setarray @ingravspell[0],
@spellpower,
diff --git a/world/map/npc/magic/level2-magic-knuckles.txt b/world/map/npc/magic/level2-magic-knuckles.txt
index c16485bb..8bc3e849 100644
--- a/world/map/npc/magic/level2-magic-knuckles.txt
+++ b/world/map/npc/magic/level2-magic-knuckles.txt
@@ -14,6 +14,8 @@
sc_start SC_COOLDOWN, 500, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 20;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
set .caster, getcharid(3);
misceffect FX_MAGIC_KNUCKLE_CAST, strcharinfo(0);
setarray @upmarmuspell[0],
diff --git a/world/map/npc/magic/level2-make-arrows.txt b/world/map/npc/magic/level2-make-arrows.txt
index dbd2bc2f..ad362548 100644
--- a/world/map/npc/magic/level2-make-arrows.txt
+++ b/world/map/npc/magic/level2-make-arrows.txt
@@ -11,6 +11,8 @@
sc_start SC_COOLDOWN, 5000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 8;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_ARROW_CAST, strcharinfo(0);
setarray @create_params[0], (@spellpower/32)+1+(rand(max(1,(800-@spellpower)))/80), 500;
setarray @create_items$[0], "IronArrow", "WarpedLog";
diff --git a/world/map/npc/magic/level2-make-bones.txt b/world/map/npc/magic/level2-make-bones.txt
index 2cc3f922..bc9bc6e5 100644
--- a/world/map/npc/magic/level2-make-bones.txt
+++ b/world/map/npc/magic/level2-make-bones.txt
@@ -22,6 +22,8 @@ L_Resume:
sc_start SC_COOLDOWN, 5000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 16;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_ARROW_CAST, strcharinfo(0);
setarray @create_params[0], (@spellpower/32)+1+(rand(max(1,(800-@spellpower)))/80), 500;
setarray @create_items$[0], "BoneArrows", "IronArrow";
diff --git a/world/map/npc/magic/level2-make-iron-powder.txt b/world/map/npc/magic/level2-make-iron-powder.txt
index 6181be8d..0723e1ff 100644
--- a/world/map/npc/magic/level2-make-iron-powder.txt
+++ b/world/map/npc/magic/level2-make-iron-powder.txt
@@ -11,6 +11,8 @@
sc_start SC_COOLDOWN, 5000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 8;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_IRONP_CAST, strcharinfo(0);
setarray @create_params[0], (@spellpower/140)+1+(rand(max(1,(900-@spellpower)))/220), 700;
setarray @create_items$[0], "IronPowder", "IronOre";
diff --git a/world/map/npc/magic/level2-make-shirt.txt b/world/map/npc/magic/level2-make-shirt.txt
index dd42f79a..ac2c0437 100644
--- a/world/map/npc/magic/level2-make-shirt.txt
+++ b/world/map/npc/magic/level2-make-shirt.txt
@@ -9,6 +9,8 @@
sc_start SC_COOLDOWN, 5000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 25;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_SHIRT_CAST, strcharinfo(0);
setarray @create_params[0], 1, 425;
setarray @create_items$[0], "CottonShirt", "CottonCloth";
diff --git a/world/map/npc/magic/level2-make-short-tanktop.txt b/world/map/npc/magic/level2-make-short-tanktop.txt
index 0fd5d6d3..dc6c1fb8 100644
--- a/world/map/npc/magic/level2-make-short-tanktop.txt
+++ b/world/map/npc/magic/level2-make-short-tanktop.txt
@@ -9,6 +9,8 @@
sc_start SC_COOLDOWN, 5000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 25;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_SHIRT_CAST, strcharinfo(0);
setarray @create_params[0], 1, 250;
setarray @create_items$[0], "ShortTankTop", "CottonCloth";
diff --git a/world/map/npc/magic/level2-make-tanktop.txt b/world/map/npc/magic/level2-make-tanktop.txt
index a416e7a0..112bafdc 100644
--- a/world/map/npc/magic/level2-make-tanktop.txt
+++ b/world/map/npc/magic/level2-make-tanktop.txt
@@ -9,6 +9,8 @@
sc_start SC_COOLDOWN, 5000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 25;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_SHIRT_CAST, strcharinfo(0);
setarray @create_params[0], 1, 350;
setarray @create_items$[0], "TankTop", "CottonCloth";
diff --git a/world/map/npc/magic/level2-protect.txt b/world/map/npc/magic/level2-protect.txt
index 25cb7c50..7abc9a1a 100644
--- a/world/map/npc/magic/level2-protect.txt
+++ b/world/map/npc/magic/level2-protect.txt
@@ -25,6 +25,8 @@ L_Pay:
addtimer 1500, "Magic Timer::OnClear"; // set the new debuff
sc_start SC_COOLDOWN, 1500, 0, BL_ID;
set Sp, Sp - 14;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_SHIELD_CAST, strcharinfo(0);
callfunc "magic_exp";
misceffect FX_MAGIC_SHIELD, @args$;
diff --git a/world/map/npc/magic/level2-rain.txt b/world/map/npc/magic/level2-rain.txt
index 89ded96d..6a7f288b 100644
--- a/world/map/npc/magic/level2-rain.txt
+++ b/world/map/npc/magic/level2-rain.txt
@@ -18,6 +18,8 @@ OnCast:
L_Pay:
if (getskilllv(.school) < 4) delitem "BottleOfWater", 1;
set Sp, Sp - 17;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
set @_M_BLOCK, 1; // block casting, until the timer clears it
addtimer 3000, "Magic Timer::OnClear"; // set the new debuff
sc_start SC_COOLDOWN, 3000, 0, BL_ID;
diff --git a/world/map/npc/magic/level2-shear.txt b/world/map/npc/magic/level2-shear.txt
index c6141a1c..8f259bd3 100644
--- a/world/map/npc/magic/level2-shear.txt
+++ b/world/map/npc/magic/level2-shear.txt
@@ -9,6 +9,8 @@
sc_start SC_COOLDOWN, 1000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 23;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_SHEAR_CAST, strcharinfo(0);
setarray @chipchipspell[0],
@spellpower,
diff --git a/world/map/npc/magic/level2-summon-fluffies.txt b/world/map/npc/magic/level2-summon-fluffies.txt
index d232b96e..f10a86b5 100644
--- a/world/map/npc/magic/level2-summon-fluffies.txt
+++ b/world/map/npc/magic/level2-summon-fluffies.txt
@@ -20,6 +20,8 @@ L_Pay:
sc_start SC_COOLDOWN, 20000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 39;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_FLUFFY_CAST, strcharinfo(0);
callfunc "magic_exp";
set .@puppet$, "#"+strnpcinfo(0)+"#"+BL_ID;
diff --git a/world/map/npc/magic/level2-summon-mouboo.txt b/world/map/npc/magic/level2-summon-mouboo.txt
index 5b5887e7..c692e9cf 100644
--- a/world/map/npc/magic/level2-summon-mouboo.txt
+++ b/world/map/npc/magic/level2-summon-mouboo.txt
@@ -20,6 +20,8 @@ L_Pay:
sc_start SC_COOLDOWN, 20000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 35;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_MOUBOO_CAST, strcharinfo(0);
callfunc "magic_exp";
set .@puppet$, "#"+strnpcinfo(0)+"#"+BL_ID;
diff --git a/world/map/npc/magic/level2-summon-pinkie.txt b/world/map/npc/magic/level2-summon-pinkie.txt
index e788382d..61af9eed 100644
--- a/world/map/npc/magic/level2-summon-pinkie.txt
+++ b/world/map/npc/magic/level2-summon-pinkie.txt
@@ -20,6 +20,8 @@ L_Pay:
sc_start SC_COOLDOWN, 20000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 35;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_PINKY_CAST, strcharinfo(0);
callfunc "magic_exp";
set .@puppet$, "#"+strnpcinfo(0)+"#"+BL_ID;
diff --git a/world/map/npc/magic/level2-summon-snakes.txt b/world/map/npc/magic/level2-summon-snakes.txt
index db0d0b6c..0723961b 100644
--- a/world/map/npc/magic/level2-summon-snakes.txt
+++ b/world/map/npc/magic/level2-summon-snakes.txt
@@ -21,6 +21,8 @@ L_Pay:
sc_start SC_COOLDOWN, 15000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 40;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_SNAKE_CAST, strcharinfo(0);
callfunc "magic_exp";
set .@puppet$, "#"+strnpcinfo(0)+"#"+BL_ID;
diff --git a/world/map/npc/magic/level2-summon-spiky-mushroom.txt b/world/map/npc/magic/level2-summon-spiky-mushroom.txt
index 1edab6f4..701648d5 100644
--- a/world/map/npc/magic/level2-summon-spiky-mushroom.txt
+++ b/world/map/npc/magic/level2-summon-spiky-mushroom.txt
@@ -20,6 +20,8 @@ L_Pay:
sc_start SC_COOLDOWN, 20000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 33;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_SPIKY_CAST, strcharinfo(0);
callfunc "magic_exp";
set .@puppet$, "#"+strnpcinfo(0)+"#"+BL_ID;
diff --git a/world/map/npc/magic/level2-summon-wickedmushroom.txt b/world/map/npc/magic/level2-summon-wickedmushroom.txt
index eced8c3a..9107955a 100644
--- a/world/map/npc/magic/level2-summon-wickedmushroom.txt
+++ b/world/map/npc/magic/level2-summon-wickedmushroom.txt
@@ -21,6 +21,8 @@ L_Pay:
sc_start SC_COOLDOWN, 15000, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 35;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_WICKED_CAST, strcharinfo(0);
callfunc "magic_exp";
set .@puppet$, "#"+strnpcinfo(0)+"#"+BL_ID;
diff --git a/world/map/npc/magic/level2-toxic-dart.txt b/world/map/npc/magic/level2-toxic-dart.txt
index ef621cbb..a74ab475 100644
--- a/world/map/npc/magic/level2-toxic-dart.txt
+++ b/world/map/npc/magic/level2-toxic-dart.txt
@@ -12,6 +12,8 @@
sc_start SC_COOLDOWN, 500, 0, BL_ID;
callfunc "adjust_spellpower";
set Sp, Sp - 15;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_TDART_CAST, strcharinfo(0);
setarray @phlexspell[0],
(sqrt(@spellpower) * 5), // elt damage
diff --git a/world/map/npc/magic/level3-necromancy.txt b/world/map/npc/magic/level3-necromancy.txt
index 48dc1ebf..416b8af5 100644
--- a/world/map/npc/magic/level3-necromancy.txt
+++ b/world/map/npc/magic/level3-necromancy.txt
@@ -20,6 +20,8 @@
addtimer 20000, "Magic Timer::OnClear";
sc_start SC_COOLDOWN, 20000, 0, BL_ID;
set Sp, Sp - 50;
+ set CASTS, CASTS + 1;
+ if (CASTS < 0) set CASTS, 1; // overflow
misceffect FX_MAGIC_DARKRED, strcharinfo(0); // on caster
misceffect FX_PENTAGRAM_BUILDUP, @args$; // on target