Не понимаю как реализовать функцию с printString

Brooklyn123

Новичок
Автор темы
24
0
Версия MoonLoader
.027.0-preview
У меня есть код, который ловит репорт, хотелось бы чтобы в части с функцией, было 2 printString
1) который активируется, когда репорт словлен
Lua:
if text:find('%[(%W+)%] от (%w+_%w+)%[(%d+)%]:') and active and not sampIsCursorActive() then
        sampSendChat('/ot')
        active = not active
        printString('rep: ~g~poimal', 1500)
    end

2) когда репорт не удалось словить
Как это можно реализовать?

Полный код

Lua:
require 'lib.moonloader'
local sampev = require 'lib.samp.events'
local vkeys = require 'vkeys'

local active = false

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

    sampAddChatMessage('{7442c8}[rep]: {87CEFA}Скрипт загружен!', -1)

    while true do
        wait(0)
        if isKeyJustPressed(0x73) and not isSampfuncsConsoleActive() and not sampIsChatInputActive() and not sampIsDialogActive() and not isPauseMenuActive() then
            active = not active
            printString('rep: '..(active and '~g~activated' or '~r~disabled'), 1500)
        end
    end
end

function sampev.onServerMessage(color, text)
    if text:find('%[(%W+)%] от (%w+_%w+)%[(%d+)%]:') and active and not sampIsCursorActive() then
        sampSendChat('/ot')
        active = not active
        printString('rep: ~g~poimal', 1500)
    end
end
 
Решение
function onReceivePacket(id, bs)
local v = {}
for i = 1, raknetBitStreamGetNumberOfBytesUsed(bs) do
table.insert(v, raknetBitStreamReadInt8(bs))
end
raknetBitStreamResetReadPointer(bs)
raknetBitStreamIgnoreBits(bs, 8)
if raknetBitStreamReadInt8(bs) then
raknetBitStreamIgnoreBits(bs, 32)
local len = raknetBitStreamReadInt32(bs)
if len > 0 and len < 1024 then
local text = raknetBitStreamReadString(bs, len)
if text:find('Никто из игроков не задавал') and active then
printStringNow('Oh... ~r~Ne poimal')
end
end
end
end

Brooklyn123

Новичок
Автор темы
24
0
ну логично что добавить если диалог показался то написать что словил, а если цеф то не словил
у меня получается так, что он сначала пишет rep: poimal, через секунду заменяется oh.. ne poimal и не возвращается в состояние актива :(
 

Brooklyn123

Новичок
Автор темы
24
0

Slavka Priore

Активный
114
38
function onReceivePacket(id, bs)
local v = {}
for i = 1, raknetBitStreamGetNumberOfBytesUsed(bs) do
table.insert(v, raknetBitStreamReadInt8(bs))
end
raknetBitStreamResetReadPointer(bs)
raknetBitStreamIgnoreBits(bs, 8)
if raknetBitStreamReadInt8(bs) then
raknetBitStreamIgnoreBits(bs, 32)
local len = raknetBitStreamReadInt32(bs)
if len > 0 and len < 1024 then
local text = raknetBitStreamReadString(bs, len)
if text:find('Никто из игроков не задавал') and active then
printStringNow('Oh... ~r~Ne poimal')
end
end
end
end
function sampev.onShowDialog(id, style, title, button1, button2, text)
if text:find('Жалоба/Вопрос от') and active then
printStringNow('Oh... ~r~poimal')
end
end
 
  • Нравится
Реакции: Brooklyn123

Slavka Priore

Активный
114
38

Brooklyn123

Новичок
Автор темы
24
0
Так пакет диалога тебе же прилетает всеровно, просто он скриптом другим скрывается
так проблема/прикол в том, что когда он без перекрытия - работает, а с перекрытием нет

так проблема/прикол в том, что когда он без перекрытия - работает, а с перекрытием нет
можно ли это реализовать с ID диалога?
 

Slavka Priore

Активный
114
38
так проблема/прикол в том, что когда он без перекрытия - работает, а с перекрытием нет


можно ли это реализовать с ID диалога?
function sampev.onShowDialog(id, style, title, button1, button2, text)
if text:find('Жалоба/Вопрос от') and active then
sampAddChatMessage(id, -1)
end
end
Узнаешь айди и потом
function sampev.onShowDialog(id, style, title, button1, button2, text)
if id == айди then
printStringNow('Oh... ~r~poimal')
active = not active
end
end
 
  • Нравится
Реакции: MrRazrab

Slavka Priore

Активный
114
38
опять та же проблема, в диалоговом меню все в порядке и исправно работает, а когда включаю от аризона тулс - не работает

Попробуй добавить в названии твоего скрипта вначале !
 

Вложения

  • Screenshot_2024-07-23-20-17-31-774_org.telegram.messenger.jpg
    Screenshot_2024-07-23-20-17-31-774_org.telegram.messenger.jpg
    909.1 KB · Просмотры: 7

Slavka Priore

Активный
114
38
я правильно понял, что из-за аризона тулса не будет работать нормально?
В названии скрипта вначале добавь !, чтобы он в мунлоадере был выше и может быть заработает, но не точно