summaryrefslogtreecommitdiff
path: root/npc/functions/savepoint.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/functions/savepoint.txt')
-rw-r--r--npc/functions/savepoint.txt57
1 files changed, 57 insertions, 0 deletions
diff --git a/npc/functions/savepoint.txt b/npc/functions/savepoint.txt
new file mode 100644
index 00000000..46ef73e8
--- /dev/null
+++ b/npc/functions/savepoint.txt
@@ -0,0 +1,57 @@
+// Evol functions.
+// Authors:
+// gumi
+// Reid
+// Description:
+// Adds a new save point location.
+// Usage:
+// savepointparticle;
+// savepointparticle NO_INN;
+// savepointparticle map, x, y, NO_INN;
+// Description:
+// Save location with arguments:
+// getarg(0) map name,
+// getarg(1) x's value,
+// getarg(2) y's value,
+// getarg(3) INN flag.
+
+function script savepointparticle {
+
+ if (gettimetick(2) - @lastSave < 5)
+ return;
+
+ .@mapname$ = getarg(0, "");
+ .@mapx = getarg(1, -1);
+ .@mapy = getarg(2, -1);
+ .@i = 3;
+
+ if (.@mapy < 1)
+ {
+ .@npc$ = strnpcinfo(0);
+ .@mapname$ = getvariableofnpc(.map$, .@npc$);
+ .@mapx = getvariableofnpc(.x, .@npc$);
+ .@mapy = getvariableofnpc(.y, .@npc$);
+ .@i = 0;
+ }
+
+ // If this will override your current inn, a confirmation is required.
+ // Unless you already don't have a booked place, then, confirmation is never shown.
+ if (getarg(.@i, NO_INN) != INN_REGISTER && INN_REGISTER != NO_INN)
+ {
+ mesc l("Do you want to use this place as save point?");
+ mesc b(l("Warning: ")) + l("Previous Inn reservation will be lost!");
+
+ if (askyesno() != ASK_YES)
+ close;
+
+ INN_REGISTER = NO_INN;
+ }
+
+ message strcharinfo(0), l("Your position has been saved.");
+
+ savepoint .@mapname$, .@mapx, .@mapy;
+ specialeffect(4, SELF, getcharid(3));
+ @lastSave = gettimetick(2);
+
+ return;
+}