как сделать скрипт

Lance Sterling

Потрачен
Автор темы
140
8
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Версия MoonLoader
.026-beta
есть такая тема
там указано как вывести ответ когда закрыт диалог
мне надо почти так же, тоесть проверка если в диалог было введено Приветствую, начинаю работу по вашей жалобе.
то переключать в слежку за нарушителем
вот что у меня вышло:
Lua:
script_author('Lance_Sterling')

require('lib.moonloader')
local vkeys = require('vkeys')
local rkeys = require('lib.rkeys')
local samp = require('lib.samp.events')

local inicfg = require('inicfg')

local imgui = require('imgui')
local imguiad = require('lib.imgui_addons')

local encoding = require("encoding")
encoding.default = 'CP1251'
u8 = encoding.UTF8

local memory = require('memory')
local ffi = require('ffi')
local GK = require('game.keys')
--local hook = require("hooks")

local dlstatus = require('moonloader').download_status
local Matrix3X3 = require ("matrix3x3")
local Vector3D = require ("vector3d")
local fa = require('fAwesome5')

local report = {
    aName = '',
    aID = '',
    sName = '',
    sID = '',
    rText = ''
}

function main()
    repeat wait(0) until isSampAvailable()
        sampAddChatMessage('[Report Helper]: {FFFFFF}Загружен',0xFF8000)
        sampAddChatMessage('[Report Helper]: {FFFFFF}Автор сидит тут: https://vk.com/maksytka_desighner', 0xFF8000)
    wait(-1)
    while true do
        local result, button, list, input = sampHasDialogRespond(990)
        if result then
            if button == 1 then
                if iText == 'Приветствую, начинаю работу по вашей жалобе.' then
                    sampSendChat('/re '..report.sID)
                end if iText == 'Передам ваш репорт' then
                    sampSendChat('/a « '..report.aName..'['..report.aID..'] » '..report.rText)
                end if iText == 'Приветствую, дядя Лэнс уже летит вам на помощь!' then
                    sampSendChat('/re '..report.aID)
                end
            end
        end
    end
end

function samp.onShowDialog(id, style, title, button1, button2, text)
    iText = sampGetCurrentDialogEditboxText()
    if string.find(text:gsub('%{......%}',''),'Имя: (.+)%[(%d+)%]\nНарушитель: (.+)%[(%d+)%]\nЖалоба: (.+)')then
        report.aName, report.aID, report.sName, report.sID, report.rText = string.match(text:gsub('%{......%}',''),"Имя: (.+)%[(%d+)%]\nНарушитель: (.+)%[(%d+)%]\nЖалоба: (.+)\nВведите")
    end
end
и чето это не работает
 
  • Злость
Реакции: qdIbp
Решение
ок спс

если шо тема еще не решена, у меня сервер решил поспать


Lua:
--информация
script_author('Lance_Sterling')

--библиотеки
require('lib.moonloader')
local vkeys = require('vkeys')
local rkeys = require('lib.rkeys')
local samp = require('lib.samp.events')
local inicfg = require('inicfg')
local imgui = require('imgui')
local imguiad = require('lib.imgui_addons')
local encoding = require("encoding")
encoding.default = 'CP1251'
u8 = encoding.UTF8
local memory = require('memory')
local ffi = require('ffi')
local GK = require('game.keys')
local dlstatus = require('moonloader').download_status
local Matrix3X3 = require ("matrix3x3")
local Vector3D = require ("vector3d")
local fa =...

Dmitriy Makarov

25.05.2021
Проверенный
2,505
1,134
Убери это:

После этого напиши это:
wait(0)

Это, по-моему, действует только на созданные тобой диалоговые окна, а не на серверные.
Можешь использовать событие onSendDialogResponse для таких целей. Тут небольшая информация есть:
 
  • Нравится
Реакции: ARMOR

Lance Sterling

Потрачен
Автор темы
140
8
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Убери это:



После этого напиши это:
wait(0)


Это, по-моему, действует только на созданные тобой диалоговые окна, а не на серверные.
Можешь использовать событие onSendDialogResponse для таких целей. Тут небольшая информация есть:
спасибо, но как проверить что диалог закрыт? мне надо после закрытия диалога проверить что введено в поле, потом если введен определенный текст тогда мне надо проиграть комманду в чат и айди нарушителя например
 

Dmitriy Makarov

25.05.2021
Проверенный
2,505
1,134
спасибо, но как проверить что диалог закрыт? мне надо после закрытия диалога проверить что введено в поле, потом если введен определенный текст тогда мне надо проиграть комманду в чат и айди нарушителя например
Ну, onSendDialogResponce работает так, как тебе нужно, по-моему. Я давно им не пользовался, поэтому не помню. Если я не ошибаюсь, он сработает тогда, когда ты введёшь что-то в поле и нажмёшь Enter, тем самым отправив ответ игроку.

Чтобы не заморачиваться, найди на этом форуме админ-хелпер и посмотри, как там реализована эта система.
 

Lance Sterling

Потрачен
Автор темы
140
8
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Ну, onSendDialogResponce работает так, как тебе нужно, по-моему. Я давно им не пользовался, поэтому не помню. Если я не ошибаюсь, он сработает тогда, когда ты введёшь что-то в поле и нажмёшь Enter, тем самым отправив ответ игроку.

Чтобы не заморачиваться, найди на этом форуме админ-хелпер и посмотри, как там реализована эта система.
ок спс

если шо тема еще не решена, у меня сервер решил поспать


Lua:
--информация
script_author('Lance_Sterling')

--библиотеки
require('lib.moonloader')
local vkeys = require('vkeys')
local rkeys = require('lib.rkeys')
local samp = require('lib.samp.events')
local inicfg = require('inicfg')
local imgui = require('imgui')
local imguiad = require('lib.imgui_addons')
local encoding = require("encoding")
encoding.default = 'CP1251'
u8 = encoding.UTF8
local memory = require('memory')
local ffi = require('ffi')
local GK = require('game.keys')
local dlstatus = require('moonloader').download_status
local Matrix3X3 = require ("matrix3x3")
local Vector3D = require ("vector3d")
local fa = require('fAwesome5')

--переменные
local report = {
    aName = '',
    aID = '',
    sName = '',
    sID = '',
    rText = ''
}

function main()
    repeat wait(0) until isSampAvailable()
        sampAddChatMessage('[Report Helper]: {FFFFFF}Загружен',0xFF8000)--начальное приветствие при загрузке скрипта
        sampAddChatMessage('[Report Helper]: {FFFFFF}Автор сидит тут: https://vk.com/maksytka_desighner', 0xFF8000)
        while true do
            wait(0)
        end
end

function samp.onShowDialog(id, style, title, button1, button2, text)
    iText = sampGetCurrentDialogEditboxText()--получаем информацию из поля ввода текста
    if string.find(text:gsub('%{......%}',''),'Имя: (.+)%[(%d+)%]\nНарушитель: (.+)%[(%d+)%]\nЖалоба: (.+)') then--перехватываем текст из диалога с ид 990
        report.aName, report.aID, report.sName, report.sID, report.rText = string.match(text:gsub('%{......%}',''),"Имя: (.+)%[(%d+)%]\nНарушитель: (.+)%[(%d+)%]\nЖалоба: (.+)\nВведите")--форматируем его
    end
end

function samp.onSendDialogResponse(id, button, list, input)
    if id == 990 then
        if input == 'Приветствую, начинаю работу по вашей жалобе.' then
            sampSendChat('/re '..report.sID)
        end if input == 'Передам ваш репорт' then
            sampSendChat('/a « '..report.aName..'['..report.aID..'] » '..report.rText)
        end if input == 'Приветствую, дядя Лэнс уже летит вам на помощь!' then
            sampSendChat('/re '..report.aID)
        end
    end
end

вот что у меня получилось, но это не работает увы
 
Последнее редактирование:
  • Эм
Реакции: qdIbp

qdIbp

Автор темы
Проверенный
1,444
1,186
ок спс

если шо тема еще не решена, у меня сервер решил поспать


Lua:
--информация
script_author('Lance_Sterling')

--библиотеки
require('lib.moonloader')
local vkeys = require('vkeys')
local rkeys = require('lib.rkeys')
local samp = require('lib.samp.events')
local inicfg = require('inicfg')
local imgui = require('imgui')
local imguiad = require('lib.imgui_addons')
local encoding = require("encoding")
encoding.default = 'CP1251'
u8 = encoding.UTF8
local memory = require('memory')
local ffi = require('ffi')
local GK = require('game.keys')
local dlstatus = require('moonloader').download_status
local Matrix3X3 = require ("matrix3x3")
local Vector3D = require ("vector3d")
local fa = require('fAwesome5')

--переменные
local report = {
    aName = '',
    aID = '',
    sName = '',
    sID = '',
    rText = ''
}

function main()
    repeat wait(0) until isSampAvailable()
        sampAddChatMessage('[Report Helper]: {FFFFFF}Загружен',0xFF8000)--начальное приветствие при загрузке скрипта
        sampAddChatMessage('[Report Helper]: {FFFFFF}Автор сидит тут: https://vk.com/maksytka_desighner', 0xFF8000)
        while true do
            wait(0)
        end
end

function samp.onShowDialog(id, style, title, button1, button2, text)
    iText = sampGetCurrentDialogEditboxText()--получаем информацию из поля ввода текста
    if string.find(text:gsub('%{......%}',''),'Имя: (.+)%[(%d+)%]\nНарушитель: (.+)%[(%d+)%]\nЖалоба: (.+)') then--перехватываем текст из диалога с ид 990
        report.aName, report.aID, report.sName, report.sID, report.rText = string.match(text:gsub('%{......%}',''),"Имя: (.+)%[(%d+)%]\nНарушитель: (.+)%[(%d+)%]\nЖалоба: (.+)\nВведите")--форматируем его
    end
end

function samp.onSendDialogResponse(id, button, list, input)
    if id == 990 then
        if input == 'Приветствую, начинаю работу по вашей жалобе.' then
            sampSendChat('/re '..report.sID)
        end if input == 'Передам ваш репорт' then
            sampSendChat('/a « '..report.aName..'['..report.aID..'] » '..report.rText)
        end if input == 'Приветствую, дядя Лэнс уже летит вам на помощь!' then
            sampSendChat('/re '..report.aID)
        end
    end
end

вот что у меня получилось, но это не работает увы
Господи что ты делаешь, мне больше всего интересно нахер те сток библиотек если ты их не используешь?
Lua:
script_author('Lance_Sterling')

require('lib.moonloader')
local vkeys = require('vkeys')
local rkeys = require('lib.rkeys')
local samp = require('lib.samp.events')

local inicfg = require('inicfg')

local imgui = require('imgui')
local imguiad = require('lib.imgui_addons')

local encoding = require("encoding")
encoding.default = 'CP1251'
u8 = encoding.UTF8

local memory = require('memory')
local ffi = require('ffi')
local GK = require('game.keys')
local hook = require("hooks")

local dlstatus = require('moonloader').download_status
local Matrix3X3 = require ("matrix3x3")
local Vector3D = require ("vector3d")
local fa = require('fAwesome5')

local report = {
    aName = '',
    aID = '',
    sName = '',
    sID = '',
    rText = ''
}

function main()
    repeat wait(0) until isSampAvailable()
        sampAddChatMessage('[Report Helper]: {FFFFFF}Загружен',0xFF8000)
        sampAddChatMessage('[Report Helper]: {FFFFFF}Автор сидит тут: https://vk.com/maksytka_desighner', 0xFF8000)
    wait(-1)
end

function samp.onShowDialog(id, style, title, button1, button2, text)
    iText = sampGetCurrentDialogEditboxText()
    if string.find(text:gsub('%{......%}',''),'Имя: (.+)%[(%d+)%]\nНарушитель: (.+)%[(%d+)%]\nЖалоба: (.+)')then
        report.aName, report.aID, report.sName, report.sID, report.rText = string.match(text:gsub('%{......%}',''),"Имя: (.+)%[(%d+)%]\nНарушитель: (.+)%[(%d+)%]\nЖалоба: (.+)\nВведите")
    end
end

function samp.onSendDialogResponse(id, button, list, input)
    if id == 990 then
        if input:match('Приветствую, начинаю работу по вашей жалобе%.') then
            sampAddChatMessage('/re '..report.sID)
        elseif input:match('Передам ваш репорт') then
            sampAddChatMessage('/a « '..report.aName..'%['..report.aID..'%] » '..report.rText)
        elseif input:match('Приветствую%, дядя Лэнс уже летит вам на помощь%!') then
            sampAddChatMessage('/re '..report.aID)
        end
    end
end
 
  • Нравится
Реакции: XRLM

Lance Sterling

Потрачен
Автор темы
140
8
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Господи что ты делаешь, мне больше всего интересно нахер те сток библиотек если ты их не используешь?
Lua:
script_author('Lance_Sterling')

require('lib.moonloader')
local vkeys = require('vkeys')
local rkeys = require('lib.rkeys')
local samp = require('lib.samp.events')

local inicfg = require('inicfg')

local imgui = require('imgui')
local imguiad = require('lib.imgui_addons')

local encoding = require("encoding")
encoding.default = 'CP1251'
u8 = encoding.UTF8

local memory = require('memory')
local ffi = require('ffi')
local GK = require('game.keys')
local hook = require("hooks")

local dlstatus = require('moonloader').download_status
local Matrix3X3 = require ("matrix3x3")
local Vector3D = require ("vector3d")
local fa = require('fAwesome5')

local report = {
    aName = '',
    aID = '',
    sName = '',
    sID = '',
    rText = ''
}

function main()
    repeat wait(0) until isSampAvailable()
        sampAddChatMessage('[Report Helper]: {FFFFFF}Загружен',0xFF8000)
        sampAddChatMessage('[Report Helper]: {FFFFFF}Автор сидит тут: https://vk.com/maksytka_desighner', 0xFF8000)
    wait(-1)
end

function samp.onShowDialog(id, style, title, button1, button2, text)
    iText = sampGetCurrentDialogEditboxText()
    if string.find(text:gsub('%{......%}',''),'Имя: (.+)%[(%d+)%]\nНарушитель: (.+)%[(%d+)%]\nЖалоба: (.+)')then
        report.aName, report.aID, report.sName, report.sID, report.rText = string.match(text:gsub('%{......%}',''),"Имя: (.+)%[(%d+)%]\nНарушитель: (.+)%[(%d+)%]\nЖалоба: (.+)\nВведите")
    end
end

function samp.onSendDialogResponse(id, button, list, input)
    if id == 990 then
        if input:match('Приветствую, начинаю работу по вашей жалобе%.') then
            sampAddChatMessage('/re '..report.sID)
        elseif input:match('Передам ваш репорт') then
            sampAddChatMessage('/a « '..report.aName..'%['..report.aID..'%] » '..report.rText)
        elseif input:match('Приветствую%, дядя Лэнс уже летит вам на помощь%!') then
            sampAddChatMessage('/re '..report.aID)
        end
    end
end
та работает все уже, не сцы