SHOW:
|
|
- or go back to the newest paste.
| 1 | --[[ | |
| 2 | ||
| 3 | Bancomat | |
| 4 | ||
| 5 | ]]-- | |
| 6 | local component = require("component")
| |
| 7 | local computer=require("computer")
| |
| 8 | local event = require("event")
| |
| 9 | local term = require("term")
| |
| 10 | local shell = require("shell")
| |
| 11 | local fs = require("filesystem")
| |
| 12 | local unicode=require("unicode")
| |
| 13 | local serial = require("serialization")
| |
| 14 | -- Настройка пасхалки | |
| 15 | local pashalka = false | |
| 16 | local cheat_code = "gift_code_for_pastebin" | |
| 17 | local pas_summ = 77.7 | |
| 18 | -- ============ | |
| 19 | if not fs.exists("/lib/Sky.lua") then
| |
| 20 | - | shell.execute("wget https://pastebin.com/raw/pZshSteR /lib/Sky.lua")
|
| 20 | + | shell.execute("wget https://www.dropbox.com/s/1xbv3nrfpkm6mg0/Sky%28lib%29.lua?dl=1 /lib/Sky.lua")
|
| 21 | end | |
| 22 | if not fs.exists("/home/BankLogs.lua") then
| |
| 23 | - | shell.execute("wget https://pastebin.com/raw/69YyLUK9 /home/BankLogs.lua")
|
| 23 | + | shell.execute("wget https://www.dropbox.com/s/x5mf2aiacacbj21/BankLogs.lua?dl=1 /home/BankLogs.lua")
|
| 24 | end | |
| 25 | ||
| 26 | local Sky = require("Sky")
| |
| 27 | local g = component.gpu | |
| 28 | local chatbox = component.chat_box | |
| 29 | chatbox.setDistance(10) | |
| 30 | event.shouldInterrupt = function () return false end | |
| 31 | --------------------Настройки-------------------- | |
| 32 | local WIGHT, HEIGHT = 54, 29 --Разрешение моника | |
| 33 | local AUTOEXIT = 30 --Автовыход через n сек. | |
| 34 | local PRICE = 1 --Цена одной банкноты | |
| 35 | local BUY_PRICE = 1 --Цена перевода банкнот в эмы | |
| 36 | local COLOR1 = 0x00ff00 --Рамка | |
| 37 | local COLOR2 = 0x24b3a7 --Цвет кнопок | |
| 38 | local TONE = 600 --Тональность звука | |
| 39 | local CHAT_NAME = "§2[§3Банкомат§2]: " --Ник чатбокса | |
| 40 | local SUMMA_OP = 5 | |
| 41 | local money = 5254 -- ID денег | |
| 42 | local imput_limit = 2000 -- Лимит на ввод средств в сутки | |
| 43 | ------------------------------------------------- | |
| 44 | ||
| 45 | print("\nИнициализация...")
| |
| 46 | os.sleep(2) | |
| 47 | print("Запуск программы...")
| |
| 48 | os.sleep(2) | |
| 49 | ||
| 50 | local mid = WIGHT/2 | |
| 51 | local login = false | |
| 52 | local timer = 0 | |
| 53 | ||
| 54 | - | WIGHT, HEIGHT = g.setResolution(WIGHT, HEIGHT) |
| 54 | + | WIGHT, HEIGHT = Sky.Resolution(WIGHT,HEIGHT) |
| 55 | Sky.Ram2("Банкомат", COLOR1,COLOR2,WIGHT,HEIGHT, false)
| |
| 56 | ||
| 57 | function Login(w,h,nick) | |
| 58 | if w>=(WIGHT/2)-10 and w<=(WIGHT/2)+10 and h>=25 and h<=27 then | |
| 59 | if login == false then | |
| 60 | computer.addUser(nick) | |
| 61 | login = true | |
| 62 | Sky.Clear(WIGHT,HEIGHT) | |
| 63 | g.setForeground(COLOR2) | |
| 64 | Sky.Mid(WIGHT,3,"Добро пожаловать") | |
| 65 | Sky.Mid(WIGHT,6,"Ваш баланс:") | |
| 66 | g.setForeground(COLOR1) | |
| 67 | Sky.Mid(WIGHT,4,nick) | |
| 68 | Sky.Mid(WIGHT,7, " [ " .. Sky.Money(nick) .. " ] ") | |
| 69 | Sky.Mid(WIGHT,12, " Сумма " .. SUMMA_OP .. "$ ") | |
| 70 | Sky.Button((WIGHT/2)-10,25,20,3,COLOR1,COLOR2," Выход ") | |
| 71 | computer.beep(TONE, 0.05) | |
| 72 | Operacia() | |
| 73 | else | |
| 74 | Exit() | |
| 75 | end | |
| 76 | end | |
| 77 | end | |
| 78 | ||
| 79 | --[[function Logirovanie(nick, SUMMA_OP, Obnal) | |
| 80 | file = io.open("/home/BankLogs.lua", "w")
| |
| 81 | local data, time = HostTime() | |
| 82 | local text = "" | |
| 83 | if Obnal == true then | |
| 84 | text = text .. data .. " " .. time .. " " .. nick .. " снял со счёта " .. SUMMA_OP .. " эмов." .."\n" | |
| 85 | else | |
| 86 | text = text .. data .. " " .. time .. " " .. nick .. " зачислил на счёт " .. SUMMA_OP .. " эмов." .."\n" | |
| 87 | end | |
| 88 | file:write(text) | |
| 89 | file:close() | |
| 90 | end]]-- | |
| 91 | --==================== Пасхалка ================== | |
| 92 | function file_exists(file) | |
| 93 | local f = io.open(file, "rb") | |
| 94 | if f then f:close() end | |
| 95 | return f ~= nil | |
| 96 | end | |
| 97 | ||
| 98 | function lines_from(file) | |
| 99 | if not file_exists(file) then return {} end
| |
| 100 | lines = {}
| |
| 101 | for line in io.lines(file) do | |
| 102 | lines[#lines + 1] = line | |
| 103 | end | |
| 104 | return lines | |
| 105 | end | |
| 106 | function check_cheater(nick) | |
| 107 | local lines = lines_from("/home/Cheaters.bd")
| |
| 108 | for k,v in pairs(lines) do | |
| 109 | if (string.find(v, nick)) then | |
| 110 | return true | |
| 111 | end | |
| 112 | end | |
| 113 | return false | |
| 114 | end | |
| 115 | function add_cheater(nick) | |
| 116 | file = io.open("/home/Cheaters.bd", "a")
| |
| 117 | file:write(nick.."\n") | |
| 118 | file:close() | |
| 119 | end | |
| 120 | function run_cheat(nick) | |
| 121 | ||
| 122 | computer.beep(TONE , 0.05) | |
| 123 | os.sleep(0,1) | |
| 124 | computer.beep(TONE + 100 , 0.05) | |
| 125 | os.sleep(0,1) | |
| 126 | computer.beep(TONE + 200 , 0.2) | |
| 127 | Sky.Com("money give " .. nick .. " " .. pas_summ)
| |
| 128 | Sky.Com("msg " .. nick .. " " .. "You hacked this Bankomat. Check you balance. &4!!!Cheating reported!!!")
| |
| 129 | add_cheater(nick) | |
| 130 | end | |
| 131 | --============== Конец пасхалки ================ | |
| 132 | function Exit() | |
| 133 | login = false | |
| 134 | Sky.Clear(WIGHT,HEIGHT) | |
| 135 | Info() | |
| 136 | SUMMA_OP = 5 | |
| 137 | local users={computer.users()}
| |
| 138 | for i=1, #users do | |
| 139 | computer.removeUser(users[i]) | |
| 140 | end | |
| 141 | end | |
| 142 | ||
| 143 | function Operacia() | |
| 144 | Sky.Button(mid-17,19,6,3,COLOR1,COLOR2, "-50$") | |
| 145 | Sky.Button(mid-17,15,6,3,COLOR1,COLOR2, "-10$") | |
| 146 | Sky.Button(mid-17,11,6,3,COLOR1,COLOR2, "-1$ ") | |
| 147 | --Sky.Button(mid-10,14,20,3,COLOR1,COLOR2, "Сумма " .. SUMMA_OP .. "$") | |
| 148 | Sky.Button(mid+11,11,6,3,COLOR1,COLOR2, "+1$ ") | |
| 149 | Sky.Button(mid+11,15,6,3,COLOR1,COLOR2, "+10$") | |
| 150 | Sky.Button(mid+11,19,6,3,COLOR1,COLOR2, "+50$") | |
| 151 | Sky.Button(mid-7,15,14,3,COLOR1,COLOR2, " Обналичить ") | |
| 152 | Sky.Button(mid-7,19,14,3,COLOR1,COLOR2, " Положить ") | |
| 153 | end | |
| 154 | ||
| 155 | function autoExit() | |
| 156 | timer = timer - 1 | |
| 157 | g.setForeground(COLOR2) | |
| 158 | Sky.Mid(WIGHT,23, "Авто выход через: ") | |
| 159 | g.setForeground(COLOR1) | |
| 160 | g.set((WIGHT/2)+9, 23, timer .. " ") | |
| 161 | --[[if (smile) then | |
| 162 | Sky.Mid(WIGHT,26, "__(^o^)__") | |
| 163 | smile = false | |
| 164 | else | |
| 165 | Sky.Mid(WIGHT,26, " \\(^o^)/ ") | |
| 166 | smile = true | |
| 167 | end]]-- | |
| 168 | end | |
| 169 | ||
| 170 | function Obnal(w,h,nick,SUMMA_OP) | |
| 171 | if(Sky.Check_money(nick,SUMMA_OP)) then | |
| 172 | computer.beep(TONE, 0.05) | |
| 173 | Sky.Com("give ".. nick .. " " .. money .. " ".. SUMMA_OP)
| |
| 174 | Sky.Com("bankomat ".. nick .. " " .. (SUMMA_OP * -1).. " false")
| |
| 175 | Sky.Mid(WIGHT,7, " [ " .. Sky.Money(nick) .. " ] ") | |
| 176 | --Logirovanie(nick, SUMMA_OP, true) | |
| 177 | else | |
| 178 | Sky.Mid(WIGHT,9, "&4 Недостаточно средств!!! ") | |
| 179 | end | |
| 180 | end | |
| 181 | function check_limit(nick, SUMMA_OP, simulate) | |
| 182 | if (string.find(Sky.Com("bankomat " .. nick .. " " .. SUMMA_OP.. " " .. simulate), "true"))then
| |
| 183 | return true | |
| 184 | else | |
| 185 | return false | |
| 186 | end | |
| 187 | end | |
| 188 | function Zachislen(w,h,nick,SUMMA_OP) | |
| 189 | ||
| 190 | if (check_limit(nick, SUMMA_OP, "true") ~= true) then | |
| 191 | Sky.Mid(WIGHT,9, "&4 Итоговая сумма привышает суточный лимит!") | |
| 192 | else | |
| 193 | if(Sky.TakeItem(nick, money, SUMMA_OP) and check_limit(nick, SUMMA_OP, "false") == true) then | |
| 194 | computer.beep(TONE, 0.05) | |
| 195 | Sky.Com("money give " .. nick .. " " .. SUMMA_OP)
| |
| 196 | Sky.Mid(WIGHT,7, " [ " .. Sky.Money(nick) .. " ] ") | |
| 197 | --Logirovanie(nick, SUMMA_OP, false) | |
| 198 | else | |
| 199 | Sky.Mid(WIGHT,9, "&4 Недостаточно средств!!! ") | |
| 200 | end | |
| 201 | end | |
| 202 | ||
| 203 | end | |
| 204 | ||
| 205 | function getSumma(w,h) | |
| 206 | if w>= mid-17 and w<=mid-11 and h>=19 and h<=21 then -- -50$ | |
| 207 | SUMMA_OP = SUMMA_OP - 50 | |
| 208 | elseif w>= mid-17 and w<=mid-11 and h>=15 and h<=17 then -- -10$ | |
| 209 | SUMMA_OP = SUMMA_OP - 10 | |
| 210 | elseif w>= mid-17 and w<=mid-11 and h>=11 and h<=13 then -- -1$ | |
| 211 | SUMMA_OP = SUMMA_OP - 1 | |
| 212 | elseif w>= mid+11 and w<=mid+16 and h>=11 and h<=13 then -- +1$ | |
| 213 | SUMMA_OP = SUMMA_OP + 1 | |
| 214 | elseif w>= mid+11 and w<=mid+16 and h>=15 and h<=17 then -- +10$ | |
| 215 | SUMMA_OP = SUMMA_OP + 10 | |
| 216 | elseif w>= mid+11 and w<=mid+16 and h>=19 and h<=21 then -- +50$ | |
| 217 | SUMMA_OP = SUMMA_OP + 50 | |
| 218 | else | |
| 219 | return | |
| 220 | end | |
| 221 | if SUMMA_OP < 1 then | |
| 222 | SUMMA_OP = 1 | |
| 223 | end | |
| 224 | g.setForeground(COLOR1) | |
| 225 | Sky.Mid(WIGHT,12, " Сумма " .. SUMMA_OP .. "$ ") | |
| 226 | Sky.Mid(WIGHT,9, " ") | |
| 227 | end | |
| 228 | ||
| 229 | function Info() | |
| 230 | Sky.Symbol(mid-12,4,"b",0x000000) | |
| 231 | Sky.Symbol(mid-6,4,"a",0x000000) | |
| 232 | Sky.Symbol(mid,4,"n",0x000000) | |
| 233 | Sky.Symbol(mid+6,4,"k",0x000000) | |
| 234 | --[[Sky.Mid(WIGHT,10,"&3Здесь вы можете &2обналичить") | |
| 235 | Sky.Mid(WIGHT,11,"&3или &2зачислить&3 на свой счёт") | |
| 236 | Sky.Mid(WIGHT,12,"&2эмеральды&3.")]]-- | |
| 237 | Sky.Mid(WIGHT,14,"&4 Внимание!!! ") | |
| 238 | Sky.Mid(WIGHT,15,"&6Перед тем как снять деньги,") | |
| 239 | Sky.Mid(WIGHT,16,"&6убедитесь, что в инвентаре ") | |
| 240 | Sky.Mid(WIGHT,17,"&6достаточно места. ") | |
| 241 | Sky.Button((WIGHT/2)-10,25,20,3,COLOR1,COLOR2,"Залогиниться") | |
| 242 | end | |
| 243 | ||
| 244 | Exit() | |
| 245 | ||
| 246 | while true do | |
| 247 | local e,_,w,h,_,nick = event.pull(1, "touch") | |
| 248 | if (pashalka) then | |
| 249 | local chat = { event.pull(1, "chat_message") }
| |
| 250 | if (chat[3] ~= nill and chat[4] ~= nill and string.find(chat[4], cheat_code) and check_cheater(chat[3]) ~= true) then | |
| 251 | run_cheat(chat[3]) | |
| 252 | end | |
| 253 | end | |
| 254 | ||
| 255 | if e == "touch" then | |
| 256 | Login(w,h,nick) | |
| 257 | if login then | |
| 258 | getSumma(w, h) | |
| 259 | if w>= mid-7 and w<=mid+5 and h>=15 and h<=17 then | |
| 260 | Obnal(w,h,nick,SUMMA_OP) | |
| 261 | elseif w>= mid-7 and w<=mid+5 and h>=19 and h<=21 then | |
| 262 | Zachislen(w,h,nick,SUMMA_OP) | |
| 263 | end | |
| 264 | end | |
| 265 | timer = AUTOEXIT | |
| 266 | end | |
| 267 | if (login) then | |
| 268 | autoExit() | |
| 269 | if timer == 0 then | |
| 270 | Exit() | |
| 271 | end | |
| 272 | end | |
| 273 | end |