sVor
Активный
- 184
- 98
Потому что не все диалоги имеют вторую кнопку взаимодействия, чекай мунлогкраш после того как прописываю /stats
Потому что не все диалоги имеют вторую кнопку взаимодействия, чекай мунлогкраш после того как прописываю /stats
Было сложно сделать что бы он сам нажмал куда спавнится? если можешь скажи как сделать или ты сделай очень нужная тема)никому ниче размусоливать не буду, не поняли - вам в раздел "работа и услуги".
Суть скрипта и его команды(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 за помощь с авторизацией
при использовании любого кода с данной темы надо указывать ссылку на эту тему.
В теме написано что если не понял иди заказывай в раздел работа и услугиБыло сложно сделать что бы он сам нажмал куда спавнится? если можешь скажи как сделать или ты сделай очень нужная тема)
У раксампа свой api для bitStreamа в обычном луа коде идентично как и в раксамплайте код пишется ? я просто деревянный и не понимаю пока.
можешь помочь сделать? у меня пакеты к серверу не отправляютсяwork da
будет ли фикс в связи с последним обновлением входящих и исходящих пакетов?
там пример больше подходит для автологина под лаунчер, мне же нужен для раксампа![]()
Исходник - Гайд - [ARZ] CEF Events
Пацыки кто знает как цеф АризоныМобайл вывести? уметь читать код, документация, уметь гуглить, переводить англ на русс и наоборот. грубо говоря, иметь умелые руки и продвинутый мозгwww.blast.hk
там пример больше подходит для автологина под лаунчер, мне же нужен для раксампа
function onReceivePacket(id, bs)
if id == 220 then
bs:ignoreBits(8)
if (bs:readInt8() == 17) then
bs:ignoreBits(32)
local length = bs:readInt16()
local encoded = bs:readInt8()
local str = (encoded ~= 0) and bs:readEncoded(length + encoded) or bs:readString(length)
print(str)
end
end
end
--отправка
function emulcef(str)
local bs = bitStream.new()
bs:writeInt8(220)
bs:writeInt8(18)
bs:writeInt16(#str)
bs:writeString(str)
bs:writeInt32(0)
bs:writeInt16(0)
bs:sendPacket()
bs:reset()
end
даже при таком раскладе не хочет авторизовыватьсяLua:function onReceivePacket(id, bs) if id == 220 then bs:ignoreBits(8) if (bs:readInt8() == 17) then bs:ignoreBits(32) local length = bs:readInt16() local encoded = bs:readInt8() local str = (encoded ~= 0) and bs:readEncoded(length + encoded) or bs:readString(length) print(str) end end end --отправка function emulcef(str) local bs = bitStream.new() bs:writeInt8(220) bs:writeInt8(18) bs:writeInt16(#str) bs:writeString(str) bs:writeInt32(0) bs:writeInt16(0) bs:sendPacket() bs:reset() end
function sampev.onSendClientJoin(version, mod, nickname, challengeResponse, joinAuthKey, clientVer, challengeResponse2)
newTask(function()
wait(1000)
Validation()
wait(1000)
local initString = "svelteReady"
emulcef(initString)
wait(500)
emulcef("@0, vueReady")
wait(500)
emulcef("onActiveViewChanged|Auth")
end)
end
function onReceivePacket(id, bs)
if id == 220 then
bs:ignoreBits(8)
local subType = bs:readInt8()
if (subType == 17) then
bs:ignoreBits(32)
local length = bs:readInt16()
local encoded = bs:readInt8()
local str = (encoded ~= 0) and bs:readEncoded(length + encoded) or bs:readString(length)
print("Received string:", tostring(str))
if str:find("window.executeEvent%(%'event%.setActiveView%'%,") and str:find('%[%"Auth%"%]') then
if authorization.nick ~= "" and authorization.password ~= "" then
newTask(function()
wait(1000)
sendAuthorization(authorization.nick, authorization.password)
end)
end
end
if str:find("vue%.showModal%(%'Dialog%'") then
local event, js = str:match("vue%.showModal%(%'(.+)%'%, (.+)")
js = js:gsub("%{......%}", "")
local id, type, title, text, btn1, btn2, _ = js:match("%{id%:(%d+)%,type%:(%d+)%,header%:%'(.+)%'%,body%:%`(.+)%`%,primaryButton%:%'(.+)%'%,secondaryButton%:%'(.+)%'%,mode%:(%d+)")
print("Dialog! | id " ..id.. " | type " ..type.. " | title " ..title.. " | text " .. text)
end
end
end
end
function emulcef(str)
str = str or ""
local bs = bitStream.new()
bs:writeInt8(220)
bs:writeInt8(18)
bs:writeInt16(#str)
bs:writeString(str)
bs:writeInt32(0)
bs:writeInt16(0)
bs:sendPacket()
bs:reset()
end
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 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
function sendAuthorization(nick, pass)
print("[DEBUG] Sending auth data for:", nick)
local authString = string.format("authorization|%s|%s|0", nick, pass)
print("[DEBUG] Auth string:", authString)
local bs = bitStream.new()
bs:writeInt8(220)
bs:writeInt8(18)
bs:writeInt16(#authString)
bs:writeString(authString)
bs:writeInt32(1)
bs:writeInt16(0)
bs:sendPacket()
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