Advertisement
koki2000

menu system

Oct 27th, 2015
876
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 28.06 KB | None | 0 0
  1. -- v 4.22
  2. -- v 1.04
  3. --[[
  4. Youtube Channel: https://www.youtube.com/channel/UCm9wGh5xdCNP2-rly5n2yEQ
  5.  
  6. tervek: tetszik menüpont, rednet hálózat, biztonsági kockázatok kiküszöbölése
  7. 2015.11.04 Root jelszo megvaltoztatasara rakenyszerit (nem lehet at ugrani a kerest), pastebin oldal ellenorzese frissites elott
  8. 2015.11.03 Jogrendszer modositva! Mostantol a tiltott jogokat nem tudja a felhasznało vissza adni sajat maganak, kiirja a bejelentkezett nevet
  9. mostantol kulon verzioszam alapjan figyeli a nyelvi verziokat, Uj jog: felhasznalo letrehozasa
  10. 2015.11.02 jelszot msot mar minden komolyabb muvelethez elkeri, hotfix: jogosultsag rendszer, uj felhasznalo
  11. 2015.11.01 Ujrairt jogosultsag kezelo rendszer
  12. 2015.10.31 felhasználĂł felvĂ©tele Ă©s jelszĂłkezelĹ‿ ĂşjraĂ­rva, javĂ­tások
  13. automatikusan kikapcsol 3 perc után, printmenu kĂ©pernyĹ‿ mĂ©retĂ©hez igazodik, fordĂ­tások folytatása,
  14. 2015.10.30 idozitett menu hozzaadva (1 perc inaktivitas utan kilep majd kikapcsol), modositott frissito rendszer
  15. 2015.10.29 többnyelvű támogatás hozzáadva, javítások
  16. 2015.10.28 felhasználĂłk törlĂ©se hozzáadva, jelszĂłt mostantĂłl hasheli, program kioldhatĂł (numpad gobbal vihetĹ‿ be a számok)
  17. 2015.10.28 add user delete permission change, add string hash, add security program broken
  18. ]]--
  19.  
  20.  
  21. local pullEvent = os.pullEvent
  22. os.pullEvent = os.pullEventRaw
  23.  
  24. function clear()
  25. term.clear()
  26. term.setCursorPos(1,1)
  27. end
  28.  
  29. function StringHash(text)
  30.   local counter = 1
  31.   local len = string.len(text)
  32.   for i = 1, len, 3 do
  33.     counter = math.fmod(counter*8161, 4294967279) +
  34.           (string.byte(text,i)*16776193) +
  35.           ((string.byte(text,i+1) or (len-i+256))*8372226) +
  36.           ((string.byte(text,i+2) or (len-i+256))*3932164)
  37.   end
  38.   return math.fmod(counter, 4294967291)
  39. end
  40.  
  41. if not fs.exists("database/root") then -- if database dir not found / ha a database mappa nem létezik
  42.   if not fs.exists("database") then
  43.     fs.makeDir("database")
  44.   end
  45.   file = fs.open("database/root", "w")
  46.   root = tostring(StringHash("root"))
  47.   file.writeLine(root) -- create root password / root jelszÄ‚Ĺ‚ Ă­rása
  48.   file.writeLine("true") -- create root permissions / root permission Ă­rása
  49.   file.writeLine("true")
  50.   file.writeLine("true")
  51.   file.writeLine("true")
  52.   file.writeLine("true")
  53.   file.writeLine("true")
  54.   file.close()
  55.   end
  56.  
  57.   function langdircreate()
  58.   if not fs.exists("language") then -- create language dir if not found / nyelvi könyvtár kĂ©szĂ­tĂ©se
  59.     fs.makeDir("language")
  60.   end
  61. end  
  62.  
  63. if not fs.exists("language/en") then -- create languages file if not found / nyelvek telepítése
  64.   langdircreate()
  65.   shell.run("pastebin","get","F97sTnpZ","language/en") clear()
  66. end
  67. if not fs.exists("language/de") then
  68.   langdircreate()
  69.   shell.run("pastebin","get","b4PyFVQ2","language/de") clear()
  70. end
  71. if not fs.exists("language/hu") then
  72.   langdircreate()
  73.   shell.run("pastebin","get","1AakPMkR","language/hu") clear()
  74. end
  75. if not fs.exists("language/setlang") then -- create languages file if not found / nyelvek telepítése
  76.   langdircreate()
  77.   setlang = fs.open("language/setlang", "w")
  78.   setlang.writeLine("-- v 1.00")
  79.   setlang.writeLine("hu")
  80.   setlang.close()
  81. end
  82.  
  83. file = fs.open("language/setlang", "r")
  84. actlang = file.readLine()
  85. file.close()
  86.  
  87. if actlang == "hu" or actlang == "en" or actlang == "de" then
  88. file = fs.open("language/setlang", "w")
  89. file.writeLine("-- v 1.00")
  90. file.writeLine(actlang)
  91. file.close()
  92. end
  93.  
  94. if fs.exists("language") then
  95. setlang = fs.open("language/setlang", "r")
  96.                 setlang.readLine()
  97. selectedlang2 = setlang.readLine()
  98. setlang.close()
  99. print(selectedlang) sleep(1)
  100. end
  101.  
  102. myTimer = 0
  103. local start = 0
  104. local stop = 1
  105.  
  106. local selectedlang = selectedlang2
  107.  
  108. local unlock = {}
  109. local index = 1
  110. local matrix1 = ""
  111. local matrix2 = ""
  112.  
  113. local width, height = term.getSize()
  114. local selectedMenu = 1
  115. local selectedItem = 1
  116. local username = ""
  117. local adminjog = ""
  118. local doors = ""
  119. local windows = ""
  120. local delete = ""
  121.  
  122. local running = true
  123.  
  124. function clear()
  125. term.clear()
  126. term.setCursorPos(1,1)
  127. end
  128.  
  129.  
  130. function language()
  131.   lang = fs.open("language/"..selectedlang, "r")
  132.           lang.readLine()
  133.   lang1 = lang.readLine()
  134.   lang2 = lang.readLine()
  135.   lang3 = lang.readLine()
  136.   lang4 = lang.readLine()
  137.   lang5 = lang.readLine()
  138.   lang6 = lang.readLine()
  139.   lang7 = lang.readLine()
  140.   lang8 = lang.readLine()
  141.   lang9 = lang.readLine()
  142.   lang10 = lang.readLine()
  143.   lang11 = lang.readLine()
  144.   lang12 = lang.readLine()
  145.   lang13 = lang.readLine()
  146.   lang14 = lang.readLine()
  147.   lang15 = lang.readLine()
  148.   lang16 = lang.readLine()
  149.   lang17 = lang.readLine()
  150.   lang18 = lang.readLine()
  151.   lang19 = lang.readLine()
  152.   lang20 = lang.readLine()
  153.   lang21 = lang.readLine()
  154.   lang22 = lang.readLine()
  155.   lang23 = lang.readLine()
  156.   lang24 = lang.readLine()
  157.   lang.close()
  158. end
  159.  
  160. function english()
  161. setlang = fs.open("language/setlang", "w")
  162. setlang.writeLine("-- v "..langversion)
  163. setlang.writeLine("en")
  164. setlang.close()
  165. shell.run("startup")
  166. end
  167.  
  168. function deutsch()
  169. setlang = fs.open("language/setlang", "w")
  170. setlang.writeLine("-- v "..langversion)
  171. setlang.writeLine("de")
  172. setlang.close()
  173. shell.run("startup")
  174. end
  175.  
  176. function magyar()
  177. setlang = fs.open("language/setlang", "w")
  178. setlang.writeLine("-- v "..langversion)
  179. setlang.writeLine("hu")
  180. setlang.close()
  181. shell.run("startup")
  182. main()
  183. end
  184.  
  185. function updateStartup()
  186. nettest = http.get("http://pastebin.com")
  187. if nettest then
  188. print("internetkapcsolat aktiv") sleep(1)
  189.   shell.run("pastebin","get","ANLXqv40","update") clear()
  190.   local file = fs.open("update", "r")
  191.   lx = file.readLine()
  192.   s1 = lx:find("v")
  193.   ujverzio = tonumber(lx:sub(s1+2))
  194.   lx = file.readLine()
  195.   s1 = lx:find("v")
  196.   newlangversion = tonumber(lx:sub(s1+2))
  197.   file.close()
  198. print("newlang: ", newlangversion) sleep(2)
  199.  
  200.   local file = fs.open("startup", "r")
  201.   lx = file.readLine()
  202.   s1 = lx:find("v")
  203.   regiverzio = tonumber(lx:sub(s1+2))
  204.   lx = file.readLine()
  205.   s1 = lx:find("v")
  206.   langversion = tonumber(lx:sub(s1+2))
  207.   file.close()
  208.  
  209. clear()  
  210.  
  211. print("regiverzio: ", regiverzio)
  212. print("ujverzio: ", ujverzio)
  213. print("newlangversion: ", newlangversion)
  214. print("langversion: ", langversion)
  215. sleep(3)
  216.  
  217.   if regiverzio < ujverzio or regiverzio > ujverzio then
  218.     fs.delete("startup")
  219.     fs.copy("update", "startup")
  220.     print("Program frissitve: ", regiverzio, " --> ", ujverzio)
  221.     print("program ujratoltese") sleep(.4)
  222.     shell.run("startup")
  223.   else
  224.     fs.delete("update")
  225.   end
  226.   if newlangversion < langversion or newlangversion > langversion then
  227.     shell.run("pastebin","get","1AakPMkR","hu")
  228.     clear()
  229.     fs.delete("language/hu")
  230.     fs.copy("hu", "language/hu")
  231.     fs.delete("hu")
  232.  
  233.     shell.run("pastebin","get","F97sTnpZ","en")
  234.     clear()
  235.     fs.delete("language/en")
  236.     fs.copy("en", "language/en")
  237.     fs.delete("en")
  238.  
  239.     shell.run("pastebin","get","b4PyFVQ2","de")
  240.     clear()
  241.     fs.delete("language/de")
  242.     fs.copy("de", "language/de")
  243.     fs.delete("de")
  244.     file = fs.open("language/setlang", "r")
  245.               file.readLine()
  246.     langsel = file.readLine()
  247.     file.close()
  248.  
  249.     file = fs.open("language/setlang", "w")
  250.     file.writeLine("-- v "..newlangversion)
  251.     file.writeLine(langsel)
  252.     file.close()
  253.     print("Nyelv frissitve: ", langversion, " --> ", newlangversion) sleep(2)
  254.     else
  255.     print("nincs elerheto nyelvi frissites") sleep(.4)
  256.     end
  257. else
  258. print("nem erheto el a pastebin oldal") sleep(1)
  259. end
  260. end
  261.  
  262. updateStartup()
  263. language()
  264.  
  265. function timer()
  266. if start == 1 then
  267. myTimer = os.startTimer(75)
  268. start = 0
  269. term.setCursorPos(width - 2, height - 1)
  270. print("o") sleep(.1)
  271. elseif stop == 1 then
  272. myTimer = os.startTimer(180)
  273. stop = 0
  274. term.setCursorPos(width - 2, height - 1)
  275. print("o") sleep(.1)
  276. end
  277. end
  278.  
  279. function login()
  280. out = true
  281. timer()
  282. clear()
  283. print("The program created by Csaba")
  284. print(lang4..lang19)
  285. username = read()
  286.   if username == "" then
  287.     print("can not be ", lang18)
  288.     sleep(.4)
  289.   elseif not fs.exists("database/"..username) then
  290.     print(lang4, "does not exist")
  291.     sleep(.4)
  292.   elseif fs.exists("database/"..username) then
  293.     loads()
  294.     print(lang3)
  295.     passhash = read("*")
  296.     pass = tostring(StringHash(passhash))
  297.     if pass == "1" then
  298.     print("can not be ", lang18)
  299.     sleep(.4)
  300.     elseif pass == goodpass then
  301.       if adminjog == "true" then
  302.         selectedMenu = 2
  303.       elseif adminjog == "false" then
  304.         selectedMenu = 3
  305.       end
  306.       print(lang3, " ", lang16)
  307.       sleep(1)
  308.       if goodpass == "1504751979" then
  309.        while out do
  310.         clear() print("uj jelszo")
  311.         requestpass = read("*")
  312.         newpass = tostring(StringHash(requestpass))
  313.           if newpass == "1" then
  314.             clear() print("jelszo nem lehet ures") sleep(1)
  315.           elseif newpass == "1504751979" then
  316.             clear() print("jelszo nem lehet azonos a regivel") sleep(1)
  317.           else
  318.             goodpass = newpass datawrite()
  319.             clear() print("jelszo frissitve") sleep(1)
  320.             out = false
  321.           end
  322.        end
  323.       end
  324.     else
  325.       print(lang3, " ", lang20)
  326.       sleep(.4)
  327.     end
  328.   end
  329. end
  330.  
  331. function changepassword()
  332.   if username ~= "root" then
  333.     clear()
  334.     print(lang3)
  335.     requestpass = read("*")
  336.     actualpass = tostring(StringHash(requestpass))
  337.       if actualpass == goodpass then
  338.         print(lang3, " ", lang16) clear()
  339.         print( lang17, " ",lang3)
  340.         requestpass = read("*")
  341.         newpass = tostring(StringHash(requestpass))
  342.           if newpass == "1" then -- ha a jelszÄ‚Ĺ‚ Ä‚Ä˝res
  343.               print("jelszo nem lehet ures") sleep(1)
  344.           elseif newpass == goodpass then
  345.             print("jelszo nem lehet azonos a regivel") sleep(1)
  346.           else
  347.             newpass = pass
  348.             datawrite() clear()
  349.             print( lang3, " ",lang24) sleep(1)
  350.           end
  351.       else
  352.         clear() print(lang3, " ", lang20) sleep(1)
  353.       end
  354.   elseif username == "root" then clear()
  355.     storepermissions()
  356.     print(lang3)
  357.     requestpass = read("*")
  358.     actualpass = tostring(StringHash(requestpass))
  359.       if actualpass == goodpass then clear()
  360.         print(lang4..lang19)
  361.         username = read()
  362.           if username == "" then
  363.             print("felhasznalonev nem  lehet ures") sleep(1)
  364.           elseif not fs.exists("database/"..username) then
  365.             print("felhasznalo nem letezik") sleep(1)
  366.           elseif fs.exists("database/"..username) then
  367.             print(lang4, " ", lang24) clear()
  368.             loads()
  369.             print(lang17, " ", lang3)
  370.             requestpass = read("*") -- kĂ©ri az Ä‚Ĺźj jelszÄ‚Ĺ‚t amit majd alkalmaz a felhasználÄ‚Ĺ‚ra
  371.             newpass = tostring(StringHash(requestpass)) -- hashelĂ©s
  372.               if newpass == "1" then clear()
  373.                 print("jelszo nem lehet ures") sleep(1)
  374.               elseif newpass == goodpass then clear()
  375.                 print("jelszo nem lehet azonos a regivel") sleep(1)
  376.               else
  377.                 goodpass = newpass
  378.                 datawrite()
  379.                   if username == "root" then oldgoodpass = newpass end clear()
  380.                 print(lang3, " ", lang15) sleep(1)
  381.               end
  382.           else
  383.             print("felhasznalo nem talalhato!!!") sleep(1)
  384.           end
  385.       else
  386.         print(lang3, " ", lang20) sleep(1)
  387.       end
  388.   end
  389.   restorepermissions()
  390. end
  391.  
  392. function createuser()
  393.   if create == "true" then
  394.     clear() print(lang3)
  395.     passhashcheck = read("*")
  396.     passhashcheck2 = tostring(StringHash(passhashcheck))
  397.     if passhashcheck2 == goodpass then
  398.       clear() print(lang3, " ", lang16)
  399.       sleep(1)
  400.       clear() print("username")
  401.       newuser = read()
  402.       if newuser == "" then
  403.         print(lang4, " ", lang18) sleep(1)
  404.       elseif fs.exists("database/"..newuser) then
  405.         clear() print("user letezik") sleep(1)
  406.       else
  407.         print("password")
  408.         newpasshash = read("*")
  409.         if newpasshash == "" then
  410.           print("password empty") sleep(1)
  411.         else
  412.           newpass = tostring(StringHash(newpasshash))
  413.           print("admin access (i/n)")
  414.           adminjog2 = read()
  415.           if adminjog2 == "" then
  416.             print("valasztott gomb csak i vagy n lehet")
  417.           else
  418.             if adminjog2 == "i" or adminjog2 == "I" then
  419.               file = fs.open("database/"..newuser, "w")
  420.               file.writeLine(newpass)
  421.               file.writeLine("true")
  422.               file.writeLine("true")
  423.               file.writeLine("true")
  424.               file.writeLine("true")
  425.               file.writeLine("true")
  426.               file.writeLine("true")
  427.               file.close()
  428.             elseif adminjog2 == "n" or adminjog2 == "N" then
  429.               file = fs.open("database/"..newuser, "w")
  430.               file.writeLine(newpass)
  431.               file.writeLine("false")
  432.               file.writeLine("false")
  433.               file.writeLine("false")
  434.               file.writeLine("false")
  435.               file.writeLine("false")
  436.               file.writeLine("false")
  437.               file.close()
  438.             else
  439.               print("rossz gomb: csak 1 vagy 2 lehet")
  440.               sleep(1)
  441.             end
  442.           end
  443.         end
  444.       end
  445.     else
  446.       print("rossz", lang3) sleep(1)
  447.   end
  448.   else
  449.     print("You don't have enough permission")
  450.     sleep(1)
  451.   end
  452. end
  453.  
  454. function alluser()
  455. clear()
  456. local filelist = fs.list("database/")
  457.   for _, file in ipairs(filelist) do
  458.   list = fs.open("database/"..file, "r")
  459.       print(file)
  460.   sleep(.2)
  461.   end
  462. sleep(2)
  463. end
  464.  
  465. function storepermissions()
  466. oldusername = username oldgoodpass = goodpass oldadminjog = adminjog olddoors = doors
  467. oldwindows = windows oldperm = perm oldcreate = create olddelete = delete
  468. end
  469.  
  470. function restorepermissions()
  471. username = oldusername goodpass = oldgoodpass adminjog = oldadminjog doors = olddoors
  472. windows = oldwindows perm = oldperm create = oldcreate delete = olddelete
  473. end
  474.  
  475. function permissions() -- permissions manager function / jogosultság kezelĹ‿ funkciĂł
  476. storepermissions()
  477.   if perm == "true" then
  478.     perms = {"adminjog", "doors", "windows", "perm","create", "delete"}
  479.     clear ()
  480.     print(lang3)
  481.     passhashcheck = read("*") clear()
  482.     passhashcheck2 = tostring(StringHash(passhashcheck))
  483.       if passhashcheck2 == pass then
  484.         print(lang4..lang19)
  485.         username = read()
  486.           if username == "" then
  487.             print("felhasznalonev nem lehet ures") sleep(1)
  488.           elseif not fs.exists("database/"..username) then
  489.             print("felhasznalo nem talalhato") sleep(1)
  490.           elseif fs.exists("database/"..username) then
  491.             loads() term.clear()
  492.               for i = 1, #perms do
  493.                 term.setCursorPos(1,i)
  494.                 print(i, ": ", perms[i]) i = i + 1
  495.               end
  496.               print("mire allitsam? 1 = true, 2 = false")
  497.             event, key = os.pullEvent("key")
  498.               if key == 79 then -- key1
  499.                 seljog = 1 what = 1
  500.                 print("selectedjog: ", seljog) sleep(1)
  501.                 jog = perms[seljog]
  502.                 print("kivalasztott jog: ", jog) sleep(1)
  503.               elseif key == 80 then --key2
  504.                 seljog = 2 what = 1
  505.                 print(seljog) sleep(1)
  506.                 jog = perms[seljog]
  507.                 print("kivalasztott jog: ", jog) sleep(1)
  508.                   if oldusername == username and olddoors == "false" and oldusername ~= root then
  509.                     print("Neked ez a jog tiltva van!: "..jog) jog = nil sleep(1)
  510.                   end
  511.               elseif key == 81 then --key3
  512.                 seljog = 3 what = 1
  513.                 print(seljog) sleep(1)
  514.                 jog = perms[seljog]
  515.                 print("kivalasztott jog: ", jog) sleep(1)
  516.                   if oldusername == username and oldwindows == "false" and oldusername ~= root then
  517.                     print("Neked ez a jog tiltva van!: "..jog) jog = nil  sleep(1)
  518.                   end
  519.               elseif key == 75 then --key4
  520.                 seljog = 4 what = 1
  521.                 print(seljog) sleep(1)
  522.                 jog = perms[seljog]
  523.                 print(jog) what = 1
  524.                 print("kivalasztott jog: ", jog) sleep(1)
  525.               elseif key == 76 then --key5
  526.                 seljog = 5 what = 1
  527.                 print(seljog) sleep(1)
  528.                 jog = perms[seljog]
  529.                 print("kivalasztott jog: ", jog) sleep(1)
  530.                   if oldusername == username and create == "false" and oldusername ~= root then
  531.                     print("Neked ez a jog tiltva van!: "..jog) jog = nil sleep(1)
  532.                   end
  533.               elseif key == 77 then --key5
  534.                 seljog = 6 what = 1
  535.                 print(seljog) sleep(1)
  536.                 jog = perms[seljog]
  537.                 print("kivalasztott jog: ", jog) sleep(1)
  538.                   if oldusername == username and olddelete == "false" and oldusername ~= root then
  539.                     print("Neked ez a jog tiltva van!: "..jog) jog = nil sleep(1)
  540.                   end
  541.                  
  542.               else
  543.                 print("rossz gomb!") sleep(1)
  544.               end
  545.                 if jog ~= nil then
  546.                   print("mire allitsam? 1 = igen / 2 = nem")
  547.                   event, key = os.pullEvent("key")
  548.                   if key == 79 then -- igaz kimenet
  549.                     print("valasztott jog: ", jog) sleep(1)
  550.                     if jog == "adminjog" then
  551.                       adminjog = "true"
  552.                     elseif jog == "doors" then
  553.                       doors = "true"
  554.                     elseif jog == "windows" then
  555.                       windows = "true"
  556.                     elseif jog == "perm" then
  557.                       perm = "true"
  558.                     elseif jog == "create" then
  559.                       create = "true"
  560.                     elseif jog == "delete" then
  561.                       delete = "true"
  562.                     end
  563.                   elseif key == 80 then -- hamis kimenet
  564.                     if jog == "adminjog" then
  565.                       adminjog = "false"
  566.                     elseif jog == "doors" then
  567.                       doors = "false"
  568.                     elseif jog == "windows" then
  569.                       windows = "false"
  570.                     elseif jog == "perm" then
  571.                       perm = "false"
  572.                     elseif jog == "create" then
  573.                       create = "false"
  574.                     elseif jog == "delete" then
  575.                       delete = "false"
  576.                     end
  577.                   else
  578.                     print("rossz gomb") sleep(1) what = 0
  579.                     seljog = nil
  580.                   end
  581.                   seljog = nil
  582.                 end
  583.  
  584.                 if oldusername == username then
  585.                   storepermissions()
  586.                 end
  587.                     datawrite()
  588.           else
  589.             print("rossz jelszo") sleep(1)
  590.           end
  591.       else
  592.         print("rossz jelszo") sleep(1)
  593.       end
  594. -- print("username: ", username) print("goodpass: ", goodpass)  print("adminjog: ", adminjog)
  595. -- print("doors: ", doors) print("windows: ", windows) print("perm: ", perm) print("delete: ", delete)
  596. -- loads()
  597.   else
  598.     print("ning jogod hozza") sleep(1)
  599.   end
  600. restorepermissions()
  601. end
  602.  
  603. function deleteuser()
  604.   if delete == "true" then
  605.     clear() print(lang3)
  606.     passhashcheck = read("*")
  607.     passhashcheck2 = tostring(StringHash(passhashcheck))
  608.       if passhashcheck2 == goodpass then
  609.         clear() print(lang3, " ", lang16)
  610.         sleep(1)
  611.           print(lang4..lang19)
  612.           deleteuser = read()
  613.             if not fs.exists("database/"..deleteuser) then
  614.               print(lang4, "not found")
  615.               sleep(.4)
  616.             elseif deleteuser == username then
  617.                 print(username)
  618.                 print("nem torolheted sajat magad")
  619.                 sleep(1)
  620.             elseif deleteuser == "root" then
  621.                 print("Root felhasznalot nem torolhetsz")
  622.                 sleep(1)
  623.             else
  624.               print("user found")
  625.               print("confirm delete i/n")
  626.               del = read()
  627.                 if del == "" then
  628.                   print("csak i vagy n") sleep(1)
  629.                 elseif del == "i" or del == "I" then
  630.                   fs.delete("database/"..deleteuser)
  631.                 elseif del == "n" or del == "N" then
  632.                   print("delete canceled")
  633.                 else
  634.                   print("button wrong")
  635.                 end
  636.             end
  637.       else
  638.         print(lang3, " ", lang20) sleep(1)
  639.       end
  640.   else      
  641.     print("You don't have enough permission") sleep(1)
  642.   end
  643. end
  644.  
  645. function shutdown()
  646.  os.shutdown()
  647. end
  648.  
  649. function logout()
  650. selectedItem = 1
  651. selectedMenu = 1
  652. end
  653.  
  654. function loads()
  655. file = fs.open("database/"..username, "r")
  656. goodpass = file.readLine()
  657. adminjog = file.readLine()
  658. doors = file.readLine()
  659. windows = file.readLine()
  660. perm = file.readLine()
  661. create = file.readLine()
  662. delete = file.readLine()
  663. file.close()
  664. end
  665.  
  666. function datawrite()
  667. file = fs.open("database/"..username, "w")
  668. file.writeLine(goodpass)
  669. file.writeLine(adminjog)
  670. file.writeLine(doors)
  671. file.writeLine(windows)
  672. file.writeLine(perm)
  673. file.writeLine(create)
  674. file.writeLine(delete)
  675. file.close()
  676. end
  677.  
  678. function doorsopen()
  679. clear()
  680.   if doors == "true" then
  681.     print("ajtok nyitva")
  682.     rs.setOutput("right", true)
  683.     sleep(6)
  684.     rs.setOutput("right", false)
  685.   end
  686.   if doors == "false" then
  687.     print("You don't have enough permission")
  688.     sleep(1)
  689.   end
  690. end
  691.  
  692. function windowsopen()
  693. clear()
  694.   if windows == "true" then
  695.     print("ablakok nyitva")
  696.     sleep(1)
  697.   end
  698.   if windows == "false" then
  699.     print("You don't have enough permission")
  700.     sleep(1)
  701.   end
  702. end
  703.  
  704. function programstops()
  705.   for i = 1, #unlock do
  706.   tabla = unlock[i]
  707.   matrix2 = matrix1..tabla
  708.   matrix1 = matrix2
  709.   end
  710.     if matrix2 == "221" then
  711.       print("sikeres") sleep(.4)
  712.       running = false
  713.     else
  714.       print("sikertelen") sleep(.4)
  715.     end
  716.   for i = 1, #unlock do
  717.   table.remove(unlock)
  718.   end
  719.   index = 1
  720.   matrix1 = ""
  721.   matrix2 = ""
  722. end
  723.  
  724. local mainMenu1 = {
  725. [1] = { text = lang1, handler = login },
  726. [2] = { text = lang12, handler = english },
  727. [3] = { text = lang14, handler = deutsch },
  728. [4] = { text = lang13, handler = magyar },
  729. [5] = { text = lang2, handler = shutdown }
  730. }
  731.  
  732. local mainMenu2 = {
  733. [1] = { text = lang17.. " " ..lang3, handler = changepassword },
  734. [2] = { text = lang17.. " " ..lang4, handler = createuser },
  735. [3] = { text = lang5, handler = alluser },
  736. [4] = { text = lang6, handler = permissions },
  737. [5] = { text = lang7, handler = deleteuser },
  738. [6] = { text = lang8, handler = logout },
  739. [7] = { text = lang9, handler = doorsopen },
  740. [8] = { text = lang10, handler = windowsopen },
  741. [9] = { text = lang11, handler = programstops },
  742. [10] = { text = lang2, handler = shutdown }
  743. }
  744.  
  745. local mainMenu3 = {
  746. [1] = { text = lang3, handler = changepassword },
  747. [2] = { text = lang9, handler = doorsopen },
  748. [3] = { text = lang10, handler = windowsopen },
  749. [4] = { text = lang8, handler = logout }
  750. }
  751.  
  752. function printMenu( menu )
  753. term.setCursorPos(width - 48, height)
  754. print("Bejelentkezve: ", username)
  755.   if #menu < height - 1 then
  756.     for i=1,#menu do
  757.       if i < height - 1 then
  758.         if i == selectedItem then
  759.           term.setCursorPos(width/3 - 2, (i))
  760.           print(">> "..menu[i].text .. " <<")
  761.         else
  762.           term.setCursorPos(width/3 - 2, (i))
  763.           print("   "..menu[i].text)
  764.         end
  765.       end
  766.     end
  767.   elseif #menu >= height - 1 then
  768.     for i=1, #menu do
  769.       if i < height - 1 then
  770.         if i == selectedItem then
  771.           term.setCursorPos(width + 4 - width, (i))
  772.           print(">> "..menu[i].text .. " <<")          
  773.         else
  774.           term.setCursorPos(width + 4 - width, (i))
  775.           print("   "..menu[i].text)
  776.         end
  777.       elseif i >= height - 1 then
  778.         if i == selectedItem then
  779.           term.setCursorPos(width + 32 - width, (i - height + 2))
  780.           print(">> "..menu[i].text .. " <<")          
  781.         else
  782.           term.setCursorPos(width + 32 - width, (i - height + 2))
  783.           print("   "..menu[i].text)
  784.         end
  785.       end
  786.     end
  787.   end
  788. end
  789.  
  790. function keypressprint()
  791. term.setCursorPos(width - 1, height - 1)
  792. print("*") sleep(.1) index = index + 1
  793. term.setCursorPos(width - 1, height - 1)
  794. print("_")
  795. sleep(.1)
  796. end
  797.  
  798. function onKeyPressed( key, menu )
  799.  if key == 28 then
  800.   onItemSelected(menu)
  801.  elseif key == 200 then
  802.   if selectedItem > 1 then
  803.    selectedItem = selectedItem - 1
  804.   end
  805.  elseif key == 208 then
  806.   if selectedItem < #menu then
  807.    selectedItem = selectedItem + 1
  808.   end
  809.  elseif key == 203 then
  810.   if selectedItem > 17 then
  811.    selectedItem = selectedItem - 17
  812.   end
  813.  elseif key == 205 then
  814.   vissza = selectedItem
  815.   if selectedItem < #menu then
  816.    selectedItem = selectedItem + 17
  817.     if selectedItem > #menu then
  818.       selectedItem = vissza
  819.     end
  820.   end
  821.  elseif key == 82 then
  822.   table.insert(unlock, index, 0)
  823.   keypressprint()
  824.  elseif key == 79 then
  825.   table.insert(unlock, index, 1)
  826.   keypressprint()
  827.  elseif key == 80 then
  828.   table.insert(unlock, index, 2)
  829.   keypressprint()
  830.  elseif key == 81 then
  831.   table.insert(unlock, index, 3)
  832.   keypressprint()
  833.  elseif key == 75 then
  834.   table.insert(unlock, index, 4)
  835.   keypressprint()
  836.  elseif key == 76 then
  837.   table.insert(unlock, index, 5)
  838.   keypressprint()
  839.  elseif key == 77 then
  840.   table.insert(unlock, index, 6)
  841.   keypressprint()
  842.  elseif key == 71 then
  843.   table.insert(unlock, index, 7)
  844.   keypressprint()
  845.  elseif key == 72 then
  846.   table.insert(unlock, index, 8)
  847.   keypressprint()
  848.  elseif key == 73 then
  849.   table.insert(unlock, index, 9)
  850.   keypressprint()
  851.  end
  852. end
  853.  
  854. function onItemSelected( menu )
  855.  menu[selectedItem].handler()
  856. end
  857.  
  858. function main()
  859. while running do
  860.  timer()
  861.  clear()
  862.  if selectedMenu == 1 then
  863.   username = nil
  864.   printMenu(mainMenu1)
  865.   event, par1 = os.pullEvent()
  866.     if event == "timer" and par1 == myTimer then
  867.       os.shutdown()
  868.     elseif event == "key" then
  869.       stop = 1
  870.       onKeyPressed(par1, mainMenu1)
  871.     end
  872.   elseif selectedMenu == 2 then
  873.   printMenu(mainMenu2)
  874.   event, par1 = os.pullEvent()
  875.     if event == "timer" and par1 == myTimer then
  876.       selectedItem = 1 selectedMenu = 1 stop = 1
  877.     elseif event == "key" then
  878.       start = 1
  879.       onKeyPressed(par1, mainMenu2)
  880.     end
  881.   elseif selectedMenu == 3 then
  882.   printMenu(mainMenu3)
  883.   event, par1 = os.pullEvent()
  884.     if event == "timer" and par1 == myTimer then
  885.       selectedItem = 1 selectedMenu = 1 stop = 1
  886.     elseif event == "key" then
  887.       start = 1
  888.       onKeyPressed(par1, mainMenu3)
  889.     end
  890.   end
  891.  end
  892. end
  893. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement