Логирование

Kecer

Участник
Автор темы
241
11
Всем привет, могли бы вы предоставить пример как сделать логирование в txt файл определённых строк
На пример
Администратор Sam_Mason заблокировал игрока на N По причине: N

Мне нужно сделать так что бы таки строки сахранялись в отдельный txt файл

Может быть такие скрипты уже есть, но я обыскал всё и не нашёл в итоге захотел написать самостоятельно но не знаю как это сделать, не разу с похожими схемами не работал
 
Решение
Мне нужно что бы он сахранял бан игрока от определённого администратор с определённой причиной но игроки могут быть разные
Lua:
local sampev = require 'lib.samp.events'
local file = getWorkingDirectory()..'\\LOG____12341fasf.txt'

function sampev.onServerMessage(color, text)
    if text:find('Администратор (.+) заблокировал Игрока: (.+) По причина: (.+)') then
       local admin, player, reason = text:match('Администратор (.+) заблокировал Игрока: (.+) По причина: (.+)')
        if admin:find('Sam_Mason') and reason:find('долбаеб') then
            log = io.open(file, 'a')
            log:write('Бан: Админ: '..admin..', игрок: '..player..', причина: '..reason)
            log:close()
        end
    end
end

chapo

чопа сребдс // @moujeek
Модератор
8,868
11,576
Lua:
local sampev = require 'lib.samp.events'
local file = getWorkingDirectory()..'\\LOG____12341fasf.txt'

function sampev.onServerMessage(color, text)
    if text:find('забанил') then
        log = io.open(file, 'a')
        log:write(text)
        log:close()
    end
end
 
Последнее редактирование:

Kecer

Участник
Автор темы
241
11
Lua:
local sampev = require 'lib.samp.events'
local file = getWorkingDirectory()..'\\LOG____12341fasf.txt'

function sampev.onServerMessage(color, text)
    if text:find('забанил') then
        log = io.open(file, 'a')
        log:write(text)
        log:close()
    end
end
А как сделать что бы он искал было написано Забанил Ник администратора который забанил, они могут быть разные по причине и причина причины тоже могут быть разные
 

chapo

чопа сребдс // @moujeek
Модератор
8,868
11,576
А как сделать что бы он искал было написано Забанил Ник администратора который забанил, они могут быть разные по причине и причина причины тоже могут быть разные
он будет сохранять все сообщения, в которых есть слово "забанил"
 

chapo

чопа сребдс // @moujeek
Модератор
8,868
11,576
Ну в таком случае обычный игрок может написать в чат "забанил" и оно мне это засейвит
тогда добавь условие, из-за которого строка не будет добавляться если в сообщение есть слово "сказал" (if not text:find('сказал') then)
 

Kecer

Участник
Автор темы
241
11
тогда добавь условие, из-за которого строка не будет добавляться если в сообщение есть слово "сказал" (if not text:find('сказал') then)
А как мне сделать промижуток допустим: Администратор Sam_Mason заблокировал Игрока: Ник(Тут может быть любой ник) По причина: Читер
 

chapo

чопа сребдс // @moujeek
Модератор
8,868
11,576
А как мне сделать промижуток допустим: Администратор Sam_Mason заблокировал Игрока: Ник(Тут может быть любой ник) По причина: Читер
зачем? я не понимаю зачем тебе это если мой код и так работает
 

Kecer

Участник
Автор темы
241
11
зачем? я не понимаю зачем тебе это если мой код и так работает
Мне нужно что бы он сахранял бан игрока от определённого администратор с определённой причиной но игроки могут быть разные
 

chapo

чопа сребдс // @moujeek
Модератор
8,868
11,576
Мне нужно что бы он сахранял бан игрока от определённого администратор с определённой причиной но игроки могут быть разные
Lua:
local sampev = require 'lib.samp.events'
local file = getWorkingDirectory()..'\\LOG____12341fasf.txt'

function sampev.onServerMessage(color, text)
    if text:find('Администратор (.+) заблокировал Игрока: (.+) По причина: (.+)') then
       local admin, player, reason = text:match('Администратор (.+) заблокировал Игрока: (.+) По причина: (.+)')
        if admin:find('Sam_Mason') and reason:find('долбаеб') then
            log = io.open(file, 'a')
            log:write('Бан: Админ: '..admin..', игрок: '..player..', причина: '..reason)
            log:close()
        end
    end
end