Работа с диалогами

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

ZviNK

Новичок
Автор темы
11
5
Версия MoonLoader
.026-beta
Есть скрипт, который с помощью хука перерисовывает диалоговое окно.
Скрипт закодирован и прочитать содержимое - не является возможным(простым путем)
В связи с этим ивент onShowDialog не ловит данное диалоговое окно.
Как можно отловить появление этого диалогового окна?

Пример диалога который я имею ввиду:
maxresdefault.jpg
 
Решение
потестил на двух скриптах:
dialog1:
local sampev = require("samp.events")

function main()
  if not isSampLoaded() or not isSampfuncsLoaded() then return end
  repeat wait(0) until isSampAvailable()

  wait(-1)
end

function sampev.onShowDialog(dialogId)
  sampAddChatMessage(thisScript().name .. " " .. dialogId, -1)
end
dialog2:
local sampev = require("samp.events")

function main()
  if not isSampLoaded() or not isSampfuncsLoaded() then return end
  repeat wait(0) until isSampAvailable()

  wait(-1)
end

function sampev.onShowDialog(dialogId)
  sampAddChatMessage(thisScript().name .. " " .. dialogId, -1)
  return false
end


в чате:
1687260041095.png

сам диалог не появляется

если игнорировать rpc из первого скрипта, то ко второму он не проходит...

ZviNK

Новичок
Автор темы
11
5
скрипт в папке должен находится выше (по алфавиту сортируется), чем тот, что хукает этот диалог. тогда он получит rpc раньше
Переместил выше названием файла - не помогло. Все равно
Код:
require 'lib.moonloader'
local sampev = require "lib.samp.events"

function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    sampAddChatMessage('dialogId: '.. dialogId,-1)
end

Не отрабатывает именно на том диалоге, который ловится другим скриптом.
 

wojciech?

Известный
Проверенный
349
230
потестил на двух скриптах:
dialog1:
local sampev = require("samp.events")

function main()
  if not isSampLoaded() or not isSampfuncsLoaded() then return end
  repeat wait(0) until isSampAvailable()

  wait(-1)
end

function sampev.onShowDialog(dialogId)
  sampAddChatMessage(thisScript().name .. " " .. dialogId, -1)
end
dialog2:
local sampev = require("samp.events")

function main()
  if not isSampLoaded() or not isSampfuncsLoaded() then return end
  repeat wait(0) until isSampAvailable()

  wait(-1)
end

function sampev.onShowDialog(dialogId)
  sampAddChatMessage(thisScript().name .. " " .. dialogId, -1)
  return false
end


в чате:
1687260041095.png

сам диалог не появляется

если игнорировать rpc из первого скрипта, то ко второму он не проходит. но, если указать свойство script_name у второго, чтобы оно алфавитно было выше первого, то rpc проходит в оба (не смотря на то, что в первом возвращается false и он дальше никуда не пойдет).

мейби стоит учесть и это
 
  • Нравится
Реакции: ZviNK
Статус
В этой теме нельзя размещать новые ответы.