Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Automata banyaszo Turtle v1.0.3--
- --By Matteo--
- --MC: LeslieHUN--
- --2012. 11.18--
- --[[
- ----------------------------------------
- 0.1 -Banyaszas.
- 0.2 -Minden inditasnal tankol.
- 2012.11.19
- 0.3 -HotFIX: ha nincs elotte block
- akkor is banyasz maga felett.
- 0.4 -Fordulokent elmegy es
- kiuriti magat a chest-be.
- 0.5 -Ha soder hullik ra, erzekeli
- es kibanyassza.
- -Csak akkor tankol, ha 2000 ala
- esik az uzemanyag szint.
- 0.6 -Maga alatt is banyasz.
- A tankolas fordulonkent van, nem
- indulasonkent.
- 2012.11.20
- 0.7 -Install parancsal, megcsinalja
- maganak a dokkolo helyet. 6x6
- 3chest 2tabla tartalom leirassal.
- -Tankolas opcio pontositva. Akkor
- tankol, ha 100 ala esik az
- uzemanyag szint. Masodik chestbol
- kiveszi maganak a szenet, ha a
- slot1 ben 30 ala esik a szen.
- 2012.11.24
- 0.8 -HotFix: Tankilasok finomitva.
- -Ha menetkozben kifogy, egyet
- tankol.
- -Install resznel leellenorzi a
- slotok darabszamat. Ha hianyzik
- kiirja, hogy mi és honnan.
- -Indulasnal kulon parancs resz.
- -Program menet, sorrend pontositva.
- 2012.11.25
- 0.9 -Fokent kulalak es felhasznalo
- barat javitasok.
- -Min es max hatar a szelesseg es
- hosszusagnal.
- -Csak szamot lehet mar megadni.
- -"Menuk" jobban el vannak rendezve
- -Ha tankol, de kifogyott a szen,
- jelzi es var.
- -Ha nem tud elolre lepni, leellenorzi
- az uzemanyagszintet, ha kell tankol.
- 1.0-Menu rendszer berakva
- 2012.12.26
- 1.0.1
- -MOB erzekeles
- -Installnal itemnek nem kell pontosan
- annyinak lennie, = helyett <
- -Szemet kiszedve.
- 2012.12.27
- 1.0.2
- -MOB-okat mar a tankolasi resznel is
- erzekeli.
- -Chest be rakasi resz atalakitva,
- pontositva.
- -Atlathatobb parancssor.
- -szel., hossz. nal pontositva az
- ertek. Mostmar csak szamot lehet
- megadni. Kulon hibajelzes mas
- karakterekre.
- 2012.12.31
- 1.0.3
- -MOB-okat telepit resznel is erzekeli
- -Installnal ha block van elotte megkerdi
- mi legyen.
- -Alap banyaszott block log. //tényleg alap
- -Banyaszas kozben folyamatosan frissulo log
- kijelzese.
- ----------------------------------------
- Kijavitando hibak:
- -Ha valahol leall kezzel kell a
- helyere vinni. (GPS megirasa kell)
- -goto program irasa 10%-nal tart.
- -8 block-onkent rakjon le egy fakjat.
- (By Zendor :)
- ----------------------------------------
- ]]--
- --[[ Functions ]]--
- function clear()
- term.clear()
- term.setCursorPos(1,1)
- end
- function printF()
- term.setCursorPos(2,1)
- print("--Automata banyaszo Turtle v1.0.3--")
- term.setCursorPos(13,2)
- print("--By Matteo--")
- term.setCursorPos(33,12)
- print("V1.0.3")
- term.setCursorPos(1,5)
- end
- function telepitAera() --Install resz kialakitasa
- clear()
- turtle.select(1)
- szendarab = turtle.getItemCount(1)
- while szendarab < 3 do
- printF()
- print("1. Lepes")
- print("")
- szendarab = turtle.getItemCount(1)
- szenkell = 3 - szendarab
- print("Elso sor, elso slotba, rakj 3db darab szenet.")
- print("Meg ennyi kell: "..szenkell)
- term.setCursorPos(1,10)
- print("Ha beraktad, folytatodik a telepites")
- sleep(0.4)
- clear()
- end
- ladadarab = turtle.getItemCount(2)
- turtle.select(2)
- while ladadarab < 3 do
- printF()
- print("2. Lepes")
- print("")
- ladadarab = turtle.getItemCount(2)
- ladakell = 3 - ladadarab
- print("Elso sor, masodik slotba, rakj 3db ladat (chest).")
- print("Meg ennyi kell: ".. ladakell)
- term.setCursorPos(1,10)
- print("Ha beraktad, folytatodik a telepites")
- sleep(0.4)
- clear()
- end
- signdarab = turtle.getItemCount(3)
- turtle.select(3)
- while signdarab ~= 1 do
- printF()
- print("3. Lepes")
- print("")
- signdarab = turtle.getItemCount(3)
- signkell = 1 - signdarab
- print("Elso sor, harmadik slotba, rakj egy tablat (sign).")
- print("Meg ennyi kell: ".. signkell)
- term.setCursorPos(1,10)
- print("Ha beraktad, folytatodik a telepites")
- sleep(0.4)
- clear()
- end
- signdarab = turtle.getItemCount(4)
- turtle.select(4)
- while signdarab ~= 1 do
- printF()
- print("4. Lepes")
- print("")
- signdarab = turtle.getItemCount(4)
- signkell = 1 - signdarab
- print("Elso sor, negyedik slotba, rakj egy tablat (sign).")
- print("Meg ennyi kell: ".. signkell)
- term.setCursorPos(1,10)
- print("Ha beraktad, folytatodik a telepites")
- sleep(0.4)
- clear()
- end
- if fuel == 0 then
- while turtle.getItemCount(1) == 0 do
- printF()
- print("Kerlek ellenorizd, hogy az 1-es slotban van-e szenem.")
- print("Rakj 2db szenet es nyomj egy entert")
- read("")
- clear()
- end
- turtle.select(1)
- print("Tankoltam.")
- turtle.refuel(1)
- sleep(1)
- end
- clear()
- printF()
- print("Epites elkezdodott, kerlek vard meg mig kesz lesz.")
- for i = 1, 4, 2 do
- for i = 1, 5 do
- lepesE()
- end
- turnL()
- for i = 1, 5 do
- lepesE()
- end
- turnR()
- end
- itemInstall()
- end
- function itemGo() --Install resznel a mozgas
- turtle.turnLeft()
- while not turtle.forward() do
- if turtle.detect() == true then
- clear()
- printF()
- print("Egy block van elottem, kiuthetem? i/n")
- local valasz = "k"
- local valasz = read()
- if valasz == "i" or valasz == "I" or valasz == "y" or valasz == "Y" or valasz == "k" or valasz == "K" then
- turtle.dig()
- else
- clear()
- printF()
- print("Amig nem veszed el elolem a block-ot nem tudom folytatni a telepitest.")
- end
- else
- clear()
- printF()
- turtle.attack()
- print("Egy MOB, NPC, vagy Player van elottem, tamadok!")
- end
- end
- turtle.turnRight()
- end
- function itemInstall() --Chestek, tablak lerakasa
- turtle.turnRight()
- turtle.select(2)
- for i = 1, 3 do
- lepesE()
- end
- for i = 1, 2 do
- while not turtle.place() do
- clear()
- printF()
- print("Nem tudom lehelyezni a ladat")
- sleep(1)
- end
- itemGo()
- end
- turtle.select(3)
- while not turtle.place([[Kibanyaszott
- block-ok
- -------->]]) do
- clear()
- printF()
- print("Nem tudom lehelyezni a tablat")
- sleep(1)
- end
- itemGo()
- turtle.select(2)
- while not turtle.place() do
- clear()
- printF()
- print("Nem tudom lehelyezni a ladat")
- sleep(1)
- end
- itemGo()
- turtle.select(4)
- while not turtle.place([[Uzemanyag nekem
- (szen,fa)
- ------->]]) do
- clear()
- printF()
- print("Nem tudom lehelyezni a tablat")
- sleep(1)
- end
- turtle.turnRight()
- for i = 1, 4 do
- while not turtle.forward() do
- if turtle.detect() == true then
- clear()
- printF()
- write("Egy block van elottem, kiuthetem? i/n :")
- local valasz = "k"
- local valasz = read()
- if valasz == "i" or valasz == "I" or valasz == "y" or valasz == "Y" or valasz == "k" or valasz == "K" or valasz == "igen" or valasz == "IGEN" then
- turtle.dig()
- elseif valsz == "n" or valsz == "N" or valasz == "nem" or valasz == "NEM" then
- clear()
- printF()
- print("Amig nem veszed el elolem a block-ot, nem tudom folytatni a telepitest.")
- sleep(.1)
- else
- clear()
- printF()
- print("Nem ismert valaszt adtal meg. i/n?")
- end
- else
- clear()
- printF()
- turtle.attack()
- print("Egy MOB, NPC, vagy Player van elottem, tamadok!")
- sleep(.1)
- end
- end
- end
- turtle.turnLeft()
- dropAll()
- turtle.turnRight()
- turtle.turnRight()
- for i = 1, 3 do
- turtle.forward()
- end
- turtle.turnRight()
- clear()
- banyaszas()
- end
- function reFuel() --Tankolasi menet
- fuel = turtle.getFuelLevel()
- if fuel < 100 then
- turtle.select(1)
- while not turtle.refuel(1) do
- clear()
- printF()
- print("Nincs szen az egyes slotban")
- sleep(3)
- end
- fuel = turtle.getFuelLevel()
- clear()
- printF()
- print("Tankoltam.")
- print("Uzemanyag szint: "..fuel)
- end
- end
- function getFuel() --Lepakolas utan, uzemanyag ellenorzes es feltankolas
- local fuelslot = turtle.getItemCount(1)
- local loopback = 0
- turtle.select(1)
- if fuelslot < 10 then
- turtle.turnRight()
- while loopback ~= 3 do
- if turtle.forward() == false then
- turtle.attack()
- else
- loopback = loopback + 1
- end
- end
- turtle.turnRight()
- while not turtle.suck() do
- clear()
- printF()
- print("Nincs a ladaban szen. Kerlek toltsd fel,")
- print("A ladaban minimum 10 db szen legyen mindig.")
- print("Ha feltoltotted, kiveszem.")
- sleep(3)
- end
- local loopback = 0
- turtle.turnRight()
- while loopback ~= 3 do
- if turtle.forward() == false then
- turtle.attack()
- else
- loopback = loopback + 1
- end
- end
- turtle.turnRight()
- end
- end
- function dropAll() --Chestnel minden slotot kiurit kiveve az egyest.
- local slot = 2
- while slot ~= 17 do
- turtle.select(slot)
- turtle.drop()
- slot = slot+1
- end
- --[[ for i = 2, 17 do --Vagy így. :)
- turtle.select(i)
- turtle.drop()
- end
- --]]
- end
- function targetC() --Banyatol a chastig
- local loop = true
- while loop do
- if turtle.forward() == true then
- clear()
- printF()
- lepes = lepes + 1
- printBlock()
- term.setCursorPos(1,8)
- print("Lepesek a chest-ig: "..lepes)
- else
- reFuel()
- if turtle.detect() == true then --Erzekeli a MOB okat
- -- if lepes == (loopvissza + 2) then
- dropAll()
- turtle.turnLeft()
- turtle.turnLeft()
- getFuel()
- loop = false
- --[[még kell rajta dolgozni loop vissza alapot kell beallitani else
- clear()
- printF()
- print("Szerintem egy block van elottem, mert kevesebbet mentem vissza a chesthez mint az elozo korben. Ha nem a chest van elottem, banyasszam ki a blockot? i/n?")
- local valasz = read()
- if valasz == "i" or valasz == "I" or valasz == "y" or valasz == "Y" then
- if turtle.dig() == true then
- block_digs = block_digs + 1
- end
- elseif valasz == "n" or valasz == "N" then
- clear()
- printF()
- loopvissza = (lepes - 2)
- print("Megjegyeztem a chest uj poziciojat.")
- sleep(3)
- else
- clear()
- printF()
- print("Helytelen valasz! i/n?")
- sleep(2)
- return targetC()
- end
- end]]
- else
- turtle.attack()
- end
- end
- end
- clear()
- printF()
- print("Ennyit megyek vissza: "..lepes)
- local loopvissza = 0
- while loopvissza ~= lepes do
- if turtle.forward() == false then
- if turtle.detect() == true then
- clear()
- printF()
- print("Van elottem egy block. Kibanyasszam? i/n")
- local valasz = read()
- if valasz == "i" or valasz == "I" or valasz == "igen" or valasz == "IGEN" then
- if turtle.dig() == true then
- block_digs = block_digs + 1
- else
- clear()
- printF()
- print("Error1: Blockot erzekelek, de nem tudtam kibanyaszni!")
- print("Ha kibanyasztad, nyomj egy entert")
- read("")
- end
- elseif valasz == "n" or valasz == "N" or valasz == "nem" or valasz == "NEM" then
- clear()
- printF()
- print("Mig nem veszed el a blockot elolem, nem tudok tovabb menni.")
- print("Ha kibanyasztad, nyomj egy entert")
- read("")
- else
- clear()
- printF()
- print("Helytelen valasz. i/n?")
- end
- end
- turtle.attack()
- reFuel()
- else
- loopvissza = loopvissza + 1
- end
- end
- turtle.turnRight()
- end
- --[[ for i = 2, lepes + 1 do //erzekeles nelkul
- while not turtle.forward() do
- turtle.attack()
- end
- end
- ]]
- function digDown() --Lefele asas, ha van alatta valami.
- while turtle.detectDown() do
- if turtle.digDown() == true then
- block_digs = block_digs + 1
- end
- end
- printBlock()
- end
- function lepesE() --Banyaszas kozbeni lepesek.
- while not turtle.forward() do
- if turtle.detect() == true then
- clear()
- printF()
- printBlock()
- if turtle.dig() == true then
- block_digs = block_digs + 1
- end
- else
- clear()
- printF()
- turtle.attack()
- print("Egy MOB, NPC, vagy Player van elottem, tamadok!")
- end
- if turtle.getFuelLevel() < 10 then
- turtle.select(1)
- reFuel()
- end
- end
- sleep(0.4)
- while turtle.detectUp() do
- if turtle.digUp() == true then
- block_digs = block_digs + 1
- end
- sleep(0.4)
- end
- printBlock()
- end
- function turnL() --Balra megfordulas
- turtle.turnLeft()
- lepesE()
- turtle.turnLeft()
- end
- function turnR() --Jobbra megfordulas
- turtle.turnRight()
- lepesE()
- turtle.turnRight()
- end
- function printBlock()
- clear()
- printF()
- term.setCursorPos(1,5)
- local fuel2 = turtle.getFuelLevel()
- print("Online")
- print("Uzemanyag szint: ".. fuel2)
- term.setCursorPos(24,6)
- write("egyseg")
- term.setCursorPos(1,7)
- print("Kitermelt menny.: " .. block_digs)
- term.setCursorPos(24,7)
- write("db")
- end
- function banyaszas() --Banyaszas menete
- loopvissza = 3
- block_digs = 0
- while true do
- clear()
- local fuel = turtle.getFuelLevel()
- printF()
- if fuel == 0 then
- while turtle.getItemCount(1) == 0 do
- clear()
- printF()
- print("Kerlek ellenorizd, hogy az 1-es slotban van-e szenem.")
- print("Rakj 2db szenet es folytatom")
- sleep(.5)
- clear()
- end
- printF()
- turtle.select(1)
- turtle.refuel(1)
- print("Tankoltam.")
- sleep(1)
- clear()
- end
- clear()
- printF()
- local fuel2 = turtle.getFuelLevel()
- print("Online")
- print("Uzemanyag szint: ".. fuel2)
- term.setCursorPos(24,6)
- write("egyseg")
- term.setCursorPos(1,7)
- print("Kitermelt menny.: " .. block_digs)
- term.setCursorPos(24,7)
- write("db")
- term.setCursorPos(1,10)
- print("Hosszusag:")
- term.setCursorPos(1,9)
- write("Szelesseg: ")
- szeles = tonumber(read()) --read-be mit adtunk meg, szamokat vagy betuket
- if szeles == nil then --Szam vizsgalat
- clear()
- printF()
- term.setCursorPos(1,6)
- print(" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
- print(" ! !")
- print(" ! Szelesseg, csak szam lehet! !")
- print(" ! !")
- print(" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
- sleep(4)
- clear()
- return banyaszas()
- end
- local szeles = szeles + 0
- if (szeles < 51) and (szeles > 1) then
- write("Hosszusag: ")
- local hosszu = tonumber(read())
- if hosszu == nil then
- clear()
- printF()
- print("Szelessegnek, csak szamot lehet megadni!")
- sleep(3)
- return banyaszas()
- end
- local hosszu = hosszu + 0
- if (hosszu < 51) and (hosszu > 1) then
- hosszu = hosszu-1
- szeles = szeles-1
- for i = 1, szeles, 2 do
- for i = 1, hosszu do
- digDown()
- lepesE()
- digDown()
- end
- turnL()
- for i = 1, hosszu do
- digDown()
- lepesE()
- digDown()
- end
- reFuel()
- turnR()
- lepes = 0 --//athelyezve targetC() bol
- turtle.turnRight() --//athelyezve targetC() bol
- targetC()
- end
- term.clear()
- term.setCursorPos(1,1)
- else
- clear()
- printF()
- term.setCursorPos(1,6)
- print(" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
- print(" ! !")
- print(" ! Szelesseg, csak szam lehet! !")
- print(" ! !")
- print(" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
- sleep(4)
- clear()
- return banyaszas()
- end
- else
- clear()
- printF()
- print("")
- print("Szelesseg 2 es 50 kozott kell lennie")
- sleep(3)
- return banyaszas()
- end
- end
- end
- function helpP() --Help menu
- clear()
- printF()
- print("Install : Dokkolo epites.")
- print("Banya program : Banyaszo program.")
- print("Help : Menu leirasok.")
- print("Leiras : Leiras a programrol")
- print("")
- print("Tovabb lepeshez nyomj egy entert")
- read("")
- end
- function InstallP() --Install menu
- clear()
- printF()
- print("A kovetkezo dolgok legyenek nalad:")
- print(" - 5db szen")
- print(" - 3db lada (chest)")
- print(" - 2db tabla (sign)")
- print("Ha ezek megvannak kerlek, nyomj egy entert.")
- read("")
- clear()
- telepitAera()
- end
- --[[ Main program ]]--
- --[[while true do //v0.9 es menu nelkuli
- clear()
- printF()
- print("")
- term.setCursorPos(1,12)
- print("Parancsok: help")
- term.setCursorPos(1,5)
- write("Program: ")
- program = read()
- if program == "install" then
- clear()
- printF()
- print("A kovetkezo dolgok legyenek nalad:")
- print(" - 5db szen")
- print(" - 3db lada (chest)")
- print(" - 2db tabla (sign)")
- print("Ha ezek megvannak kerlek, nyomj egy entert.")
- read("")
- clear()
- telepitAera()
- elseif program == "help" then
- clear()
- printF()
- print("install: Dokkolo epites.")
- print("banya: Banyaszo program.")
- term.setCursorPos(1,12)
- print("Tovabb lepeshez nyomj egy [entert]")
- read("")
- clear()
- elseif program == "banya" then
- banyaszas()
- else
- clear()
- printF()
- print("Helytelen parancs, kerlek hasznald a [help] parancsot")
- print("Tovabb lepeshez nyomj egy [entert]")
- read("")
- end
- end
- ]]--
- --[[ Menu ]]--
- --[[ Local Variables ]]--
- local termWidth, termHeight = term.getSize()
- local selectedItem = 1
- local runing = true
- --[[ Menu Metods ]]-- --Melyik menu mi legyen
- function Choice1()
- InstallP()
- end
- function Choice2()
- banyaszas()
- end
- function Exit()
- runing = false
- end
- function Help()
- helpP()
- --[[ print(visszaMenu)]]--
- end
- function Leiras() --Leiras menu
- clear()
- printF()
- term.setCursorPos(1,4)
- print([[A program a banyaszasra keszult. A turtle horizontalis pozicioban, 3block magassabban banyasz.
- Azert igy mert, a legtobb gyemantot igy lehet gyujteni a kb 9-12 bolck magassagban.]])
- print("")
- print("")
- print("--Press Enter Key to Continue--")
- read("")
- print([[ A programot kizarolag hobbi celbol keszitettem.
- Modositas nelkul szabadon terjesztheto. Terjesztesnel fel kell tuntetni a keszitot illetve a verziot.
- Keszlitette: K.Laszlo Alias -Matteo-
- Minecraft nev: LeslieHUN]])
- print("")
- print("--Press Enter Key to Continue--")
- read("")
- end
- function tovabb()
- main()
- end
- function vissza()
- main()
- end
- --[[ Menu Definitions ]]--
- local mainMenu = { --Menuk szerkezete, funkcioi
- [1] = { text = " Install ", handler = Choice1 },
- [2] = { text = "Banya program", handler = Choice2 },
- [3] = { text = " Help ", handler = Help },
- [4] = { text = " Leiras ", handler = Leiras },
- [5] = { text = " Exit ", handler = Exit }
- }
- --[[Hamarosan]] local visszaMenu = {
- [1] = { text = "Tovabb", handler = tovabb },
- [2] = { text = "Vissza", handler = vissza }
- }
- --[[ Printing Methods ]]--
- function printMenu ( menu ) --Menu megjelenitese es cursor mozgatasa
- for i = 1, #menu do
- if i == selectedItem then
- term.setCursorPos(10,(i+5))
- print(">> "..menu[i].text.." <<")
- else
- term.setCursorPos(10,(i+5))
- print(" "..menu[i].text)
- end
- end
- end
- --[[ Handler Method ]]--
- function onKeyPressed( key, menu ) --Menunel, gombok erzekelese.
- if key == keys.enter then
- onItemSelected(menu)
- elseif key == keys.up then
- if selectedItem > 1 then
- selectedItem = selectedItem - 1
- end
- elseif key == keys.down then
- if selectedItem < #menu then
- selectedItem = selectedItem + 1
- end
- end
- end
- function onItemSelected( menu )
- menu[selectedItem].handler()
- end
- --[[ Main Methods ]]--
- function main() --Main menu futtatasa
- while runing do
- clear()
- printF()
- term.setCursorPos(10,5)
- printMenu(mainMenu)
- event, key = os.pullEvent("key")
- onKeyPressed(key,mainMenu)
- end
- end
- --Main program--
- block_digs = 0
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement