summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/functions/shake.txt31
-rw-r--r--npc/scripts.conf1
2 files changed, 32 insertions, 0 deletions
diff --git a/npc/functions/shake.txt b/npc/functions/shake.txt
new file mode 100644
index 000000000..0dabfb602
--- /dev/null
+++ b/npc/functions/shake.txt
@@ -0,0 +1,31 @@
+// Shake player screen
+
+- script shake 32767,{
+ end;
+
+// Loops until @shake is @max_shake
+OnShake:
+ @shake+=1;
+ movecam rand(-20,20), rand(-20,20);
+ if (@shake < @max_shake)
+ addtimer(50, "shake::OnShake");
+ else
+ @shake=0;
+ end;
+
+// Called by GM Command
+OnGM:
+ @shake=0;
+ @max_shake=rand(4,8);
+ addtimer(50, "shake::OnShake");
+ end;
+
+OnCall:
+ getmapxy(.@m$,.@x,.@y,0);
+ areatimer(.@m$, .@x-15, .@y-15, .@x+15, .@y+15, 10, "shake::OnGM");
+ end;
+
+OnInit:
+ bindatcmd "shake", "shake::OnCall", 80, 80, 1;
+ end;
+}
diff --git a/npc/scripts.conf b/npc/scripts.conf
index 99b443fc6..47f7613e7 100644
--- a/npc/scripts.conf
+++ b/npc/scripts.conf
@@ -46,6 +46,7 @@
"npc/functions/questgen.txt",
"npc/functions/riddle.txt",
"npc/functions/savepoint.txt",
+"npc/functions/shake.txt",
"npc/functions/shops.txt",
"npc/functions/soul_menhir.txt",