summaryrefslogtreecommitdiff
path: root/npc/functions/shake.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/functions/shake.txt')
-rw-r--r--npc/functions/shake.txt35
1 files changed, 35 insertions, 0 deletions
diff --git a/npc/functions/shake.txt b/npc/functions/shake.txt
new file mode 100644
index 000000000..a20fc6b43
--- /dev/null
+++ b/npc/functions/shake.txt
@@ -0,0 +1,35 @@
+// 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;
+ restorecam;
+ closedialog;
+ }
+ end;
+
+// Called by GM Command
+OnGM:
+ @shake=0;
+ @max_shake=rand(6,10);
+ 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;
+}