-1

这是一个有效的 TS3 poke 脚本,它会戳所有用户:

function pokeall(serverConnectionHandlerID)
 local clients, error = ts3.getClientList(serverConnectionHandlerID)    
  for i=1, #clients do
 local clname, clientNameError = ts3.getClientVariableAsString(serverConnectionHandlerID, clients[i], ts3defs.ClientProperties.CLIENT_NICKNAME)
 ts3.requestClientPoke(serverConnectionHandlerID, clients[i], "Lua Pokeall script :-)")
 --ts3.printMessage(serverConnectionHandlerID, "Poked "..clname.." (id: "..clients[i]..")!")        
end 
end

ts3.printMessage现在是评论(可选)。

该脚本使用命令:/lua run pokeall

我是Lua的新手。我想了解这段代码是如何工作的。所以在这里,如果我理解正确:我们有 2 个变量clientsclname. 这显然是一个循环clients[i]for它从索引 1 开始(所以它是 2. 元素)。为什么不使用 0 (i = 0) ?

clname获取用户名,我想...

我怎样才能戳到一个具体的用户? (使用命令只戳 1 个用户:/lua run pokeall USER_NICKNAME --> 用户名)

足以改变clients[i]to clnameints3.requestClientPoke吗?

4

1 回答 1

1

为什么不使用 0 (i = 0) ?

因为与大多数其他编程语言不同,Lua 序列从索引 1 开始。

足以将 ts3.requestClientPoke 中的 clients[i] 更改为 clname 吗?

你用它的客户端 ID 戳一个用户,而不是用它的名字。

于 2020-04-16T16:34:42.243 回答