Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require("package").loaded["doublebuffer"] = nil
- require("package").loaded["control"] = nil
- require("package").loaded["casino"] = nil
- require("package").loaded["sgui"] = nil
- require("package").loaded["logs"] = nil
- local controlLib = require("control")
- local charSpace = ' '
- local component = require("component")
- local computer = require("computer")
- local event = require("event")
- local unicode = require("unicode")
- local thread = require("thread")
- local Casino = require("casino")
- local logs = require("logs")
- local gui = require("sgui")
- local gpu = component.gpu
- local chatbox = component.chat_box
- chatbox.setName("§6BAZAR CASINO§7§o")
- chatbox.say("§aМодули успешно загружены")
- local width, height = gpu.getResolution()
- gpu.setResolution(112,50)
- local win = {}
- --Резервируем места
- local function reservWin()
- local x = 10 -- начальная Координата x
- local y = 6 -- начальная координата y
- for i = 1, 63 do
- local id = controlLib.createLabel{
- x = x;
- y = y;
- text = ""
- }
- table.insert(win, id)
- x = x + 36
- if x > 108 then
- x = 10
- y = y+2
- end
- end
- local id = controlLib.createLabel{
- x = 46;
- y = y;
- text = ""
- }
- table.insert(win, id)
- end
- reservWin()
- local function ClearWin()
- for i = 1, 64 do
- controlLib.updateControl(win[i], {
- text = ""
- })
- end
- end
- local myCasino = Casino:new()
- myCasino:addItem("&fАккумулятор", "contenttweaker:modelbatre", 1, 0.99)
- myCasino:addItem("&fЭнергетический кристалл", "contenttweaker:modelbatcrystal", 1, 0.99)
- myCasino:addItem("&f8-битный чип", "contenttweaker:chip_8bit", 1, 0.99)
- myCasino:addItem("&fФрагметное завихрение", "contenttweaker:blakk_vw", 1, 0.99)
- myCasino:addItem("&fУглепластик", "Carbon Plate", 1, 0.99)
- myCasino:addItem("&fКомпозит", "Advanced Alloy", 1, 0.99)
- myCasino:addItem("&fЭлектросхема", "Electronic Circuit", 1, 0.99)
- myCasino:addItem("&fУлучшенная Электросхема", "Advanced Circuit", 1, 0.99)
- myCasino:addItem("&fОбсидиан", "minecraft:obsidian", 32, 0.99)
- myCasino:addItem("&bЛогический процессор", "Logic Processor", 1, 0.4)
- myCasino:addItem("&bЛазуротроновый Кристалл", "contenttweaker:modelbatlamacrystal", 1, 0.4)
- myCasino:addItem("&b16-битный чип", "contenttweaker:chip_16bit", 1, 0.4)
- myCasino:addItem("&bУскоритель", "Overclocker Upgrade", 1, 0.4)
- myCasino:addItem("&bТрансформатор", "Transformer Upgrade", 1, 0.4)
- myCasino:addItem("&bПанель 2-го уровня", "Low Voltage Solar Array", 1, 0.4)
- myCasino:addItem("&bИридиевая руда", "Iridium Ore", 1, 0.4)
- myCasino:addItem("&bЭндер-Жемчуг", "minecraft:ender_pearl", 16, 0.4)
- myCasino:addItem("&bРэдстоуновая руда", "minecraft:redstone_ore", 48, 0.4)
- myCasino:addItem("&bФлаксовый разъем", "fluxnetworks:fluxplug", 1, 0.4)
- myCasino:addItem("&bФлаксовый контроллер", "fluxnetworks:fluxcontroller", 1, 0.4)
- myCasino:addItem("&b32-битный чип", "contenttweaker:chip_32bit", 1, 0.4)
- myCasino:addItem("&bЗавихрение Виверны", "contenttweaker:drei_vw", 1, 0.4)
- myCasino:addItem("&bАметист", "contenttweaker:amethyst", 1, 0.4)
- myCasino:addItem("&bНуклеус Виверны", "contenttweaker:vyverncore_vw", 1, 0.4)
- myCasino:addItem("&bЯдро Дракона", "draconicevolution:draconic_core", 1, 0.4)
- myCasino:addItem("&bПлутоний", "Plutonium", 4, 0.4)
- myCasino:addItem("&bЯйцо Дракона", "minecraft:dragon_egg", 1, 0.4)
- myCasino:addItem("&dФлакс Точка", "fluxnetworks:fluxpoint", 1, 0.2)
- myCasino:addItem("&dФлаксобур Основной", "Fluxbore (Basic)", 1, 0.2)
- myCasino:addItem("&dСовершенная материя", "ic2stuff:pf_matter", 1, 0.2)
- myCasino:addItem("&dНановолоконный шлем", "ic2:nano_helmet", 1, 0.2)
- myCasino:addItem("&dНановолоконный Жилет", "ic2:nano_chestplate", 1, 0.2)
- myCasino:addItem("&dНановолоконный Поножи", "ic2:nano_leggings", 1, 0.2)
- myCasino:addItem("&dНановолоконный Ботинки", "ic2:nano_boots", 1, 0.2)
- myCasino:addItem("&dПереносная ячейка", "appliedenergistics2:portable_cell", 1, 0.2)
- myCasino:addItem("&dЗвезда Ада", "minecraft:nether_star", 1, 0.2)
- myCasino:addItem("&dПанель 3-го уровня", "Medium Voltage Solar Array", 1, 0.2)
- myCasino:addItem("&dФлаксобур Резонирующий", "Fluxbore (Resonant)", 1, 0.2)
- myCasino:addItem("&d64-битный чип", "contenttweaker:chip_64bit", 1, 0.2)
- myCasino:addItem("&dЗавихрение Дракона", "contenttweaker:vier_vw", 1, 0.2)
- myCasino:addItem("&dНановолоконный нагрудник", "gravisuite:advancednanochestplate", 1, 0.2)
- myCasino:addItem("&dНуклеус Дракона", "contenttweaker:dragoncore_vw", 1, 0.2)
- myCasino:addItem("&dЯдро Виверны", "draconicevolution:wyvern_core", 1, 0.2)
- myCasino:addItem("&dПыль Синерия", "Synerium Dust", 16, 0.2)
- myCasino:addItem("&dСердце Дракона", "draconicevolution:dragon_heart", 1, 0.2)
- myCasino:addItem("&cКонденсатор Виверны", "Wyvern Flux Capacitor", 1, 0.1)
- myCasino:addItem("&cМеч Виверны", "draconicevolution:wyvern_sword", 1, 0.1)
- myCasino:addItem("&cЛук Виверны", "draconicevolution:wyvern_bow", 1, 0.1)
- myCasino:addItem("&cКирка Виверны", "draconicevolution:wyvern_pick", 1, 0.1)
- myCasino:addItem("&cТопор Виверны", "draconicevolution:wyvern_axe", 1, 0.1)
- myCasino:addItem("&cШлем Виверны", "draconicevolution:wyvern_helm", 1, 0.1)
- myCasino:addItem("&cНагрудник Виверны", "draconicevolution:wyvern_chest", 1, 0.1)
- myCasino:addItem("&cПоножи Виверны", "draconicevolution:wyvern_legs", 1, 0.1)
- myCasino:addItem("&cБотинки Виверны", "draconicevolution:wyvern_boots", 1, 0.1)
- myCasino:addItem("&4Конденсатор Дракона", "Draconic Flux Capacitor", 1, 0.03)
- myCasino:addItem("&4Меч Дракона", "draconicevolution:draconic_sword", 1, 0.03)
- myCasino:addItem("&4Лук Дракона", "draconicevolution:draconic_bow", 1, 0.03)
- myCasino:addItem("&4Кирка Дракона", "draconicevolution:draconic_pick", 1, 0.03)
- myCasino:addItem("&4Топор Дракона", "draconicevolution:draconic_axe", 1, 0.03)
- myCasino:addItem("&4Шлем Дракона", "draconicevolution:draconic_helm", 1, 0.03)
- myCasino:addItem("&4Поножи Дракона", "draconicevolution:draconic_legs", 1, 0.03)
- myCasino:addItem("&4Ботинки Дракона", "draconicevolution:draconic_boots", 1, 0.03)
- myCasino:addItem("&4Ядро Дракона", "draconicevolution:awakened_core", 1, 0.03)
- myCasino:addItem("&6Квантовая Кирка", "apex:quantum_pickaxe", 1, 0.01)
- myCasino:addItem("&6Квантовый Генератор", "Quantum Generator", 1, 0.01)
- myCasino:addItem("&6Нагрудник Дракона", "draconicevolution:draconic_chest", 1, 0.01)
- myCasino:search_transposers()
- --myCasino:get_list()
- controlLib.drawAll()
- --myCasino:displayItems()
- local function mainCasino(money)
- local rewardsList = {}
- local itemCounts = {}
- myCasino:sendMoney(money*4)
- chatbox.say("§6Крутим §a" .. money .. "§6 раз" )
- for i = 1, 64 do
- controlLib.updateControl(win[i], {
- text = string.rep(" ", 36),
- })
- end
- controlLib.drawAll()
- for i = 1, money do
- local reward = myCasino:weightedRoll()
- local displayName = string.gsub(reward.name, "&", "§", 1)
- component.proxy(reward.address).transferItem(0, 1, reward.count, reward.slot, i)
- local secondChar = string.sub(reward.name, 2, 2)
- local modifiedString = string.sub(reward.name, 3)
- if reward and reward.name and reward.count then
- -- Суммируем количество одинаковых предметов и сохраняем шанс
- if itemCounts[displayName] then
- itemCounts[displayName].count = itemCounts[displayName].count + reward.count
- else
- itemCounts[displayName] = {count = reward.count, chance = reward.chance}
- end
- end
- controlLib.updateControl(win[i], {
- text = modifiedString,
- foreColor = gui.colors[secondChar],
- })
- controlLib.drawAll()
- os.sleep(0.5)
- end
- -- Создаем список для отсортированных результатов
- for name, data in pairs(itemCounts) do
- table.insert(rewardsList, {name = name, count = data.count, chance = data.chance})
- end
- table.sort(rewardsList, function(a, b) return a.chance < b.chance end)
- local results = {}
- for _, item in ipairs(rewardsList) do
- table.insert(results, item.name .. ": " .. item.count .. "x")
- end
- local resultString = "\n" .. table.concat(results, "\n")
- chatbox.say(resultString)
- end
- local totalCash = 0
- local permissions = {}
- permissions["Stawlie_"] = true
- permissions["NikkyFreaky"] = true
- permissions["FrameGame"] = true
- permissions["ggwin"] = true
- local function chatMessageHandler()
- chatbox.say("Модуль чата запущен")
- while true do
- local _, address, nick, msg = event.pull(0.1, "chat_message")
- local words = {}
- local countWords = 0
- if msg then
- msg = string.lower(msg)
- for word in msg:gmatch("%S+") do
- table.insert(words, word)
- countWords = countWords + 1
- end
- local chat = logs:chatData("@test", "test")
- if msg == "@list" then
- myCasino:get_list()
- end
- if permissions[nick] then
- if words[1] == "@try" then
- chatbox.say("§fПопыток: §a§l" .. totalCash)
- elseif words[1] == "@off" then
- chatbox.say("§e§lПерезагружаюсь")
- computer.shutdown(true)
- elseif words[1] == "@add" then
- if words[2] then
- mainCasino(tonumber(words[2]))
- end
- elseif words[1] == "@owner" then
- if words[2] then
- permissions[words[2]] = true
- end
- elseif words[1] == "@chat" then
- -- logs:printAllCommands()
- elseif words[1] == "@all" then
- chatbox.say("§e§lL:")
- logs:printGlobalData()
- end
- end
- end
- end
- end
- thread.create(chatMessageHandler)
- local colors = { {0xFF0000, 0x0000FF}, {0x0000FF, 0x00FF00}, {0x00FF00, 0xFF0000} }
- local indexColorGradient = 1
- local SPIN_COST = 4
- while true do
- gui.drawMain("[Casino BAZAR]", 0.3, colors[indexColorGradient][1], colors[indexColorGradient][2])
- indexColorGradient = indexColorGradient % #colors + 1
- local money = myCasino:SearchMoney()
- if money and money >= 4 then
- local spins = math.floor(money / 4)
- local remainder = money % 4 -- Остаток после вычитания стоимости всех круток
- chatbox.say("§f§lВаш остаток средств §a§l$" .. remainder)
- mainCasino(spins)
- totalCash = totalCash + spins
- end
- computer.pullSignal(2)
- end
- --Проблемы
- --Если существует 2 одинаковых предмета, например камень с шансом 0.3 и камень с шансом 0.2, алгоритм записывает адрес только первого камня, который попадется в списке
- --Ultimate Hybrid и Hybrid разные места
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement