Hey zusammen
Da ich gerade selbst bisschen mit Turtle spiele kam mir die Idee das wir ja die Scripts austauschen könnten und (wahrscheinlich vor allem ich) noch etwas von anderen Scripts lernen können.
Hier mal ein paar Scripts von mir:
1. Script Quarrygerüst abbau (Gerüst muss noch in Takt sein)
Das Turtle einfach vor eine Ecke des Gerüstes abstellen. Egal welche.
Das Turtle braucht 1 Gerüst im 1. Slot damit sie funtioniert.
2. Script Gerüst abbruch (Fals das Gerüst nicht mehr Intakt ist)
Ist nicht nur für Gerüste gedacht. Einfach das was man abbauen will in den 1. Slot des Turtles packen.
Das Turtle folgt solange den Blöcken bis es keine mehr finden kann.
Es baut nur Blöcke ab die aneinander sind. Es kann also nicht an eine Vergabelung zurück finden und das dort auch noch abbauen.
3. Script Quarry setzten (Ist zum setzten der Fackeln für im Untergrund oder Wasser gedacht)
Das Turtle gräbt sich den Weg von Ecke zu Ecke und setzt die Fackeln und baut darum herum einen Schutz das Wasser die Fackel nicht zerstören könnte.
1. Slot Irgend ein fester Block der nicht fällt.
2. Slot 3 Landmarks (Das 4. könnt ihr am Startpunkt selbst setzten.)
Die Zahl auf der ersten Zeile im Code ist für die grösse des Quarry. In diesem Fall 60x60
4. Script Quarry in freier Luft
Einfach Turtle absetzten 4 Erde oder so in 1.Slot und 4 Fackel in den 2. Slot und go =)
5. Script Zur einfachen Steuerung des Turtle
Einfach das Programm aufstarten und schon läst sich das Turtle bequem mit den Pfeiltasten und Bild Auf/Ab steuern =)
Da ich gerade selbst bisschen mit Turtle spiele kam mir die Idee das wir ja die Scripts austauschen könnten und (wahrscheinlich vor allem ich) noch etwas von anderen Scripts lernen können.
Hier mal ein paar Scripts von mir:
1. Script Quarrygerüst abbau (Gerüst muss noch in Takt sein)
Das Turtle einfach vor eine Ecke des Gerüstes abstellen. Egal welche.
Das Turtle braucht 1 Gerüst im 1. Slot damit sie funtioniert.
Code:
print("***Quarry-Geruest abbau Program***")
print("Das Turtle vor eine Ecke stellen.")
function u()
repeat digu()
until turtle.up() == true
end
function d()
repeat digd()
until turtle.down() == true
end
function f()
repeat dig()
until turtle.forward() == true
end
function l() turtle.turnLeft() end
function r() turtle.turnRight() end
function dig() turtle.dig() end
function digu() turtle.digUp() end
function digd() turtle.digDown() end
function sel(x) turtle.select(x) end
function comp() return turtle.compare() end
function compu() return turtle.compareUp() end
function compd() return turtle.compareDown() end
function gic(x) return turtle.getItemCount(x) end
hoehe = 0
function ho() hoehe = hoehe + 1 end
laenge = 0
function la() laenge = laenge + 1 end
breite = 0
function br() breite = breite + 1 end
start_v = 0
function vertikal()
if start_v == 0 then
for i=1, hoehe, 1 do u() end
for i=1, hoehe, 1 do d() end
elseif start_v == 1 then
for i=1, hoehe, 1 do d() end
for i=1, hoehe, 1 do u() end
end
end
function start()
if comp() then
f()
if compu() then start_v = 0 end
if compd() then start_v = 1 end
l()
if comp() then abbau()
else
r()
if comp() then abbau() end
end
else print("Kein Geruest in der naehe, bitte neu setzen!") end
end
function abbau()
if start_v == 0 then
while compu() do u() ho() end
for i=1, hoehe, 1 do d() end
elseif start_v == 1 then
while compd() do d() ho() end
for i=1, hoehe, 1 do u() end
end
while comp() do f() la() end
vertikal()
r()
while comp() do f() br() end
while comp() do f() la() end
vertikal()
r()
for i=1, laenge, 1 do f() end
vertikal()
r()
for i=1, breite, 1 do f() end
if start_v == 0 then
for i=1, hoehe, 1 do u() end
elseif start_v == 1 then
for i=1, hoehe, 1 do d() end
end
r()
for i=1, laenge, 1 do f() end
r()
for i=1, breite, 1 do f() end
r()
for i=1, laenge, 1 do f() end
r()
for i=1, breite, 1 do f() end
if start_v == 1 then
for i=1, hoehe, 1 do u() end
elseif start_v == 0 then
for i=1, hoehe, 1 do d() end
end
end
sel(1)
if gic(1) > 0 then
start()
else
print("Bitte lege mir ein Geruest in den 1.Slot zur Erkennung des Geruestes.")
print("Um fortzufahren 'Enter' druecken...")
local sEvent, param = os.pullEvent("key")
if sEvent == "key" then
if param == 28 then
start()
end
end
end
Ist nicht nur für Gerüste gedacht. Einfach das was man abbauen will in den 1. Slot des Turtles packen.
Das Turtle folgt solange den Blöcken bis es keine mehr finden kann.
Es baut nur Blöcke ab die aneinander sind. Es kann also nicht an eine Vergabelung zurück finden und das dort auch noch abbauen.
Code:
function f()
repeat dig()
until turtle.forward() == true
end
function u()
repeat digu()
until turtle.up() == true
end
function d()
repeat digd()
until turtle.down() == true
end
function l() turtle.turnLeft() end
function r() turtle.turnRight() end
function dig() turtle.dig() end
function digu() turtle.digUp() end
function digd() turtle.digDown() end
function gic(x) return turtle.getItemCount(x) end
function comp() return turtle.compare() end
function compu() return turtle.compareUp() end
function compd() return turtle.compareDown() end
function sel(x) turtle.select(x) end
function geradeaus()
while comp() do f() end
search()
end
function hoch()
while compu() do u() end
search()
end
function runter()
while compd() do d() end
search()
end
function ende()
l() r() r() l() u() d()
end
function search()
if comp() then geradeaus()
else l()
if comp() then geradeaus()
else l()
if comp() then geradeaus()
else l()
if comp() then geradeaus()
else
if compu() then hoch()
else
if compd() then runter() else ende() end
end
end
end
end
end
end
sel(1)
if gic(1) > 0 then
search()
else ende()
end
Das Turtle gräbt sich den Weg von Ecke zu Ecke und setzt die Fackeln und baut darum herum einen Schutz das Wasser die Fackel nicht zerstören könnte.
1. Slot Irgend ein fester Block der nicht fällt.
2. Slot 3 Landmarks (Das 4. könnt ihr am Startpunkt selbst setzten.)
Die Zahl auf der ersten Zeile im Code ist für die grösse des Quarry. In diesem Fall 60x60
Code:
square = 60
function dec() return turtle.detect() end
function decu() return turtle.detectUp() end
function f()
repeat dig()
until turtle.forward() == true
end
function b()
repeat
until turtle.back() == true
end
function l() turtle.turnLeft() end
function r() turtle.turnRight() end
function dig() turtle.dig() end
function pu() turtle.placeUp() end
function p() turtle.place() end
function sel(x) turtle.select(x) end
function securet()
if not(decu()) then sel(1) pu() end
end
function securef()
if not(dec()) then sel(1) p() end
end
function torch()
sel(2) p()
end
function placetorch()
securet()
securef()
l()
securef()
r() r()
securef()
l() b()
securet()
torch()
l()
securef()
r() r()
securef()
l() b()
securef()
end
function around()
l() f() f() r() f() f() l()
end
function forward(x)
for i=2, x, 1 do
f()
end
end
for c=1, 4, 1 do
if c == 1 then x = square else x = square -2 end
forward(x)
if c < 4 then
placetorch()
around()
end
end
Einfach Turtle absetzten 4 Erde oder so in 1.Slot und 4 Fackel in den 2. Slot und go =)
Code:
print("***Quarry setzten (Trocken)***")
print("Nur wen nicht mit Fluessigkeiten gerechnet wird!")
square = 0
function f()
repeat turtle.dig()
until turtle.forward() == true
end
function b()
repeat
until turtle.back() == true
end
function l() turtle.turnLeft() end
function r() turtle.turnRight() end
function p()
repeat turtle.dig()
until turtle.place() == true
end
function sel(x) turtle.select(x) end
function gic(x) return turtle.getItemCount(x) end
function placetorch()
if turtle.detect()
then b () sel(2) p()
else sel(1) p() b() sel(2) p()
end
end
function around()
l() f() r() f() l()
end
function forward(x)
for i=1, x, 1 do
f()
end
end
function format()
print("")
print("")
print("Wie gross soll eine Seite des Quarry sein?")
square = io.read()
square = tonumber(square)
end
function fortfahren()
print("Um fortzufahren 'Enter' druecken...")
local sEvent, param = os.pullEvent("key")
if sEvent == "key" then
if param == 28 then
print("")
print("")
setup()
end
end
end
function start()
for c=1, 4, 1 do
if c == 1 then x = square else x = square -1 end
forward(x)
placetorch()
if c < 4 then around() end
end
end
function setup()
if gic(1) > 3 then
if gic(2) > 3 then
format()
start()
else print("Ich habe noch nicht genug Landmarks im 2.Slot!") fortfahren() end
else print("Ich brauche noch feste Bloecke im 1. Slot!") fortfahren() end
end
if square == 0 then setup() end
Einfach das Programm aufstarten und schon läst sich das Turtle bequem mit den Pfeiltasten und Bild Auf/Ab steuern =)
Code:
print("***Vereinfachte Turtle-Steuerung***")
print("Tasten zur Steuerung:")
print("Pfeiltasten fuer Himmelrichtung")
print("Page Up/Down fuer Hoch/Runter")
print("Taste 'A' fuer abbauen")
print("Taste 'S' fuer Block setzten")
print("Enter zum beenden des Programs")
print("")
while true do
local sEvent, param = os.pullEvent("key")
if sEvent == "key" then
if param == 30 then
print("**Grabe wohin?")
local sEvent1, param1 = os.pullEvent("key")
if sEvent1 == "key" then
if param1 == 200 then
print("... geradeaus!")
print("")
turtle.dig()
end
end
if sEvent1 == "key" then
if param1 == 201 then
print("... hoch!")
print("")
turtle.digUp()
end
end
if sEvent1 == "key" then
if param1 == 209 then
print("... runter!")
print("")
turtle.digDown()
end
end
end
if param == 31 then
print("**Welcher Slot?")
sleep(1)
term.clearLine()
slot = io.read()
slot = tonumber(slot)
if not(slot == 0) and not(turtle.getItemCount(slot) == 0) then
turtle.select(slot)
print("**Wohin plazieren?")
local sEvent3, param3 = os.pullEvent("key")
if sEvent3 == "key" then
if param3 == 200 then
print("... geradeaus!")
print("")
turtle.place()
end
end
if sEvent3 == "key" then
if param3 == 201 then
print("... hoch!")
print("")
turtle.placeUp()
end
end
if sEvent3 == "key" then
if param3 == 209 then
print("... runter!")
print("")
turtle.placeDown()
end
end
else print("Kein Item in Slot, oder falscher Slot!")
print("")
end
end
if param == 200 then
turtle.forward()
end
if param == 208 then
turtle.back()
end
if param == 203 then
turtle.turnLeft()
end
if param == 205 then
turtle.turnRight()
end
if param == 201 then
turtle.up()
end
if param == 209 then
turtle.down()
end
if param == 28 then
break
end
end
end
Zuletzt bearbeitet:
