Вопросы по CLEO-скриптингу

New_J3rs3y1337

Активный
148
99
Я решил написать CLEO для radmir'a и мне нужна инфа из 215 пакета. Это кастом.пакет и как найти смещение я хз.
В общем нужно инфа из пакета 'FoodSorting'.

На LUA это делает вот так:

LUA:
function onReceivePacket(id, bs)
    if id == 215 then
        local _style = raknetBitStreamReadInt16(bs)
        local _type = raknetBitStreamReadInt32(bs)
        local l = raknetBitStreamReadInt8(bs)
        local style3 = raknetBitStreamReadInt8(bs)
        local length = raknetBitStreamReadInt32(bs)
        if length > 0 and length < 10000 then
            bitstreamtext = raknetBitStreamReadString(bs, length)
        else
            bitstreamtext = nil
        end
        if bitstreamtext then
        print(bitstreamtext)
            if bitstreamtext:match('FoodSorting') then
                local codelen = raknetBitStreamReadInt32(bs)
                local code = raknetBitStreamReadString(bs, codelen)
                if code then
                    print(#code, code)
                end
            end
        end
Если в самом луа скрипте смещений нет, попробуй полазить по подключённым библиотекам, там наверняка прописаны смещения, или хотя бы список аргументов из которых смещение можно посчитать
 

!Sam#0235

Активный
107
35
Hi, I'm trying to create requests with the discord API, the main snippet I want to "rewrite" is this (.LUA)
Lua:
local encoding = require 'encoding' -- подключаем для корректной отправки русских букв
encoding.default = 'CP1251'
u8 = encoding.UTF8
local sampev = require 'lib.samp.events' -- подключаем для хука отправки ответа на диалог
local effil = require 'effil' -- для ассинхронных запросов

local url = 'URL'
local data = {
   ['content'] = '', -- текст (меняется через команду, так что можно оставить пустым)
   ['username'] = 'Sended from .lua script!', -- ник отправителя
   ['avatar_url'] = 'https://c.tenor.com/Z9mXH7-MlcsAAAAS/sexy-black-man-thirst-trap.gif', -- ссылка на аватарку (можно убрать, будет дефолтная)
   ['tts'] = false, -- tts - text to speech - читалка сообщений (true/false)
   -- так же можно сделать еще много чего, подробнее тут: https://discord.com/developers/docs/resources/webhook
}

function main()
   while not isSampAvailable() do wait(0) end
   sampRegisterChatCommand('ds.msg', function(arg)
      data['username'] = sampGetPlayerNickname(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))) -- ник отправителя = ник в игре
      data['content'] = arg -- делаем что бы текст сообщения был равен тексту который мы ввели после команды
      -- отправляем запрос
      asyncHttpRequest('POST', url, {headers = {['content-type'] = 'application/json'}, data = u8(encodeJson(data))},
      function(response)
         print('[WebHook] [OK] отправлено!')
      end,
      function(err)
         print('[WebHook] [ERROR] error: '..err)
      end)
   end)
   wait(-1)
end

-- функция для отправки ассинхронных сообщений
function asyncHttpRequest(method, url, args, resolve, reject)
   local request_thread = effil.thread(function (method, url, args)
      local requests = require 'requests'
      local result, response = pcall(requests.request, method, url, args)
      if result then
         response.json, response.xml = nil, nil
         return true, response
      else
         return false, response
      end
   end)(method, url, args)
   -- Если запрос без функций обработки ответа и ошибок.
   if not resolve then resolve = function() end end
   if not reject then reject = function() end end
   -- Проверка выполнения потока
   lua_thread.create(function()
      local runner = request_thread
      while true do
         local status, err = runner:status()
         if not err then
            if status == 'completed' then
               local result, response = runner:get()
               if result then
                  resolve(response)
               else
                  reject(response)
               end
               return
            elseif status == 'canceled' then
               return reject(status)
            end
         else
            return reject(err)
         end
         wait(0)
      end
   end)
end
I tried to follow the example of this thread, but it doesn't work, what's wrong?
CLEO:
{$CLEO}
0000: NOP

repeat
    wait 0
until 0AFA:

// host
alloc 0@ 30
0AD3: 0@ = format "discord.com"

// path
alloc 1@ 200
0AD3: 1@ = format "api/webhooks/1015806219421757530/a21OfargEvfX7D2B5irPX0Bf_sAqqQGBV8lrpbciUUB6TFE16_TSwLq0pVA3M-COfF_"

// data
alloc 2@ 1000
//0AD3: 2@ = format "content=testing message"
0AD3: 2@ = format "content=testing message&username=custom_username"

// response buffer
alloc 3@ 1500

while true
    wait 0
    if
    0ADC: "X"
    then
        0AB1: call_scm_func @HTTP_POST 5 host 0@ file_path 1@ response_buffer 3@ data 2@ is_https true _ret_is_success 31@
        if
        31@ == true
        then
            chatmsg "Respuesta = %s" 0xFFFFFF 3@
        else
            chatmsg "Fail" -1
        end
    end
end


{$INCLUDE includes/http_requests.txt}
http_requests.txt
 

sampik1

Новичок
2
0
какой handle у исходящего rpc Spawn? нужно для нопа

0B2D: write_samp_memory offset 0x15C50 value 50064 size 2 (здесь нопается другой rpc)
 

Sam_Monroe

Известный
55
2
Попытка номер 2. Кто-нибудь сталкивался с тем, что сб не видит опкоды, когда всё на месте и всё должно работать?

Попытка номер 2. Кто-нибудь сталкивался с тем, что сб не видит опкоды, когда всё на месте и всё должно работать?

✅Решением проблемы стало установка более ранней версии, а конкретно 3.3.3

Может кому пригодится✅

 

Вложения

  • 1680464799906.png
    1680464799906.png
    171 KB · Просмотры: 30
Последнее редактирование:

!Sam#0235

Активный
107
35
Hi, I'm trying to create requests with the discord API, the main snippet I want to "rewrite" is this (.LUA)
Lua:
local encoding = require 'encoding' -- подключаем для корректной отправки русских букв
encoding.default = 'CP1251'
u8 = encoding.UTF8
local sampev = require 'lib.samp.events' -- подключаем для хука отправки ответа на диалог
local effil = require 'effil' -- для ассинхронных запросов

local url = 'URL'
local data = {
   ['content'] = '', -- текст (меняется через команду, так что можно оставить пустым)
   ['username'] = 'Sended from .lua script!', -- ник отправителя
   ['avatar_url'] = 'https://c.tenor.com/Z9mXH7-MlcsAAAAS/sexy-black-man-thirst-trap.gif', -- ссылка на аватарку (можно убрать, будет дефолтная)
   ['tts'] = false, -- tts - text to speech - читалка сообщений (true/false)
   -- так же можно сделать еще много чего, подробнее тут: https://discord.com/developers/docs/resources/webhook
}

function main()
   while not isSampAvailable() do wait(0) end
   sampRegisterChatCommand('ds.msg', function(arg)
      data['username'] = sampGetPlayerNickname(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))) -- ник отправителя = ник в игре
      data['content'] = arg -- делаем что бы текст сообщения был равен тексту который мы ввели после команды
      -- отправляем запрос
      asyncHttpRequest('POST', url, {headers = {['content-type'] = 'application/json'}, data = u8(encodeJson(data))},
      function(response)
         print('[WebHook] [OK] отправлено!')
      end,
      function(err)
         print('[WebHook] [ERROR] error: '..err)
      end)
   end)
   wait(-1)
end

-- функция для отправки ассинхронных сообщений
function asyncHttpRequest(method, url, args, resolve, reject)
   local request_thread = effil.thread(function (method, url, args)
      local requests = require 'requests'
      local result, response = pcall(requests.request, method, url, args)
      if result then
         response.json, response.xml = nil, nil
         return true, response
      else
         return false, response
      end
   end)(method, url, args)
   -- Если запрос без функций обработки ответа и ошибок.
   if not resolve then resolve = function() end end
   if not reject then reject = function() end end
   -- Проверка выполнения потока
   lua_thread.create(function()
      local runner = request_thread
      while true do
         local status, err = runner:status()
         if not err then
            if status == 'completed' then
               local result, response = runner:get()
               if result then
                  resolve(response)
               else
                  reject(response)
               end
               return
            elseif status == 'canceled' then
               return reject(status)
            end
         else
            return reject(err)
         end
         wait(0)
      end
   end)
end
I tried to follow the example of this thread, but it doesn't work, what's wrong?
CLEO:
{$CLEO}
0000: NOP

repeat
    wait 0
until 0AFA:

// host
alloc 0@ 30
0AD3: 0@ = format "discord.com"

// path
alloc 1@ 200
0AD3: 1@ = format "api/webhooks/1015806219421757530/a21OfargEvfX7D2B5irPX0Bf_sAqqQGBV8lrpbciUUB6TFE16_TSwLq0pVA3M-COfF_"

// data
alloc 2@ 1000
//0AD3: 2@ = format "content=testing message"
0AD3: 2@ = format "content=testing message&username=custom_username"

// response buffer
alloc 3@ 1500

while true
    wait 0
    if
    0ADC: "X"
    then
        0AB1: call_scm_func @HTTP_POST 5 host 0@ file_path 1@ response_buffer 3@ data 2@ is_https true _ret_is_success 31@
        if
        31@ == true
        then
            chatmsg "Respuesta = %s" 0xFFFFFF 3@
        else
            chatmsg "Fail" -1
        end
    end
end


{$INCLUDE includes/http_requests.txt}
http_requests.txt
up
 

Aomine_Black

Новичок
3
0
Ребят подскажите опкод, который спамит кнопкой в транспорте, тобиш допустим транспорт фаггио, актёр спамит стрелку вверх. Как сделать?
 

Bili Djin

Активный
137
67
Ребят подскажите опкод, который спамит кнопкой в транспорте, тобиш допустим транспорт фаггио, актёр спамит стрелку вверх. Как сделать?
0C72: set_virtual_key 0@ down true
Этим опкодом делаешь нажатие и отжатие клавиши с маленькой задержкой и суешь код в WHILE


CLEO:
while True // Бесконечный цикл
    wait 0 // Задержка в 0 ms., чтобы не крашнуло
    if 0AB0:   key_pressed 49 // Если клавиша "1" нажата, то идём дальше
    then
        0C72: set_virtual_key 33 down true // Нажимаем клавишу №33 (Page UP)
        wait 5 // Маленькая задержка, чтобы самп логал нажатие
        0C72: set_virtual_key 33 down false // Отпускаем клавину 
    end
end
 

Anmanerr

Новичок
4
1
ПОДСКАЖИТЕ, ПОЖУЙСТА, почему format %d в клео не работает? Условно, если сделать вот так

CODE:
0AD3: 0@ = format "Number %d" 2

Вместо "Number 2", получу "Number D", с float и другими значениями таких проблем нет
 

D3.Pheonix

🎹
Модератор
2,813
1,592
ПОДСКАЖИТЕ, ПОЖУЙСТА, почему format %d в клео не работает? Условно, если сделать вот так

CODE:
0AD3: 0@ = format "Number %d" 2

Вместо "Number 2", получу "Number D", с float и другими значениями таких проблем нет

CLEO:
format 1@ = "Int, float, string: %d, %f, %s" 5 5.5 "asd"
1685730831756.png


Может у тебя при компиляции в верхний регистр переводит ?
Чекни в SB: сервис> настройки > форматирование > регистр букв > "как есть"
 
Последнее редактирование:

Anmanerr

Новичок
4
1
Может у тебя при компиляции в верхний регистр переводит ?
Чекни в SB: сервис> настройки > форматирование > регистр букв > "как есть"
Спасибо тебе большое, как-то даже не подумал об этом, верхний регистр почему-то стоял, все заработало!
 
  • Нравится
Реакции: D3.Pheonix

Bili Djin

Активный
137
67
Как сделать так, чтобы при какой либо анимации персонаж мог ходить?
Например ты сидишь, но при этом можешь ходить
 

Anmanerr

Новичок
4
1
Подскажите пожалуйста, как поднять игрока? Условно он упал, или его сбила машина, нужно моментально его поднять, сбив анимки, разморозка не помогают
 

New_J3rs3y1337

Активный
148
99
Подскажите пожалуйста, как поднять игрока? Условно он упал, или его сбила машина, нужно моментально его поднять, сбив анимки, разморозка не помогают
По-идее, можно задействовать другую анимацию, например того, как игрок бежит, через apply animation опкоды. Названия анимаций поищи в интернете
 

Sam201

Известный
91
4
я ищу
function sampev.onTogglePlayerControllable(controllable) в Луа функция переконвертировал в клео ..
Я пытался
0A8D: 26@ = readMem 0xA90495 sz 4 vp 0
if 26@ > 0

но он рассматривает летательные аппараты как замораживание государства