我的循环是这样的:循环、脚本、循环.我想要这个:循环,循环,代码.被遗忘的服务器 0.3.6.



这是带有循环的代码:

            for _, pid in ipairs(getPlayersOnline()) do 
                if getCreatureStorage(pid, tmp[i].storeDamage) > -1 then 
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, getPlayerName(pid)..': '..getCreatureStorage(pid, 11005))
                end
                doCreatureSetStorage(pid, tmp[i].storeDamage, -1) 
            end 

每个拥有存储 11005 的玩家都会收到如下消息:

玩家名称:随机数当前玩家是 CID,每个在线玩家都是 PID。现在我想在向每个在线玩家显示消息后将随机数设置为 -1。问题是循环的工作方式是这样的:向 CID(第一个玩家)显示消息,然后将数字重置为 -1,然后向第二个玩家显示消息。它不能那样做,因为第一个玩家看到正确的消息,例如:

玩家姓名1

:玩家人数1,玩家姓名2:玩家人数2

但第二个玩家看到

玩家姓名1:-1(

此玩家的号码),玩家名称2:-1(第二个玩家的编号)。

循环可能是这样完成的:loop,setStorage,loop。我需要这种方式:循环,循环,设置存储。我尝试使用"

如果 next(getPlayersOnline(), _) == nil 则

,但不起作用。

你能把"设置存储"移到第一个循环之后的第二个循环吗?这是在执行任何设置的存储调用之前能够发送所有消息的唯一方法。

for _, pid in ipairs(getPlayersOnline()) do 
  if getCreatureStorage(pid, tmp[i].storeDamage) > -1 then 
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, getPlayerName(pid)..': '..getCreatureStorage(pid, 11005))
  end
end
for _, pid in ipairs(getPlayersOnline()) do 
  doCreatureSetStorage(pid, tmp[i].storeDamage, -1) 
end

最新更新