Запись текста в отдельный фалй

azimoff2

Потрачен
Автор темы
64
9
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Версия MoonLoader
.026-beta
Есть ли возможность реализовать систему под действием которой при выдаче деморгана с причиной "до бана" будет записываться в отдельный файл ник.
Т.е администратор вводит команду /jail 228 30 Бот и скрипт записывает имя посаженого человека в отдельный файл.
При этом в файл записывалось еще /banoff 0 например.

Например: Администратор Name_Text [86] посадил игрока Main_Test 33] в деморган на 3000 минут. Причина: до бана (чит)

Пробовал реализовать это так:
Папка создавалась, но txt не записывался.


123123:
require 'lib.moonloader'
local sp = require 'lib.samp.events'

function main()
    while not isSampAvailable() do wait(0) end
    if not doesDirectoryExist(getWorkingDirectory()..'\\Bans') then createDirectory(getWorkingDirectory()..'\\Bans') end
    while true do
        wait(0)
    end
end

function sp.onServerMessage(clr, text)
    if text:match("{FF0000}Администратор (.*) посадил игрока (.*). Причина: до бана") then
        local nick = text:match("{FF0000}Администратор .* посадил игрока (.*). Причина: до бана")
        if not doesFileExist(getWorkingDirectory()..'\\Bans\\'..nick..'.txt') then
            file = io.open(getWorkingDirectory().."\\Bans\\"..nick..".txt", "w")
            file:write(text.."\n")
            file:close()
        else
            file = io.open(getWorkingDirectory().."\\Bans\\"..nick..".txt", "a")
            file:write(text.."\n")
            file:close()
        end
    end
end
 
Последнее редактирование:
Решение
потому что не работает у тебя эта регулярка
Lua:
if text:find("{FF0000}Администратор %w+_%w+%[%d+%] посадил игрока %w+_%w+%[%d+%] в деморган на %d+ минут%. Причина: до бана") then
    local nickAdm, nickPlayer = text:match("{FF0000}Администратор (%w+_%w+)%[%d+%] посадил игрока (%w+_%w+)%[%d+%] в деморган на %d+ минут%. Причина: до бана")
    print(nickAdm, nickPlayer)
end

sdfy

Известный
349
230
потому что не работает у тебя эта регулярка
Lua:
if text:find("{FF0000}Администратор %w+_%w+%[%d+%] посадил игрока %w+_%w+%[%d+%] в деморган на %d+ минут%. Причина: до бана") then
    local nickAdm, nickPlayer = text:match("{FF0000}Администратор (%w+_%w+)%[%d+%] посадил игрока (%w+_%w+)%[%d+%] в деморган на %d+ минут%. Причина: до бана")
    print(nickAdm, nickPlayer)
end
 
  • Влюблен
Реакции: azimoff2