Lua Прочее Вход на тринити с помощью клавиатуры

БеzликиЙ

Автор темы
Автор темы
Проверенный
802
449
Версия SA-MP
  1. 0.3.7 (R1)
  2. 0.3.7-R3
Как вы наверняка все и без меня знаете, на тринити рп есть такая прикольная фишка, как Вход на сервер с двойной аутентификацией - помимо пароля просит ещё и код из четырёх цифр, который вводится текстдравами. У меня произошёл такой прикол, что некий скрипт стабильно удаляет два текстдрава, которые по счастливой случайности попадают в набор "кнопок". Поэтому я решил пойти от обратного и перенёс эти кнопки на клавиатуру.

СУТЬ: теперь вы можете ввести пароль с помощью кнопок на клавиатуре. Скрипт при этом убирает перемешивание, так что код вводится как обычный пароль. Кнопки Backspace и Enter также назначены на соответствующие текстдравы, есть поддержка нумпада (может быть сделана не совсем верно, у меня на ноуте нумпада нет, проверить не могу). Если скрипт работает, как положено - в левом верхнем углу экрана появится зелёный квадрат, пока активно меню входа. Если он не появляется или цифры вводятся неверно - значит, разработчики тринити выпустили обновление. Я постараюсь обновить скрипт как можно скорее, если это произойдёт.

05.06.2021

UPD. от 05.06.2021 - автоматическое получение ID текстдравов и оффсета кнопок. "Долговечность" скрипта должна быть больше.

22.10.2022

UPD. от 22.10.2022 - немного переписан алгоритм получения ID текстдравов. Исправлена кнопка отправки.
 

Вложения

  • trinitytdlogin.lua
    2.4 KB · Просмотры: 61
Последнее редактирование:

ewin

Известный
675
369
Lua:
function sampev.onShowTextDraw(id, data)
    for i=1, 9 do
        if data.text == i then
            a[i]=id-offset
        end
    end
    return true
end

замена функции, хз работать ли вообще будет
 

imring

Ride the Lightning
Всефорумный модератор
2,353
2,512
Последнее редактирование:
  • Нравится
Реакции: Vintik и PanSeek

CaJlaT

Овощ
Модератор
2,809
2,596
а, я думаю рядом со знаком сравнения нельзя использоваться tostring()
Ладно...
1622841091038.png
 
  • Нравится
Реакции: ewin

BARRY BRADLEY

Известный
711
176
Та ну, это рофл, id меняются после каждой обновы. Менять их каждый раз? Есть смысл? Мог просто взять функцию в AutoLogin от Akionki
 

БеzликиЙ

Автор темы
Автор темы
Проверенный
802
449
Та ну, это рофл, id меняются после каждой обновы. Менять их каждый раз? Есть смысл? Мог просто взять функцию в AutoLogin от Akionki
id берутся на основе текстдравов с циферками. скрипт перестаёт работать только если разрабы поменяют оффсет между текстдравом-циферкой и текстдравом-кнопкой
 

BARRY BRADLEY

Известный
711
176
id берутся на основе текстдравов с циферками. скрипт перестаёт работать только если разрабы поменяют оффсет между текстдравом-циферкой и текстдравом-кнопкой
Происходит каждые 2 недели если была какая либо обнова
 

BARRY BRADLEY

Известный
711
176
id берутся на основе текстдравов с циферками. скрипт перестаёт работать только если разрабы поменяют оффсет между текстдравом-циферкой и текстдравом-кнопкой
Сделать автоматическое получение offset'a как в скрипте на авторизацию, достаточно нажать на первый текстдрав цифры и кнопки submit
 

BARRY BRADLEY

Известный
711
176
Lua:
local tables = {
   [0] = {["b1"] = 48, ["b2"] = 96, ["id"] = nil},
   [1] = {["b1"] = 48, ["b2"] = 96, ["id"] = nil},
   [2] = {["b1"] = 48, ["b2"] = 96, ["id"] = nil},
   [3] = {["b1"] = 48, ["b2"] = 96, ["id"] = nil},
   [4] = {["b1"] = 48, ["b2"] = 96, ["id"] = nil},
   [5] = {["b1"] = 48, ["b2"] = 96, ["id"] = nil},
   [6] = {["b1"] = 48, ["b2"] = 96, ["id"] = nil},
   [7] = {["b1"] = 48, ["b2"] = 96, ["id"] = nil},
   [8] = {["b1"] = 48, ["b2"] = 96, ["id"] = nil},
   [9] = {["b1"] = 48, ["b2"] = 96, ["id"] = nil}
}

-- while 
if string.find(sampTextdrawGetString(508), "enter your password") 
then
   for key, val in pairs(tables) do
      if isKeyJustPressed(val["b1"]) or isKeyJustPressed(val["b2"]) then
         if val["id"] then
            sampSendClickTextdraw(val["id"])
            val["id"] = nil
         end
      end
   end
end

-- Хук
if #data.text > 1 then return end
local number = tonumber(data.text, 10)
if number ~= nil then
  tables[number]["id"] = id-offset
end
Можно убрать b1, b2, id и просто сделать по ключу. Меньше кода и т.д
Lua:
local tables = {
   [0] = {48, 96, nil},
   -- ...
}
-- tables[0][1] - кнопка 1
-- tables[0][2] - кнопка 2
-- tables[0][3] - id