local res,sampev = pcall(require,'lib.samp.events')
assert(res,'Библиотека SAMP Events не найдена')
function sampev.onServerMessage(color, text)
id,message = string.match(text,'{S} Вопрос %g+%[(%d+)%]: (.*)') -- Примерный паттерн, может и не сработать.
end
function sampev.onServerMessage(color, text)
id,message = string.match(text,'{S} Вопрос %g+%[(%d+)%]: (.*)')
if id ~= nil then
if message == "Как и где приобрести лицензию на ношение оружия?" then
sampSendChat('/ans '..id..' У лицензёра.')
end
end
end
local res,sampev = pcall(require,'lib.samp.events')
assert(res,'SAMPEV not found')
function sampev.onServerMessage(color, text)
local id, message = string.match(text,'Вопрос.+%[(%d+)%]: (.*)')
if id ~= nil and message ~= nil then
for k, v in pairs(answers) do
if string.find(message, k) then
sampSendChat(string.format('/ans %s %s', id, v))
end
end
end
end
local answers = {
['Как открыть меню'] = "Введите /mm",
['Как войти в дверь'] = "Нажмите ALT",
}
Скинь сюда целый lua скрипт который ты сделал
Забыл кинуть скрин сразу, я сделал всё что надо было, и в итоге это не работает
1) Подключаем библиотеку "Events"
2) Используем библиотеку, чтобы отловить вопросLua:local res,sampev = pcall(require,'lib.samp.events') assert(res,'SAMPEV not found')
3) Создаём массив с вопросами/ответамиLua:function sampev.onServerMessage(color, text) local id, message = string.match(text,'Вопрос.+%[(%d+)%]: (.*)') if id ~= nil and message ~= nil then for k, v in pairs(answers) do if string.find(message, k) then sampSendChat(string.format('/ans %s %s', id, v)) end end end end
Lua:local answers = { ['Как открыть меню'] = "Введите /mm", ['Как войти в дверь'] = "Нажмите ALT", }
Через массивы удобнее работать, нежели делать миллионы условий
Перед sendchat нужно делать задержку хоть на 1 мс, а то не будет сообщение показыватся.Подключаешь библиотеку:
Lua:local res,sampev = pcall(require,'lib.samp.events') assert(res,'Библиотека SAMP Events не найдена')
С помощью данного хука ловишь нужный текст:
Lua:function sampev.onServerMessage(color, text) id,message = string.match(text,'{S} Вопрос %g+%[(%d+)%]: (.*)') -- Примерный паттерн, может и не сработать. end
Далее, делаешь условие
Lua:function sampev.onServerMessage(color, text) id,message = string.match(text,'{S} Вопрос %g+%[(%d+)%]: (.*)') if id ~= nil then if message == "Как и где приобрести лицензию на ношение оружия?" then sampSendChat('/ans '..id..' У лицензёра.') end end end
Все это конечно примерно, тут есть свои заморочки.
Я вкурсе, но в данной функции нельзя задержку делать, надо с помощью переменной переносить действие в цикл.Перед sendchat нужно делать задержку хоть на 1 мс, а то не будет сообщение показыватся.
Получилось всё?
Забыл кинуть скрин сразу, я сделал всё что надо было, и в итоге это не работает
local res,sampev = pcall(require,'lib.samp.events')
assert(res,'SAMPEV not found')
function sampev.onServerMessage(color, text)
local id, message = string.match(text,'[S] Вопрос.+%[(%d+)%]: (.*)')
if id ~= nil and message ~= nil then
for k, v in pairs(answers) do
if string.find(message, k) then
lua_thread.create(function()
wait(1)
sampSendChat(string.format('/ans %s %s', id, v))
end)
end
end
end
end
local answers = {
['Как открыть меню'] = "123",
['Как войти в дверь'] = "123",
}
require 'lib.moonloader'
require 'lib.sampfuncs'
local res,sampev = pcall(require,'lib.samp.events')
assert(res,'SAMPEV not found')
local answers = {
['Как открыть меню'] = "Введите /mm",
['Как войти в дверь'] = "Нажмите ALT",
}
function sampev.onServerMessage(color, text)
local id, message = string.match(text,'Вопрос.+%[(%d+)%]: (.*)')
if id ~= nil and message ~= nil then
for k, v in pairs(answers) do
if string.find(message, k) then
lua_thread.create(function()
wait(1000)
sampSendChat(string.format('/ans %s %s', id, v))
end)
end
end
end
end
function main()
if not isSampLoaded() and not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(100) end
sampAddChatMessage('Скрипт включился, можно удалить эту строку',-1)
wait(-1)
end
Hi, тут читаю и думаю можно ли убрать "Вопрос" 12 строка. Если просто будет приходить вопрос в репорт и будет ли на него отвечать скрипт ?@qojqva
Lua:require 'lib.moonloader' require 'lib.sampfuncs' local res,sampev = pcall(require,'lib.samp.events') assert(res,'SAMPEV not found') local answers = { ['Как открыть меню'] = "Введите /mm", ['Как войти в дверь'] = "Нажмите ALT", } function sampev.onServerMessage(color, text) local id, message = string.match(text,'Вопрос.+%[(%d+)%]: (.*)') if id ~= nil and message ~= nil then for k, v in pairs(answers) do if string.find(message, k) then lua_thread.create(function() wait(1000) sampSendChat(string.format('/ans %s %s', id, v)) end) end end end end function main() if not isSampLoaded() and not isSampfuncsLoaded() then return end while not isSampAvailable() do wait(100) end sampAddChatMessage('Скрипт включился, можно удалить эту строку',-1) wait(-1) end