summaryrefslogtreecommitdiff
path: root/npc/functions
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2018-12-15 18:00:20 -0200
committerJesusaves <cpntb1@ymail.com>2018-12-15 18:00:20 -0200
commitc447528402f903a5ca3e8eec0ad36b52815b992c (patch)
tree05c9a03f4c0a09cdba12b8d70c74eb42d37d5e79 /npc/functions
parent8ccbaf6d7bb767ecc83b9b7941655fe7d7aa1de4 (diff)
downloadserverdata-c447528402f903a5ca3e8eec0ad36b52815b992c.tar.gz
serverdata-c447528402f903a5ca3e8eec0ad36b52815b992c.tar.bz2
serverdata-c447528402f903a5ca3e8eec0ad36b52815b992c.tar.xz
serverdata-c447528402f903a5ca3e8eec0ad36b52815b992c.zip
log2 function, golbarez rewards, main quest restriction, gift count
Diffstat (limited to 'npc/functions')
-rw-r--r--npc/functions/math.txt28
1 files changed, 28 insertions, 0 deletions
diff --git a/npc/functions/math.txt b/npc/functions/math.txt
index 004125c7b..a7be729a3 100644
--- a/npc/functions/math.txt
+++ b/npc/functions/math.txt
@@ -38,3 +38,31 @@ function script lognbaselvl {
return .@ret;
}
+
+// log2(<int>)
+// returns the log base 2 of the passed integer, up to 20 (2**20=1.048.576) (round down always)
+
+function script log2 {
+ .@v=abs(getarg(0));
+ .@ok=0;
+ .@i=0;
+
+ freeloop(true);
+ while (!.@ok) {
+ // exact match
+ if (2**.@i == .@v) {
+ .@ok=1;
+ // inexact match, or limit exceeded
+ } if (2**.@i >= .@v || .@i > 20) {
+ .@ok=1;
+ .@i-=1; // round down
+ // not yet
+ } else {
+ .@i+=1;
+ }
+ }
+ freeloop(false);
+
+ return .@i;
+}
+