Lua 在 TS3 说明中戳客户端的脚本

Lua script to poke clients in TS3 explanation

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

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 运行 pokeall

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

clname获取用户名,我觉得...

如何戳具体用户? (仅使用命令戳 1 个用户:/lua 运行 pokeall USER_NICKNAME --> 用户名)

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

Why not with 0 (i = 0) ?

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

Enough to change the clients[i] to clname in ts3.requestClientPoke ?

您使用用户的客户端 ID,而不是用户名来访问用户。