Advertisement
LeslieCraft

[HUN] Minecraft, computercraft turtle. v1.0.2

Dec 26th, 2012
1,942
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.   --Automata banyaszo Turtle v1.0.2--
  2.             --By Matteo--
  3.           --MC: LeslieHUN--
  4.            --2012. 11.18--
  5.  
  6. --[[
  7. ----------------------------------------
  8. 0.1 -Banyaszas.
  9. 0.2 -Minden inditasnal tankol.
  10. 2012.11.19
  11. 0.3 -HotFIX: ha nincs elotte block
  12.       akkor is banyasz maga felett.
  13. 0.4 -Fordulokent elmegy es
  14.       kiuriti magat a chest-be.
  15. 0.5 -Ha soder hullik ra, erzekeli
  16.       es kibanyassza.
  17.     -Csak akkor tankol, ha 2000 ala
  18.       esik az uzemanyag szint.
  19. 0.6 -Maga alatt is banyasz.
  20.       A tankolas fordulonkent van, nem
  21.       indulasonkent.
  22. 2012.11.20
  23. 0.7 -Install parancsal, megcsinalja
  24.       maganak a dokkolo helyet. 6x6
  25.       3chest 2tabla tartalom leirassal.
  26.     -Tankolas opcio pontositva. Akkor
  27.       tankol, ha 100 ala esik az
  28.       uzemanyag szint. Masodik chestbol
  29.       kiveszi maganak a szenet, ha a
  30.       slot1 ben 30 ala esik a szen.
  31. 2012.11.24
  32. 0.8 -HotFix: Tankilasok finomitva.
  33.      -Ha menetkozben kifogy, egyet
  34.       tankol.
  35.     -Install resznel leellenorzi a
  36.      slotok darabszamat. Ha hianyzik
  37.      kiirja, hogy mi Ês honnan.
  38.     -Indulasnal kulon parancs resz.
  39.     -Program menet, sorrend pontositva.
  40. 2012.11.25
  41. 0.9 -Fokent kulalak es felhasznalo
  42.      barat javitasok.
  43.     -Min es max hatar a szelesseg es
  44.       hosszusagnal.
  45.     -Csak szamot lehet mar megadni.
  46.     -"Menuk" jobban el vannak rendezve
  47.     -Ha tankol, de kifogyott a szen,
  48.       jelzi es var.
  49.     -Ha nem tud elolre lepni, leellenorzi
  50.       az uzemanyagszintet, ha kell tankol.
  51.  1.0-Menu rendszer berakva
  52.  2012.12.26
  53.  1.0.1
  54.     -MOB erzekeles
  55.     -Installnal itemnek nem kell pontosan
  56.      annyinak lennie, = helyett <
  57.     -Szemet kiszedve.
  58.  2012.12.27
  59.  1.0.2
  60.     -MOB-okat mar a tankolasi resznel is
  61.      erzekeli.
  62.     -Chest be rakasi resz atalakitva,
  63.      pontositva.
  64.     -Atlathatobb parancssor.
  65.     -szel., hossz. nal pontositva az
  66.      ertek. Mostmar csak szamot lehet
  67.      megadni. Kulon hibajelzes mas
  68.      karakterekre.
  69. ----------------------------------------
  70. Kijavitando hibak:
  71.   -Ha valahol leall kezzel kell a
  72.    helyere vinni. (GPS megirasa kell)
  73.   -goto program irasa 10%-nal tart.
  74.   -8 block-onkent rakjon le egy fakjat.
  75.    (By Zendor :)
  76. ----------------------------------------
  77. ]]--
  78.  
  79.  
  80. --[[ Functions ]]--
  81.  
  82. function clear()
  83.     term.clear()
  84.     term.setCursorPos(1,1)
  85. end
  86.  
  87.  
  88.  
  89. function printF()
  90.     term.setCursorPos(2,1)
  91.     print("--Automata banyaszo Turtle v1.0.2--")
  92.     term.setCursorPos(13,2)
  93.     print("--By Matteo--")
  94.     term.setCursorPos(33,12)
  95.     print("V1.0.2")
  96.     term.setCursorPos(1,5)
  97. end
  98.  
  99. function telepitAera()      --Install resz kialakitasa
  100.     clear()
  101.     turtle.select(1)
  102.     szendarab = turtle.getItemCount(1)
  103.     while szendarab < 3 do
  104.         printF()
  105.         print("1. Lepes")
  106.         print("")
  107.         szendarab = turtle.getItemCount(1)
  108.         szenkell = 3 - szendarab
  109.         print("Elso sor, elso slotba, rakj 3db darab szenet.")
  110.         print("Meg ennyi kell: "..szenkell)
  111.         term.setCursorPos(1,10)
  112.         print("Ha beraktad, folytatodik a telepites")
  113.         sleep(0.4)
  114.         clear()
  115.     end
  116.     ladadarab = turtle.getItemCount(2)
  117.     turtle.select(2)
  118.     while ladadarab < 3 do
  119.         printF()
  120.         print("2. Lepes")
  121.         print("")
  122.         ladadarab = turtle.getItemCount(2)
  123.         ladakell = 3 - ladadarab
  124.         print("Elso sor, masodik slotba, rakj 3db ladat (chest).")
  125.         print("Meg ennyi kell: ".. ladakell)
  126.         term.setCursorPos(1,10)
  127.         print("Ha beraktad, folytatodik a telepites")
  128.         sleep(0.4)
  129.         clear()
  130.     end
  131.     signdarab = turtle.getItemCount(3)
  132.     turtle.select(3)
  133.     while signdarab ~= 1 do
  134.         printF()
  135.         print("3. Lepes")
  136.         print("")
  137.         signdarab = turtle.getItemCount(3)
  138.         signkell = 1 - signdarab
  139.         print("Elso sor, harmadik slotba, rakj egy tablat (sign).")
  140.         print("Meg ennyi kell: ".. signkell)
  141.         term.setCursorPos(1,10)
  142.         print("Ha beraktad, folytatodik a telepites")
  143.         sleep(0.4)
  144.         clear()
  145.     end
  146.     signdarab = turtle.getItemCount(4)
  147.     turtle.select(4)
  148.     while signdarab ~= 1 do
  149.         printF()
  150.         print("4. Lepes")
  151.         print("")
  152.         signdarab = turtle.getItemCount(4)
  153.         signkell = 1 - signdarab
  154.         print("Elso sor, negyedik slotba, rakj egy tablat (sign).")
  155.         print("Meg ennyi kell: ".. signkell)
  156.         term.setCursorPos(1,10)
  157.         print("Ha beraktad, folytatodik a telepites")
  158.         sleep(0.4)
  159.         clear()
  160.     end
  161.     if fuel == 0 then
  162.         while turtle.getItemCount(1) == 0 do
  163.             printF()
  164.             print("Kerlek ellenorizd, hogy az 1-es slotban van-e szenem.")
  165.             print("Rakj 2db szenet es nyomj egy entert")
  166.             read("")
  167.             clear()
  168.         end
  169.         turtle.select(1)
  170.         print("Tankoltam.")
  171.         turtle.refuel(1)
  172.         sleep(1)
  173.     end
  174.     clear()
  175.     printF()
  176.     print("Epites elkezdodott, kerlek vard meg mig kesz lesz.")
  177.     for i = 1, 4, 2 do
  178.         for i = 1, 5 do
  179.             lepesE()
  180.         end
  181.         turnL()
  182.         for i = 1, 5 do
  183.             lepesE()
  184.         end
  185.         turnR()
  186.     end
  187.     itemInstall()
  188. end
  189.  
  190.  
  191.  
  192. function itemGo()       --Install resznel a mozgas
  193.     turtle.turnLeft()
  194.     turtle.forward()
  195.     turtle.turnRight()
  196. end
  197.  
  198.  
  199.  
  200. function itemInstall()      --Chestek, tablak lerakasa
  201.     turtle.turnRight()
  202.     turtle.select(2)
  203.     for i = 1, 3 do
  204.         lepesE()
  205.     end
  206.     for i = 1, 2 do
  207.         while not turtle.place() do
  208.             clear()
  209.             printF()
  210.             print("Nem tudom lehelyezni a ladat")
  211.             sleep(1)
  212.         end
  213.         itemGo()
  214.     end
  215.     turtle.select(3)
  216.     while not turtle.place([[Kibanyaszott
  217. block-ok
  218. -------->]]) do
  219.         clear()
  220.         printF()
  221.         print("Nem tudom lehelyezni a tablat")
  222.         sleep(1)
  223.     end
  224.     itemGo()
  225.     turtle.select(2)
  226.     while not turtle.place() do
  227.         clear()
  228.         printF()
  229.         print("Nem tudom lehelyezni a ladat")
  230.         sleep(1)
  231.     end
  232.         itemGo()
  233.     turtle.select(4)
  234.     while not turtle.place([[Uzemanyag nekem
  235. (szen,fa)
  236. ------->]]) do
  237.         clear()
  238.         printF()
  239.         print("Nem tudom lehelyezni a tablat")
  240.         sleep(1)
  241.     end
  242.     turtle.turnRight()
  243.     for i = 1, 4 do
  244.         turtle.forward()
  245.     end
  246.     turtle.turnLeft()
  247.     dropAll()
  248.     turtle.turnRight()
  249.     turtle.turnRight()
  250.     for i = 1, 3 do
  251.         turtle.forward()
  252.     end
  253.     turtle.turnRight()
  254.     clear()
  255.     banyaszas()
  256. end
  257.  
  258.  
  259.  
  260. function reFuel()       --Tankolasi menet
  261.     fuel = turtle.getFuelLevel()
  262.     if fuel < 100 then
  263.     turtle.select(1)
  264.     while not turtle.refuel(1) do
  265.         clear()
  266.         printF()
  267.         print("Nincs szen az egyes slotban")
  268.         sleep(3)
  269.     end
  270.         fuel = turtle.getFuelLevel()
  271.         print("Tankoltam.")
  272.         print("Uzemanyag szint: "..fuel)
  273.     end
  274. end
  275.  
  276.  
  277.  
  278. function getFuel()      --Lepakolas utan, uzemanyag ellenorzes es feltankolas
  279.     local fuelslot = turtle.getItemCount(1)
  280.     local loopback = 0
  281.     turtle.select(1)
  282.     if fuelslot < 10 then
  283.         turtle.turnRight()
  284.         while loopback ~= 3 do
  285.             if turtle.forward() == false then
  286.                 turtle.attack()
  287.             else
  288.                 loopback = loopback + 1
  289.             end
  290.         end
  291.         turtle.turnRight()
  292.         while not turtle.suck() do
  293.             clear()
  294.             printF()
  295.             print("Nincs a ladaban szen. Kerlek toltsd fel,")
  296.             print("A ladaban minimum 10 db szen legyen mindig.")
  297.             print("Ha feltoltotted, kiveszem.")
  298.             sleep(3)
  299.         end
  300.         local loopback = 0
  301.         turtle.turnRight()
  302.         while loopback ~= 3 do
  303.             if turtle.forward() == false then
  304.                 turtle.attack()
  305.             else
  306.                 loopback = loopback + 1
  307.             end
  308.         end
  309.         turtle.turnRight()
  310.     end
  311. end
  312.  
  313.  
  314.  
  315. function dropAll()      --Chestnel minden slotot kiurit kiveve az egyest.
  316.     local slot = 2
  317.     while slot ~= 17 do
  318.         turtle.select(slot)
  319.         turtle.drop()
  320.         slot = slot+1
  321.     end
  322. end
  323.  
  324.  
  325.  
  326. function targetC()      --Banyatol a chastig
  327.     local loop = true
  328.     while loop do
  329.         if turtle.forward() == true then
  330.             clear()
  331.             printF()
  332.             lepes = lepes + 1
  333.             print("Lepesek a chest-ig: "..lepes)
  334.         else
  335.             if turtle.detect() == true then     --Erzekeli a MOB okat
  336.                 dropAll()
  337.                 turtle.turnLeft()
  338.                 turtle.turnLeft()
  339.                 getFuel()
  340.                 loop = false
  341.             else
  342.                 turtle.attack()
  343.             end
  344.         end
  345.     end
  346.     clear()
  347.     printF()
  348.     print("Ennyit megyek vissza: "..lepes)
  349.     local loopvissza = 0
  350.     while loopvissza ~= lepes do
  351.         if turtle.forward() == false then
  352.             turtle.attack()
  353.         else
  354.             loopvissza = loopvissza + 1
  355.         end
  356.     end
  357.     turtle.turnRight()
  358. --[[  for i = 2, lepes + 1 do //erzekeles nelkul
  359.     while not turtle.forward() do
  360.       turtle.attack()
  361.  
  362.     end
  363.   end]]
  364. end
  365.  
  366.  
  367.  
  368. function digDown()      --Lefele asas, ha van alatta valami.
  369.     while turtle.detectDown() do
  370.         turtle.digDown()
  371.     end
  372. end
  373.  
  374.  
  375.  
  376. function lepesE()       --Banyaszas kozbeni lepesek.
  377.     while not turtle.forward() do
  378.         turtle.dig()
  379.         if turtle.getFuelLevel() < 10 then
  380.             turtle.select(1)
  381.             reFuel()
  382.         end
  383.     end
  384.     sleep(0.4)
  385.     while turtle.detectUp() do
  386.         turtle.digUp()
  387.         sleep(0.4)
  388.     end
  389. end
  390.  
  391.  
  392.  
  393. function turnL()        --Balra megfordulas
  394.     turtle.turnLeft()
  395.     lepesE()
  396.     turtle.turnLeft()
  397. end
  398.  
  399.  
  400.  
  401. function turnR()        --Jobbra megfordulas
  402.     turtle.turnRight()
  403.     lepesE()
  404.     turtle.turnRight()
  405. end
  406.  
  407.  
  408. function banyaszas()        --Banyaszas menete
  409.     while true do
  410.         clear()
  411.         local fuel = turtle.getFuelLevel()
  412.         printF()
  413.         if fuel == 0 then
  414.             while turtle.getItemCount(1) == 0 do
  415.                 printF()
  416.                 print("Kerlek ellenorizd, hogy az 1-es slotban van-e szenem.")
  417.                 print("Rakj 2db szenet es folytatom")
  418.                 sleep(.5)
  419.                 clear()
  420.             end
  421.             printF()
  422.             turtle.select(1)
  423.             turtle.refuel(1)
  424.             print("Tankoltam.")
  425.             sleep(1)
  426.             clear()
  427.         end
  428.         printF()
  429.         term.setCursorPos(1,5)
  430.         local fuel2 = turtle.getFuelLevel()
  431.         print("Online")
  432.         print("Uzemanyag szint: "..fuel2)
  433.         print("")
  434.         write("Szelesseg: ")
  435.         local szeles = tonumber(read())     --read-be mit adtunk meg, szamokat vagy betuket
  436.         if szeles == nil then       --Szam vizsgalat
  437.             clear()
  438.             printF()
  439.             print("Szelessegnek, csak szamot lehet megadni!")
  440.             sleep(3)
  441.             banyaszas()
  442.         end
  443.         local szeles = szeles + 0
  444.         if (szeles < 51) and (szeles > 1) then
  445.             write("Hossz: ")
  446.             local hosszu = tonumber(read())
  447.             if hosszu == nil then
  448.                 clear()
  449.                 printF()
  450.                 print("Hosszusagnak, csak szamot lehet megadni!")
  451.                 sleep(3)
  452.                 banyaszas()
  453.             end
  454.             local hosszu = hosszu + 0
  455.             if (hosszu < 51) and (hosszu > 1) then
  456.                 hosszu = hosszu-1
  457.                 szeles = szeles-1
  458.                 for i = 1, szeles, 2 do
  459.  
  460.                     for i = 1, hosszu do
  461.                         digDown()
  462.                         lepesE()
  463.                         digDown()
  464.                     end
  465.                     turnL()
  466.                     for i = 1, hosszu do
  467.                         digDown()
  468.                         lepesE()
  469.                         digDown()
  470.                     end
  471.                     reFuel()
  472.                     turnR()
  473.                     lepes = 0  --//athelyezve targetC() bol
  474.                     turtle.turnRight()  --//athelyezve targetC() bol
  475.                     targetC()
  476.                 end
  477.                 term.clear()
  478.                 term.setCursorPos(1,1)
  479.             else
  480.                 clear()
  481.                 printF()
  482.                 print("")
  483.                 print("Hosszusagnak 2 es 50 kozottinek kell lennie")
  484.                 sleep(3)
  485.                 banyaszas()
  486.             end
  487.         else
  488.             clear()
  489.             printF()
  490.             print("")
  491.             print("Szelesseg 2 es 50 kozott kell lennie")
  492.             sleep(3)
  493.             banyaszas()
  494.         end
  495.     end
  496. end
  497.  
  498. function helpP()        --Help menu
  499.     clear()
  500.     printF()
  501.     print("Install        : Dokkolo epites.")
  502.     print("Banya program  : Banyaszo program.")
  503.     print("Help           : Menu leirasok.")
  504.     print("Leiras         : Leiras a programrol")
  505.     print("")
  506.     print("Tovabb lepeshez nyomj egy entert")
  507.     read("")
  508. end
  509.  
  510. function InstallP()     --Install menu
  511.     clear()
  512.     printF()
  513.     print("A kovetkezo dolgok legyenek nalad:")
  514.     print(" - 5db szen")
  515.     print(" - 3db lada (chest)")
  516.     print(" - 2db tabla (sign)")
  517.     print("Ha ezek megvannak kerlek, nyomj egy entert.")
  518.     read("")
  519.     clear()
  520.     telepitAera()
  521. end
  522.  
  523. --[[ Main program ]]--
  524.  
  525.  
  526. --[[while true do                   //v0.9 es menu nelkuli
  527.   clear()
  528.   printF()
  529.   print("")
  530.   term.setCursorPos(1,12)
  531.   print("Parancsok: help")
  532.   term.setCursorPos(1,5)
  533.   write("Program: ")
  534.   program = read()
  535.   if program == "install" then
  536.     clear()
  537.     printF()
  538.     print("A kovetkezo dolgok legyenek nalad:")
  539.     print(" - 5db szen")
  540.     print(" - 3db lada (chest)")
  541.     print(" - 2db tabla (sign)")
  542.     print("Ha ezek megvannak kerlek, nyomj egy entert.")
  543.     read("")
  544.     clear()
  545.     telepitAera()
  546.   elseif program == "help" then
  547.     clear()
  548.     printF()
  549.     print("install: Dokkolo epites.")
  550.     print("banya:   Banyaszo program.")
  551.     term.setCursorPos(1,12)
  552.     print("Tovabb lepeshez nyomj egy [entert]")
  553.     read("")
  554.     clear()
  555.   elseif program == "banya" then
  556.     banyaszas()
  557.   else
  558.     clear()
  559.     printF()
  560.     print("Helytelen parancs, kerlek hasznald a [help] parancsot")
  561.     print("Tovabb lepeshez nyomj egy [entert]")
  562.     read("")
  563.   end
  564. end
  565. ]]--
  566.  
  567. --[[ Menu ]]--
  568.  
  569. --[[ Local Variables ]]--
  570.  
  571. local termWidth, termHeight = term.getSize()
  572. local selectedItem = 1
  573. local runing = true
  574.  
  575. --[[ Menu Metods ]]--           --Melyik menu mi legyen
  576. function Choice1()
  577.     InstallP()
  578. end
  579.  
  580. function Choice2()
  581.     banyaszas()
  582. end
  583.  
  584. function Exit()
  585.     runing = false
  586. end
  587.  
  588. function Help()
  589.     helpP()
  590. --[[  print(visszaMenu)
  591.  
  592.   event, key = os.pullEvent("key")
  593.   onKeyPressed(key, visszaMenu)]]--
  594. end
  595.  
  596. function Leiras()       --Leiras menu
  597.     clear()
  598.     printF()
  599.     term.setCursorPos(1,4)
  600.     print([[A program a banyaszasra keszult. A turtle horizontalis pozicioban, 3block magassabban banyasz.
  601. Azert igy mert, a legtobb gyemantot igy lehet gyujteni a kb 9-12 bolck magassagban.]])
  602.     print("")
  603.     print("")
  604.     print("--Press Enter Key to Continue--")
  605.     read("")
  606.     print([[ A programot kizarolag hobbi celbol keszitettem.
  607. Modositas nelkul szabadon terjesztheto. Terjesztesnel fel kell tuntetni a keszitot illetve a verziot.
  608.  
  609. Keszlitette: K.Laszlo Alias -Matteo-
  610. Minecraft nev: LeslieHUN]])
  611.     print("")
  612.     print("--Press Enter Key to Continue--")
  613.     read("")
  614. end
  615.  
  616. --[[//hamarosan also menuk
  617. function tovabb()
  618.  main()
  619. end
  620.  
  621. function vissza()
  622.  main()
  623. end
  624. ]]--
  625.  
  626. --[[ Menu Definitions ]]--
  627.  
  628. local mainMenu = {              --Menuk szerkezete, funkcioi
  629.     [1] = { text = "   Install   ", handler = Choice1 },
  630.     [2] = { text = "Banya program", handler = Choice2 },
  631.     [3] = { text = "    Help     ", handler = Help },
  632.     [4] = { text = "   Leiras    ", handler = Leiras },
  633.     [5] = { text = "    Exit     ", handler = Exit }
  634. }
  635.  
  636. --[[local visszaMenu = { --//also menuk
  637.  [1] = { text = "Tovabb", handler = tovabb },
  638.  [2] = { text = "Vissza", handler = vissza }
  639. }
  640. ]]--
  641. --[[ Printing Methods ]]--
  642.  
  643. function printMenu ( menu )         --Menu megjelenitese es cursor mozgatasa
  644.     for i = 1, #menu do
  645.         if i == selectedItem then
  646.             term.setCursorPos(10,(i+5))
  647.             print(">> "..menu[i].text.." <<")
  648.         else
  649.             term.setCursorPos(10,(i+5))
  650.             print("   "..menu[i].text)
  651.         end
  652.     end
  653. end
  654.  
  655. --[[ Handler Method ]]--
  656.  
  657. function onKeyPressed( key, menu )          --Menunel, gombok erzekelese.
  658.     if key == keys.enter then
  659.         onItemSelected(menu)
  660.     elseif key == keys.up then
  661.         if selectedItem > 1 then
  662.             selectedItem = selectedItem - 1
  663.         end
  664.     elseif key == keys.down then
  665.         if selectedItem < #menu then
  666.             selectedItem = selectedItem + 1
  667.         end
  668.     end
  669. end
  670.  
  671. function onItemSelected( menu )
  672.     menu[selectedItem].handler()
  673. end
  674.  
  675. --[[ Main Methods ]]--
  676.  
  677. function main()             --Main menu futtatasa
  678.     while runing do
  679.         clear()
  680.         printF()
  681.         term.setCursorPos(10,5)
  682.         printMenu(mainMenu)
  683.         event, key = os.pullEvent("key")
  684.         onKeyPressed(key,mainMenu)
  685.     end
  686. end
  687.  
  688. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement