Работа Lua по диалогам. Нужна помощь экспертов.

-MaDnEsS-

Известный
Автор темы
189
36
Версия MoonLoader
.026-beta
Суть такова, по активации кнопки, скрипт срабатывает и моментально по диалогам идёт путь к настройке описания, там он должен вписать текст описания, после чего закрыть все окна.
В самом скрипте готовый вариант текста для ввода поля "Описание персонажа"
Начало я сделал хорошо в коде, а дальше как закончить не знаю.
Сделайте так, чтобы скрипт работал только по активации кнопки, если открою диалоговые окна командой /settings скрипт не должен работать по нему. (Только по активации кнопки работало)
У меня в данный момент, он сразу работает, если увидит открытый диалог.
вот начало кода:
Код:
local sampev = require 'lib.samp.events'

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

    if isKeyJustPressed(35) then
            sampSendChat("/settings")
    end
function sampev.onShowDialog(id, style, title, button1, button2, text)
    if title:find("Личные настройки") and text:find("Настройки персонажа") then
        sampSendDialogResponse(id, 1, 8, nil)
    end
    if title:find("Настройки персонажа") and text:find("Описание персонажа") then
        sampSendDialogResponse(id, 1, 2, nil)
    end
end

    end
end
Код:
Мне осталось вписать ещё 2 диалога следующих.
Тут всписать какой диалог + добавление текста в поле "11111" , после чего должен нажать "применить"

Ниже я покажу видео, как должно выглядеть:
 
Последнее редактирование:
  • Злость
  • Эм
Реакции: percheklii и YarikVL

FixZer

Активный
126
36
Суть такова, по активации кнопки, скрипт срабатывает и моментально по диалогам идёт путь к настройке описания, там он должен вписать текст описания, после чего закрыть все окна.
В самом скрипте готовый вариант текста для ввода поля "Описание персонажа"
Начало я сделал хорошо в коде, а дальше как закончить не знаю.
Сделайте так, чтобы скрипт работал только по активации кнопки, если открою диалоговые окна командой /settings скрипт не должен работать по нему. (Только по активации кнопки работало)
У меня в данный момент, он сразу работает, если увидит открытый диалог.
вот начало кода:
Код:
local sampev = require 'lib.samp.events'

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

    if isKeyJustPressed(35) then
            sampSendChat("/settings")
    end
function sampev.onShowDialog(id, style, title, button1, button2, text)
    if title:find("Личные настройки") and text:find("Настройки персонажа") then
        sampSendDialogResponse(id, 1, 8, nil)
    end
    if title:find("Настройки персонажа") and text:find("Описание персонажа") then
        sampSendDialogResponse(id, 1, 2, nil)
    end
end

    end
end
Код:
Мне осталось вписать ещё 2 диалога следующих.
Тут всписать какой диалог + добавление текста в поле "11111" , после чего должен нажать "применить"

Ниже я покажу видео, как должно выглядеть:

Добрый вечер, вот это работает, но только не закрывается не в каком случае последнее окно, где написана информация, что мы поменяли описание персонажа. Рад был помочь.

Тест 0.1:
require "lib.moonloader"
local sampev = require 'lib.samp.events'
local keys = require 'vkeys'

local textinfo = 'Ушёл смотреть ютуб'
local active = false

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

    while true do
      wait(0)
        if isKeyJustPressed(keys.VK_5) then
            if active == false then
                active = true
                sampAddChatMessage("Скрипт активировался!", -1)
                sampSendChat("/settings")
            end
        end
    end
end

function sampev.onShowDialog(id, style, title, button1, button2, text)
    if active == true then
        if title:find("Личные настройки") and text:find("Настройки персонажа") then sampSendDialogResponse(id, 1, 8, nil) end
        if title:find("Настройки персонажа") and text:find("Описание персонажа") then
             sampSendDialogResponse(id, 1, 2, nil)
             sampSendDialogResponse(15016, 1, nil, textinfo)
             active = false
        end
    end
end
 
  • Нравится
  • Влюблен
Реакции: -MaDnEsS- и de_clain