Организация

Mercyline

Новичок
Автор темы
18
0
Версия MoonLoader
Другое
Здравстувйте, подскажите пожалуйста как узнать в какой организации находится плеер, чтобы игрок не чувствовал какие-то манипуляции.
В данный момент я сделал такой костыль, но у игрока видно как он пробивает /stats
код:
     while true do
        wait(0)
        if os.time() - lastStatsUpdate >= 900 then
            sampSendChat('/stats')
            local text = sampGetDialogText()
            wait(100)
            sampCloseCurrentDialogWithButton(0)
            for line in text:gmatch("{FFFFFF}([^\n]*)") do
                if line:find("Организация:") then
                    sampAddChatMessage('{EEF9FF}' .. string.match(line, "%[(.-)%]"), -1)
                end
            end
            lastStatsUpdate = os.time()
        end
    end

@chapo @Cosmo help pls
 

LdKrs

Участник
27
32
Ловить пакеты.


Lua:
local sampev = require("lib.samp.events")

local catch = true

function updateOrg()
    catch = true
    sampSendChat('/stats')
end
function sampev.onShowDialog(dialogId,style,title,button1,button2,text)
    if dialogId == 0 then -- проверяем нужный ли диалог, id заменить на нужный вам
        if catch then
            for line in text:gmatch("{FFFFFF}([^\n]*)") do -- ищем нужный текст в диалоге
                if line:find("Организация:") then
                    sampAddChatMessage('{EEF9FF}' .. string.match(line, "%[(.-)%]"), -1)
                end
            end
            catch = false
            return false -- не показываем диалог
        end
    end
end
 
  • Нравится
Реакции: kyrtion

kyrtion

Известный
978
355
Lua:
local sampev = require('samp.events')

local checked = true

function main()
    wait(-1)
end

local function updateOrg()
    checked = true
    sampSendChat('/stats')
end

function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    if dialogId == 0 and checked then -- проверяем нужный ли диалог, id заменить на нужный вам
        text = text:gsub('{%x%x%x%x%x%x}', '') -- убираем хексы, нафиг никому не нужны для парса

        for line in text:gmatch('[^\n]+') do -- зациклит по строках в тексте
            if line:find('Организация') then
                local org = line:match('%[(.-)%]')
                if org and #org ~= 0 then
                    local fmt = string.format('Найдена организация в статистике: "%s"', line)
                    print(fmt) -- для проба, а затем составишь регулярное выражение в line:find(...)
                end
            end
        end

       checked = false
       sampCloseCurrentDialogWithButton(1) -- нажимаем чтобы не застрять диалог, хотя если скрыто
       return false -- не показываем диалог
    end
end
 
  • Нравится
Реакции: LdKrs