raksamp lite // не работает код

Foriuss

Новичок
Автор темы
26
2
Версия MoonLoader
.026-beta
Незнаю что исправить в коде чтобы он захватывал еще и оргу
Он захватывает уровень, оргу не захватывает
Орга может быть написана на рус и англ языках
Заранее спасибо <3

вот что он мне выводит
[20:28:29.033] [LUA] 3 nil

lua:
    for statsline in text:gmatch("[^\n]+") do
        if statsline:find('Уровень%s+(%d+)') then
            lvl = statsline:match('Уровень%s+(%d+)')
            org = statsline:match('Организация%s+(%D+)')
            print(lvl, org)
            if tonumber(lvl) == tonumber(needlvl) then
                newTask(function()
                    --code
                end)
            end
        end
    end

[20:34:11.004] ============= DIALOG =============
[20:34:11.005] "{FFFFFF}Статистика | {ae433d}Персонаж"[9901] - 5 Style
[20:34:11.007]
[20:34:11.007] {FFFFFF}Параметр {FFFFFF}Значение
[20:34:11.008] Имя Nick_Name
[20:34:11.008] Уровень 3
[20:34:11.009] Exp ------
[20:34:11.010] Рейтинг 19.62
[20:34:11.010] Деньги 0
[20:34:11.011] Телефон -
[20:34:11.011] Законопослушность 8
[20:34:11.012] Смертей в розыске 0
[20:34:11.013] Арестов 0
[20:34:11.013] Счетчик выходов за 7 дней: 0
[20:34:11.014] Выходов при аресте: 0
[20:34:11.015] Уровень розыска 0
[20:34:11.016] Дата регистрации ---------------
[20:34:11.017] Зависимость 0
[20:34:11.017] Растительные наркотики 0
[20:34:11.017] Материалы 0
[20:34:11.021] Рыб поймано: 0.0
[20:34:11.024] Организация Grove Gang
[20:34:11.025] Должность ---------
[20:34:11.026] Работа Безработный
[20:34:11.029] Статус Новичок
[20:34:11.030] Супруг(-а) -
[20:34:11.031] Пол Мужчина
[20:34:11.032]
[20:34:11.032] [x] []
[20:34:11.033] ==================================
 
Решение
я это понимаю, но я не догоняю как мне написать так чтобы я и lvl и org мог найти и в print вывести
Вынести полученную информацию вне цикла
Lua:
local arr = {lvl = nil, org = nil}
for statsline in text:gmatch("[^\n]+") do
    if statsline:find('Уровень%s+(%d+)') then
        arr.lvl = statsline:match('Уровень%s+(%d+)')
    elseif statsline:find('Организация%s+(%D+)') then
        arr.org = statsline:match('Организация%s+(%D+)')
    end
end
print(table.unpack(arr))
if tonumber(arr.lvl) == tonumber(needlvl) then
    newTask(function()
    --code
end

хромиус)

спокойно, это всего лишь слива
Друг
4,946
3,210
Незнаю что исправить в коде чтобы он захватывал еще и оргу
Он захватывает уровень, оргу не захватывает
Орга может быть написана на рус и англ языках
Заранее спасибо <3

вот что он мне выводит
[20:28:29.033] [LUA] 3 nil

lua:
    for statsline in text:gmatch("[^\n]+") do
        if statsline:find('Уровень%s+(%d+)') then
            lvl = statsline:match('Уровень%s+(%d+)')
            org = statsline:match('Организация%s+(%D+)')
            print(lvl, org)
            if tonumber(lvl) == tonumber(needlvl) then
                newTask(function()
                    --code
                end)
            end
        end
    end
советую почитать про шаблоны
Очевидно, что в организации будет текст,а не какое либо число,поэтому сделай лучше вместо (%d+) -> (.+)
 
  • Нравится
Реакции: Foriuss

tfornik

Известный
312
223
Незнаю что исправить в коде чтобы он захватывал еще и оргу
Он захватывает уровень, оргу не захватывает
Орга может быть написана на рус и англ языках
Заранее спасибо <3

вот что он мне выводит
[20:28:29.033] [LUA] 3 nil

lua:
    for statsline in text:gmatch("[^\n]+") do
        if statsline:find('Уровень%s+(%d+)') then
            lvl = statsline:match('Уровень%s+(%d+)')
            org = statsline:match('Организация%s+(%D+)')
            print(lvl, org)
            if tonumber(lvl) == tonumber(needlvl) then
                newTask(function()
                    --code
                end)
            end
        end
    end
Ты в "линии" с уровнем ищешь организацию, естественно nil
 
  • Bug
Реакции: Foriuss

Пирожок

Участник
30
55
я это понимаю, но я не догоняю как мне написать так чтобы я и lvl и org мог найти и в print вывести
Вынести полученную информацию вне цикла
Lua:
local arr = {lvl = nil, org = nil}
for statsline in text:gmatch("[^\n]+") do
    if statsline:find('Уровень%s+(%d+)') then
        arr.lvl = statsline:match('Уровень%s+(%d+)')
    elseif statsline:find('Организация%s+(%D+)') then
        arr.org = statsline:match('Организация%s+(%D+)')
    end
end
print(table.unpack(arr))
if tonumber(arr.lvl) == tonumber(needlvl) then
    newTask(function()
    --code
end
 
Последнее редактирование:
  • Нравится
Реакции: Foriuss