summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--npc/config/traps.txt37
1 files changed, 37 insertions, 0 deletions
diff --git a/npc/config/traps.txt b/npc/config/traps.txt
index 83e46f7a0..1b43e5cc7 100644
--- a/npc/config/traps.txt
+++ b/npc/config/traps.txt
@@ -43,3 +43,40 @@ function script SteelTrap {
}
+// Unlike SteelTrap, presents same behavior and absolute damage
+// IronTrap( {damage=100}, {delay=15s}, {stun=3s}, {npcname=auto} )
+function script IronTrap {
+ .@dmg=getarg(0, 100);
+ .@delay=getarg(1, 15);
+ .@stun=getarg(2, 3);
+ .@n$=getarg(3, strnpcinfo(0));
+
+ // It was disarmed
+ if (getnpctimer(0) == 0 && .@delay)
+ {
+ initnpctimer;
+ setnpcdisplay .@n$, NPC_TRAP_ONLINE;
+ return;
+ }
+
+ // Fire!!
+ setnpctimer 9000;
+ setnpcdisplay .@n$, NPC_TRAP_TRIGGERED;
+
+ // Boom - Hurt and Stun (only works on players and mobs)
+ .@stun*=1000;
+ sc_start SC_STUN, rand2(.@stun,.@stun*3), 0;
+ .@gid=(playerattached() ? playerattached() : mobattached());
+
+ // Just to be sure
+ if (.@gid)
+ harm(.@gid, .@dmg, HARM_MISC);
+ else
+ Exception("IronTrap \""+.@n$+"\" called without GID!", RB_DEBUGMES);
+
+ // A minor special effect and we're done.
+ specialeffect 11;
+ return;
+}
+
+