перевести инфу из диалога в переменные

leekyrave

Известный
Автор темы
419
226
Версия MoonLoader
.026-beta
привет всем,есть диалог /jobprogress
получаемый текст из него -

{FFFFFF}Статистика успеваемости сотрудника {66FF6C}Больница LS{FFFFFF}: Leeky_Rave
1) Пациентов вылечено: {FFB323}56{FFFFFF}
2) Выдано мед.карт: {FFB323}3{FFFFFF}
3) Проведено сеансов по лечению от наркозависимости: {FFB323}0{FFFFFF}
4) Доставлено медикаментов: {FFB323}2{FFFFFF}
5) Продано рецептов: {FFB323}1{FFFFFF}

Статистика успеваемости за сегодня:
1) Пациентов вылечено: {F9FF23}3{FFFFFF}
2) Выдано мед.карт: {F9FF23}1{FFFFFF}
3) Проведено сеансов по лечению от наркозависимости: {F9FF23}0{FFFFF}


Нужно значения,то бишь количество пациентов и т.д разбить по переменным.
Найдутся гении,которые скажут финдить по 1) Пациентов вылечено и т.д,но мне нужно сделать так,чтобы статистика за все время и за сегодня раскидана была по разным переменным.

я попробовал
Lua:
function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
 


  textforcmd = text
if dialogId == 0 then
 
  if text:find("Статистика успеваемости сотрудника.+:.+1) Пациентов вылечено: %d+2) Выдано мед.карт: %d+3) Проведено сеансов по лечению от наркозависимости: %d+ 4) Доставлено медикаментов: %d+ 5) Продано рецептов: %d+") then
local bolnica, nick, pacientovvsego, medcartvidanozavsevremia, seansovnarkovsego, medikamentovdostavlenovsego, receptovprodanovsego = text:match('Статистика успеваемости сотрудника (.+): (.+) 1) Пациентов вылечено: (%d+) 2) Выдано мед.карт: (%d+) 3) Проведено сеансов по лечению от наркозависимости: (%d+) 4) Доставлено медикаментов: (%d+) 5) Продано рецептов: (%d+)')
vilichenovsego.v = sheckan
sampAddChatMessage(bolnica .. nick .. pacientovvsego .. medcartvidanozavsevremia .. seansovnarkovsego .. medikamentovdostavlenovsego .. receptovprodanovsego,-1)
return false
-- еще выше должен быть код получения статы за сегодня,не  сделал еще
end


end
 
  end
сделать так


но ничего не получается,помогите(
 

sᴀxᴏɴ

это шд братик
Всефорумный модератор
789
856
Всего 10 переменных
Lua:
local pattern = [[{FFFFFF}Статистика успеваемости сотрудника {66FF6C}Больница (.+){FFFFFF}: (.+)
1%) Пациентов вылечено: {FFB323}(%d+){FFFFFF}
2%) Выдано мед%.карт: {FFB323}(%d+){FFFFFF}
3%) Проведено сеансов по лечению от наркозависимости: {FFB323}(%d+){FFFFFF}
4%) Доставлено медикаментов: {FFB323}(%d+){FFFFFF}
5%) Продано рецептов: {FFB323}(%d+){FFFFFF}

Статистика успеваемости за сегодня:
1%) Пациентов вылечено: {F9FF23}(%d+){FFFFFF}
2%) Выдано мед%.карт: {F9FF23}(%d+){FFFFFF}
3%) Проведено сеансов по лечению от наркозависимости: {F9FF23}(%d+){FFFFF}]]
 

leekyrave

Известный
Автор темы
419
226
Всего 10 переменных
Lua:
local pattern = [[{FFFFFF}Статистика успеваемости сотрудника {66FF6C}Больница (.+){FFFFFF}: (.+)
1%) Пациентов вылечено: {FFB323}(%d+){FFFFFF}
2%) Выдано мед%.карт: {FFB323}(%d+){FFFFFF}
3%) Проведено сеансов по лечению от наркозависимости: {FFB323}(%d+){FFFFFF}
4%) Доставлено медикаментов: {FFB323}(%d+){FFFFFF}
5%) Продано рецептов: {FFB323}(%d+){FFFFFF}

Статистика успеваемости за сегодня:
1%) Пациентов вылечено: {F9FF23}(%d+){FFFFFF}
2%) Выдано мед%.карт: {F9FF23}(%d+){FFFFFF}
3%) Проведено сеансов по лечению от наркозависимости: {F9FF23}(%d+){FFFFF}]]
а можно вместе с функцией,я с таким плохо знаком
 

leekyrave

Известный
Автор темы
419
226
Ты одну строчку кода самостоятельно написать не можешь?
local a,b,c,d,e,f,g,h,i,j = text:match(pattern)
а,понял,сразу не понял
я тупой и по-этому у меня ничего не получилось

Lua:
function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
 


  textforcmd = text
if dialogId == 0 then
  local pattern = [[{FFFFFF}Статистика успеваемости сотрудника {66FF6C}Больница (.+){FFFFFF}: (.+)
1%) Пациентов вылечено: {FFB323}(%d+){FFFFFF}
2%) Выдано мед%.карт: {FFB323}(%d+){FFFFFF}
3%) Проведено сеансов по лечению от наркозависимости: {FFB323}(%d+){FFFFFF}
4%) Доставлено медикаментов: {FFB323}(%d+){FFFFFF}
5%) Продано рецептов: {FFB323}(%d+){FFFFFF}]]

if text:find(pattern) then

  local a,b,c,d,e,f,g = text:match(pattern)

return false

end

end
 
  end
 
Последнее редактирование:

Gat

Участник
52
6
Разбиваешь текст на строки и из каждой строки берешь нужное значение:
Lua:
local cPacient
for line in DialogText:gmatch('[^\r\n]+') do -- разбиваем на строки
    if line:find('1%) Пациентов вылечено: {FFB323}%s+%d+') then -- если в строка имеет такой текст
        cPacient = line:match('1%) Пациентов вылечено: {FFB323}(%d+)') -- то присвоить cPacient кол-во вылеченных пациэнтов
    end
end
таким образом делаешь проверку на каждую нужную строку и берешь с них значения
 

leekyrave

Известный
Автор темы
419
226
Разбиваешь текст на строки и из каждой строки берешь нужное значение:
Lua:
local cPacient
for line in DialogText:gmatch('[^\r\n]+') do -- разбиваем на строки
    if line:find('1%) Пациентов вылечено: {FFB323}%s+%d+') then -- если в строка имеет такой текст
        cPacient = line:match('1%) Пациентов вылечено: {FFB323}(%d+)') -- то присвоить cPacient кол-во вылеченных пациэнтов
    end
end
таким образом делаешь проверку на каждую нужную строку и берешь с них значения


Нужно значения,то бишь количество пациентов и т.д разбить по переменным.
Найдутся гении,которые скажут финдить по 1) Пациентов вылечено и т.д,но мне нужно сделать так,чтобы статистика за все время и за сегодня раскидана была по разным переменным.