Исходник Гайд [RodinaRP] [CEF] Dialogs & Auto log/reg & guide. (RakSamp Lite/ARZ Launcher)

lainban

Известный
Автор темы
1,427
579
никому ниче размусоливать не буду, не поняли - вам в раздел "работа и услуги".

Суть скрипта и его команды(arz launcher):

/cef - активация/дезактивация скрипта.
/cefadd - добавление действия в список.
/cefclear - удаление всех действий из списка.
/cefstart - запуск всех действий из списка.

Гайд по тому, как узнавать какие действия нужны.
Запускаем скрипт, активируем.
Выполням любое действие связанное с цефом.
Справа от карты появится строка, которую можно эмулировать, добавив ее в список через /cefadd.
/cefreg - зарегистрироваться (можно прямо с окна авторизации) с ранее записанными данными в таблице (через код).
/ceflogin - авторизация с раннее записанными данными в таблице (через код).
1690653001236.png

1690653219899.png

Переходим к коду.
Строку действия вы можете получить по гайду выше.
Lua:
function sendCef(str)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt8(bs, 220)
    raknetBitStreamWriteInt8(bs, 18)
    raknetBitStreamWriteInt8(bs, string.len(str))
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteString(bs, str)
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteInt8(bs, 0)
    raknetSendBitStreamEx(bs, 2, 9, 6)
end
Обработчик диалогов есть в коде (айди, тип, заголовок, текст, текст первой кнопки, текст второй кнопки, мод(хз что это) передаётся на 39 строке при появлении диалога.
Отправка ответа диалогу.
Lua:
function sendDialogResponse(id, button, list, input)
    local str = string.format("@0, sendResponse, %s, %s, %s, %s", id, list, button, input)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt8(bs, 220)
    raknetBitStreamWriteInt8(bs, 18)
    raknetBitStreamWriteInt8(bs, string.len(str))
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteString(bs, str)
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteInt8(bs, 0)
    raknetSendBitStreamEx(bs, 2, 9, 6)
end
Регистрация:
function sendReg(nick, password, ref)
    lua_thread.create(function()
        local str1 = string.format("registration|%s|%s|null|friends|%s", nick, password, ref)
        local bs = raknetNewBitStream()
        raknetBitStreamWriteInt8(bs, 220)
        raknetBitStreamWriteInt8(bs, 18)
        raknetBitStreamWriteInt32(bs, string.len(str1))
        raknetBitStreamWriteString(bs, str1)
        raknetBitStreamWriteInt32(bs, 1)
        raknetSendBitStreamEx(bs, 2, 9, 6)

        wait(500)

        local str2 = "createCharacter|man|0"
        local bs = raknetNewBitStream()
        raknetBitStreamWriteInt8(bs, 220)
        raknetBitStreamWriteInt8(bs, 18)
        raknetBitStreamWriteInt32(bs, string.len(str2))
        raknetBitStreamWriteString(bs, str2)
        raknetBitStreamWriteInt32(bs, 1)
        raknetSendBitStreamEx(bs, 2, 9, 6)
    end)
end

Авторизация:
function sendAuth(nick, password)
    local str = string.format("authorization|%s|%s|0", nick, password)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt8(bs, 220)
    raknetBitStreamWriteInt8(bs, 18)
    raknetBitStreamWriteInt32(bs, string.len(str))
    raknetBitStreamWriteString(bs, str)
    raknetBitStreamWriteInt32(bs, 1)
    raknetSendBitStreamEx(bs, 2, 9, 6)
end

Перейдем к скрипту на RakSampLite:

Обработчик диалогов есть в коде (айди, тип, заголовок, текст, текст первой кнопки, текст второй кнопки, мод(хз что это) передаётся на 32 строке при появлении диалога.
Отправка ответа диалогу.
Lua:
function sendDialogResponse(id, button, list, input)
    local string = string.format("@0, sendResponse, %s, %s, %s, %s", id, list, button, input)
    local bs = bitStream.new()
    bs:writeInt8(220)
    bs:writeInt8(18)
    bs:writeInt8(string.len(string))
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeString(string)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:sendPacketEx(2, 9, 6)
    bs:reset()
end
Lua:
function Validation()
    local bs = bitStream.new()
    bs:writeInt8(220)
    bs:writeInt8(20)
    bs:writeInt8(128)
    bs:writeInt8(7)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeInt8(56)
    bs:writeInt8(4)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:sendPacketEx(2, 9, 6)
    bs:reset()

    local bs = bitStream.new()
    bs:writeInt8(220)
    bs:writeInt8(38)
    bs:writeInt8(101)
    bs:writeInt8(7)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeInt8(56)
    bs:writeInt8(4)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:sendPacketEx(2, 9, 6)
    bs:reset()

    local bs = bitStream.new()
    bs:writeInt8(220)
    bs:writeInt8(50)
    bs:writeInt8(1)
    bs:writeInt16(1)
    bs:sendPacketEx(2, 9, 6)
    bs:reset()

    local bs = bitStream.new() -- TEST
    bs:writeInt8(220)
    bs:writeInt8(10)
    bs:writeInt8(0)
    bs:writeInt16(1)
    bs:sendPacketEx(2, 9, 6)
    bs:reset()

    local bs = bitStream.new() -- TEST
    bs:writeInt8(220)
    bs:writeInt8(10)
    bs:writeInt8(1)
    bs:writeInt16(1)
    bs:sendPacketEx(2, 9, 6)
    bs:reset()

    local string = "svelteReady"
    local bs = bitStream.new()
    bs:writeInt8(220)
    bs:writeInt8(18)
    bs:writeInt8(string.len(string))
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeString(string)
    bs:writeInt32(1)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:sendPacketEx(2, 9, 6)
    bs:reset()

    local string = "@0, vueReady"
    local bs = bitStream.new()
    bs:writeInt8(220)
    bs:writeInt8(18)
    bs:writeInt8(string.len(string))
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeString(string)
    bs:sendPacketEx(2, 9, 6)
    bs:reset()

    local string = "onActiveViewChanged|"
    local bs = bitStream.new()
    bs:writeInt8(220)
    bs:writeInt8(18)
    bs:writeInt8(string.len(string))
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeString(string)
    bs:writeInt8(1)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:sendPacketEx(2, 9, 6)
    bs:reset()

    local string = "onActiveViewChanged|Auth"
    local bs = bitStream.new()
    bs:writeInt8(220)
    bs:writeInt8(18)
    bs:writeInt8(string.len(string))
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeString(string)
    bs:writeInt8(1)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:sendPacketEx(2, 9, 6)
    bs:reset()
end
Авторизация:
function sendAuthorization(nick, pass)
    local string = string.format("authorization|%s|%s|0", nick, pass)
    local bs = bitStream.new()
    bs:writeInt8(220)
    bs:writeInt8(18)
    bs:writeInt32(string.len(string))
    bs:writeString(string)
    bs:writeInt32(1)
    bs:sendPacketEx(2, 9, 6)
    bs:reset()
end

Регистрация:
function sendRegister(nick, pass, ref)
    newTask(function()
        local string1 = string.format("registration|%s|%s|null|friends|%s", nick, pass, ref)
        local bs = bitStream.new()
        bs:writeInt8(220)
        bs:writeInt8(18)
        bs:writeInt32(string.len(string1))
        bs:writeString(string1)
        bs:writeInt32(1)
        bs:sendPacketEx(2, 9, 6)
        bs:reset()

        wait(500)

        local string2 = "createCharacter|man|0"
        local bs = bitStream.new()
        bs:writeInt8(220)
        bs:writeInt8(18)
        bs:writeInt32(string.len(string2))
        bs:writeString(string2)
        bs:writeInt32(1)
        bs:sendPacketEx(2, 9, 6)
        bs:reset()
    end)
end

raksamp cef rodinarp.lua - на 5 и 6 строке вписать ник и пароль в кавычки(для автологина).

спс @neverlane за помощь с авторизацией

при использовании любого кода с данной темы надо указывать ссылку на эту тему.
 

Вложения

  • launcher cef rodinarp.lua
    8 KB · Просмотры: 376
  • raksamp cef rodinarp.lua
    5.4 KB · Просмотры: 276
Последнее редактирование:

dissabel.

Активный
212
52
авторегистрацию и авторизацию на раксамп (родина) продавали за 700р
 
Последнее редактирование:

why ega

РП игрок
Модератор
2,539
2,231
никому ниче размусоливать не буду, не поняли - вам в раздел "работа и услуги".

Суть скрипта и его команды(arz launcher):​

/cef - активация/дезактивация скрипта.
/cefadd - добавление действия в список.
/cefclear - удаление всех действий из списка.
/cefstart - запуск всех действий из списка.

Гайд по тому, как узнавать какие действия нужны.
Запускаем скрипт, активируем.
Выполням любое действие связанное с цефом.
Справа от карты появится строка, которую можно эмулировать, добавив ее в список через /cefadd.
/cefreg - зарегистрироваться (можно прямо с окна авторизации) с ранее записанными данными в таблице (через код).
/ceflogin - авторизация с раннее записанными данными в таблице (через код).
Переходим к коду.
Строку действия вы можете получить по гайду выше.
Lua:
function sendCef(str)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt8(bs, 220)
    raknetBitStreamWriteInt8(bs, 18)
    raknetBitStreamWriteInt8(bs, string.len(str))
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteString(bs, str)
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteInt8(bs, 0)
    raknetSendBitStreamEx(bs, 2, 9, 6)
end
Обработчик диалогов есть в коде (айди, тип, заголовок, текст, текст первой кнопки, текст второй кнопки, мод(хз что это) передаётся на 39 строке при появлении диалога.
Отправка ответа диалогу.
Lua:
function sendDialogResponse(id, button, list, input)
    local str = string.format("@0, sendResponse, %s, %s, %s, %s", id, list, button, input)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt8(bs, 220)
    raknetBitStreamWriteInt8(bs, 18)
    raknetBitStreamWriteInt8(bs, string.len(str))
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteString(bs, str)
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteInt8(bs, 0)
    raknetBitStreamWriteInt8(bs, 0)
    raknetSendBitStreamEx(bs, 2, 9, 6)
end
Регистрация:
function sendReg(nick, password, ref)
    lua_thread.create(function()
        local str1 = string.format("registration|%s|%s|null|friends|%s", nick, password, ref)
        local bs = raknetNewBitStream()
        raknetBitStreamWriteInt8(bs, 220)
        raknetBitStreamWriteInt8(bs, 18)
        raknetBitStreamWriteInt32(bs, string.len(str1))
        raknetBitStreamWriteString(bs, str1)
        raknetBitStreamWriteInt32(bs, 1)
        raknetSendBitStreamEx(bs, 2, 9, 6)

        wait(500)

        local str2 = "createCharacter|man|0"
        local bs = raknetNewBitStream()
        raknetBitStreamWriteInt8(bs, 220)
        raknetBitStreamWriteInt8(bs, 18)
        raknetBitStreamWriteInt32(bs, string.len(str2))
        raknetBitStreamWriteString(bs, str2)
        raknetBitStreamWriteInt32(bs, 1)
        raknetSendBitStreamEx(bs, 2, 9, 6)
    end)
end

Авторизация:
function sendAuth(nick, password)
    local str = string.format("authorization|%s|%s|0", nick, password)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt8(bs, 220)
    raknetBitStreamWriteInt8(bs, 18)
    raknetBitStreamWriteInt32(bs, string.len(str))
    raknetBitStreamWriteString(bs, str)
    raknetBitStreamWriteInt32(bs, 1)
    raknetSendBitStreamEx(bs, 2, 9, 6)
end


Перейдем к скрипту на RakSampLite:​

Обработчик диалогов есть в коде (айди, тип, заголовок, текст, текст первой кнопки, текст второй кнопки, мод(хз что это) передаётся на 32 строке при появлении диалога.
Отправка ответа диалогу.
Lua:
function sendDialogResponse(id, button, list, input)
    local string = string.format("@0, sendResponse, %s, %s, %s, %s", id, list, button, input)
    local bs = bitStream.new()
    bs:writeInt8(220)
    bs:writeInt8(18)
    bs:writeInt8(string.len(string))
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeString(string)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:sendPacketEx(2, 9, 6)
    bs:reset()
end
Lua:
function Validation()
    local bs = bitStream.new()
    bs:writeInt8(220)
    bs:writeInt8(20)
    bs:writeInt8(128)
    bs:writeInt8(7)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeInt8(56)
    bs:writeInt8(4)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:sendPacketEx(2, 9, 6)
    bs:reset()

    local bs = bitStream.new()
    bs:writeInt8(220)
    bs:writeInt8(38)
    bs:writeInt8(101)
    bs:writeInt8(7)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeInt8(56)
    bs:writeInt8(4)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:sendPacketEx(2, 9, 6)
    bs:reset()

    local bs = bitStream.new()
    bs:writeInt8(220)
    bs:writeInt8(50)
    bs:writeInt8(1)
    bs:writeInt16(1)
    bs:sendPacketEx(2, 9, 6)
    bs:reset()

    local bs = bitStream.new() -- TEST
    bs:writeInt8(220)
    bs:writeInt8(10)
    bs:writeInt8(0)
    bs:writeInt16(1)
    bs:sendPacketEx(2, 9, 6)
    bs:reset()

    local bs = bitStream.new() -- TEST
    bs:writeInt8(220)
    bs:writeInt8(10)
    bs:writeInt8(1)
    bs:writeInt16(1)
    bs:sendPacketEx(2, 9, 6)
    bs:reset()

    local string = "svelteReady"
    local bs = bitStream.new()
    bs:writeInt8(220)
    bs:writeInt8(18)
    bs:writeInt8(string.len(string))
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeString(string)
    bs:writeInt32(1)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:sendPacketEx(2, 9, 6)
    bs:reset()

    local string = "@0, vueReady"
    local bs = bitStream.new()
    bs:writeInt8(220)
    bs:writeInt8(18)
    bs:writeInt8(string.len(string))
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeString(string)
    bs:sendPacketEx(2, 9, 6)
    bs:reset()

    local string = "onActiveViewChanged|"
    local bs = bitStream.new()
    bs:writeInt8(220)
    bs:writeInt8(18)
    bs:writeInt8(string.len(string))
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeString(string)
    bs:writeInt8(1)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:sendPacketEx(2, 9, 6)
    bs:reset()

    local string = "onActiveViewChanged|Auth"
    local bs = bitStream.new()
    bs:writeInt8(220)
    bs:writeInt8(18)
    bs:writeInt8(string.len(string))
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:writeString(string)
    bs:writeInt8(1)
    bs:writeInt8(0)
    bs:writeInt8(0)
    bs:sendPacketEx(2, 9, 6)
    bs:reset()
end
Авторизация:
function sendAuthorization(nick, pass)
    local string = string.format("authorization|%s|%s|0", nick, pass)
    local bs = bitStream.new()
    bs:writeInt8(220)
    bs:writeInt8(18)
    bs:writeInt32(string.len(string))
    bs:writeString(string)
    bs:writeInt32(1)
    bs:sendPacketEx(2, 9, 6)
    bs:reset()
end

Регистрация:
function sendRegister(nick, pass, ref)
    newTask(function()
        local string1 = string.format("registration|%s|%s|null|friends|%s", nick, pass, ref)
        local bs = bitStream.new()
        bs:writeInt8(220)
        bs:writeInt8(18)
        bs:writeInt32(string.len(string1))
        bs:writeString(string1)
        bs:writeInt32(1)
        bs:sendPacketEx(2, 9, 6)
        bs:reset()

        wait(500)

        local string2 = "createCharacter|man|0"
        local bs = bitStream.new()
        bs:writeInt8(220)
        bs:writeInt8(18)
        bs:writeInt32(string.len(string2))
        bs:writeString(string2)
        bs:writeInt32(1)
        bs:sendPacketEx(2, 9, 6)
        bs:reset()
    end)
end

raksamp cef rodinarp.lua - на 5 и 6 строке вписать ник и пароль в кавычки(для автологина).

спс @neverlane за помощь с авторизацией

при использовании любого кода с данной темы надо указывать ссылку на эту тему.
Вчера разбирал пакеты другого крмп-проекта, но сервер как-то фильтровал это всё до того, как отправится AuthKey и ClientJoin. Пишет просто: "attempt connect failed. Reconnect", за это вроде отвечает 29 пакет. Есть варики решения?
 
  • Bug
Реакции: Dmitry Code

why ega

РП игрок
Модератор
2,539
2,231
если бы еще нормально обьяснил что пытаешься сделать то мб были бы
при заходе на крмп-сервер кидает вот такую шнягу:
изображение_2023-07-30_205520360.png

учитывая то, что клиент не успевает отправить еще ни одного пакета
 
  • Bug
Реакции: Dmitry Code

lainban

Известный
Автор темы
1,427
579
Спасибо за скрипт, это имба, но всё же было бы прекрасно добавить режим работы, когда ты вводишь нужные данные через cefadd, и оно постоянно вводит их
Накидал тут парочку нужных для себя, и думаю не только для себя пресетов
ну вообще это делается в пару строк, надо только знать основы луа, если хочешь в вк/тг напиши сделаю мб
 
  • Нравится
Реакции: nngromovv

Vafelka<3

Новичок
8
2
Спасибо за скрипт, это имба, но всё же было бы прекрасно добавить режим работы, когда ты вводишь нужные данные через cefadd, и оно постоянно вводит их
Накидал тут парочку нужных для себя, и думаю не только для себя пресетов
1. Ловля номеров
/cefadd @6, complete, rus, 138
138 меняем на свой регион [001-999], после чего прописываем /cefstart на пикапе с номерами
Чем больше перед началом ловли пропишем вышеуказанную команду, тем больше номеров за раз оно будет ловить, т.е прописываем команду 5 раз - 5 номеров оно ловит за один ввод команды /cefstart
Посмотреть вложение 210037
2. Авторулетки
/cefadd @4, start, 0
/cefadd @4, stop, 0
Миксуем эти команды по очереди, после чего вводим /cefstart
Сколько раз вы ЗАМИКСОВАЛИ эти команды, столько рулеток за раз оно и откроет
0 можно менять в зависимости от вида рулетки
0 - бронза
1 - сера
2 - голда
Посмотреть вложение 210036
Бро расскажи ка сделать эту штуку с номерами
 
  • Bug
Реакции: nngromovv и Dmitry Code