DjJokerZ

NanoControl

Mar 8th, 2016
111
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local c = require("component")
  2. local e = require("event")
  3. local color = require("colors")
  4. local term = require("term")
  5. local string = require("string")
  6. local filesystem = require("filesystem")
  7.  
  8. local m = c.modem
  9. local gpu = c.gpu
  10. local CFon,CText, CFig, CRed, CGreen, CBut = 0xAAAAAA, 0x5F5F5F, 0x313131, 0xCC4C4C, 0x279C38, 0x9E9EFF
  11. local NanAd,NanPort = ' ', 1
  12. local Lpage,colEff,Ladr,LInp,LInp2 = 0,0,0,0,1
  13. local Act = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
  14. local Act2 = {0,0,0,0,0,0,0,0,0,0,0,0}
  15. local RezIn= {} --сейв всех рабочих выводов (0,2:{moveSpeed,p.Hearts})
  16. local SaveBut = {"1","2","3","4","5","6","7","8","9","10","11","12"}
  17. local SaveBut2 = {0,0,0,0,0,0,0,0,0,0,0,0}
  18. local Macr = {}
  19. --m.open(37536)
  20. --m.broadcast(1,"nanomachines", "setResponsePort",37536)
  21. --m.send('0bb35ff9-f2ca-4c58-863a-db6d5af8a229',37536,"nanomachines","getHealth")
  22. --m.broadcast(37536,"nanomachines", "getHealth")
  23.  
  24. function OpenAll()
  25.   file = io.open('nano.conf','r')
  26.   local Zaa = file:read("*l")
  27.   colEff = tonumber(file:read("*l"))
  28.   local da = 1
  29.   for i = 1, colEff  do
  30.     local ad = string.find(Zaa,';',da+1)
  31.     RezIn[i] = string.sub(Zaa,da+1,ad-1)
  32.     da = ad
  33.   end
  34.   local Zab = file:read("*l")
  35.   local da = 1
  36.   for i = 1,18 do
  37.     local dadd = string.byte(Zab,i*2)
  38.     Act[i] = tonumber(string.char(dadd))
  39.   end
  40.   NanAd = file:read("*l")
  41.   NanPort = tonumber(file:read("*l"))  
  42.   local Zac = file:read("*l")
  43.   local Zad = file:read("*l")
  44.   local da,dad = 1,1
  45.   for i = 1,12 do
  46.     local ad = string.find(Zac,';',da+1)
  47.     SaveBut[i] = string.sub(Zac,da+1,ad-1)
  48.     da = ad
  49.     local dadd = string.find(Zad,';',dad+1)
  50.     SaveBut2[i] = tonumber(string.sub(Zad,dad+1,dadd-1))
  51.     dad = dadd
  52.   end
  53.   local Zav = file:read("*l")
  54.   local da,ad = 1,1
  55.   --local tal =
  56.   for i = 1, 1 do
  57.     local ad = string.find(Zav,';',da+1)
  58.     Macr[i] = string.sub(Zav,da+1,ad-1)
  59.     da = ad
  60.   end
  61.   file:close()
  62.   m.open(NanPort)
  63. end
  64.  
  65. function SaveAll()
  66.   file = io.open('nano.conf','w')
  67.   local Zaa,Zab,Zac,Zad,Zav = ";",";",";",";",";"
  68.   for i=1, colEff do
  69.     Zaa = Zaa..RezIn[i]..";"
  70.   end
  71.   for i=1, 18 do
  72.     Zab = Zab..Act[i]..";"  
  73.   end
  74.   for i=1,12 do
  75.     Zac = Zac..SaveBut[i]..";"
  76.     Zad = Zad..SaveBut2[i]..";"
  77.   end
  78.   for i = 1,1 do
  79.     Zav = Zav..Macr[i]..";"
  80.   end
  81.   file:write(Zaa.."\n")
  82.   file:write(colEff.."\n")
  83.   file:write(Zab.."\n")
  84.   file:write(NanAd.."\n")
  85.   file:write(NanPort.."\n")
  86.   file:write(Zac.."\n")
  87.   file:write(Zad.."\n")
  88.   file:write(Zav.."\n")
  89.   file:close()
  90. end
  91.  
  92. if not filesystem.exists("home/nano.conf") then
  93.   SaveAll()
  94. else
  95.   OpenAll()
  96. end
  97.  
  98. function WaitMsg() -- основное ожидание событий
  99.   while true do
  100.     term.setCursor(1,25)
  101.  
  102.     local ev,s2,CliX,but,s5,s6,mes,mes1,mes2 = e.pull()
  103.     if ev == "modem_message" then
  104.       if type(mes1) == "number" then
  105.         mes1 = tonumber(mes1)
  106.       else
  107.         mes1 = string.gsub(mes1,"particles","p")
  108.       end
  109.       if type(mes2) == "number" then
  110.         mes2 = tonumber(mes2)
  111.       else
  112.         mes2 = " "
  113.       end
  114.       --mes1 = string.gsub(mes1,"particles","p")
  115.       --print(mes1)
  116.       gpu.set(4,25,"Показатель: "..mes.." "..mes1.." "..mes2)
  117.       os.sleep(2)
  118.       gpu.fill(4,25,80,1," ")
  119.       if Ladr == 1 then
  120.         NanAd = CliX
  121.         Ladr = 0
  122.         local sts = 0
  123.         --check 171 input?
  124.         if LInp == 0 and LInp2 == 1 then
  125.           colEff = 0
  126.         end
  127.         for i = LInp,17 do
  128.           --1 input
  129.           if sts == 1 then
  130.             sts = 0
  131.             break
  132.           end
  133.           m.send(NanAd,NanPort,"nanomachines","setInput",i,true)
  134.           os.sleep(1)
  135.           for t = LInp2,18 do
  136.             local r = t-i
  137.             if r>0 then
  138.               --2 input
  139.               m.send(NanAd,NanPort,"nanomachines","setInput",t,true)
  140.               os.sleep(1)
  141.               m.send(NanAd,NanPort,"nanomachines","getActiveEffects")
  142.               gpu.fill(4,25,80,1," ")
  143.               gpu.set(4,25,"Проверка входов "..i.." "..t)
  144.               --while true do
  145.                 local evs,_,_,bby,_,_,_,ss,_ = e.pull()
  146.               --end
  147.                --print(evs)
  148.                if evs == "key_down" then
  149.                  if bby == 31 then --S
  150.                    gpu.fill(4,25,80,1," ")
  151.                    gpu.set(4,25,"Процесс остановлен на "..i.." "..t)
  152.                    SaveAll()
  153.                    os.sleep(2)
  154.                    gpu.fill(4,25,80,1," ")
  155.                    sts = 1
  156.                    break
  157.                  end
  158.                end
  159.               local hm = string.find(ss,'}')
  160.               if hm ~= 2 then
  161.                 local skl = ""
  162.                 local nnc,nns = 1,1
  163.                 ss = string.gsub(ss,"particles","p")
  164.                 if colEff == 0 then
  165.                   local ncc = string.len(ss)
  166.                   ss = string.sub(ss,2,ncc-1)
  167.                   colEff = 1
  168.                   RezIn[1] = i..","..t..","..ss
  169.                   gpu.fill(4,25,80,1," ")
  170.                   --gpu.set(4,25,"Найденые эффекты "..RezIn[1])
  171.                 else
  172.                   for k in string.gmatch (ss, ",") do
  173.                     local nnd = ""
  174.                     local nnc2 = string.find(ss,',',nnc+1)
  175.                     nnd = string.sub(ss,nns+1,nnc2-1)
  176.                     --print(nnc2)
  177.                     nnc = nnc2
  178.                     nns = nnc2
  179.                     for i=1,colEff do--проверка 1 значения
  180.                       if type(string.match(RezIn[i],nnd))=='nil' then
  181.                         --print("Nd2"..RezIn[i].."<>"..nnd)--nnd не делит
  182.                         --os.sleep(1)
  183.                         if colEff == i then
  184.                           skl = skl..","..nnd
  185.                         end
  186.                       else
  187.                         --print("нашел совпадение")
  188.                        
  189.                         break--чего натворил?ужс
  190.                         --skl = skl..","..nnd
  191.                       end
  192.                     end
  193.                     --skl = skl..","..nnd
  194.                   end
  195.                   local nmc=string.len(ss)
  196.                   local nmd = string.sub(ss,nnc+1,nmc-1)
  197.                   --print(nmd.."@ "..nnc)--повтор от 3 вывода+1
  198.                   for i=1,colEff do
  199.                     local hs = string.match(RezIn[i],nmd)
  200.                     --print("Nd1"..RezIn[i].."<>"..nmd)
  201.                     --os.sleep(1)
  202.                     if type(hs) == 'nil' then
  203.                       --print("Naid1")--с типом проблема?
  204.                       if colEff == i then
  205.                       skl = skl..","..nmd
  206.                       end  
  207.                     else
  208.                       break  
  209.                       --skl = skl..","..nmd
  210.                     end
  211.                   end
  212.                   --skl = skl..","..nmd
  213.                   --print(skl)
  214.                   if skl ~= "" then
  215.                     colEff = colEff+1
  216.                     RezIn[colEff] = i..","..t..skl
  217.                     --print(RezIn[colEff])
  218.                     gpu.fill(4,25,80,1," ")
  219.                     --gpu.set(4,25,"Найденые эффекты "..RezIn[colEff])
  220.                   end
  221.                 end
  222.               end
  223.               os.sleep(0.25)
  224.               m.send(NanAd,NanPort,"nanomachines","setInput",t,false)
  225.               os.sleep(1)
  226.             end
  227.           end
  228.           m.send(NanAd,NanPort,"nanomachines","setInput",i,false)
  229.           os.sleep(1)
  230.         end
  231.         gpu.set(4,25,"Проверка входов завершена")
  232.         os.sleep(0.5)
  233.         gpu.fill(4,25,80,1," ")
  234.       end
  235.     elseif ev == "touch" then
  236.       if CliX>38 and CliX<51 and but>1 and but<4 then
  237.         Lpage = 0
  238.         page()
  239.         bugz()
  240.       elseif CliX>50 and CliX<63 and but>1 and but<4 then
  241.         Lpage = 1
  242.         page()
  243.         bugz()
  244.       elseif CliX>62 and CliX<75 and but>1 and but<4 then
  245.         Lpage = 2
  246.         page()
  247.         bugz()
  248.       end
  249.       if Lpage == 0 then
  250.         if CliX>41 and CliX<58 then
  251.           if but>4 and but<8 then
  252.             m.send(NanAd,NanPort,"nanomachines","getName")
  253.           elseif but>7 and but<11 then
  254.             m.send(NanAd,NanPort,"nanomachines","getAge")
  255.           elseif but>10 and but<14 then
  256.             m.send(NanAd,NanPort,"nanomachines","getActiveEffects")
  257.           elseif but>13 and but<17 then
  258.             m.send(NanAd,NanPort,"nanomachines","getTotalInputCount")
  259.           elseif but>16 and but<20 then
  260.             m.send(NanAd,NanPort,"nanomachines", "getSafeActiveInput")
  261.           elseif but>19 and but<23 then
  262.             m.send(NanAd,NanPort,"nanomachines","getMaxActiveInput")
  263.           end
  264.         elseif CliX>59 and CliX<76 then
  265.           if but>4 and but<8 then
  266.             for i=1, 18 do
  267.               local s = 0
  268.               m.send(NanAd,NanPort,"nanomachines","getInput",i)
  269.               while true do
  270.                 local e,_,_,_,_,_,_,_,s = e.pull("modem_message")
  271.                 if e == "modem_message" then
  272.                   if s == true then
  273.                     Act[i] = 1
  274.                   else
  275.                     Act[i] = 0
  276.                   end
  277.                   gpu.set(4,25,"Проверка входа "..i.." из 18")
  278.                   os.sleep(0.01)
  279.                   break
  280.                 end
  281.               end
  282.             end
  283.             gpu.fill(4,25,80,1," ")
  284.             bugz()
  285.           elseif but>7 and but<11 then
  286.             --check\scan+korektirovka adressa
  287.             gpu.set(4,25,"С какого проверяем?(def 0) ")
  288.             term.setCursor(31,25)
  289.             LInp = tonumber(term.read(_,false))
  290.             term.clearLine()
  291.             gpu.set(4,25,"А второй?(def 1) ")
  292.             term.setCursor(21,25)
  293.             LInp2 = tonumber(term.read(_,false))
  294.             term.clearLine()
  295.             Ladr = 1
  296.             m.broadcast(1,"nanomachines","getName")
  297.           elseif but>10 and but<14 then
  298.             gpu.set(4,25,"select port (1 to 65536):")
  299.             term.setCursor(29,25)
  300.             local LPort = tonumber(term.read(_,false))
  301.             term.clearLine()
  302.             m.send(NanAd,NanPort,"nanomachines","setResponsePort",LPort)
  303.             m.open(LPort)
  304.             m.close(NanPort)
  305.             NanPort = LPort
  306.           elseif but>13 and but<17 then
  307.             for i=1,18 do
  308.               Act[i]=0
  309.             end
  310.             bugz()
  311.           elseif but>16 and but<20 then
  312.             m.send(NanAd,NanPort,"nanomachines","saveConfiguration")
  313.           elseif but>19 and but<23 then
  314.             Lpage = 4
  315.              gpu.set(4,25,"Select button")
  316.             bugz()
  317.             page()
  318.             --configuration 2 page
  319.           end
  320.         elseif CliX>5 and CliX<12 then
  321.           for i=1, 9 do
  322.             if but==i*2+2 then
  323.               if Act[i] == 0 then
  324.                 Act[i] = 1
  325.                 m.send(NanAd,NanPort,"nanomachines","setInput",i,true)
  326.                 gpu.setBackground(CGreen)
  327.                 gpu.set(13,i*2+2,tostring(i).." ")
  328.               else
  329.                 Act[i] = 0
  330.                 m.send(NanAd,NanPort,"nanomachines","setInput",i,false)
  331.                 gpu.setBackground(CRed)
  332.                 gpu.set(13,i*2+2,tostring(i).." ")
  333.               end
  334.             end
  335.           end
  336.         elseif CliX>25 and CliX<32 then
  337.           for i=1, 9 do
  338.             if but==i*2+2 then
  339.               if Act[i+9] == 0 then
  340.                 Act[i+9] = 1
  341.                 m.send(NanAd,NanPort,"nanomachines","setInput",i+9,true)
  342.                 gpu.setBackground(CGreen)
  343.                 gpu.set(23,i*2+2,tostring(i+9))
  344.               else
  345.                 Act[i+9] = 0
  346.                 m.send(NanAd,NanPort,"nanomachines","setInput",i+9,false)
  347.                 gpu.setBackground(CRed)
  348.                 gpu.set(23,i*2+2,tostring(i+9))
  349.               end
  350.             end
  351.           end
  352.         end
  353.       elseif Lpage == 1 then
  354.         if CliX>41 and CliX<58 then
  355.           for i = 1,6 do
  356.             if but>(1+3*i) and but<(5+3*i) then
  357.               if SaveBut2[i] ~= 0 then
  358.                 local ta = RezIn[SaveBut2[i]]
  359.                 local tad = string.find(ta,",")
  360.                 local taf = tonumber(string.sub(ta,1,tad-1))
  361.                 local tas = string.find(ta,",",tad+1)
  362.                 local tag = tonumber(string.sub(ta,tad+1,tas-1))
  363.                 if taf ~= 0 then
  364.                   if Act2[i] == 0 then
  365.                     m.send(NanAd,NanPort,"nanomachines","setInput",taf,true)
  366.                     Act[taf] = 1
  367.                   else
  368.                     m.send(NanAd,NanPort,"nanomachines","setInput",taf,false)
  369.                     Act[taf] = 0
  370.                   end
  371.                   os.sleep(1)
  372.                 end
  373.                 if Act2[i] == 0 then
  374.                   m.send(NanAd,NanPort,"nanomachines","setInput",tag,true)
  375.                   Act[tag] = 1
  376.                   Act2[i] = 1
  377.                   gpu.set(4,25,"Включено")
  378.                 else
  379.                   m.send(NanAd,NanPort,"nanomachines","setInput",tag,false)
  380.                   Act[tag] = 0
  381.                   Act2[i] = 0
  382.                   gpu.set(4,25,"Выключено")
  383.                 end
  384.                 os.sleep(1)
  385.                 gpu.fill(4,25,80,1," ")
  386.               end
  387.             end
  388.           end
  389.         elseif CliX>59 and CliX<76 then
  390.           for i = 1,6 do
  391.             if but>(1+3*i) and but<(5+3*i) then
  392.               if SaveBut2[i+6] ~= 0 then
  393.                 local ta = RezIn[SaveBut2[i+6]]
  394.                 local tad = string.find(ta,",")
  395.                 local taf = tonumber(string.sub(ta,1,tad-1))
  396.                 local tas = string.find(ta,",",tad+1)
  397.                 local tag = tonumber(string.sub(ta,tad+1,tas-1))
  398.                 if taf ~= 0 then
  399.                   if Act2[i+6] == 0 then
  400.                     m.send(NanAd,NanPort,"nanomachines","setInput",taf,true)
  401.                     Act[taf] = 1
  402.                   else
  403.                     m.send(NanAd,NanPort,"nanomachines","setInput",taf,false)
  404.                     Act[taf] = 0
  405.                   end
  406.                   os.sleep(1)
  407.                 end
  408.                 if Act2[i+6] == 0 then
  409.                   m.send(NanAd,NanPort,"nanomachines","setInput",tag,true)
  410.                   Act[tag] = 1
  411.                   Act2[i+6] = 1
  412.                   gpu.set(4,25,"Включено")
  413.                 else
  414.                   m.send(NanAd,NanPort,"nanomachines","setInput",tag,false)
  415.                   Act[tag] = 0
  416.                   Act2[i+6] = 0
  417.                   gpu.set(4,25,"Выключено")
  418.                 end
  419.                 os.sleep(1)
  420.                 gpu.fill(4,25,80,1," ")
  421.               end
  422.             end
  423.           end
  424.         end
  425.       elseif Lpage == 4 then
  426.         local LSel = 0
  427.         ---for i = 1,6 do
  428.           ---but
  429.         ---end
  430.         if CliX>41 and CliX<58 then
  431.           if but>4 and but<8 then
  432.             --переменная? выбор эффекта из RezIn + название кнопки
  433.             --наверно можно циклом
  434.             LSel = 1
  435.           elseif but>7 and but<11 then
  436.             --m.send(NanAd,NanPort,"nanomachines","getAge")
  437.             LSel = 2
  438.           elseif but>10 and but<14 then
  439.             --m.send(NanAd,NanPort,"nanomachines","getActiveEffects")
  440.             LSel = 3
  441.           elseif but>13 and but<17 then
  442.             --m.send(NanAd,NanPort,"nanomachines","getTotalInputCount")
  443.             LSel = 4
  444.           elseif but>16 and but<20 then
  445.             --m.send(NanAd,NanPort,"nanomachines", "getSafeActiveInput")
  446.             LSel = 5
  447.           elseif but>19 and but<23 then
  448.             --m.send(NanAd,NanPort,"nanomachines","getMaxActiveInput")
  449.             LSel = 6
  450.           end
  451.         elseif CliX>59 and CliX<76 then
  452.           if but>4 and but<8 then
  453.             LSel = 7
  454.           elseif but>7 and but<11 then
  455.             LSel = 8
  456.            -- m.send(NanAd,NanPort,"nanomachines","getAge")
  457.           elseif but>10 and but<14 then
  458.             LSel = 9
  459.            -- m.send(NanAd,NanPort,"nanomachines","getActiveEffects")
  460.           elseif but>13 and but<17 then
  461.             LSel = 10
  462.             --m.send(NanAd,NanPort,"nanomachines","getTotalInputCount")
  463.           elseif but>16 and but<20 then
  464.             LSel = 11
  465.             --m.send(NanAd,NanPort,"nanomachines", "getSafeActiveInput")
  466.           elseif but>19 and but<23 then
  467.             LSel = 12
  468.             --m.send(NanAd,NanPort,"nanomachines","getMaxActiveInput")
  469.           end
  470.         end
  471.         gpu.set(4,25,"Select input")
  472.         while true do
  473.           local evs,_,Sp,bby,_,_,_,ss,_ = e.pull()
  474.           if  evs == "touch" then
  475.             if Sp>1 and Sp<35 then
  476.               --RezIn[bby+1]
  477.               SaveBut2[LSel] = bby-1
  478.               --
  479.             gpu.set(4,25,"Select name button ")
  480.             term.setCursor(24,25)
  481.             --SaveBut[LSel]
  482.             local gas = term.read(_,false)--минус интер
  483.             local ga = string.len(gas)
  484.             SaveBut[LSel] = string.sub(gas,1,ga-1)
  485.             term.clearLine()
  486.             break
  487.             end
  488.           end
  489.         end
  490.       end
  491.     gpu.setBackground(CFon)
  492.     elseif ev == "key_down" then
  493.       if but == 16 then --Q
  494.         gpu.set(4,25,"бай-бай")
  495.         m.close(NanPort)
  496.         gpu.setBackground(CFig)
  497.         gpu.setForeground(CFon)
  498.         SaveAll()
  499.         os.sleep(2)
  500.         term.clear()
  501.         os.exit()
  502.       end
  503.     end
  504.    
  505.     --print(s2)--пишем всякую фигню(данные) чтоб зналь
  506.     --print(CliX)
  507.     --print(but)
  508.     --print(s5)
  509.     --print(s6)
  510.   end
  511. end
  512.  
  513. function bugz()
  514.   gpu.setForeground(CFig)
  515.   gpu.fill(2,2,34,20," ")
  516.   if Lpage == 4 or Lpage == 1 then
  517.     for i = 1, colEff do
  518.       if math.fmod(i,2) == 0 then
  519.         gpu.setBackground(CBut)
  520.       else
  521.         gpu.setBackground(CFon)
  522.       end
  523.       gpu.fill(2,i+1,34,1," ")
  524.       gpu.set(2,i+1,RezIn[i])
  525.     end
  526.   else
  527.    
  528.     gpu.set(12, 3,"╔════════════╗")
  529.     for i = 1,17 do
  530.       gpu.set(12,3+i,"║            ║")
  531.     end
  532.     gpu.set(12,21,"╚════════════╝")
  533.  
  534.     local xC = 4
  535.     for i=1,9 do
  536.       gpu.setBackground(CFon)
  537.       gpu.fill(6,xC,6,1,"═")--6 29
  538.       gpu.fill(26,xC,6,1,"═")
  539.       if Act[i] == 0 then
  540.         gpu.setBackground(CRed)
  541.         gpu.set(13,xC,tostring(i).." ")
  542.       else
  543.         gpu.setBackground(CGreen)
  544.         gpu.set(13,xC,tostring(i).." ")
  545.       end
  546.       if Act[i+9] == 0 then
  547.         gpu.setBackground(CRed)
  548.         gpu.set(23,xC,tostring(i+9))
  549.       else
  550.         gpu.setBackground(CGreen)
  551.         gpu.set(23,xC,tostring(i+9))
  552.       end
  553.       xC = xC+2
  554.     end
  555.   end
  556.   gpu.setForeground(CText)
  557.   gpu.setBackground(CFon)
  558. end
  559. function graff()
  560.   gpu.setBackground(CFon)
  561.   gpu.setForeground(CText)
  562.   term.clear()
  563. --term.setCursor(1,25)
  564.   gpu.fill(1,24,80,1,"`")
  565.   bugz()
  566. --gpu.fill(41,4,15,3," ")
  567.  
  568.   gpu.set(39,2,"╔══════════╗╔══════════╗╔══════════╗")
  569.   gpu.set(39,3,"║  CONFIG  ║║  EFFECT  ║║  MACROS  ║")
  570.   for i = 1,18 do
  571.     gpu.set(37,4+i,"║                                      ║")
  572.   end
  573.   gpu.set(37,23,"╚══════════════════════════════════════╝")
  574.   page()
  575. end
  576.  
  577. function page()
  578.   local LLstr = " "
  579.   for i = 1,18 do
  580.     gpu.set(38,i+4,"                                     ")
  581.   end
  582.   if Lpage == 0 then
  583.     LLstr = "╔═╝          ╚╩══════════╩╩══════════╩═╗"
  584.     local xC = 4
  585.     local sa = {"   name","   age"," effects","totalInput","safeInput"," maxInput","  check","   scan","changePort","  clear","saveConfig","saveEffects"}
  586.     for i = 1, 6 do
  587.       gpu.set(40,xC+1,"╔══════════════╗  ╔══════════════╗")
  588.       gpu.set(40,xC+2,"║              ║  ║              ║")
  589.       gpu.set(40,xC+3,"╚══════════════╝  ╚══════════════╝")
  590.       gpu.set(41,xC+2,"  "..sa[i])
  591.       gpu.set(59,xC+2,"  "..sa[i+6])
  592.       xC = xC+3
  593.     end
  594.   elseif Lpage == 1 or Lpage == 4 then
  595.     LLstr = "╔═╩══════════╩╝          ╚╩══════════╩═╗"
  596.     local xC = 4
  597.     for i = 1,6 do
  598.       gpu.set(40,xC+1,"╔══════════════╗  ╔══════════════╗")
  599.       gpu.set(40,xC+2,"║              ║  ║              ║")
  600.       gpu.set(40,xC+3,"╚══════════════╝  ╚══════════════╝")
  601.       gpu.set(42,xC+2,"  "..SaveBut[i])
  602.       gpu.set(61,xC+2,"  "..SaveBut[i+6])
  603.       xC = xC+3
  604.     end
  605.   else
  606.     LLstr = "╔═╩══════════╩╩══════════╩╝          ╚═╗"
  607.   --page MACROS
  608.     gpu.set(41,5,"Page 1")
  609.     gpu.set(41,6,"Условие |P|H|U|A|N|E|      ╳ ")
  610.     gpu.set(41,7,"[Health] < [500]")
  611.     gpu.set(41,8,"Действие ")-- твори странички)
  612.     gpu.set(41,9,"[Вкл]  вход [0]")
  613.     gpu.set(38,10,"[-][Выкл] вход [4]")
  614.     gpu.set(41,11,"[+]")
  615.   end
  616.   gpu.set(37, 4,LLstr)
  617. end
  618.  
  619. graff()
  620.  
  621. WaitMsg()
RAW Paste Data