кто шарит как делать проверку на содержимое диалога? Например чтобы он использовал sendDialogeResponse если видит в диалоге определенную кнопку (в виде строки)
подробнее плизSAMP.Lua/samp/events.lua at master · THE-FYP/SAMP.Lua
A SA-MP API library for MoonLoader. Contribute to THE-FYP/SAMP.Lua development by creating an account on GitHub.github.com
подробнее плиз
function require("samp.events").onShowDialog(id, style, title, button1, button2, text) --
if title:find( " ЗАГОЛОВОК ДИАЛОГА ") then -- дучше всего искать по заголовку, нежели по ID.
if text:find("Какой-то текст (в диалоге), который тебе нужно найти ") then
sampSendDialogResponse(id, 1, 0, 0, "") -- Нажимаем кнопку под номером №1 ( например, "ОК")
end
end
end
так это же вроде если текст В САМОМ диалоге, а мне нужно текст с кнопки.if text:find("Какой-то текст (в диалоге), который тебе нужно найти ") then
Это пример, адаптируй под свои нуждытак это же вроде если текст В САМОМ диалоге, а мне нужно текст с кнопки. Посмотреть вложение 253420
function sampGetListboxItemByText(text, searchText, plain) -- куда-то вставить, например куда ни будь
plain = plain ~= false
local i = 0
for line in text:gmatch("[^\r\n]+") do
if (plain and line == searchText) or (not plain and line:find(searchText)) then
return i
end
i = i + 1
end
return -1
end
function sampev.onShowDialog(id, style, title, button1, button2, text)
if dialogId == 25526 or title:find("{BFBBBA}Выбор места спавна") then -- двойная проверка по ид / названию
newTask(function() -- запуск "таймера"
wait(500) -- ждем 500 мс
local text_spawn = sampGetListboxItemByText(text, "Дом №786", false) -- выбираем пункт диалога с названием Дом №786
sendDialogResponse(dialogId, 1, text_spawn, "") -- нажимаем на него
sendDialogResponse(dialogId, 0, 0, "") -- "закрываем" диалог
return false -- что бы не показывался диалог, но по-моему, он один хер показывается
end)
end
end
[18:41:48] [LUA] C:\Share\bot_v2\scripts\libs\addon.lua:176: C:\Share\bot_v2\scripts\libs\addon.lua:15: bad argument #1 to 'writeUInt16' (number expected, got nil)Это пример, адаптируй под свои нужды
Lua:function sampGetListboxItemByText(text, searchText, plain) -- куда-то вставить, например куда ни будь plain = plain ~= false local i = 0 for line in text:gmatch("[^\r\n]+") do if (plain and line == searchText) or (not plain and line:find(searchText)) then return i end i = i + 1 end return -1 end function sampev.onShowDialog(id, style, title, button1, button2, text) if dialogId == 25526 or title:find("{BFBBBA}Выбор места спавна") then -- двойная проверка по ид / названию newTask(function() -- запуск "таймера" wait(500) -- ждем 500 мс local text_spawn = sampGetListboxItemByText(text, "Дом №786", false) -- выбираем пункт диалога с названием Дом №786 sendDialogResponse(dialogId, 1, text_spawn, "") -- нажимаем на него sendDialogResponse(dialogId, 0, 0, "") -- "закрываем" диалог return false -- что бы не показывался диалог, но по-моему, он один хер показывается end) end end
function sampGetListboxItemByText(text, searchText, plain) -- куда-то вставить, например где не сток функции
plain = plain ~= false
local i = 0
for line in text:gmatch("[^\r\n]+") do
if (plain and line == searchText) or (not plain and line:find(searchText)) then
return i
end
i = i + 1
end
return -1
end
function sampev.onShowDialog(id, style, title, button1, button2, text)
newTask(function() -- запуск "таймера"
wait(500) -- ждем 500 мс
local text_spawn = sampGetListboxItemByText(text, "Создать игровой мир", false) -- выбираем пункт диалога с названием Дом №786
sendDialogResponse(id, 2, text_spawn, "") -- нажимаем на него
sendDialogResponse(id, 0, 0, "") -- "закрываем" диалог
return false -- что бы не показывался диалог, но по-моему, он один хер показывается
end)
end
[18:41:48] [LUA] C:\Share\bot_v2\scripts\libs\addon.lua:176: C:\Share\bot_v2\scripts\libs\addon.lua:15: bad argument #1 to 'writeUInt16' (number expected, got nil)
stack traceback:
[C]: in function 'error'
C:\Share\bot_v2\scripts\libs\addon.lua:160: in function 'tick'
C:\Share\bot_v2\scripts\libs\addon.lua:176: in function <C:\Share\bot_v2\scripts\libs\addon.lua:174>
123:function sampGetListboxItemByText(text, searchText, plain) -- куда-то вставить, например где не сток функции plain = plain ~= false local i = 0 for line in text:gmatch("[^\r\n]+") do if (plain and line == searchText) or (not plain and line:find(searchText)) then return i end i = i + 1 end return -1 end function sampev.onShowDialog(id, style, title, button1, button2, text) newTask(function() -- запуск "таймера" wait(500) -- ждем 500 мс local text_spawn = sampGetListboxItemByText(text, "Создать игровой мир", false) -- выбираем пункт диалога с названием Дом №786 sendDialogResponse(id, 2, text_spawn, "") -- нажимаем на него sendDialogResponse(id, 0, 0, "") -- "закрываем" диалог return false -- что бы не показывался диалог, но по-моему, он один хер показывается end) end
кое что изменил но блять теперь он че то стал иногда с нихуя флудить нажатием диалогов[18:41:48] [LUA] C:\Share\bot_v2\scripts\libs\addon.lua:176: C:\Share\bot_v2\scripts\libs\addon.lua:15: bad argument #1 to 'writeUInt16' (number expected, got nil)
stack traceback:
[C]: in function 'error'
C:\Share\bot_v2\scripts\libs\addon.lua:160: in function 'tick'
C:\Share\bot_v2\scripts\libs\addon.lua:176: in function <C:\Share\bot_v2\scripts\libs\addon.lua:174>
123:function sampGetListboxItemByText(text, searchText, plain) -- куда-то вставить, например где не сток функции plain = plain ~= false local i = 0 for line in text:gmatch("[^\r\n]+") do if (plain and line == searchText) or (not plain and line:find(searchText)) then return i end i = i + 1 end return -1 end function sampev.onShowDialog(id, style, title, button1, button2, text) newTask(function() -- запуск "таймера" wait(500) -- ждем 500 мс local text_spawn = sampGetListboxItemByText(text, "Создать игровой мир", false) -- выбираем пункт диалога с названием Дом №786 sendDialogResponse(id, 2, text_spawn, "") -- нажимаем на него sendDialogResponse(id, 0, 0, "") -- "закрываем" диалог return false -- что бы не показывался диалог, но по-моему, он один хер показывается end) end
кое что изменил но блять теперь он че то стал иногда с нихуя флудить нажатием диалогов
В коде который я скинул ошибок нет, это что-то твой скрипт косячит[18:41:48] [LUA] C:\Share\bot_v2\scripts\libs\addon.lua:176: C:\Share\bot_v2\scripts\libs\addon.lua:15: bad argument #1 to 'writeUInt16' (number expected, got nil)
stack traceback:
[C]: in function 'error'
C:\Share\bot_v2\scripts\libs\addon.lua:160: in function 'tick'
C:\Share\bot_v2\scripts\libs\addon.lua:176: in function <C:\Share\bot_v2\scripts\libs\addon.lua:174>
123:function sampGetListboxItemByText(text, searchText, plain) -- куда-то вставить, например где не сток функции plain = plain ~= false local i = 0 for line in text:gmatch("[^\r\n]+") do if (plain and line == searchText) or (not plain and line:find(searchText)) then return i end i = i + 1 end return -1 end function sampev.onShowDialog(id, style, title, button1, button2, text) newTask(function() -- запуск "таймера" wait(500) -- ждем 500 мс local text_spawn = sampGetListboxItemByText(text, "Создать игровой мир", false) -- выбираем пункт диалога с названием Дом №786 sendDialogResponse(id, 2, text_spawn, "") -- нажимаем на него sendDialogResponse(id, 0, 0, "") -- "закрываем" диалог return false -- что бы не показывался диалог, но по-моему, он один хер показывается end) end
кое что изменил но блять теперь он че то стал иногда с нихуя флудить нажатием диалогов
Прикол в том что скрипт должен нажать 4 кнопки а не 1. Он дальше 1 кнопки не идётВ коде который я скинул ошибок нет, это что-то твой скрипт косячит
кнопка ответа диалога от 0 до 1.Прикол в том что скрипт должен нажать 4 кнопки а не 1. Он дальше 1 кнопки не идёт
использовать новую версию раксампаКак перезагрузить луа? Если через runcommand то крашит
Подробнее плизкнопка ответа диалога от 0 до 1.
0 - ложь, то левая сторона
1 - истинна
а по спискам начиная с 0, если там будет вроде, с описанием диалога, в таком случае первая строка убрать (или добавить -1 в списке)