Гайд Написание Lua скрипта для RakBot(Авто-регистрация/авторизация рефералов ARZ)

rraggerr

проверенный какой-то
Автор темы
1,626
849
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Ознакомится со всеми событиями(далее хук), функциями можно здесь -> Lua функции(https://rakbot.ru/funcs)
Для начала, напишем простенькую авто-регистрацию на Arizona-RP, создаем луа файл с любым названием в папке scripts, открываем его через любой редактор и пишем
Lua:
local referal = getReferer()
local password = getPassword()
function onDialogShow(dialogId, dialogStyle, dialogTitle, okButtonText, cancelButtonText, dialogText)
setOwnAutoReg(true)
end
Из названия хука и из описания с сайта ракбота, можно понять , что данный хук вызывается каждый раз, когда боту прилетает диалог с сервера, например, во время регистрации, значит это то что нам нужно, так же этот хук имеет аргументы(в данном случае 6), которые содержат в себе информацию о диалоге, который к нам поступил. local password - наш пароль, который будет указан в ракботе , а setOwnAutoReg(true) - означает что мы отключаем авторизацию самого ракбота
Теперь дописываем в тело хука :
Lua:
printLog("Title: "..dialogTitle.." | ID: "..dialogId)
Данный код будет работать так:
1. Боту приходит диалог(любой)
2. Ракбот выдаем нам лог в виде Title: Заголовок Диалога | ID: Айди диалога.
Для чего мы это делаем? Чтобы узнать айди диалога и его заголовок(кэп)
можно обойтись без этого, но в данном случае я делаю гайд , а не готовый исходник
После того, как мы нашли наш заголовок или айди(лучше по заголовку, тк на серверах бывает один и тот же айди на разные диалоги), можем убрать полностью вывод printLog, ибо он нам более не нужен.
Пишем следующее:
Lua:
if dialogTitle:find("1/4") then
sendDialog(dialogId, 1, 0, password)
end
Этот код, если найдет в заголовке диалога(в любом месте) фразу "1/4", исполнит действия , в данном случае отправит в окно ввода пароля соответственно пароль который мы указали в ракботе. Где dialogTitle:find - поиск по тексту(текстом является dialogTitle), dialogId- Айди диалога, 1 - номер кнопки диалога(в данном случае 1 - продолжить), 0 - номер "айтема", используется в диалогах со списком, в данном случае айтема нет, поэтому ставим 0. А - "PASSWORD" соответственно пароль, который мы поставим на аккаунт.
Далее идет следующий этап регистрации, а именно выбор пола, тут поступаем так же, просто пишем:
Lua:
if dialogTitle:find("2/4") then
sendDialog(dialogId, 1, 0, "")
end
В данном случае 4м аргументом у нас идет "", так как там нет поля для ввода
Далее идет следующий этап, цвет кожи, поступаем точно так же:
Lua:
if dialogTitle:find("цвет кожи") then
sendDialog(dialogId, 1, 0, "")
end
Тут уже я делаю поиск по фразе "цвет кожи", ибо на Аризоне есть баг, 3/4 это выбор цвета кожи, и одновременно выбор реферала, поэтому с этим будет проблема.
Далее идет самый важный для ботоводов этап - указать реферала, тут немного сложнее, так как нужно нажать на пункт в списке ("айтем") , далее написать ник игрока.
Пишем следующее:
Lua:
if dialogTitle:find("нас узнали?") then
sendDialog(dialogId, 1, 1, "")
end
Тут мы нажимаем айтем номер 1, в данном случае айтемом номер 1 является пункт "От друзей", если мы укажем 0, 2,3,4 то выберем не то что нам надо, и мы не получим денег за бота.
Далее открывается диалог с вводом никнейма реферала, тут тоже все просто, пишем это:
Lua:
if dialogTitle:find("4/4") then
sendDialog(dialogId, 1, 0,  referal)
end
Тут я уже поставил поиск по фразе "4/4", ибо это единственный диалог с таким заголовком, где referal - никнейм реферала, указаный в ракботе.
Но это еще не конец, нужно написать отдельную авторизацию для бота, ибо ракбот соовсем с ней не дружит на аризоне(лично у меня)
Просто дописываем это:
Lua:
if dialogTitle:match("Авторизация") then
sendDialog(dialogId, 1, 0, password)
end
Где password - пароль от аккаунта. Где dialogTitle:match - сравнивание строки с той, которой укажем в аргументах(сравниваем dialogTitle и "Авторизация", если они совпадают -> отправляется пароль)
Вот и все, при проверке бота, он автоматически вводит все данные, и автоматически заходит на серер.
Вот полный код того, что у нас получилось:
Lua:
local referal = getReferer()
local password = getPassword()
function onDialogShow(dialogId, dialogStyle, dialogTitle, okButtonText, cancelButtonText, dialogText) -- Хук показа диалога
setOwnAutoReg(true)
if dialogTitle:find("1/4") then
sendDialog(dialogId, 1, 0, password) -- отправка пароля для регистрации аккаунта
end

if dialogTitle:find("2/4") then
sendDialog(dialogId, 1, 0, "") -- отправка пола
end

if dialogTitle:find("цвет кожи") then
sendDialog(dialogId, 1, 0, "") -- отправка цвета кожи
end

if dialogTitle:find("нас узнали?") then
sendDialog(dialogId, 1, 1, "") -- отправка нажатия по "От друзей"
end

if dialogTitle:find("4/4") then
sendDialog(dialogId, 1, 0, referal) -- отправка никнейма вашей основы
end

if dialogTitle:match("Авторизация") then
sendDialog(dialogId, 1, 0, password) -- авторизация паролем, который мы поставили на аккаунт выше
end
end
Но, это еще не конец, сервер предлагает выбрать скин, если мы его не выберем то нас забанит система после большого кол-ва входов без выбора скина, поэтому ставим хук

Lua:
function onTextDrawShow(textDrawId, positionX, positionY, textDrawString)

end
Как мы видим, данный хук передает айди текстдрава(textDrawId) , можно так же смотреть по textDrawString, но на большинстве серверах они пустые(__ или _), можно так же по позиции, но проще всего по айди.
пишем следующее
Lua:
if textDrawId == 196 or textDrawId == 194 or textDrawId == 197 then
clickTextDraw(textDrawId)
end
Это означает, что если текстдрав имеет айди 196 или 194, мы по нему нажмем, на аризоне 196 или 194 является выбором скина, наша регистрация окончена

Так же можно сделать .ini файл , с базой Login=Password, но это уже лишний гемор, если вы просто хотите поднять бабла с рефералов.
 
Последнее редактирование:

rraggerr

проверенный какой-то
Автор темы
1,626
849
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Не учили юзать таблицы?
люди которые покупают ракбот , в основном даже не знают о том что там можно писать луа скрипты, а ты говоришь про таблицы, сразу мозг взорвется, да и тут можно и без таблиц обойтись спокойно
 
  • Нравится
Реакции: edrenbaton

Dark_Knight

Me, me and me.
Друг
4,085
2,114
люди которые покупают ракбот , в основном даже не знают о том что там можно писать луа скрипты, а ты говоришь про таблицы, сразу мозг взорвется, да и тут можно и без таблиц обойтись спокойно
Если уже делаешь гады, то делай нормально, а не уровне "хуяк, хуяк и в продакшн". Обучать людей надо правильно, а не отьебись.
Видно тебя учителя тебя так обучали.
 

rraggerr

проверенный какой-то
Автор темы
1,626
849
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Если уже делаешь гады, то делай нормально, а не уровне "хуяк, хуяк и в продакшн". Обучать людей надо правильно, а не отьебись.
Видно тебя учителя тебя так обучали.
обучаешь правильно -> пишут нихуя не понятно
обучаешь правильно, но не идеально -> понимают и все збс
 

WarGko

Известный
274
96
На аризоне в конце скин нужно выбрать, чтобы регистрацию завершить, добавь в тему как это сделать на луа.
 

suic1de

Новичок
19
0
На аризоне в конце скин нужно выбрать, чтобы регистрацию завершить, добавь в тему как это сделать на луа.
там надо кликнуть по текст драву, его данные
Lua:
[04:39:03] [RAKBOT] Показан текстдрав с ID 204 (X: 247,00; Y: 392,00; текст: Accept)
 

rraggerr

проверенный какой-то
Автор темы
1,626
849
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
там надо кликнуть по текст драву, его данные
Lua:
[04:39:03] [RAKBOT] Показан текстдрав с ID 204 (X: 247,00; Y: 392,00; текст: Accept)
неа, там точно помню, что текстдрав с айди 194 или 196, Accept это лишь надпись
 

suic1de

Новичок
19
0
так-же, после регистрации, будет ещё окно c 243id а текстом Дополнительная информация
 

rraggerr

проверенный какой-то
Автор темы
1,626
849
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

suic1de

Новичок
19
0
неа, там точно помню, что текстдрав с айди 194 или 196, Accept это лишь надпись
почти, методом тыка нащупал 197 текстдрав
его не обязательно нажимать
у меня просто бот кордом тепешится, и пишет /beg хз зачем .-.
 

rraggerr

проверенный какой-то
Автор темы
1,626
849
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
почти, методом тыка нащупал 197 текстдрав

у меня просто бот кордом тепешится, и пишет /beg хз зачем .-.
у меня 196 или 194 работает, мб на каждом сервере по разному


и не вижу смысла делать бота только для того чтобы побичевать через /beg, ты там от силы 50к за 3 дня поднимешь , с учетом что будешь выходить когда будет пейдей чтобы не поднимать лвл, того же бота на ферму можно сделать и там будет в 5 раз больше
 
Последнее редактирование:

suic1de

Новичок
19
0
Lua:
[RAKBOT] Отправлен ответ диалогу с ID 1 (кнопка: 1, список: 0; текст: Вкладка 'Hosted')
класна
 

rraggerr

проверенный какой-то
Автор темы
1,626
849
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Lua:
[RAKBOT] Отправлен ответ диалогу с ID 1 (кнопка: 1, список: 0; текст: Вкладка 'Hosted')
класна
Диалог пароля поставь на любой другой кроме 1 и 2, например 30000, ракбот пытается сам зарегать аккаунт, еще один минус этого бота