summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/re/item_db.conf3
-rw-r--r--npc/items/grenade.txt15
2 files changed, 17 insertions, 1 deletions
diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index 6b3c6440b..7c51499b5 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -1573,7 +1573,8 @@ item_db: (
Delay: 500
UseEffect: "FX_SMOKEBOMB"
Script: <"
- itemskill AS_CLOAKING,1,1;
+ callfunc "smoke_grenade", 3, 500;
+ //itemskill AS_CLOAKING,1,1;
//itemskill SM_MAGNUM,1;
// Fallback: ~~TF_HIDING AS_CLOAKING SC_INVISIBILITY RA_CAMOUFLAGE~~ None work?
//itemskill(, 1, 1);
diff --git a/npc/items/grenade.txt b/npc/items/grenade.txt
index 218758b8a..13685f0a2 100644
--- a/npc/items/grenade.txt
+++ b/npc/items/grenade.txt
@@ -24,4 +24,19 @@ function script grenade {
}
return;
}
+// TODO: Should not affect boss
+
+// smoke_grenade(range, time) - defaults to 3x3 square, stun for 500ms.
+function script smoke_grenade {
+ .@r=getarg(0, 3);
+ .@d=getarg(1, 500);
+
+ getmapxy(.@m$, .@x, .@y, 0);
+ .@c=getunits(BL_MOB, .@mbs, false, .@m$, .@x-.@r, .@y-.@r, .@x+.@r, .@y+.@r);
+ for (.@i = 0; .@i < .@c; .@i++) {
+ sc_start SC_SLEEP, .@d, 1;
+ specialeffect(FX_ATTACK, AREA, .@mbs[.@i]);
+ }
+ return;
+}