summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2019-02-10 02:04:18 -0200
committerJesusaves <cpntb1@ymail.com>2019-02-10 02:04:18 -0200
commit36040a2d577264bf8460ae1851ffdac622969381 (patch)
tree9f022de29c3ebb8b6c53cba98e0990087df016ef
parentd3cb22c8ff30ca43549331f602e0798d6f859bb9 (diff)
downloadserverdata-36040a2d577264bf8460ae1851ffdac622969381.tar.gz
serverdata-36040a2d577264bf8460ae1851ffdac622969381.tar.bz2
serverdata-36040a2d577264bf8460ae1851ffdac622969381.tar.xz
serverdata-36040a2d577264bf8460ae1851ffdac622969381.zip
[skip ci] I need more verbosity and control
-rw-r--r--npc/005-1-1/main.txt2
-rw-r--r--npc/functions/array.txt18
2 files changed, 19 insertions, 1 deletions
diff --git a/npc/005-1-1/main.txt b/npc/005-1-1/main.txt
index 66a5a43cf..e80aaa7b1 100644
--- a/npc/005-1-1/main.txt
+++ b/npc/005-1-1/main.txt
@@ -136,7 +136,7 @@ OnInteract:
// Destroy the crop if needed
.@cropId$=getcropid(.@x, .@y);
- if (array_find(@DESTROYED, .@cropId$) == -1) {
+ if (array_find2(@DESTROYED, .@cropId$) == -1) {
debugmes("[LOGIC] -------------------------- crop found");
array_push(@DESTROYED, .@cropId$);
debugmes("[LOGIC] -------------------------- crop destroyed");
diff --git a/npc/functions/array.txt b/npc/functions/array.txt
index 1a106175e..4da22b6fe 100644
--- a/npc/functions/array.txt
+++ b/npc/functions/array.txt
@@ -71,6 +71,24 @@ function script array_find {
freeloop(false);
return -1;
}
+// array_find2(<array>, <needle>)
+// Simplified version
+// if not found it returns -1
+
+function script array_find2 {
+ .@size = getarraysize(getarg(0));
+ freeloop(true);
+
+ for (.@i = getarrayindex(getarg(0)); .@i < .@size; ++.@i) {
+ if (getelementofarray(getarg(0), .@i) == getarg(1)) {
+ freeloop(false);
+ return true;
+ }
+ }
+
+ freeloop(false);
+ return -1;
+}