Как переписать lua-скрипт в cleo-скрипт?

Yelawolf

Участник
Автор темы
20
4
Очень тупой вопрос, так как программирование этих видов скриптов сильно отличаются и чтобы мне переписать скрипт на CLEO, нужно учиться какое-то время... Поэтому, мне нужен конкретный случай, пожалуйста, скажите, существуют ли опкоды в Cleo, аналогами которых являются хуки, которые я использовал в следующем скрипте. ( Немного наговнокодил, но скрипт делает то что мне нужно и этого мне хватает.
Скриптец:
local events = require 'lib.samp.events'
local ev = require 'lib.samp.events'


bank = 0

function events.onServerMessage(color,text)
    lua_thread.create(function()
        if text:find("Банковский чек") or text:find("Команда") then
            wait(2000)
            sampSendChat("/phone")
            wait(2000)
            sampSendClickTextdraw(349)
            bank = 1
        end
    end)
end

function ev.onShowDialog(dialogId, style, title, button1, button2, text)
    if dialogId == 1689 and bank == 1 then
        sampSendDialogResponse(1689, 1, 13, nil)
        sampSendDialogResponse(1723, 1, 2, nil)
        sampSendDialogResponse(1726, 1, nil, "10000")
        bank = 2
        return false
    end
    if dialogId == 454 and bank == 2 or dialogId == 1689 and bank == 2 or dialogId == 1723 and bank == 2 or dialogId == 1726 and bank == 2 then
        sampSendDialogResponse(dialogId, 0, nil, nil)
        return false     
    end
end
 

Maxim25012

Известный
512
234
Существуют, но всё куда сложнее. Придётся самостоятельно устанавливать хук, используя один из четырёх опкодов, на получение или отправку RPC или пакетов, в котором нужно самостоятельно проверять их ID, чтобы работать только с теми, которые тебе нужны; самостоятельно считывать данные с битстрима, зная их расположение, а после всего этого – не забывать возвращаться из хука, используя специальный опкод. Жопоболь да и только.

Таблица соответствия опкодов тебе в помощь.
 

Yelawolf

Участник
Автор темы
20
4
Существуют, но всё куда сложнее. Придётся самостоятельно устанавливать хук, используя один из четырёх опкодов, на получение или отправку RPC или пакетов, в котором нужно самостоятельно проверять их ID, чтобы работать только с теми, которые тебе нужны; самостоятельно считывать данные с битстрима, зная их расположение, а после всего этого – не забывать возвращаться из хука, используя специальный опкод. Жопоболь да и только.

Таблица соответствия опкодов тебе в помощь.
Е б а н у т с я, ладно попробую что-нибудь сварганить)
 

.drakonez

Участник
53
14
Очень тупой вопрос, так как программирование этих видов скриптов сильно отличаются и чтобы мне переписать скрипт на CLEO, нужно учиться какое-то время... Поэтому, мне нужен конкретный случай, пожалуйста, скажите, существуют ли опкоды в Cleo, аналогами которых являются хуки, которые я использовал в следующем скрипте. ( Немного наговнокодил, но скрипт делает то что мне нужно и этого мне хватает.
Скриптец:
local events = require 'lib.samp.events'
local ev = require 'lib.samp.events'


bank = 0

function events.onServerMessage(color,text)
    lua_thread.create(function()
        if text:find("Банковский чек") or text:find("Команда") then
            wait(2000)
            sampSendChat("/phone")
            wait(2000)
            sampSendClickTextdraw(349)
            bank = 1
        end
    end)
end

function ev.onShowDialog(dialogId, style, title, button1, button2, text)
    if dialogId == 1689 and bank == 1 then
        sampSendDialogResponse(1689, 1, 13, nil)
        sampSendDialogResponse(1723, 1, 2, nil)
        sampSendDialogResponse(1726, 1, nil, "10000")
        bank = 2
        return false
    end
    if dialogId == 454 and bank == 2 or dialogId == 1689 and bank == 2 or dialogId == 1723 and bank == 2 or dialogId == 1726 and bank == 2 then
        sampSendDialogResponse(dialogId, 0, nil, nil)
        return false    
    end
end
а для чего тебе переносить этот скрипт на клео, если ты в нем ничего не понимаешь?
 

Yelawolf

Участник
Автор темы
20
4
а для чего тебе переносить этот скрипт на клео, если ты в нем ничего не понимаешь?
Я бы и не переносил бы.. но сервер на котором я играю, послал к хренам moonloader, якобы до фикса какого-то эксплойта. А точнее крашера серваков, что сливали недавно. Вот теперь из-за слива и мучаюсь, а без этого скрипта - как без рук
 

.drakonez

Участник
53
14
Я бы и не переносил бы.. но сервер на котором я играю, послал к хренам moonloader, якобы до фикса какого-то эксплойта. А точнее крашера серваков, что сливали недавно. Вот теперь из-за слива и мучаюсь, а без этого скрипта - как без рук
гениальное решение проблемы они нашли
 

Yelawolf

Участник
Автор темы
20
4
гениальное решение проблемы они нашли
В том и дело) Аризона РПГ эту проблему решила за пол часа.. а Мой Дом Ролевая игра.. уже как месяц ничего не может сделать, разве что заблокать мун