Выполнение команды при виде сообщения в чате

Ba4a

Новичок
Автор темы
15
2
Не понимаю как реализовать код.
Хочу разобраться, как при появлении в чате сообщения test, скрипт каждый раз выводил команду /com и писал сообщение "Выполняю команду". На данный момент скрип делает это один раз. Так же, подскажите как вместо sampAddChatMessage('Выполняю команду',0xFFFFF0) сделать выполнение зажатия пробела на 5 секунд


Код:
script_name('1234')
script_version('1.4')
script_author('VanCleef')

require 'lib.moonloader'
local samp = require 'lib.samp.events'

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    while true do
        wait(0)
        
    end
end

function samp.onServerMessage(color, text)
        
        if string.find(text,'test',1,true) then
            sampAddChatMessage('Выполняю команду',0xFFFFF0)
            wait(100)
            sampSendChat('/com')
        end
end
 
Решение
новую строчку увидел со словом test - 1 раз выполнил команду,
пытался удалять строчку чтобы он больше не видел её, но какая-то хрень выходит, изучаю бластхак и скрипты всего 4 дня, тяжко идет
сейчас попробую твой код
Новый язык программирования всегда тяжок
Аааай бл%##:
local sampev = require "lib.samp.events"

function sampev.onServerMessage(color, text)
lua_thread.create(function() -- создаём поток, выше писал зачем.
while true do -- создаём поток в котором будут выполняться действия бесконечно (пока while не станет false)
    if string.find(text, "test", 1, true) then -- Создаём условие чтобы наш комп нахуй не сгорел когда увидит сообщение в чате test (сгореть запросто сможет, либо крашнется сами, как повезёт ) ))...

Я кавказец

Известный
440
106
Пишу с телефона, так что за шакальную табуляцию не пиздь.
Говно, а не код:
local sampev = require "lib.samp.events"

function sampev.onServerMessage(color, text)
if string.find(text, "test", 1, true)
    lua_thread.create(function() -- создаём поток чтобы использовать wait вне main
setVirtualKeyDown(32, true) -- зажимает пробел
wait(5000) -- кд 5 сек, 1000мс = 1сек
setVirtualKeyDown(32, false) -- Отпускает пробел
end) -- Закрываем потом lua_thread
end
end
На счёт флуда, это прям когда он увидит сообщение и будет флудить, либо когда видит 1 сообщение 1 раз, 2 сообщение 2 раз или как?
 
  • Нравится
Реакции: Ba4a

Ba4a

Новичок
Автор темы
15
2
Пишу с телефона, так что за шакальную табуляцию не пиздь.
Говно, а не код:
local sampev = require "lib.samp.events"

function sampev.onServerMessage(color, text)
if string.find(text, "test", 1, true)
    lua_thread.create(function() -- создаём поток чтобы использовать wait вне main
setVirtualKeyDown(32, true) -- зажимает пробел
wait(5000) -- кд 5 сек, 1000мс = 1сек
setVirtualKeyDown(32, false) -- Отпускает пробел
end) -- Закрываем потом lua_thread
end
end
На счёт флуда, это прям когда он увидит сообщение и будет флудить, либо когда видит 1 сообщение 1 раз, 2 сообщение 2 раз или как?
новую строчку увидел со словом test - 1 раз выполнил команду,
пытался удалять строчку чтобы он больше не видел её, но какая-то хрень выходит, изучаю бластхак и скрипты всего 4 дня, тяжко идет
сейчас попробую твой код
 

Я кавказец

Известный
440
106
новую строчку увидел со словом test - 1 раз выполнил команду,
пытался удалять строчку чтобы он больше не видел её, но какая-то хрень выходит, изучаю бластхак и скрипты всего 4 дня, тяжко идет
сейчас попробую твой код
Новый язык программирования всегда тяжок
Аааай бл%##:
local sampev = require "lib.samp.events"

function sampev.onServerMessage(color, text)
lua_thread.create(function() -- создаём поток, выше писал зачем.
while true do -- создаём поток в котором будут выполняться действия бесконечно (пока while не станет false)
    if string.find(text, "test", 1, true) then -- Создаём условие чтобы наш комп нахуй не сгорел когда увидит сообщение в чате test (сгореть запросто сможет, либо крашнется сами, как повезёт ) ))
  sampAddChatMessage("Выполняют команду", -1) -- -1 является белым цветом
wait(100)
sampSendChat("/com")
end -- закрывает if
end -- закрывает while
end) -- закрывает поток
end -- логично же что это function закрывает
Попробуй
Upd: while с большой написал 0_0 когда надо с маленько й
 
Последнее редактирование:
  • Нравится
Реакции: Ba4a

Я кавказец

Известный
440
106
Новый язык программирования всегда тяжок
Аааай бл%##:
local sampev = require "lib.samp.events"

function sampev.onServerMessage(color, text)
lua_thread.create(function() -- создаём поток, выше писал зачем.
While true do -- создаём поток в котором будут выполняться действия бесконечно (пока while не станет false)
    if string.find(text, "test", 1, true) then -- Создаём условие чтобы наш комп нахуй не сгорел когда увидит сообщение в чате test (сгореть запросто сможет, либо крашнется сами, как повезёт ) ))
  sampAddChatMessage("Выполняют команду", -1) -- -1 является белым цветом
wait(100)
sampSendChat("/com")
end -- закрывает if
end -- закрывает while
end) -- закрывает поток
end -- логично же что это function закрывает
Попробуй
Вроде же создавал новое сообщение, а нет, отредачил
Получилось то что я хотел, спасибо, изучу информацию про lua_thread!
Обозначь ответ решением, не зря же эту кнопку создавали.