Как выводить значение с чата на экран

.KOHTOP.

Активный
Автор темы
226
35
Версия MoonLoader
.027.0-preview
1684235069560.png

Мне нужно вывести вот эти две строки и сделать их как-бы текстдравоми
Тобиж сделать чекер админов


И ещё, при создании статы столкнулся с проблемой, так и не додумался, как её решить
1684235176339.png

1684235224951.png

1684235276723.png

Из скринов выше мы видим, что есть организации на русском языке, а есть на английском. Моя проблема в том, что я хз, как записать переменную.
Так же мне нужно получить именно цифру с должности, а как это сделать я хз...
И ещё если у игрока нету организации, то и нету ранга и как я думаю скрипт будет крашится т.к не может найти переменную, которую ему задали

И ещё если записывать локальную переменную без кодировки, то тогда и без кодировки будет выводиться в имгуи окно, как это пофиксить?

script:
local org = 'Не имеется'

imgui.Text('Организация ' .. org .. ' ' .fa.USER)
 
  • Нравится
Реакции: joumey
Решение
Мне нужно вывести вот эти две строки и сделать их как-бы текстдравоми
Тобиж сделать чекер админов
Из скринов выше мы видим, что есть организации на русском языке, а есть на английском. Моя проблема в том, что я хз, как записать переменную.
Так же мне нужно получить именно цифру с должности, а как это сделать я хз...
И ещё если у игрока нету организации, то и нету ранга и как я думаю скрипт будет крашится т.к не может найти переменную, которую ему задали
регулярные выражения и match
И ещё если записывать локальную переменную без кодировки, то тогда и без кодировки будет выводиться в имгуи окно, как это пофиксить?
...

joumey

Активный
195
44
Мне нужно вывести вот эти две строки и сделать их как-бы текстдравоми
Тобиж сделать чекер админов
Из скринов выше мы видим, что есть организации на русском языке, а есть на английском. Моя проблема в том, что я хз, как записать переменную.
Так же мне нужно получить именно цифру с должности, а как это сделать я хз...
И ещё если у игрока нету организации, то и нету ранга и как я думаю скрипт будет крашится т.к не может найти переменную, которую ему задали
регулярные выражения и match
И ещё если записывать локальную переменную без кодировки, то тогда и без кодировки будет выводиться в имгуи окно, как это пофиксить?
imgui.Text(u8'Организация ' .. u8(org) .. ' ' .fa.USER)
 

.KOHTOP.

Активный
Автор темы
226
35
1684238255725.png

1684238284926.png


Я тупой, как это вывести в переменную? Что не так в коде?
Lua:
            if line:find('Фракция: %[%d+%]') then
                org = line:match('Организация: %[%D%l+]')
                sampCloseCurrentDialogWithButton(0)
                check = false
            end


регулярные выражения и match

imgui.Text(u8'Организация ' .. u8(org) .. ' ' .fa.USER)
[15:01:10.294199] (script) Admin Tools: Скрипт загружен!
[15:01:11.052114] (error) Admin Tools: cannot resume non-suspended coroutine
stack traceback:
[C]: in function 'renderFontDrawText'
...TOP\Desktop\HYPE GRAY GTA 2023\moonloader\script (1).lua:632: in function <...TOP\Desktop\HYPE GRAY GTA 2023\moonloader\script (1).lua:621>
[15:01:11.053106] (error) Admin Tools: Script died due to an error. (0F5ED5AC)
 

chromiusj

Известный
Модератор
5,656
3,959
Посмотреть вложение 201716
Посмотреть вложение 201717

Я тупой, как это вывести в переменную? Что не так в коде?
Lua:
            if line:find('Фракция: %[%d+%]') then
                org = line:match('Организация: %[%D%l+]')
                sampCloseCurrentDialogWithButton(0)
                check = false
            end
Так фракция или организация
Посмотри этот гайд,там все объяснено:

1684238531616.png
 

.KOHTOP.

Активный
Автор темы
226
35
Так фракция или организация
Посмотри этот гайд,там все объяснено:

Посмотреть вложение 201718
А с renderTextDrawFond что делать?
 

chromiusj

Известный
Модератор
5,656
3,959
А с renderTextDrawFond что делать?
Я ебу,почему у тебя не выводит
Lua:
local font_flag = require('moonloader').font_flag
local my_font = renderCreateFont('Arial', 12, font_flag.BOLD + font_flag.SHADOW)
local ev = require 'lib.samp.events'
local org = ''

function main()
    while true do
        renderFontDrawText(my_font, "Организация " .. org, 10, 400, 0xFFFFFFFF)
        wait(0)
    end
end

function ev.onShowDialog(dialogId, style, title, button1, button2, text)
    for line in text:gmatch("[^\n]+") do
        if line:find('{.-}Организация: {.-}%[(.+)%]') then
            org = line:match('{.-}Организация: {.-}%[(.+)%]')
        end
    end
end
1684240880369.png
 
  • Нравится
Реакции: Vespan

.KOHTOP.

Активный
Автор темы
226
35
Я ебу,почему у тебя не выводит
Lua:
local font_flag = require('moonloader').font_flag
local my_font = renderCreateFont('Arial', 12, font_flag.BOLD + font_flag.SHADOW)
local ev = require 'lib.samp.events'
local org = ''

function main()
    while true do
        renderFontDrawText(my_font, "Организация " .. org, 10, 400, 0xFFFFFFFF)
        wait(0)
    end
end

function ev.onShowDialog(dialogId, style, title, button1, button2, text)
    for line in text:gmatch("[^\n]+") do
        if line:find('{.-}Организация: {.-}%[(.+)%]') then
            org = line:match('{.-}Организация: {.-}%[(.+)%]')
        end
    end
end
Посмотреть вложение 201725
1684241786852.png
 

siwage

Активный
193
67
Я конечно не уверен, но ради эксперемента можно попробовать.

code:
local font_flag = require('moonloader').font_flag
local my_font = renderCreateFont('Arial', 12, font_flag.BOLD + font_flag.SHADOW)
local ev = require 'lib.samp.events'
local org = ''

function main()
    while true do
        wait(0)
    end
end

function ev.onShowDialog(dialogId, style, title, button1, button2, text)
    for line in text:gmatch("[^\n]+") do
        if line:find('{.-}Организация: {.-}%[(.+)%]') then
            org = line:match('{.-}Организация: {.-}%[(.+)%]')
            renderFontDrawText(my_font, "Организация " .. org, 10, 400, 0xFFFFFFFF)
        end
    end
end
 

chromiusj

Известный
Модератор
5,656
3,959
Я конечно не уверен, но ради эксперемента можно попробовать.

code:
local font_flag = require('moonloader').font_flag
local my_font = renderCreateFont('Arial', 12, font_flag.BOLD + font_flag.SHADOW)
local ev = require 'lib.samp.events'
local org = ''

function main()
    while true do
        wait(0)
    end
end

function ev.onShowDialog(dialogId, style, title, button1, button2, text)
    for line in text:gmatch("[^\n]+") do
        if line:find('{.-}Организация: {.-}%[(.+)%]') then
            org = line:match('{.-}Организация: {.-}%[(.+)%]')
            renderFontDrawText(my_font, "Организация " .. org, 10, 400, 0xFFFFFFFF)
        end
    end
end
а што поменяется ,кроме того ,что теперь при нужном условии будет выводиться строка "организация: опущенные",как в моем случае будет выводиться "организация: ",и как только найдется нежное ему значение оно выведется туда же.я думаю проблема не в этом