summaryrefslogtreecommitdiff
path: root/npc/commands/resync.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/commands/resync.txt')
-rw-r--r--npc/commands/resync.txt40
1 files changed, 40 insertions, 0 deletions
diff --git a/npc/commands/resync.txt b/npc/commands/resync.txt
new file mode 100644
index 00000000..a535a343
--- /dev/null
+++ b/npc/commands/resync.txt
@@ -0,0 +1,40 @@
+// Evol script
+// Author: Jesusalva <admin@tmw2.org>
+//
+// Introduces @resync
+//
+// It'll cast slide to your own position
+// Hopefully making client update your real position without causing server warning
+
+- script @resync 32767,{
+ end;
+
+// Soft Resync
+OnCall:
+ // Sliding a dead player have undesired side effects
+ if (ispcdead()) {
+ dispbottom l("Impossible to resync: You are dead.");
+ end;
+ }
+ // I add a small delay in case slide() trigger some invincibility timer or something
+ if (@rsync_delay > gettimetick(2)) {
+ dispbottom l("Not resync'ing to prevent flood.");
+ end;
+ }
+
+ // This is a hack
+ getmapxy(.@m$, .@x, .@y, 0);
+ slide .@x, .@y;
+ @rsync_delay=gettimetick(2)+rand(4,6);
+
+ // Uncomment this line to cause server to resend every packet to ManaPlus
+ // and get rid of latency effect (like dead mobs still being shown)
+ //atcommand("@refresh");
+ end;
+
+// Anyone can call @resync, but only support and upwards for other players.
+// ie. GMs can try to fix lag for other people.
+OnInit:
+ bindatcmd "resync", "@resync::OnCall", 0, 20, 0;
+ end;
+}