- 16
- 1
- Версия MoonLoader
- Другое
Всем привет, как сделать привязку по нику, допустим либо человек вписывает в окно imgui свой ник, и если этот ник допустим вписан где то, тогда отрубает скрипт или не дает работать. Ну или просто скрипт будет читать с каким ником зашел, и сверяя с сайтом pastebin, из raw будет отключать скрипт если такого ника нет там.
Код:
require 'lib.sampfuncs'
require 'lib.moonloader'
script_name('Automatic REPORT')
script_properties('work-in-pause')
script_version('2.1')
script_authors("KARVIES")
script_version_number(1)
local hook = require('lib.samp.events')
local inicfg = require 'inicfg'
local encoding = require('encoding')
local imgui = require 'imgui'
local key = require 'vkeys'
local main_color = 0x5A90CE
local main_window_state = imgui.ImBool(false)
encoding.default = "cp1251"
u8 = encoding.UTF8
local def = {
config = {
nick = "",
}
}
local save = inicfg.load(def, "lovlyareporta_save")
nick = imgui.ImBuffer(tostring(save.config.nick), 256)
function capture_report(arg)
report = not report
if report then
printStringNow('On', 2000)
else
printStringNow('Off', 2000)
end
end
function hook.onServerMessage(color, text)
if report then
if text:find("%[Жалоба%] от .+:") then -- что ищет в чате
sampSendChat(string.format('/ot', text))
end
end
local id = sampGetPlayerIdByCharHandle(PLAYER_PED)
if report then
if text:find("Администратор "..u8:decode(nick.v).."%[(%d+)] ответил игроку (.+)%[(%d+)]:{FFFFFF} (.+)") then
report = false
end
end
end
function imgui.OnDrawFrame()
if main_window_state.v then -- чтение и запись значения такой переменной осуществляется через поле v (или Value)
imgui.SetNextWindowSize(imgui.ImVec2(700, 400), imgui.Cond.FirstUseEver) -- меняем размер
imgui.SetNextWindowPos(imgui.ImVec2(620, 350), imgui.Cond.FirstUseEver)
imgui.Begin('Report Capture', main_window_state)
imgui.Text(u8"NICK (Пример: Имя Фамилия)") imgui.SameLine(270)
if imgui.InputText('##prefix', nick) then
save.config.nick = nick.v end
imgui.End()
end
end
function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(100) end
sampAddChatMessage("[RepCapture]{7FFFD4} Скрипт подгружен. Версия скрипта 2.2", main_color)
sampRegisterChatCommand("ar", capture_report)
while true do wait(0)
if wasKeyPressed(key.VK_F10) then -- активация по нажатию клавиши X
main_window_state.v = not main_window_state.v -- переключаем статус активности окна, не забываем про .v
end
imgui.Process = main_window_state.v -- теперь значение imgui.Process всегда будет задаваться в зависимости от активности основного окна
end
end
function onScriptTerminate(script, quitGame)
if script == thisScript() then
showCursor(false, false)
cfgSave()
end
end
function onQuitGame()
cfgSave()
end
function cfgSave(v)
if f == nil then
inicfg.save(def, "lovlyareporta_save")
return
end
return
end