can someone look at this program i called it 3dprint it says bios :338: [string "3dprint"] :21: enexpected symbol. here is the codes i put in/ got off pastebin.
--[[
3D Print
A printing program for use with NPaintPro
But makes for a nice remote-control routine too
By NitrogenFingers
]]--
local activeCommander = -1
local operatingPrint = false
--Whether or not the print can be ended
local function endPrint()
operatingPrint = false
end
--The list of all commands the printer can be ginve
local commandList = {
["FW"] = { turtle.dig, turtle.forward };
["BK"] = turtle.back;
["UP"] = { turtle.digUp, turtle.up };
["DW"] = { turtle.digDown, turtle.down };
["TL"] = turtle.turnLeft;
["TR"] = turtle.turnRight;
["TU"] = { turtle.turnLeft, turtle.turnLeft };
["PF"] = { turtle.dig, turtle.place };
["PU"] = { turtle.digUp, turtle.placeUp };
["PD"] = { turtle.digDown, turtle.placeDown };
["SS"] = turtle.select;
["DE"] = endPrint;
}
--Splits a string according to a pattern into a table
local function split(str, pattern)
local t = { }
local fpat = "(.-)" .. pattern
local last_end = 1
local s, e, cap = str:find(fpat, 1)
while s do
if s ~= 1 or cap ~= "" then
table.insert(t,cap)
end
last_end = e+1
s, e, cap = str:find(fpat, last_end)
end
if last_end <= #str then
cap = str:sub(last_end)
table.insert(t, cap)
end
return t
end
--Listens for any instructions given referring to identification and activation. Once activated, the mode exits.
local function respondToQuery()
while true do
print("Listening for ACT/ID query")
local id,key = rednet.receive()
print("Received : "..key)
if key == "$3DPRINT IDENTIFY" then
print("Requested Identification")
rednet.send(id, "$3DPRINT IDACK "..os.getComputerLabel())
elseif key == "$3DPRINT ACTIVATE" then
print("Requested Activation")
activeCommander = id
rednet.send(id, "$3DPRINT ACTACK")
break
end
end
end
--Performs the print. Follows instrutions as given, and responds as necessary
local function performPrint()
operatingPrint = true
while operatingPrint do
local id,msg = rednet.receive()
if id == activeCommander and string.find(msg, "$PC") == 1 then
local cmds = split(msg, " ")
if(tonumber(cmds[3])) and turtle.getItemCount(tonumber(cmds[3])) == 0 then
rednet.send(id, "$3DPRINT DEP")
else
if type(commandList[cmds[2]]) == "function" then
commandList[cmds[2]](tonumber(cmds[3]))
elseif type(commandList[cmds[2]]) == "table" then
for i=1,#commandList[cmds[2]] do
commandList[cmds[2]][i](tonumber(cmds[3]))
end
end
rednet.send(activeCommander, "$3DPRINT ACK")
end
end
end
end
rednet.open("right")
term.clear()
term.setCursorPos(1,1)
if not os.getComputerLabel() then
term.write("Name this computer:")
os.setComputerLabel(io.read())
end
print("3D printer online")
while true do
--Wait for activation
respondToQuery()
--Perform the print
performPrint()
end