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

solution

Участник
Автор темы
79
12
Версия MoonLoader
Другое
Имеется два диалога на евыче под фаминвайт, раньше работало просто по Y, сейчас же еще два диалога поверх, сначала первый показывается с тайтлом Принять, и после него второй с тайтлом Подтверждение. В коде реализовано нажатие по проверке на тайтл, но почему-то нихуя не работает, пробовал по id тоже нихуя не жмется

Lua:
function sampev.onShowDialog(id, style, title, button1, button2, text)
    if title:find('Принять') then
        sendDialogResponse(id, 1, 0, '')
    end

    if title:find('Подтверждение') then
        sendDialogResponse(id, 1, 0, '')
    end
end


1735864816884.png
1735864877604.png
 
Решение
[20:55:46] dialogId: 20301 button: 1 listboxId: 65535 input:
Lua:
local sampev = require('samp.events')
require('addon')

function onLoad()
    print('Loaded script for dialog')
end

function sampev.onSendDialogResponse(dialogId, button, listboxId, input)
    local fmt = string.format(
        'Sended response: dialogId[%d] button[%d] listboxId[%d] input[%s]',
        dialogId, button, listboxId, input
    )
    print(fmt)
end

function sampev.onShowDialog(dialogId, style, title, b1, b2, text)
    title = title:gsub('{%x%x%x%x%x%x}', '')
    b1 = b1:gsub('{%x%x%x%x%x%x}', '')
    b2 = b2:gsub('{%x%x%x%x%x%x}', '')
    text = text:gsub('{%x%x%x%x%x%x}', '')
 
    local fmt1 = string.format('DEBUG-DIALOG: DialogId[%d]...

solution

Участник
Автор темы
79
12
Зайди с этим скриптом в самп и там просто прими в фаму и скинь скрин что выведет
[20:55:34] Dialog ID 20302 -- это первый диалог который "принять"
[20:55:41] dialogId: 20302 button: 1 listboxId: 0 input: Приглашение в семью
[20:55:41] Dialog ID 20301 -- второй диалог где "Подтверждение"
[20:55:45] Screenshot Taken - sa-mp-065.png
[20:55:46] dialogId: 20301 button: 1 listboxId: 65535 input:
[20:55:46] Ploho_tut передал реликвию семьи Begemot_toddi
 

Nichoo

Тот самый луа хакер
112
47
  • Нравится
Реакции: IlyaFontonov

Nichoo

Тот самый луа хакер
112
47

kyrtion

Известный
1,338
500
[20:55:46] dialogId: 20301 button: 1 listboxId: 65535 input:
Lua:
local sampev = require('samp.events')
require('addon')

function onLoad()
    print('Loaded script for dialog')
end

function sampev.onSendDialogResponse(dialogId, button, listboxId, input)
    local fmt = string.format(
        'Sended response: dialogId[%d] button[%d] listboxId[%d] input[%s]',
        dialogId, button, listboxId, input
    )
    print(fmt)
end

function sampev.onShowDialog(dialogId, style, title, b1, b2, text)
    title = title:gsub('{%x%x%x%x%x%x}', '')
    b1 = b1:gsub('{%x%x%x%x%x%x}', '')
    b2 = b2:gsub('{%x%x%x%x%x%x}', '')
    text = text:gsub('{%x%x%x%x%x%x}', '')
 
    local fmt1 = string.format('DEBUG-DIALOG: DialogId[%d] Style[%d]', dialogId, style)
    local fmt2 = string.format('DEBUG-DIALOG: Title[%s] B1[%s] B2[%s]', title, b1, b2)
    local fmt3 = string.format('DEBUG-DIALOG: Text[\n%s\n]', text)
 
    print(fmt1)
    print(fmt2)
    print(fmt3)
 
    if title == 'Принять' then
        print('Found dialog with title[Принять], sending response and hide')
        sendDialogResponse(dialogId, 1, 0, text:match('^.-\n(.-)\t'))
        -- выбирает первая линия. если стиль 4 или 5, добавляет +1, если выбрать 0 линия
        -- то выбираешь на 'Приглашение на семью' перед \t на первую линию, но не 'Предложение'
        return false
    elseif title == 'Подтверждение' and text:find('Вступить в семью') then
        print('Found dialog with title[Подтверждение] and text:find[Вступить в семью], sending response and hide')
        sendDialogResponse(dialogId, 1, 65535, '')
        return false
    end
end
Когда-нибудь играл на Evolve, и понял что обработчик диалог очень строгий.
Например, прописал /mm, открылся диалог. А у тебя желание хочется поговорить в чате с командой имея незакрытого диалога - сервер не примет RPC на отправку кмд, пока ты не еще закрыл диалог.
Такая же раздражается такой момент, если ты встал на СМИ, идешь на зону для доступа командой /n (Меню невс). Иногда сервер задерживается из-за тяжёлый прогресс обработчиков, через секунду 2-3 отправит игроку пустой диалог если попал в зоне.
А вот самп такой добренький, позволяет писать в чате не смотря на диалог
 
Последнее редактирование:
  • Вау
  • Влюблен
Реакции: solution и qdIbp

Похожие темы

  1. Ответы
    4
    Просмотры
    2K