RakSamp dialog

7 СМЕРТНЫХ ГРЕХОВ

Известный
Автор темы
515
159
Как считать с диалога Дежурил за день: (%d+)ч (%d+)м (%d+)c
1678718856477.png
LUA:
function ev.onShowDialog(dialogId, dialogStyle, dialogTitle, okButtonText, cancelButtonText, dialogText)
    if dialogTitle:find("Статистика игрока") then
        sendDialogResponse(dialogId, 1, 0, "")
    end
end
Типо начало
 
  • Злость
Реакции: kyrtion

qdIbp

Автор темы
Проверенный
1,381
1,139
Ну так как мне сделать считывание
Посмотреть вложение 193805
Время же каждый раз разное 🧐
И что, он всегда будет получать это время

Lua:
time = tect:match("%{......%}Дежурил за день: %{......%}(%d+ч %d+м %d+с)")
print(time)

Ещё раз глянь на регулярку и пойми
 

7 СМЕРТНЫХ ГРЕХОВ

Известный
Автор темы
515
159
И что, он всегда будет получать это время

Lua:
time = tect:match("%{......%}Дежурил за день: %{......%}(%d+ч %d+м %d+с)")
print(time)

Ещё раз глянь на регулярку и пойми
Так оно не получает его выводит nil

Пробовал типо
LUA:
if dialogTitle:find("Статистика игрока") then
    for line in dialogText:gmatch('[^\r\n]+') do
        print(line)
    end
end
Но оно же типо читает по строкам его
как мне взять именно строку
("%{......%}Дежурил за день: %{......%}(%d+ч %d+м %d+с)")
1678977922863.png
 

7 СМЕРТНЫХ ГРЕХОВ

Известный
Автор темы
515
159
Lua:
time=line:match("%{......%}Дежурил за день: %{......%}(%d+ч %d+м %d+с)")
if time then
     print(time)
end
LUA:
    if dialogTitle:find("Статистика игрока") then
        for line in dialogText:gmatch('[^\r\n]+') do
            times = line:match("%{......%}Дежурил за день: %{......%}(%d+ч %d+м %d+с)")
            if times then
                print(times)
            end
        end
    end
Ничего не принтит
 
  • Злость
Реакции: qdIbp

qdIbp

Автор темы
Проверенный
1,381
1,139

qdIbp

Автор темы
Проверенный
1,381
1,139
И что? Ты полистай тему выше

Ну так как мне сделать считывание
Посмотреть вложение 193805
Время же каждый раз разное 🧐
Хотя появилась ещё одна идея, попробуй
Lua:
time=line:match("%{......%}Дежурил за день:%c%{......%}(%d+ч %d+м %d+с)")
if time then
     print(time)
end

И что? Ты полистай тему выше


Хотя появилась ещё одна идея, попробуй
Lua:
time=line:match("%{......%}Дежурил за день:%c%{......%}(%d+ч %d+м %d+с)")
if time then
     print(time)
end
Если будет nil
Попробуй поиграться с пробелами возле %c
 
Последнее редактирование:

7 СМЕРТНЫХ ГРЕХОВ

Известный
Автор темы
515
159
И что? Ты полистай тему выше


Хотя появилась ещё одна идея, попробуй
Lua:
time=line:match("%{......%}Дежурил за день:%c%{......%}(%d+ч %d+м %d+с)")
if time then
     print(time)
end


Если будет nil
Попробуй поиграться с пробелами возле %c
так не принтит вообще
А так -
LUA:
    if dialogTitle:find("Статистика игрока") then
        for line in dialogText:gmatch('[^\r\n]+') do
            time = line:match("%{......%}Дежурил за день:%c%{......%}(%d+ч %d+м %d+с)")
            print(time)
        end
    end
Принтит nil

%{......%}Дежурил за день: - принтит
но если
%{......%}Дежурил за день: ну и дальше текст то принтит nil
 

kyrtion

Известный
630
232
так не принтит вообще
А так -
LUA:
    if dialogTitle:find("Статистика игрока") then
        for line in dialogText:gmatch('[^\r\n]+') do
            time = line:match("%{......%}Дежурил за день:%c%{......%}(%d+ч %d+м %d+с)")
            print(time)
        end
    end
Принтит nil

%{......%}Дежурил за день: - принтит
но если
%{......%}Дежурил за день: ну и дальше текст то принтит nil
скинь источник (та где про дежурства) в код