Очень просто но не так просто как кажется...

Freym

Известный
Автор темы
487
203
Версия MoonLoader
Другое
Хотел отправить диалог недавно, но вот внезапно афигел то что сервер не берет инфу от меня) Кто может решить данную загадку?)
1614480950824.png

id этого диалога 1430.
Пытаюсь вот отправить инфу о диалоге:

Lua:
function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand("test",testgg)
    while true do
        wait(0)
    end
end
function testgg()
    sampSendDialogResponse(1430, 1, 0, -1)
end
Но диалог не воспринимает вообще ничего...
Пытаюсь отправить на сервер инфу о другом диалоге /mm [DIALOG ID 722] Все работает.....:
1614481125662.png

Lua:
function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand("test",testgg)
    while true do
        wait(0)
    end
end
function testgg()
    sampSendDialogResponse(722, 1, 0, -1)
end
1614481197614.png
 
  • Нравится
Реакции: sweetest

Double Tap Inside

Известный
Проверенный
1,898
1,253
sampSendDialogResponse(1430, 1, 0, "")
Отправляй пустую строку последним аргументом. Если не поможет, то отправляй текст выбранного пункта без цветовых тегов.

sampSendDialogResponse(1430, 1, (ТУТА НОМЕР СТРОЧКИ, -1)
У тебя везде ноль стоит, а ноль это "Моя статистика", "Действия персонажа".. итд. Как ты понимаешь это не пункты для выбора (Я так думаю). Должны быть индексы от 1+

Также не стоит забывать, что диалог автоматически не закроется после того, как ты на него ответишь. Его надо либо скрывать return false из под events, либо из под main() закрывать с помощю sampCloseCurrentDialogWithButton(1\0)
 
  • Нравится
Реакции: Miron Diamond

Freym

Известный
Автор темы
487
203
sampSendDialogResponse(1430, 1, (ТУТА НОМЕР СТРОЧКИ, -1)
У тебя везде ноль стоит, а ноль это "Моя статистика", "Действия персонажа".. итд. Как ты понимаешь это не пункты для выбора (Я так думаю). Должны быть индексы от 1+
0 если что это и есть 1..... Почитай документацию.... Все я вызываю правильно, потрать 1 минуту зайди на арз, вставь мой код и сделай тоже самое... Ты удивишься.
 
  • Злость
Реакции: Double Tap Inside

Double Tap Inside

Известный
Проверенный
1,898
1,253
0 если что это и есть 1..... Почитай документацию.... Все я вызываю правильно, потрать 1 минуту зайди на арз, вставь мой код и сделай тоже самое... Ты удивишься.
сори, цвета слились, не увидел шо то первый пункт. Остальное помогло?

Я щас на аризоне, все моги скрипты работают с диалогами нормально
 

Freym

Известный
Автор темы
487
203
Кстате, может это кастомные диалоги из какой нибудь гамносборки от какого нибудь дапо? И по этому они не пашут? Я щас на аризоне, все моги скрипты работают с диалогами нормально.
Все диалоги работают нормально.... /trmenu единственный который не отправляется...

Lua:
sampSendChat('/trmenu')
wait(250)
sampSetCurrentDialogListItem(5)
sampCloseCurrentDialogWithButton(1)

Это я уже юзаю давно, оно багается, не удобно. Хочу что бы все было проперно.
 

Double Tap Inside

Известный
Проверенный
1,898
1,253
Все диалоги работают нормально.... /trmenu единственный который не отправляется...

Lua:
sampSendChat('/trmenu')
wait(250)
sampSetCurrentDialogListItem(5)
sampCloseCurrentDialogWithButton(1)

Это я уже юзаю давно, оно багается, не удобно. Хочу что бы все было проперно.
ты сделал "" вместо -1 как я сказал?
 

Vintik

Мечтатель
Проверенный
1,469
917
А ты уверен, что ID диалога 1430?
Lua:
local dialogID = 0

local sampev = require 'lib.samp.events'
function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
  dialogID = dialogId
  return true
end

function main()
  while not isSampAvailable() do wait(0) end
  sampRegisterChatCommand("test", function()
    sampSendDialogResponse(dialogID, 1, 0, nil)
    sampCloseCurrentDialogWithButton(1)
  end)
  wait(-1)
end
Попробуй так.
 
Последнее редактирование:

Freym

Известный
Автор темы
487
203
А ты уверен, что ID диалога 1430?
Lua:
local dialogID = 0

local sampev = require 'lib.samp.events'
function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
  dialogID = dialogId
  return true
end

function main()
  while not isSampAvailable() do wait(0) end
  sampRegisterChatCommand("test", function()
    sampSendDialogResponse(dialogID, 1, 0, nil)
    sampCloseCurrentDialogWithButton(1)
  end)
  wait(-1)
end
Попробуй так.
Не работает) Работает только sampCloseCurrentDialogWithButton(1)
1614634488401.png

Должна быть надпись "Эта функция работает только в авто"
 

Double Tap Inside

Известный
Проверенный
1,898
1,253
  • Нравится
Реакции: Vintik

Vintik

Мечтатель
Проверенный
1,469
917
Не бывает никакой магии.
Lua:
local sampev = require 'lib.samp.events'
function sampev.onSendDialogResponse(dialogId, button, listboxId, input)
    sampAddChatMessage('dialog ' .. dialogId .. 'closed, button: ' .. button .. ', listboxId: ' .. listboxId .. ', input: ' .. input)
end
И просто сам закрой диалог и напиши сюда, что тебе написало в чат.
 
Последнее редактирование:
  • Нравится
Реакции: Double Tap Inside