local cmd = "eject"
local interval = 1000
local targetScore = 1
function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(100) end
sampRegisterChatCommand("bulk", function()
sampAddChatMessage("Processing...",-1)
-- https://www.blast.hk/threads/56795/post-508619
players = {} -- массив в который будем добавлять ники
counter = 0
for i = 0, sampGetMaxPlayerId() do -- цикл перебирающий числа (id) от 0 до максимального который есть на сервере
if sampIsPlayerConnected(i) then
table.insert(players, i)
if sampGetPlayerScore(i) == targetScore then counter=counter+1 end
end...
Ну чтобы нужная мне команда применилась на всех, кто первого уровня и находится на серверениче не понятно. объясни конкретнее.
какую команду? что ты имеешь в виду под всеми игроками определенного уровня? уровня чего? есть пример на который можно посмотреть?
то есть ты хочешь:Ну чтобы нужная мне команда применилась на всех, кто первого уровня и находится на сервере
Всё верното есть ты хочешь:
верно?
- взять список всех игроков из таба с определенным значением score (уровень\ранг)
- записать айдишники этих игроков
- отправить на сервер команду, где будет использоваться этот айдишник [столько раз, сколько игроков найдено в списке] (например /eject 12)
local cmd = "eject"
local interval = 1000
local targetScore = 1
function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(100) end
sampRegisterChatCommand("bulk", function()
sampAddChatMessage("Processing...",-1)
-- https://www.blast.hk/threads/56795/post-508619
players = {} -- массив в который будем добавлять ники
counter = 0
for i = 0, sampGetMaxPlayerId() do -- цикл перебирающий числа (id) от 0 до максимального который есть на сервере
if sampIsPlayerConnected(i) then
table.insert(players, i)
if sampGetPlayerScore(i) == targetScore then counter=counter+1 end
end
end
sampAddChatMessage("Найдено игроков: " .. #players,-1)
sampAddChatMessage("Подходит под критерий: " .. counter,-1)
lua_thread.create(function ()
for _, plrId in pairs(players) do
local score = sampGetPlayerScore(plrId)
if score == targetScore then
print(cmd, plrId)
sampSendChat(("/%s %d"):format(cmd, plrId))
wait(interval)
end
end
sampAddChatMessage("Готово!",-1)
end)
end)
while true do wait(0) end
end
Спасибо большое <3держи, удачиLua:local cmd = "eject" local interval = 1000 local targetScore = 1 function main() if not isSampLoaded() or not isSampfuncsLoaded() then return end while not isSampAvailable() do wait(100) end sampRegisterChatCommand("bulk", function() sampAddChatMessage("Processing...",-1) -- https://www.blast.hk/threads/56795/post-508619 players = {} -- массив в который будем добавлять ники counter = 0 for i = 0, sampGetMaxPlayerId() do -- цикл перебирающий числа (id) от 0 до максимального который есть на сервере if sampIsPlayerConnected(i) then table.insert(players, i) if sampGetPlayerScore(i) == targetScore then counter=counter+1 end end end sampAddChatMessage("Найдено игроков: " .. #players,-1) sampAddChatMessage("Подходит под критерий: " .. counter,-1) lua_thread.create(function () for _, plrId in pairs(players) do local score = sampGetPlayerScore(plrId) if score == targetScore then print(cmd, plrId) sampSendChat(("/%s %d"):format(cmd, plrId)) wait(interval) end end sampAddChatMessage("Готово!",-1) end) end) while true do wait(0) end end
Посмотреть вложение 242253
cmd - команда, которая будет вызываться
interval - сколько мс выждать перед отправкой следующей команды
targetScore - какой лвл будем брать в качестве жертвы
команда для вызова скрипта: /bulk
А если у меня команда /cmd id 1держи, удачиLua:local cmd = "eject" local interval = 1000 local targetScore = 1 function main() if not isSampLoaded() or not isSampfuncsLoaded() then return end while not isSampAvailable() do wait(100) end sampRegisterChatCommand("bulk", function() sampAddChatMessage("Processing...",-1) -- https://www.blast.hk/threads/56795/post-508619 players = {} -- массив в который будем добавлять ники counter = 0 for i = 0, sampGetMaxPlayerId() do -- цикл перебирающий числа (id) от 0 до максимального который есть на сервере if sampIsPlayerConnected(i) then table.insert(players, i) if sampGetPlayerScore(i) == targetScore then counter=counter+1 end end end sampAddChatMessage("Найдено игроков: " .. #players,-1) sampAddChatMessage("Подходит под критерий: " .. counter,-1) lua_thread.create(function () for _, plrId in pairs(players) do local score = sampGetPlayerScore(plrId) if score == targetScore then print(cmd, plrId) sampSendChat(("/%s %d"):format(cmd, plrId)) wait(interval) end end sampAddChatMessage("Готово!",-1) end) end) while true do wait(0) end end
Посмотреть вложение 242253
cmd - команда, которая будет вызываться
interval - сколько мс выждать перед отправкой следующей команды
targetScore - какой лвл будем брать в качестве жертвы
команда для вызова скрипта: /bulk
в cmd так и напиши: local cmd = "cmd id", код сам подставит ид и слэшСпасибо большое <3
А если у меня команда /cmd id 1
Как нужно переделать чтобы работало?
У меня ставится 2 пробела в команде, как исправить?в cmd так и напиши: local cmd = "cmd id", код сам подставит ид и слэш
Делаю так, на выходе: cmd 1 id, вместо cmd id 1в cmd так и напиши: local cmd = "cmd id", код сам подставит ид и слэш
убрать пробел наверное и сделать так как я говорю? "cmd id" а не "cmd id "У меня ставится 2 пробела в команде, как исправить?
Делаю так, на выходе: cmd 1 id, вместо cmd id 1
Спасибоубрать пробел наверное и сделать так как я говорю? "cmd id" а не "cmd id "
Посмотреть вложение 242258
ты уверен, что ты правильно формулируешь проблему?
ты хочешь вместо id подставить сам id чтобы было cmd 254 1 например? (где 254 там рандомный ид)
если так, то исправь
- про переменную cmd забудь
- sampSendChat(("/cmd %d 1"):format(plrId))
там где %d автоматически подставится айди игрока, а там верти как хочешь
Подскажи пожалуйста, как из определённого сообщения из чата вытаскивать ID? И желательно сделать так, чтобы команда на этот ID писалась сама, так ещё в добавок ко всему сообщние, что искали и сообщение с командой удалялось и я его не виделубрать пробел наверное и сделать так как я говорю? "cmd id" а не "cmd id "
Посмотреть вложение 242258
ты уверен, что ты правильно формулируешь проблему?
ты хочешь вместо id подставить сам id чтобы было cmd 254 1 например? (где 254 там рандомный ид)
если так, то исправь
- про переменную cmd забудь
- sampSendChat(("/cmd %d 1"):format(plrId))
там где %d автоматически подставится айди игрока, а там верти как хочешь
Спасибо
Подскажи пожалуйста, как из определённого сообщения из чата вытаскивать ID? И желательно сделать так, чтобы команда на этот ID писалась сама, так ещё в добавок ко всему сообщние, что искали и сообщение с командой удалялось и я его не видел