所以我有一个问题,我在 Squirrel 中已经搞砸了一段时间。我想创建一个遍历数组中所有内容的东西,例如:
local array = [1, 2, 3, -1, 5, -1, 7, -1];
并寻找那些是-1的,我只想使用其中一个,首先出现的那个(在这种情况下是3到5之间)。
在我的脚本中,当有人销毁某个对象时,它会将对象 id 设置为 -1 而不是常规数字,因为否则在尝试使用该对象时它会出现错误。真的不知道我是否在解释这一点上做得很好。
另一个例子是当玩家连接到某个游戏服务器时,我们连接了 id 0、1、3 和 4 的玩家,所以当下一个玩家连接时,他们得到 id 2。这就是我对数组的追求。
我已经尝试了几件事,唯一最接近它的是:
for(local i=1; i < Array.len(); i++){
if(Array[i].id != -1){
count++;
} else {
count = i;
}
}
但是这个的问题是它只取最后一个 ID 并替换它,所以我们有对象 0、1、2 和 3 如果我要销毁 3 并创建一个新的,没问题。如果我要销毁 0、1 或 2 并创建一个新的,则不会占用该插槽,而是选择 4 号,这样就不起作用了。
感谢您的阅读,希望那里的任何人都可以帮助我。
已解决:
这真的很简单,对于其他有同样问题的人来说,这就是我所做的。现在跟随,这可能会变得非常棘手。
我所做的是我添加了一个“休息”;在 else 语句中,代码如下:
for(local i=1; i < Array.len(); i++){
if(Array[i].id != -1){
count++;
} else {
count = i;
break; // THIS
}
}
是的,后来我确实撞到了自己的头……