rakbot - автосбор рулеток

Gishit

Известный
Автор темы
423
119
Купил себе новый сундучек на аризоне помогите добавить его в скрипт от Dozor
ИД которые указаны в его скрипте не могу найти схожие
1646950086965.png


Код:
package.path = getRakBotPath().."/scripts/libs/?.lua;"..getRakBotPath().."/scripts/libs/?/init.lua;";
package.cpath = getRakBotPath().."/scripts/libs/?.dll";
require("luaAddons.textdraw")
require("luaAddons.fix")
require('Tasking')

--[[                                                                                     
        Автор https://www.blast.hk/members/66561/ - Dozor
        Version 1.2.4 Тема на blast hack https://www.blast.hk/threads/89958/
        © Публикация на других интернет ресурсах разрешена при условии:
        - если будет указан автор скрипта
        - если будет оставлена ссылка на оригинальную тему
]]

local autostart = false -- автоактивация скрипта при спавне

local checkmaxid = false
local checktime = false
local check = false
local active = false
local warn = false
local nottime = false
local em = false

local recremove = false

syndyk1 = nil
syndyk2 = nil
syndyk3 = nil
syndyk4 = nil

maxid = 0
n = 0
time = 0
time1 = 0
s = 0

local ryletka = {
    bronz = 0,
    serebr = 0,
    zoloto = 0,
    platina = 0,
};

local larec = {
    prem = 0,
    supercar = 0,
};

local const = {
    CHEST_STANDART = 19918,
    CHEST_DONATE = 19613,
    CHEST_PLATINUM = 1353,
    CHEST_ELONMUSK = 1733,
    close = 65535,
    use = 2302,
};

function onRunCommand(cmd)
    if cmd == '!rch' then   
        print('[RakChest] Активирован! Версия скрипта 1.2.4')
        if maxid == 0 then
            Tasking.new(checkMaxId)
        else
            Tasking.new(control)
        end
        return true
    end
    if cmd == '!rl' then
        print('[RakChest] Рулеток собрано за сессию:')
        print('[RakChest] Бронзовых: '..ryletka.bronz..', Серебряных: '..ryletka.serebr)
        print('[RakChest] Золотых: '..ryletka.zoloto..', Платиновых: '..ryletka.platina)
        if em then
            print('')
            print('[RakChest] Ларцов собрано:')
            print('[RakChest] С премией: '..larec.prem..', Super Car: '..larec.supercar)
        end
        return true
    end
    if cmd == '!time' then
        active = false
        clickTextDraw(const.close)
        sendInput('/invent')
        checktime = true
        Tasking.new(function()
            Tasking.wait(3000)
            active = true
            clickTextDraw(const.close)
        end)
        return true
    end
end
        

function onShowTextDraw(tId,data)
    if checkmaxid then
        if maxid < tId then   
            maxid = tId
        end
    end
    if active then
        if data.modelId == const.CHEST_STANDART then
            syndyk1 = tId
        end
        if data.modelId == const.CHEST_DONATE then
            syndyk2 = tId
        end
        if data.modelId == const.CHEST_PLATINUM then
            syndyk3 = tId
        end
        if data.modelId == const.CHEST_ELONMUSK then
            syndyk4 = tId
            em = true
        end
        
        if data.text:match('%d- min') then
            n = 0
            nottime = true
            local t = string.match(sampTextdrawGetString(tId), "(%d+)")
            print('[RakChest] До открытия осталось '..t..' min')
            time1 = (t*60000) + 60000
            
            if time1 > time then
                time = time1
            end
            clickTextDraw(const.close)
            check = true
        end
        
        if tId == maxid then
            if nottime then
                Tasking.defer(control, time)
                check = true
                nottime = false
            end
            if check == false then
                Tasking.new(click)
                active = false
                check = true
            end
            if syndyk1 == nil and syndyk2 == nil and syndyk3 == nil and syndyk4 == nil then
                print('[RakChest] [Warning] Сундуки не обнаружено!')
                print('[RakChest] [Warning] Все сундуки должны находиться на первой странице инвентаря!')
                print('[RakChest] Скрипт выключен!')
                Tasking.remove(click)
                Tasking.remove(control)
                checkmaxid = false
                checktime = false
                check = false
                active = false
            end
        end
    end
    if checktime then
        if data.text:match('%d- min') then
            local t = string.match(sampTextdrawGetString(tId), "(%d+)")
            print('[RakChest] До открытия осталось '..t..' min')
            checktime = false
            active = true
            clickTextDraw(const.close)
        end
    end
end

function onDialogShow(id, style, title, bnt1, btn2, data)
    if data:find('вы дополнительно получили предмет') then
        print('[RakChest] Выпал х4. Закрываем диалог.')
        sendDialog(id, 0, 0, "")
        sendInput('/invent')
        return true
    end
    if title:find('Игровое меню') then
        if recremove then
            print('[RakChest][Warning] Фиксим!')
            sendDialog(id, 0, 0, "")
            n = 0
            defCallAdd(2000, false, function() Tasking.new(control) end)
            recremove = false
            return true
        end
    end
end

function click()
    if n > 0 then
        Tasking.remove(click)
        recremove = true
        print('[RakChest][Warning] Сервер перестал реагировать на нажатия!')
        if recremove then
            sendInput('/mm')
        end
    else
        print('[RakChest] Открываем сундуки!')
        clickTextDraw(const.close)
        Tasking.wait(1000)
        sendInput('/invent')
        Tasking.wait(1000)
        
        if syndyk1 ~= nil then
            clickTextDraw(syndyk1)
            Tasking.wait(3000)
            clickTextDraw(const.use)
            syndyk1 = nil
        end
        Tasking.wait(1000)
        if syndyk3 ~= nil then
            clickTextDraw(syndyk3)
            Tasking.wait(3000)
            clickTextDraw(const.use)
            syndyk2 = nil
        end
        Tasking.wait(1000)
        if syndyk2 ~= nil then
            clickTextDraw(syndyk2)
            Tasking.wait(3000)
            clickTextDraw(const.use)
            syndyk3 = nil
        end
        Tasking.wait(1000)
        if syndyk4 ~= nil then
            clickTextDraw(syndyk4)
            Tasking.wait(3000)
            clickTextDraw(const.use)
            syndyk4 = nil
        end
        clickTextDraw(const.close)
        print('[RakChest] Сундуки открыты!')
        n = n + 1
        Tasking.remove(click)
        active = false
        Tasking.wait(3000)
        Tasking.new(control)
    end
end

function control()
    Tasking.wait(1000)
    clickTextDraw(const.close)
    warn = false
    check = false
    Tasking.wait(1000)
    active = true
    Tasking.wait(1000)
    sendInput('/invent')
    Tasking.remove(control)
end

function checkMaxId()
    maxid = 0
    checkmaxid = true
    clickTextDraw(const.close)
    print('[RakChest] Проверка инвентаря на наличие сундуков!')
    sendInput('/invent')
    Tasking.wait(3000)
    print('[RakChest] Проверка окончена!')
    checkmaxid = false
    maxid = maxid - 4
    --Tasking.remove(checkMaxId)
    Tasking.new(control)
end

function onSpawned()
    if warn and isBotSpawned then
        Tasking.new(control)
    end
    if autostart then
        defCallAdd(500, false, function()
            runCommand('!rch')
        end)
    end
end

function onServerMessage(text)
    if text:find('и получили бронзовую рулетку') then
        ryletka.bronz = ryletka.bronz + 1
    end
    if text:find('и получили серебряную рулетку') then
        ryletka.serebr = ryletka.serebr + 1
    end
    if text:find('и получили золотую рулетку') then
        ryletka.zoloto = ryletka.zoloto + 1
    end
    if text:find('и получили платиновую рулетку') then
        ryletka.platina = ryletka.platina + 1
    end
    if text:find('и получили Ларец с премией') then
        larec.prem = larec.prem + 1
    end
    if text:find('и получили Ларец Super Car') then
        larec.supercar = larec.supercar + 1
    end
end

onScriptUpdate = Tasking.tick

там чет айди которые в коде у него прописаны у меня не отображаются по всей видимости
так же буду рад если кто - то скинет его вк
 
  • Нравится
Реакции: Hristot
Решение
мальчики кто поможет сделать чтоб заработало заплачу вам там на пивко или чем увлекаетесь


ща поищу именно тот объект который надо мне


поможешь найти нужный объект ?Посмотреть вложение 139363
и как я по твоему его найти должен?

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


ща поищу именно тот объект который надо мне


поможешь найти нужный объект ?Посмотреть вложение 139363

yung milonov

Известный
974
476
там чет айди которые в коде у него прописаны у меня не отображаются по всей видимости
так же буду рад если кто - то скинет его вк
у него айди объекта а не текстдрава
1646950577220.png
 
  • Нравится
Реакции: Gishit

Gishit

Известный
Автор темы
423
119
мальчики кто поможет сделать чтоб заработало заплачу вам там на пивко или чем увлекаетесь

у него айди объекта а не текстдрава
Посмотреть вложение 139362
ща поищу именно тот объект который надо мне

у него айди объекта а не текстдрава
Посмотреть вложение 139362
поможешь найти нужный объект ?
1646950942045.png
 
Последнее редактирование:

yung milonov

Известный
974
476
мальчики кто поможет сделать чтоб заработало заплачу вам там на пивко или чем увлекаетесь


ща поищу именно тот объект который надо мне


поможешь найти нужный объект ?Посмотреть вложение 139363
и как я по твоему его найти должен?

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


ща поищу именно тот объект который надо мне


поможешь найти нужный объект ?Посмотреть вложение 139363
 
Последнее редактирование:
  • Нравится
Реакции: Gishit

Hristot

Победитель
1,004
230
Купил себе новый сундучек на аризоне помогите добавить его в скрипт от Dozor
ИД которые указаны в его скрипте не могу найти схожие
Посмотреть вложение 139361

Код:
package.path = getRakBotPath().."/scripts/libs/?.lua;"..getRakBotPath().."/scripts/libs/?/init.lua;";
package.cpath = getRakBotPath().."/scripts/libs/?.dll";
require("luaAddons.textdraw")
require("luaAddons.fix")
require('Tasking')

--[[                                                                                    
        Автор https://www.blast.hk/members/66561/ - Dozor
        Version 1.2.4 Тема на blast hack https://www.blast.hk/threads/89958/
        © Публикация на других интернет ресурсах разрешена при условии:
        - если будет указан автор скрипта
        - если будет оставлена ссылка на оригинальную тему
]]

local autostart = false -- автоактивация скрипта при спавне

local checkmaxid = false
local checktime = false
local check = false
local active = false
local warn = false
local nottime = false
local em = false

local recremove = false

syndyk1 = nil
syndyk2 = nil
syndyk3 = nil
syndyk4 = nil

maxid = 0
n = 0
time = 0
time1 = 0
s = 0

local ryletka = {
    bronz = 0,
    serebr = 0,
    zoloto = 0,
    platina = 0,
};

local larec = {
    prem = 0,
    supercar = 0,
};

local const = {
    CHEST_STANDART = 19918,
    CHEST_DONATE = 19613,
    CHEST_PLATINUM = 1353,
    CHEST_ELONMUSK = 1733,
    close = 65535,
    use = 2302,
};

function onRunCommand(cmd)
    if cmd == '!rch' then  
        print('[RakChest] Активирован! Версия скрипта 1.2.4')
        if maxid == 0 then
            Tasking.new(checkMaxId)
        else
            Tasking.new(control)
        end
        return true
    end
    if cmd == '!rl' then
        print('[RakChest] Рулеток собрано за сессию:')
        print('[RakChest] Бронзовых: '..ryletka.bronz..', Серебряных: '..ryletka.serebr)
        print('[RakChest] Золотых: '..ryletka.zoloto..', Платиновых: '..ryletka.platina)
        if em then
            print('')
            print('[RakChest] Ларцов собрано:')
            print('[RakChest] С премией: '..larec.prem..', Super Car: '..larec.supercar)
        end
        return true
    end
    if cmd == '!time' then
        active = false
        clickTextDraw(const.close)
        sendInput('/invent')
        checktime = true
        Tasking.new(function()
            Tasking.wait(3000)
            active = true
            clickTextDraw(const.close)
        end)
        return true
    end
end
       

function onShowTextDraw(tId,data)
    if checkmaxid then
        if maxid < tId then  
            maxid = tId
        end
    end
    if active then
        if data.modelId == const.CHEST_STANDART then
            syndyk1 = tId
        end
        if data.modelId == const.CHEST_DONATE then
            syndyk2 = tId
        end
        if data.modelId == const.CHEST_PLATINUM then
            syndyk3 = tId
        end
        if data.modelId == const.CHEST_ELONMUSK then
            syndyk4 = tId
            em = true
        end
       
        if data.text:match('%d- min') then
            n = 0
            nottime = true
            local t = string.match(sampTextdrawGetString(tId), "(%d+)")
            print('[RakChest] До открытия осталось '..t..' min')
            time1 = (t*60000) + 60000
           
            if time1 > time then
                time = time1
            end
            clickTextDraw(const.close)
            check = true
        end
       
        if tId == maxid then
            if nottime then
                Tasking.defer(control, time)
                check = true
                nottime = false
            end
            if check == false then
                Tasking.new(click)
                active = false
                check = true
            end
            if syndyk1 == nil and syndyk2 == nil and syndyk3 == nil and syndyk4 == nil then
                print('[RakChest] [Warning] Сундуки не обнаружено!')
                print('[RakChest] [Warning] Все сундуки должны находиться на первой странице инвентаря!')
                print('[RakChest] Скрипт выключен!')
                Tasking.remove(click)
                Tasking.remove(control)
                checkmaxid = false
                checktime = false
                check = false
                active = false
            end
        end
    end
    if checktime then
        if data.text:match('%d- min') then
            local t = string.match(sampTextdrawGetString(tId), "(%d+)")
            print('[RakChest] До открытия осталось '..t..' min')
            checktime = false
            active = true
            clickTextDraw(const.close)
        end
    end
end

function onDialogShow(id, style, title, bnt1, btn2, data)
    if data:find('вы дополнительно получили предмет') then
        print('[RakChest] Выпал х4. Закрываем диалог.')
        sendDialog(id, 0, 0, "")
        sendInput('/invent')
        return true
    end
    if title:find('Игровое меню') then
        if recremove then
            print('[RakChest][Warning] Фиксим!')
            sendDialog(id, 0, 0, "")
            n = 0
            defCallAdd(2000, false, function() Tasking.new(control) end)
            recremove = false
            return true
        end
    end
end

function click()
    if n > 0 then
        Tasking.remove(click)
        recremove = true
        print('[RakChest][Warning] Сервер перестал реагировать на нажатия!')
        if recremove then
            sendInput('/mm')
        end
    else
        print('[RakChest] Открываем сундуки!')
        clickTextDraw(const.close)
        Tasking.wait(1000)
        sendInput('/invent')
        Tasking.wait(1000)
       
        if syndyk1 ~= nil then
            clickTextDraw(syndyk1)
            Tasking.wait(3000)
            clickTextDraw(const.use)
            syndyk1 = nil
        end
        Tasking.wait(1000)
        if syndyk3 ~= nil then
            clickTextDraw(syndyk3)
            Tasking.wait(3000)
            clickTextDraw(const.use)
            syndyk2 = nil
        end
        Tasking.wait(1000)
        if syndyk2 ~= nil then
            clickTextDraw(syndyk2)
            Tasking.wait(3000)
            clickTextDraw(const.use)
            syndyk3 = nil
        end
        Tasking.wait(1000)
        if syndyk4 ~= nil then
            clickTextDraw(syndyk4)
            Tasking.wait(3000)
            clickTextDraw(const.use)
            syndyk4 = nil
        end
        clickTextDraw(const.close)
        print('[RakChest] Сундуки открыты!')
        n = n + 1
        Tasking.remove(click)
        active = false
        Tasking.wait(3000)
        Tasking.new(control)
    end
end

function control()
    Tasking.wait(1000)
    clickTextDraw(const.close)
    warn = false
    check = false
    Tasking.wait(1000)
    active = true
    Tasking.wait(1000)
    sendInput('/invent')
    Tasking.remove(control)
end

function checkMaxId()
    maxid = 0
    checkmaxid = true
    clickTextDraw(const.close)
    print('[RakChest] Проверка инвентаря на наличие сундуков!')
    sendInput('/invent')
    Tasking.wait(3000)
    print('[RakChest] Проверка окончена!')
    checkmaxid = false
    maxid = maxid - 4
    --Tasking.remove(checkMaxId)
    Tasking.new(control)
end

function onSpawned()
    if warn and isBotSpawned then
        Tasking.new(control)
    end
    if autostart then
        defCallAdd(500, false, function()
            runCommand('!rch')
        end)
    end
end

function onServerMessage(text)
    if text:find('и получили бронзовую рулетку') then
        ryletka.bronz = ryletka.bronz + 1
    end
    if text:find('и получили серебряную рулетку') then
        ryletka.serebr = ryletka.serebr + 1
    end
    if text:find('и получили золотую рулетку') then
        ryletka.zoloto = ryletka.zoloto + 1
    end
    if text:find('и получили платиновую рулетку') then
        ryletka.platina = ryletka.platina + 1
    end
    if text:find('и получили Ларец с премией') then
        larec.prem = larec.prem + 1
    end
    if text:find('и получили Ларец Super Car') then
        larec.supercar = larec.supercar + 1
    end
end

onScriptUpdate = Tasking.tick

там чет айди которые в коде у него прописаны у меня не отображаются по всей видимости
так же буду рад если кто - то скинет его вк
У тебя фикс работает? "Сервер перестал реагировать на нажатия"
 

Gishit

Известный
Автор темы
423
119
У тебя фикс работает? "Сервер перестал реагировать на нажатия"
1.2.4 версия стоит все работает хорошо толк чет один сундук не открывает
дозора заблочили на форуме хуй напишешь ему чтоб пофиксил и нашел как можно открывать сундуки не одновременно а по их кд.
тему думаю создать мб кто - то возьмется за деньги переделать