вахере с этого скрипта

Lance Sterling

Потрачен
Автор темы
140
8
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Версия MoonLoader
.026-beta
Код:
function samp.onServerMessage(color, text)
    if text:find('[A] '..nick..'['..id..'] для '..report.aName..'['..report.aID..']: Приветствую, начинаю работу по вашей жалобе.') then
        sampSendChat('/re '..report.sID)
    end
    if text:find('[A] '..nick..'['..id..'] для '..report.aName..'['..report.aID..']: Передам ваш репорт') then
        sampSendChat('/a « '..report.aName..'['..report.aID..'] » '..report.rText)
    end
end
по сути по этой строке скрипт должен зайти в рекон за нарушителем, передать репорт, или помочь автору
вот так я реализовал эти переменные:
Lua:
local report = {
    aName = '',
    aID = '',
    sName = '',
    sID = '',
    rText = ''
}

function samp.onShowDialog(id, style, title, button1, button2, text)
    if string.find(text:gsub('%{......%}',''),'Имя: (.+)%[(%d+)%]\nНарушитель: (.+)%[(%d+)%]\nЖалоба: (.+)') then--перехватываем текст из диалога с ид 990
        report.aName, report.aID, report.sName, report.sID, report.rText = string.match(text:gsub('%{......%}',''),"Имя: (.+)%[(%d+)%]\nНарушитель: (.+)%[(%d+)%]\nЖалоба: (.+)\nВведите")--форматируем его
    end
end
вот как выглядит строчка в сампе:
1670439851315.png


@chapo
 
Последнее редактирование:
  • Эм
Реакции: qdIbp
Решение
Знак % является частью всего регулярного выражения, так же при помощи его, можно экранировать символы в регулярном выражении, т.е. мы хотим записать определенный текст в переменную, но после вывода появляется это: {FF83E9}Текст, чтобы это исправить мы должны экранировать данный HEX код необходимо провернуть кое какой трюк с экранированием:

qdIbp

Автор темы
Проверенный
1,447
1,196
1 реализовал ты, исправляли мы
2 учи регулярку https://www.blast.hk/threads/62661/
3 есть elseif, не зачем писать еще один if и еще один end
Lua:
    if text:find('%[A%] '..nick..'%['..id..'%] для '..report.aName..'%['..report.aID..'%]: Приветствую, начинаю работу по вашей жалобе%.') then
        sampSendChat('/re '..report.sID)
    elseif text:find('%[A%] '..nick..'%['..id..'%] для '..report.aName..'%['..report.aID..'%]: Передам ваш репорт') then
        sampSendChat('/a « '..report.aName..'['..report.aID..'] » '..report.rText)
    end
 

Lance Sterling

Потрачен
Автор темы
140
8
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
1 реализовал ты, исправляли мы
2 учи регулярку https://www.blast.hk/threads/62661/
3 есть elseif, не зачем писать еще один if и еще один end
Lua:
    if text:find('%[A%] '..nick..'%['..id..'%] для '..report.aName..'%['..report.aID..'%]: Приветствую, начинаю работу по вашей жалобе%.') then
        sampSendChat('/re '..report.sID)
    elseif text:find('%[A%] '..nick..'%['..id..'%] для '..report.aName..'%['..report.aID..'%]: Передам ваш репорт') then
        sampSendChat('/a « '..report.aName..'['..report.aID..'] » '..report.rText)
    end
Вопрос. Зачем проценты там
 
  • Злость
Реакции: qdIbp

qdIbp

Автор темы
Проверенный
1,447
1,196
Знак % является частью всего регулярного выражения, так же при помощи его, можно экранировать символы в регулярном выражении, т.е. мы хотим записать определенный текст в переменную, но после вывода появляется это: {FF83E9}Текст, чтобы это исправить мы должны экранировать данный HEX код необходимо провернуть кое какой трюк с экранированием:
 
  • Нравится
Реакции: Lance Sterling