 
                
                80 posts
                
             
            
                Posted 31 October 2012 - 06:37 AM
                So I'm attempting to use computercraft to run a large system. The idea is that while a lever is on, it will output power to another line, and if the lever is off, it won't.
Also I plan to have an 'interrupt' command that will -temporarily- disable things, but resume them later… but I haven't got that far yet. Right now i'm still trying to get the first half to run.
function clear()
term.clear()
term.setCursorPos(1,1)
end
while true do
clear()
local event, param1 = os.pullevent("redstone")
local redState=rs.testBundledInput("bottom", colors.white)
if redState then
  redstone.setBundledOutput("bottom", colors.red)
else
  redstone.setBundledOutput("bottom", 0)
end
end
that's as far as I got.  But every time I run it I get an error stating that: "Bios:206: [string "shield"]:14 ')' expected.
Help… I'm new to lua!
                
             
         
        
        
            
            
                
                     
                
                1548 posts
                
                    
                        Location
                        That dark shadow under your bed...
                    
                
             
            
                Posted 31 October 2012 - 07:03 AM
                local redState=rs.testBundledInput("bottom", color.white)
needs colors not color
                
             
         
        
        
            
            
                
                     
                
                80 posts
                
             
            
                Posted 31 October 2012 - 07:05 AM
                Fixed that- that's an error in my reproduced code, not the actual code in tekkit. Still has the error. XP
                
             
         
        
        
            
            
                
                     
                
                1111 posts
                
                    
                        Location
                        Portland OR
                    
                
             
            
                Posted 31 October 2012 - 07:14 AM
                This:
local event, param1 = os.pullevent("redstone")
--should be
local event, param1 = os.pullEvent("redstone")
I don't see anything else wrong with what you have posted.
 
         
        
        
            
            
                
                     
                
                80 posts
                
             
            
                Posted 31 October 2012 - 07:41 AM
                Corrected that- it still throws up an 'expected )' error about
redstone.setBundledOutput("bottom", 0)
But that's a standard code… I used it in another computer  on the same map! Did I fry something in minecraft itself?
                
             
         
        
        
            
            
                
                     
                
                1111 posts
                
                    
                        Location
                        Portland OR
                    
                
             
            
                Posted 31 October 2012 - 07:46 AM
                Yeah that should work. I'll be to where I can play with it here shortly.
Go through and take a close look at it, make sure you don't have a period instead of comma or something like that.
                
             
         
        
        
            
            
                
                     
                
                80 posts
                
             
            
                Posted 31 October 2012 - 07:51 AM
                That was it. I had a period in place of a comma x.x thanks for helping me out- you're awesome!
Since you seem to be in the knowhow, however… how would I make an 'interrupt' where I could say, tap a button, and have it break the output for a few seconds…?
                
             
         
        
        
            
            
                
                     
                
                1111 posts
                
                    
                        Location
                        Portland OR
                    
                
             
            
                Posted 31 October 2012 - 08:31 AM
                Just remove you're event filter and use the key events.
while true do
clear()
local event, param1 = os.pullEvent()
if event == "redstone" then
  local redState=rs.testBundledInput("bottom", colors.white)
  if redState then
	redstone.setBundledOutput("bottom", colors.red)
  else
	redstone.setBundledOutput("bottom", 0)
  end
elseif event == "key" then
  if param1 == 16 then -- q was pressed can change to what key you want or just remove so any key will work
   sleep(5) -- change the sleep to what you want it to do
  end
end
end
Here is a link to the key codes in case you do not know what they are: 
http://www.minecraftwiki.net/wiki/Key_Codes 
         
        
        
            
            
                
                     
                
                80 posts
                
             
            
                Posted 31 October 2012 - 08:51 AM
                Just remove you're event filter and use the key events.
while true do
clear()
local event, param1 = os.pullEvent()
if event == "redstone" then
  local redState=rs.testBundledInput("bottom", colors.white)
  if redState then
	redstone.setBundledOutput("bottom", colors.red)
  else
	redstone.setBundledOutput("bottom", 0)
  end
elseif event == "key" then
  if param1 == 16 then -- q was pressed can change to what key you want or just remove so any key will work
   sleep(5) -- change the sleep to what you want it to do
  end
end
end
Here is a link to the key codes in case you do not know what they are: 
http://www.minecraft.../wiki/Key_Codes
er, sorry I wasn't clear- I meant a -redstone- button specifically, instead. >.< and how would a single 'wait' deactivate things temporarily? o.o
 
         
        
        
            
            
                
                     
                
                1111 posts
                
                    
                        Location
                        Portland OR
                    
                
             
            
                Posted 31 October 2012 - 09:18 AM
                What exactly are you wanting to deactivate? Turn off all of the bundled output?
And to pick up a signal from a button/lever/etc… leave your os.pullEvent() with the redstone filter just add an other if statement to check to see if it is getting a redstone signal to the side that you have the button wired up to.
local event,param1 = os.pullEvent("redstone")
local redState=rs.testBundledInput("bottom", colors.white)
if redState then
  redstone.setBundledOutput("bottom", colors.red)
else
  redstone.setBundledOutput("bottom", 0)
end
if rs.getInput("change to your side") then
  --to deactivate the bundled
  local wasOn = rs.getBundledInput("bottom")
  rs.setBundledOutput("bottom", 0)
  os.pullEvent("key") -- will wait for a key press, change to what you want sleep/redstone signal etc..
  rs.setBundledOutput("bottom", wasOn)
end
 
         
        
        
            
            
                
                     
                
                80 posts
                
             
            
                Posted 31 October 2012 - 09:29 AM
                aright, so here's exactly what I'm doing. I've set up a shield generator that runs if a lever inside it is on, with a small delay in case anyone needs to get out before it goes up/etc. I've also given a few people remote redstone controls, so they can deactivate it and slip inside should they somehow be trapped OUTSIDE.
I've wired the 'main' lever to white, the output to the shield to red, and the 'remote' redstone to black.
basically what I want is that if you get a signal from black it temporarily cuts the power if the shield is on. sort of a five-to-ten second 'interrupt.'
                
             
         
        
        
            
            
                
                     
                
                1111 posts
                
                    
                        Location
                        Portland OR
                    
                
             
            
                Posted 31 October 2012 - 09:56 AM
                Ahh very simple here you go:
while true do
clear()
local event,param1 = os.pullEvent("redstone")
local redState=rs.testBundledInput("bottom", colors.white)
if redState then
  redstone.setBundledOutput("bottom", colors.red)
else
  redstone.setBundledOutput("bottom", 0)
end
if rs.testBundledInput("bottom", colors.black) then
  rs.setBundledOutput("bottom", 0)
  sleep(5) --adjust accordingly
  if redState then
    rs.setBundledOutput("bottom", colors.red)
  end
end
end
 
         
        
        
            
            
                
                     
                
                80 posts
                
             
            
                Posted 31 October 2012 - 10:20 AM
                Aha, thanks. Will test this tomorrow morning :P/>/>
                
             
         
        
        
            
            
                
                     
                
                80 posts
                
             
            
                Posted 01 November 2012 - 12:59 AM
                It worked, thanks! :P/>/>