local sampev = require('samp.events')
local accounts = {
['Your_Name'] = {
pass = 'write_pass_and_dont_see',
sended = false,
}
}
local GameState = {
None = 0,
WaitConnect = 1,
AwaitJoin = 2,
Connected = 3,
Restarting = 4,
Disconnected = 5,
}
local function printf(pattern, ...)
pattern = string.format(pattern, ...)
return print(pattern)
end
local function debugDialog(id, style, title, b1, b2, text)
return printf(
'[DEBUG ShowDialog] ID[%d] STYLE[%d] TITLE[%s] B1[%s] B2[%s]\n%s\n',
id, style, title, b1, b2, text
)
end
local function sampGetMyPlayerNickname()
local myId = select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))
local nickname = sampGetPlayerNickname(myId)
return nickname
end
function main()
repeat wait(0) until isSampAvailable()
while true do wait(0)
-- сброс параметры для повторной авто-логин
if sampGetGamestate() == GameState.Restarting then
for _, account in pairs(accounts) do
account.sended = false
account.sendedAlogin = false
end
end
end
end
function sampev.onShowDialog(id, style, title, b1, b2, text)
debugDialog(id, style, title, b1, b2, text)
if id == 123123 and style == 3 and title:find('Авторизация') and text:find('пароль') then
local myNickname = sampGetMyPlayerNickname()
local account = accounts[myNickname]
-- пропускает авто-логин если нет аккаунта или нет пасса аккаунта
-- а также отсутствует своего ника в диалог
if not account or not account.pass or not text:find(myNickname) or account.sended then return end
-- если есть, блокируем повторной отправки
account.sended = true
sampSendDialogResponse(id, 1, 65535, account.pass)
return false
end
end