Lua скрипт, чтобы тыкать клиентов в объяснение TS3 - PullRequest
0 голосов
/ 16 апреля 2020

Это рабочий сценарий po3 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 run pokeall

Я новичок в Lua. Я хочу понять, как работает этот код. Так что вот, если я правильно понял: у нас есть 2 переменные clients и clname. clients[i] с for это, очевидно, все oop. Он начинается с индекса 1 (поэтому это 2. элемент). Почему не с 0 (i = 0)?

clname получает имя пользователя, я думаю ...

Как я могу ткнуть конкретного пользователя? (чтобы ткнуть только 1 пользователя с помощью команды: / lua запустить pokeall USER_NICKNAME -> имя пользователя)

Достаточно изменить clients[i] на clname в ts3.requestClientPoke?

1 Ответ

1 голос
/ 16 апреля 2020

Почему бы не с 0 (i = 0)?

Поскольку Lua последовательности начинаются с индекса 1 в отличие от большинства других языков программирования.

Достаточно изменить клиентов [i] на clname в ts3.requestClientPoke?

Вы ткните пользователя с его идентификатором клиента, а не с его именем.

...