Кто может помочь с луашкой?

martinvisconti

Участник
Автор темы
47
5
Версия MoonLoader
.026-beta
Написал простую луашку для ловли страховок в СТК.
Все работает, быстро ловит заявки.
Но хотел сделать так чтобы скрипт отключался после словленой заявки.

function sampev.onServerMessage(color, text)
if enabled and text:match("Вы приняли заявление №%d+ заявление на рассмотрение") then
enabled = false
sampAddChatMessage("{FF8888}[STKHelper] Скрипт автоматически выключен: Заявление принято.", -1)
end
end

ЧатГПТ выдал мне такую версию, но она не работает.
Кто может помочь с этим?
Сразу скажу что я полный 0 в скриптах и впервые попробовал написать скрипт для себя. Так что не кидайтесь палками. Буду благодарен за помощь.
 

martinvisconti

Участник
Автор темы
47
5
уверен что текст так и выглядит?
покажи скриншотом из игры что выводит
1746708154132.png
 

plalkeo

Известный
845
342
замени в text:match(ВОТ ЭТО) на "Вы приняли заявление №%d+ на рассмотрение%."


Lua:
function sampev.onServerMessage(color, text)
    if enabled and text:match("Вы приняли заявление №%d+ на рассмотрение%.") then
        enabled = false
        sampAddChatMessage("{FF8888}[STKHelper] Скрипт автоматически выключен: Заявление принято.", -1)
    end
end
 
  • Нравится
Реакции: stool

stool

Известный
464
378

что скажет?
Lua:
local ev = require 'lib.samp.events'

function ev.onServerMessage(color, text)
    if text.find("ы приняли заявление №\d+ на рассмотрение.") then
        print("privet", text)
    end
end

function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end
    while not isSampAvailable() do    
        wait(100)
    end
    sampAddChatMessage("работаем", -1)
    wait(-1)
end

вот эту хуйню убери и попробуй убрать заглавную "В", я не знаю что за магия, но у меня обычно без верхних регистров всё пашет


а еще проследи чтобы скрипт сохранялся в кодировке Windows-1251
 

martinvisconti

Участник
Автор темы
47
5
замени в text:match(ВОТ ЭТО) на "Вы приняли заявление №%d+ на рассмотрение%."


Lua:
function sampev.onServerMessage(color, text)
    if enabled and text:match("Вы приняли заявление №%d+ на рассмотрение%.") then
        enabled = false
        sampAddChatMessage("{FF8888}[STKHelper] Скрипт автоматически выключен: Заявление принято.", -1)
    end
end
Спасибо большое!
1746709263984.png
 
  • Нравится
Реакции: stool

plalkeo

Известный
845
342
вот эту хуйню убери и попробуй убрать заглавную "В", я не знаю что за магия, но у меня обычно без верхних регистров всё пашет
я в онлайн компилере протестировал перед ответом, выдало как надо)
а так да, порой бывает магия что не срабатывает по неизведанным причинам
 
  • Нравится
Реакции: stool

martinvisconti

Участник
Автор темы
47
5
Еще вопрос, если кто знает. Как реализовать автозаполнение в этих полях?
Чтобы оно само вписывало имя, тип страхования и номер тикета
1746712572473.png


Вот диалоги из консоли сампфункса, которые нужно автозаполнять.

Там где "НИК ИГРОКА" "ТИП СТРАХОВАНИЯ" "НОМЕР ЗАЯВКИ" оно дает текст который нужно будет вписать
К примеру
Sam_Mason
Vehicle
5324


Диалоги для автоввода:
 Dialog shown!
[DialogInfo]: Dialog ID: 15111
[DialogInfo]: Dialog Title: [BFBBBA]Заполнение документа
[DialogInfo]: Dialog text: [ffffff]Введите ник клиента:
[ffff00] НИК ИГРОКА
[DialogInfo]: Dialog Style: 1
[DialogInfo]: Dialog Button1: Ввод
[DialogInfo]: Dialog Button2:
[ML] (script) DialogInfo:
 
 Dialog shown!
[DialogInfo]: Dialog ID: 15112
[DialogInfo]: Dialog Title: [BFBBBA]Заполнение документа
[DialogInfo]: Dialog text: [ffffff]Укажите тип имущества:
[ffff00] ТИП БИЗНЕСА
[DialogInfo]: Dialog Style: 1
[DialogInfo]: Dialog Button1: Ввод
[DialogInfo]: Dialog Button2:
[ML] (script) DialogInfo:
 
 Dialog shown!
[DialogInfo]: Dialog ID: 15113
[DialogInfo]: Dialog Title: [BFBBBA]Заполнение документа
[DialogInfo]: Dialog text: [ffffff]Укажите номер заявки:
[ffff00] НОМЕР ЗАЯВКИ
[DialogInfo]: Dialog Style: 1
[DialogInfo]: Dialog Button1: Ввод
[DialogInfo]: Dialog Button2:
[ML] (script) DialogInfo:
 
Последнее редактирование:

fokichevskiy

Известный
490
278
Еще вопрос, если кто знает. Как реализовать автозаполнение в этих полях?
Чтобы оно само вписывало имя, тип страхования и номер тикета
Lua:
function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    if dialogId == 15111 then
        local nick = text:match('%[ffff00%] (%w+_%w+)')
        sampSendDialogResponse(dialogId, 1, 0, nick)
        sampAddChatMessage('Отправили: ' .. nick, -1)
        return false
    elseif dialogId == 15112 then
        local biztype = text:match('%[ffff00%] (.+)')
        sampSendDialogResponse(dialogId, 1, 0, biztype)
        sampAddChatMessage('Отправили: ' .. biztype, -1)
        return false
    elseif dialogId == 15113 then
        local number = text:match('%[ffff00%] (%d+)')
        sampSendDialogResponse(dialogId, 1, 0, number)
        sampAddChatMessage('Отправили: ' .. number, -1)
        return false
    end
end
 

plalkeo

Известный
845
342
Lua:
function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    if dialogId == 15111 then
        local nick = text:match('%[ffff00%] (%w+_%w+)')
        sampSendDialogResponse(dialogId, 1, 0, nick)
        sampAddChatMessage('Отправили: ' .. nick, -1)
        return false
    elseif dialogId == 15112 then
        local biztype = text:match('%[ffff00%] (.+)')
        sampSendDialogResponse(dialogId, 1, 0, biztype)
        sampAddChatMessage('Отправили: ' .. biztype, -1)
        return false
    elseif dialogId == 15113 then
        local number = text:match('%[ffff00%] (%d+)')
        sampSendDialogResponse(dialogId, 1, 0, number)
        sampAddChatMessage('Отправили: ' .. number, -1)
        return false
    end
end
вот только надо все [ и ] заменить на { и } соответственно в HEX-цветах
 

plalkeo

Известный
845
342
ну я делал по той информации, которой он предоставил
ну логично что скрипт на инфу диалогов выведет цвета в [] а не {} иначе оно бы просто покрасилось если смотреть через консоль)
 
  • Нравится
Реакции: fokichevskiy