mrWhiskasss

Банкомат который на спавнах от Sky [OpenComputers]

Jul 1st, 2022 (edited)
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.61 KB | None | 0 0
  1. --
  2. local component = require("component")
  3. local computer=require("computer")
  4. local event = require("event")
  5. local term = require("term")
  6. local shell = require("shell")
  7. local fs = require("filesystem")
  8. local unicode=require("unicode")
  9. local serial = require("serialization")
  10.  
  11.  
  12. if not fs.exists("/lib/Sky.lua") then
  13. shell.execute("wget https://www.dropbox.com/s/1xbv3nrfpkm6mg0/Sky%28lib%29.lua?dl=1 /lib/Sky.lua")
  14. end
  15. if not fs.exists("/home/BankLogs.lua") then
  16. shell.execute("wget https://www.dropbox.com/s/x5mf2aiacacbj21/BankLogs.lua?dl=1 /home/BankLogs.lua")
  17. end
  18.  
  19. local Sky = require("Sky")
  20. local g = component.gpu
  21.  
  22. event.shouldInterrupt = function () return false end
  23. --------------------Настройки--------------------
  24. local WIGHT, HEIGHT = 54, 29 --Разрешение моника
  25. local AUTOEXIT = 30 --Автовыход через n сек.
  26. local PRICE = 1 --Цена одной банкноты
  27. local BUY_PRICE = 1 --Цена перевода банкнот в эмы
  28. local COLOR1 = 0x00ff00 --Рамка
  29. local COLOR2 = 0x24b3a7 --Цвет кнопок
  30. local TONE = 600 --Тональность звука
  31. local CHAT_NAME = "§2[§3Банкомат§2]: " --Ник чатбокса
  32. local SUMMA_OP = 1
  33. local money = 5254 -- ID денег
  34. local imput_limit = 2000 -- Лимит на ввод средств в сутки
  35. -------------------------------------------------
  36.  
  37.  
  38.  
  39. local mid = WIGHT/2
  40. local login = false
  41. local timer = 0
  42.  
  43. WIGHT, HEIGHT = Sky.Resolution(WIGHT,HEIGHT)
  44. Sky.Ram2("Банкомат", COLOR1,COLOR2,WIGHT,HEIGHT, false)
  45.  
  46. function Login(w,h,nick)
  47. -- if w>=(WIGHT/2)-10 and w<=(WIGHT/2)+10 and h>=25 and h<=27 then
  48. -- if login == false then
  49. -- computer.addUser(nick)
  50. login = true
  51. Sky.Clear(WIGHT,HEIGHT)
  52. g.setForeground(COLOR2)
  53. Sky.Mid(WIGHT,3,"Покупатель:")
  54. Sky.Mid(WIGHT,5,"Ваш баланс:")
  55. Sky.Mid(WIGHT,6,"400.5 эма")
  56. g.setForeground(COLOR1)
  57. Sky.Mid(WIGHT,4,nick)
  58. --Sky.Mid(WIGHT,7, " [ " .. Sky.Money(nick) .. " ] ")
  59. --Sky.Mid(WIGHT,12, " Сумма " .. SUMMA_OP .. "$ ")
  60. -- Sky.Button((WIGHT/2)-10,25,20,3,COLOR1,COLOR2," Выход ")
  61. computer.beep(TONE, 0.05)
  62. Operacia()
  63. -- else
  64. --Exit()
  65. -- end
  66. -- end
  67. end
  68.  
  69. --[[function Logirovanie(nick, SUMMA_OP, Obnal)
  70. file = io.open("/home/BankLogs.lua", "w")
  71. local data, time = HostTime()
  72. local text = ""
  73. if Obnal == true then
  74. text = text .. data .. " " .. time .. " " .. nick .. " снял со счёта " .. SUMMA_OP .. " эмов." .."\n"
  75. else
  76. text = text .. data .. " " .. time .. " " .. nick .. " зачислил на счёт " .. SUMMA_OP .. " эмов." .."\n"
  77. end
  78. file:write(text)
  79. file:close()
  80. end]]--
  81.  
  82. function Exit()
  83. login = false
  84. Sky.Clear(WIGHT,HEIGHT)
  85. Info()
  86. SUMMA_OP = 1
  87. local users={computer.users()}
  88. for i=1, #users do
  89. computer.removeUser(users[i])
  90. end
  91. end
  92.  
  93. function Operacia()
  94. Sky.Button(mid-17,19,7,3,COLOR1,COLOR2, " -10")
  95. Sky.Button(mid-17,15,6,3,COLOR1,COLOR2, " -5")
  96. Sky.Button(mid-17,11,6,3,COLOR1,COLOR2, " -1 ")
  97. --Sky.Button(mid-10,14,20,3,COLOR1,COLOR2, "Сумма " .. SUMMA_OP .. "$")
  98. Sky.Button(mid+11,11,6,3,COLOR1,COLOR2, " +1 ")
  99. Sky.Button(mid+11,15,6,3,COLOR1,COLOR2, " +5")
  100. Sky.Button(mid+11,19,7,3,COLOR1,COLOR2, " +10")
  101. -- Sky.Button(mid-7,15,14,3,COLOR1,COLOR2, " Обналичить ")
  102. Sky.Button(mid-7,19,14,3,COLOR1,COLOR2, " Получить ")
  103. Sky.Mid(WIGHT,8, "количество " .. SUMMA_OP .. " штук")
  104. end
  105.  
  106. function autoExit()
  107. timer = timer - 1
  108. g.setForeground(COLOR2)
  109. Sky.Mid(WIGHT,23, "Авто выход через: ")
  110. g.setForeground(COLOR1)
  111. g.set((WIGHT/2)+9, 23, timer .. " ")
  112. --[[if (smile) then
  113. Sky.Mid(WIGHT,26, "__(^o^)__")
  114. smile = false
  115. else
  116. Sky.Mid(WIGHT,26, " \\(^o^)/ ")
  117. smile = true
  118. end]]--
  119. end
  120.  
  121. function Obnal(w,h,nick,SUMMA_OP)
  122. if(Sky.Check_money(nick,SUMMA_OP)) then
  123. computer.beep(TONE, 0.05)
  124. Sky.Com("give ".. nick .. " " .. money .. " ".. SUMMA_OP)
  125. Sky.Com("bankomat ".. nick .. " " .. (SUMMA_OP * -1).. " false")
  126. Sky.Mid(WIGHT,7, " [ " .. Sky.Money(nick) .. " ] ")
  127. --Logirovanie(nick, SUMMA_OP, true)
  128. else
  129. Sky.Mid(WIGHT,9, "&4 Недостаточно средств!!! ")
  130. end
  131. end
  132. function check_limit(nick, SUMMA_OP, simulate)
  133. if (string.find(Sky.Com("bankomat " .. nick .. " " .. SUMMA_OP.. " " .. simulate), "true"))then
  134. return true
  135. else
  136. return false
  137. end
  138. end
  139. function Zachislen(w,h,nick,SUMMA_OP)
  140.  
  141. if (check_limit(nick, SUMMA_OP, "true") ~= true) then
  142. Sky.Mid(WIGHT,9, "&4 Итоговая сумма привышает суточный лимит!")
  143. else
  144. if(Sky.TakeItem(nick, money, SUMMA_OP) and check_limit(nick, SUMMA_OP, "false") == true) then
  145. computer.beep(TONE, 0.05)
  146. Sky.Com("money give " .. nick .. " " .. SUMMA_OP)
  147. Sky.Mid(WIGHT,7, " [ " .. Sky.Money(nick) .. " ] ")
  148. --Logirovanie(nick, SUMMA_OP, false)
  149. else
  150. Sky.Mid(WIGHT,9, "&4 Недостаточно средств!!! ")
  151. end
  152. end
  153.  
  154. end
  155.  
  156. function getSumma(w,h)
  157. if w>= mid-17 and w<=mid-11 and h>=19 and h<=21 then -- -50$
  158. SUMMA_OP = SUMMA_OP - 10
  159. elseif w>= mid-17 and w<=mid-11 and h>=15 and h<=17 then -- -10$
  160. SUMMA_OP = SUMMA_OP - 5
  161. elseif w>= mid-17 and w<=mid-11 and h>=11 and h<=13 then -- -1$
  162. SUMMA_OP = SUMMA_OP - 1
  163. elseif w>= mid+11 and w<=mid+16 and h>=11 and h<=13 then -- +1$
  164. SUMMA_OP = SUMMA_OP + 1
  165. elseif w>= mid+11 and w<=mid+16 and h>=15 and h<=17 then -- +10$
  166. SUMMA_OP = SUMMA_OP + 5
  167. elseif w>= mid+11 and w<=mid+16 and h>=19 and h<=21 then -- +50$
  168. SUMMA_OP = SUMMA_OP + 10
  169. else
  170. return
  171. end
  172. if SUMMA_OP < 1 then
  173. SUMMA_OP = 1
  174. end
  175. g.setForeground(COLOR1)
  176. Sky.Mid(WIGHT,8, "количество " .. SUMMA_OP .. " штук")
  177. Sky.Mid(WIGHT,9, " ")
  178. end
  179.  
  180. function Info()
  181. Sky.Symbol(mid-12,4,"b",0x000000)
  182. Sky.Symbol(mid-6,4,"a",0x000000)
  183. Sky.Symbol(mid,4,"n",0x000000)
  184. Sky.Symbol(mid+6,4,"k",0x000000)
  185. --[[Sky.Mid(WIGHT,10,"&3Здесь вы можете &2обналичить")
  186. Sky.Mid(WIGHT,11,"&3или &2зачислить&3 на свой счёт")
  187. Sky.Mid(WIGHT,12,"&2эмеральды&3.")]]--
  188. Sky.Mid(WIGHT,14,"&4 Внимание!!! ")
  189. Sky.Mid(WIGHT,15,"&6Перед тем как снять деньги,")
  190. Sky.Mid(WIGHT,16,"&6убедитесь, что в инвентаре ")
  191. Sky.Mid(WIGHT,17,"&6достаточно места. ")
  192. Sky.Button((WIGHT/2)-10,25,20,3,COLOR1,COLOR2,"Залогиниться")
  193. end
  194.  
  195. Exit()
  196.  
  197. while true do
  198. local e,_,w,h,_,nick = event.pull(1, "touch")
  199.  
  200.  
  201. if e == "touch" then
  202. Login(w,h,nick)
  203. if login then
  204. getSumma(w, h)
  205. if w>= mid-7 and w<=mid+5 and h>=19 and h<=21 then
  206. Zachislen(w,h,nick,SUMMA_OP)
  207. -- elseif w>= mid-7 and w<=mid+5 and h>=15 and h<=17 then
  208. -- Obnal(w,h,nick,SUMMA_OP)
  209. end
  210. end
  211. timer = AUTOEXIT
  212. end
  213. if (login) then
  214. autoExit()
  215. if timer == 0 then
  216. Exit()
  217. end
  218. end
  219. end
Advertisement
Add Comment
Please, Sign In to add comment