Почему в диалог не вводится текст?

Статус
В этой теме нельзя размещать новые ответы.

EndoHokage

Активный
Автор темы
136
55
Оно закрывает диалог но не вводит текст


Lua:
script_name('FastMakeGun')
script_author('Endo')
script_description('Fast create a gun')

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

local main_color = 0x06DFFF
local makeDeagle = false

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

------------------------------------Command-------------------------------------
    sampRegisterChatCommand("gd", cmd_gd)
--------------------------------------------------------------------------------

    wait(-1)
end
---------------------------------------Command function-------------------------
function cmd_gd(arg)
    if #arg == 0 then
        sampAddChatMessage("AAA", main_color)
    else
        sampSendChat("/makegun")
        sampSendDialogResponse(888, 1, 1, '')
        sampSendDialogResponse(889, '', '', arg)
    end
    return arg
end

-----------------------------------------Samp.lua-------------------------------

function sampev.onShowDialog(id)
     if id == 889 then
         sampCloseCurrentDialogWithButton(1)
         return false
     end
end
 
  • Нравится
Реакции: Mamory
Решение
Lua:
script_name('FastMakeGun')
script_author('Endo')
script_description('Fast create a gun')

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

local main_color = 0x06DFFF
local makeDeagle = false

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

------------------------------------Command-------------------------------------
    sampRegisterChatCommand("gd", cmd_gd)
--------------------------------------------------------------------------------

    wait(-1)
end
---------------------------------------Command function-------------------------
function cmd_gd(arg)
    if #arg == 0 then
        sampAddChatMessage("AAA", main_color)...

maestto

Известный
93
115
Lua:
script_name('FastMakeGun')
script_author('Endo')
script_description('Fast create a gun')

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

local main_color = 0x06DFFF
local makeDeagle = false

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

------------------------------------Command-------------------------------------
    sampRegisterChatCommand("gd", cmd_gd)
--------------------------------------------------------------------------------

    wait(-1)
end
---------------------------------------Command function-------------------------
function cmd_gd(arg)
    if #arg == 0 then
        sampAddChatMessage("AAA", main_color)
    else
        sampSendChat("/makegun")
        arg2 = arg -- а может быть это и не нужно, я хз. просто по идее здесь arg как локальная переменная, использующаяся онли в этой функе
    end
end

-----------------------------------------Samp.lua-------------------------------

function sampev.onShowDialog(id)
     if id == 888 then
          sampSendDialogResponse(888, 1, 1, '')
          return false
     end
     if id == 889 then
         sampSendDialogResponse(889, 1, '', arg2)
         sampCloseCurrentDialogWithButton(1)
         return false
     end
end
 
Последнее редактирование:
  • Нравится
Реакции: EndoHokage

BIG BOG

Известный
654
141
Lua:
script_name('FastMakeGun')
script_author('Endo')
script_description('Fast create a gun')

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

local main_color = 0x06DFFF
local makeDeagle = false

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

------------------------------------Command-------------------------------------
    sampRegisterChatCommand("gd", cmd_gd)
--------------------------------------------------------------------------------

    wait(-1)
end
---------------------------------------Command function-------------------------
function cmd_gd(arg)
    if #arg == 0 then
        sampAddChatMessage("AAA", main_color)
    else
        sampSendChat("/makegun")
    end
    return arg
end

-----------------------------------------Samp.lua-------------------------------

function sampev.onShowDialog(id)
     if id == 889 then
         sampSendDialogResponse(888, 1, 1, '')
         sampSendDialogResponse(889, '', '', arg)
         sampCloseCurrentDialogWithButton(1)
         return false
     end
end
Ты хоть сам понял что написал?
Ты сделал проверку на создание 889диалога, хотя он появляется только после 888
 

EndoHokage

Активный
Автор темы
136
55
Lua:
script_name('FastMakeGun')
script_author('Endo')
script_description('Fast create a gun')

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

local main_color = 0x06DFFF
local makeDeagle = false

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

------------------------------------Command-------------------------------------
    sampRegisterChatCommand("gd", cmd_gd)
--------------------------------------------------------------------------------

    wait(-1)
end
---------------------------------------Command function-------------------------
function cmd_gd(arg)
    if #arg == 0 then
        sampAddChatMessage("AAA", main_color)
    else
        sampSendChat("/makegun")
        arg2 = arg -- а может быть это и не нужно, я хз. просто по идее здесь arg как локальная переменная, использующаяся онли в этой функе
    end
end

-----------------------------------------Samp.lua-------------------------------

function sampev.onShowDialog(id)
     if id == 889 then
         sampSendDialogResponse(888, 1, 1, '')
         sampSendDialogResponse(889, '', '', arg2)
         sampCloseCurrentDialogWithButton(1)
         return false
     end
end
Закрывает но не вводит
Ты хоть сам понял что написал?
Ты сделал проверку на создание 889диалога, хотя он появляется только после 888
я сделал как он, но проверку убрал
 

BIG BOG

Известный
654
141
[THANKS][/THANKS][THANKS]
Lua:
script_name('FastMakeGun')
script_author('BIG BOG')
script_description('Fast create a gun')

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

local main_color = 0x06DFFF
local makeDeagle = false

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

------------------------------------Command-------------------------------------
    sampRegisterChatCommand("gd", cmd_gd)
--------------------------------------------------------------------------------

    wait(-1)
end
---------------------------------------Command function-------------------------
function cmd_gd(arg)
    if #arg == 0 then
        sampAddChatMessage("AAA", main_color)
    else
        sampSendChat("/makegun")
    end
    return arg
end

-----------------------------------------Samp.lua-------------------------------

function sampev.onShowDialog(id)
     if id == 888 then
         sampSendDialogResponse(888, 1, 1, '')
         sampSendDialogResponse(889, '', '', arg)
         sampCloseCurrentDialogWithButton(1)
         return false
     end
end
[/THANKS]
 

maestto

Известный
93
115
так ты закрываешь диалог
ему это и надо, там идёт закрытие диалога после отправки рпц. я помню работал с диалогами и если отправить только рпц он почему-то все равно остаётсч открытым, а если закрыть ещё таким образом - всё ок.
 

BIG BOG

Известный
654
141
Lua:
script_name('FastMakeGun')
script_author('BIG BOG')
script_description('Fast create a gun')

require "lib.moonloader"

local main_color = 0x06DFFF
local makeDeagle = false

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

------------------------------------Command-------------------------------------
    sampRegisterChatCommand("gd", cmd_gd)
--------------------------------------------------------------------------------

    wait(-1)
end
---------------------------------------Command function-------------------------
function cmd_gd(arg)
    if #arg == 0 then
        sampAddChatMessage("AAA", main_color)
    else
        lua_thread.create(function()
            sampSendChat("/makegun")
            wait(300)
            sampSendDialogResponse(888, 1, 1, -1)
            wait(300)
            sampSendDialogResponse(889, -1, -1, "arg")
            wait(300)
            sampCloseCurrentDialogWithButton(1)
        end)
    end
end
так работает?
 

maestto

Известный
93
115
Lua:
script_name('FastMakeGun')
script_author('BIG BOG')
script_description('Fast create a gun')

require "lib.moonloader"

local main_color = 0x06DFFF
local makeDeagle = false

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

------------------------------------Command-------------------------------------
    sampRegisterChatCommand("gd", cmd_gd)
--------------------------------------------------------------------------------

    wait(-1)
end
---------------------------------------Command function-------------------------
function cmd_gd(arg)
    if #arg == 0 then
        sampAddChatMessage("AAA", main_color)
    else
        lua_thread.create(function()
            sampSendChat("/makegun")
            wait(300)
            sampSendDialogResponse(888, 1, 1, -1)
            wait(300)
            sampSendDialogResponse(889, -1, -1, "arg")
            wait(300)
            sampCloseCurrentDialogWithButton(1)
        end)
    end
end
так работает?
я уже написал рабочий вариант, а это какой-то бред. смешной код.
 

EndoHokage

Активный
Автор темы
136
55
Lua:
script_name('FastMakeGun')
script_author('Endo')
script_description('Fast create a gun')

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

local main_color = 0x06DFFF
local makeDeagle = false

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

------------------------------------Command-------------------------------------
    sampRegisterChatCommand("gd", cmd_gd)
--------------------------------------------------------------------------------

    wait(-1)
end
---------------------------------------Command function-------------------------
function cmd_gd(arg)
    if #arg == 0 then
        sampAddChatMessage("AAA", main_color)
    else
        sampSendChat("/makegun")
        arg2 = arg -- а может быть это и не нужно, я хз. просто по идее здесь arg как локальная переменная, использующаяся онли в этой функе
    end
end

-----------------------------------------Samp.lua-------------------------------

function sampev.onShowDialog(id)
     if id == 888 then
          sampSendDialogResponse(888, 1, 1, '')
          return false
     end
     if id == 889 then
         sampSendDialogResponse(889, 1, '', arg2)
         sampCloseCurrentDialogWithButton(1)
         return false
     end
end
Все работает
Lua:
script_name('FastMakeGun')
script_author('BIG BOG')
script_description('Fast create a gun')

require "lib.moonloader"

local main_color = 0x06DFFF
local makeDeagle = false

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

------------------------------------Command-------------------------------------
    sampRegisterChatCommand("gd", cmd_gd)
--------------------------------------------------------------------------------

    wait(-1)
end
---------------------------------------Command function-------------------------
function cmd_gd(arg)
    if #arg == 0 then
        sampAddChatMessage("AAA", main_color)
    else
        lua_thread.create(function()
            sampSendChat("/makegun")
            wait(300)
            sampSendDialogResponse(888, 1, 1, -1)
            wait(300)
            sampSendDialogResponse(889, -1, -1, "arg")
            wait(300)
            sampCloseCurrentDialogWithButton(1)
        end)
    end
end
так работает?
Ты "arg" как стринг юзаешь, мне нужно что бы диалог скрывался
 
  • Нравится
Реакции: Mamory

BIG BOG

Известный
654
141
я уже написал рабочий вариант, а это какой-то бред
бред твой вариант как минимум потому, что в нём нет проверки на активацию, соответственно скрипт будет слать ответ на диалог с этим идом даже если скрипт деактивирован
Все работает

Ты "arg" как стринг юзаешь, мне нужно что бы диалог скрывался
немного не понял тебя...
 

maestto

Известный
93
115
это не бред как минимум потому, что в твоём варианте нет проверки на активацию, соответственно скрипт будет слать ответ на диалог с этим идом даже если скрипт деактивирован
он не просил этого делать. это уже его проблема, может быть ему так нужно. твой вариант очень смешной и костыльный.
 
  • Нравится
Реакции: EndoHokage

BIG BOG

Известный
654
141
так будет лучше
Lua:
script_name('FastMakeGun')
script_author('Endo')
script_description('Fast create a gun')

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

local main_color = 0x06DFFF
local makeDeagle = false
local active = false
function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

------------------------------------Command-------------------------------------
    sampRegisterChatCommand("gd", cmd_gd)
--------------------------------------------------------------------------------

    wait(-1)
end
---------------------------------------Command function-------------------------
function cmd_gd(arg)
    if #arg == 0 then
        sampAddChatMessage("AAA", main_color)
    else
        sampSendChat("/makegun")

        arg2 = arg -- а может быть это и не нужно, я хз. просто по идее здесь arg как локальная переменная, использующаяся онли в этой функе
        active = true
    end
end

-----------------------------------------Samp.lua-------------------------------

function sampev.onShowDialog(id)
     if active and id == 888 then
          sampSendDialogResponse(888, 1, 1, '')
          return false
     end
     if active and id == 889 then
         sampSendDialogResponse(889, 1, '', arg2)
         sampCloseCurrentDialogWithButton(1)
        active = false
         return false
     end
end
 
Статус
В этой теме нельзя размещать новые ответы.