summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2021-07-09 14:17:51 -0300
committerJesusaves <cpntb1@ymail.com>2021-07-09 14:17:51 -0300
commitec1d600a09cb6c45d5b7924037039e4c6a003b89 (patch)
tree36bf4ad1063e1aa73a4e50acfc035ca2223a8079
parent3632091a1476c854b6797439fd1cf208638bcdf0 (diff)
downloadserverdata-ec1d600a09cb6c45d5b7924037039e4c6a003b89.tar.gz
serverdata-ec1d600a09cb6c45d5b7924037039e4c6a003b89.tar.bz2
serverdata-ec1d600a09cb6c45d5b7924037039e4c6a003b89.tar.xz
serverdata-ec1d600a09cb6c45d5b7924037039e4c6a003b89.zip
Fix missing time functions (was causing towel and Kimarr bugs)
-rw-r--r--npc/functions/time.txt117
1 files changed, 117 insertions, 0 deletions
diff --git a/npc/functions/time.txt b/npc/functions/time.txt
index e6e4c70a..9ae2f436 100644
--- a/npc/functions/time.txt
+++ b/npc/functions/time.txt
@@ -115,3 +115,120 @@ function script FuzzyTime {
return .@ret$;
}
+
+
+
+function script time_stamp {
+ @ts_date$ = sprintf("%04d-%02d-%02d", gettime(7), gettime(6), gettime(5));
+ @ts_time$ = sprintf("%02d:%02d:%02d", gettime(3), gettime(2), gettime(1));
+ return (@ts_date$+" "+@ts_time$);
+}
+
+
+
+
+
+// FIXME
+function script HumanTime {
+ @time$ = "now";
+ if(@seconds) set @ms, @ms + (@seconds * 1000);
+ if(@minutes) set @ms, @ms + (@minutes * 60000);
+ if(@days) set @ms, @ms + (@days * 1440000);
+ if(@ms < 1000) goto L_Millis; // under 1 second we have nothing to count
+ @seconds = @ms / 1000;
+ @ms = @ms % 1000;
+ if(@seconds < 60) goto L_Seconds;
+ @minutes = @seconds / 60;
+ @seconds = @seconds % 60;
+ if(@minutes < 60) goto L_Minutes;
+ @hours = @minutes / 60;
+ @minutes = @minutes % 60;
+ if(@hours < 24) goto L_Hours;
+ @days = @hours / 24;
+ @hours = @hours % 24;
+ if(@days) goto L_Days;
+ goto L_Clean;
+
+L_Millis:
+ @time$ = @ms + "ms";
+ return;
+
+L_Seconds:
+ @unit$ = "second";
+ if(@seconds > 1) set @unit$, "seconds";
+ @unit2$ = "millisecond";
+ if(@ms > 1) set @unit2$, "milliseconds";
+ @time$ = @seconds + " " + @unit$;
+ if(@ms) set @time$, @time$ + " and " + @ms + " " + @unit2$;
+ goto L_Clean;
+
+L_Minutes:
+ @unit$ = "minute";
+ if(@minutes > 1) set @unit$, "minutes";
+ @unit2$ = "second";
+ if(@seconds > 1) set @unit2$, "seconds";
+ @unit3$ = "millisecond";
+ if(@ms > 1) set @unit3$, "milliseconds";
+ @time$ = @minutes + " " + @unit$;
+ @separator$ = " and ";
+ if(@ms) set @separator$, ", ";
+ if(@seconds) set @time$, @time$ + @separator$ + @seconds + " " + @unit2$;
+ if(@ms) set @time$, @time$ + " and " + @ms + " " + @unit3$;
+ goto L_Clean;
+
+L_Hours:
+ @unit$ = "hour";
+ if(@hours > 1) set @unit$, "hours";
+ @unit2$ = "minute";
+ if(@minutes > 1) set @unit2$, "minutes";
+ @unit3$ = "second";
+ if(@seconds > 1) set @unit3$, "seconds";
+ @unit4$ = "millisecond";
+ if(@ms > 1) set @unit4$, "milliseconds";
+ @time$ = @hours + " " + @unit$;
+ @separator$ = " and ";
+ if(@seconds || @ms) set @separator$, ", ";
+ if(@minutes) set @time$, @time$ + @separator$ + @minutes + " " + @unit2$;
+ @separator$ = " and ";
+ if(@ms) set @separator$, ", ";
+ if(@seconds) set @time$, @time$ + @separator$ + @seconds + " " + @unit3$;
+ if(@ms) set @time$, @time$ + " and " + @ms + " " + @unit4$;
+ goto L_Clean;
+
+L_Days:
+ @unit$ = "day";
+ if(@hours > 1) set @unit$, "days";
+ @unit2$ = "hour";
+ if(@hours > 1) set @unit2$, "hours";
+ @unit3$ = "minute";
+ if(@minutes > 1) set @unit3$, "minutes";
+ @unit4$ = "second";
+ if(@seconds > 1) set @unit4$, "seconds";
+ @unit5$ = "millisecond";
+ if(@ms > 1) set @unit5$, "milliseconds";
+ @time$ = @days + " " + @unit$;
+ @separator$ = " and ";
+ if(@minutes || @seconds || @ms) set @separator$, ", ";
+ if(@hours) set @time$, @time$ + @separator$ + @hours + " " + @unit2$;
+ @separator$ = " and ";
+ if(@seconds || @ms) set @separator$, ", ";
+ if(@minutes) set @time$, @time$ + @separator$ + @minutes + " " + @unit3$;
+ @separator$ = " and ";
+ if(@ms) set @separator$, ", ";
+ if(@seconds) set @time$, @time$ + @separator$ + @seconds + " " + @unit3$;
+ if(@ms) set @time$, @time$ + " and " + @ms + " " + @unit4$;
+ goto L_Clean;
+
+L_Clean:
+ @unit$ = "";
+ @unit2$ = "";
+ @unit3$ = "";
+ @unit4$ = "";
+ @unit5$ = "";
+ @seconds = 0;
+ @minutes = 0;
+ @hours = 0;
+ @days = 0;
+ @separator$ = "";
+ return;
+}