Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
  • 0
Zer0AZ

Tweaking the password door

Question

Hello everyone,

I apologize first off if I should have just commented on that post, I just didn't want to necro / hijack the thread. I'm currently attempting to use BadCode's password door for the sake of learning. I've got the code to run, the password is accepted/denied appropriately. My issue however is upon running the code, it immediately emits a redstone signal from my redstone i/o (Using creative computer with a redstone i/o block attached) before a password is input. I assume from reading the code it's the part where it attempts to reset the door to its closed position? What seems to happen is upon accepting the password, the I/O actually ends the signal emission for the designated duration instead. I'm a bit too new to figure out why / how to fix this and was wondering if anyone would be able to help me understand how I can do fix it. I'll attach the code from the other post. The only edit I've made is adjusting the side that the power is emitting from. 

EDIT#1: So after getting some help from the IRC we were able to figure out why I'm a failure haha. It seems that the issue stemmed from the default values in the code being assigned to emit at a level of 255 for the redstone (which I wasn't aware was for non-vanilla redstone wires). The code below has been updated accordingly for vanilla redstone wire. Thanks to @Vexatos for being awesome and catching that.

 

--[[ 
  Password Lock Program for OpenComputers


  This program is designed to run indefinitely on a basic terminal to provide 
  password protection via redstone. It includes configurations for the door open
  duration, redstone output side, password, and an "admin" break password that will
  allow a user to gracefully terminate the program.


  By badcode9, 2016
]]

local component = require("component")

if not component.isAvailable("redstone") then
  io.stderr:write("This program requires either a Redstone Card Tier 1 or Redstone I/O block to run.\n")
  return
end
local rs = component.redstone

local os = require("os")
local term = require("term")
local text = require("text")
local sides = require("sides")




--[[ Config ]]-----------------------------------------------------------------
local pass = "password"
local d = 5 -- Door open duration
local s = sides.bottom -- Where to output redstone signal to open the door

--[[ Door Control ]]-----------------------------------------------------------
local function openDoor(duration)
  -- Open door for the duration provided, then close again.
  rs.setOutput(s, 15)
  os.sleep(duration)
  rs.setOutput(s, 0)
end

--[[ Main ]]-------------------------------------------------------------------

-- Close door on init
rs.setOutput(s, 0)

while true do
 term.clear()

 -- Password Request
 print("Enter Password:")
 answer = text.trim(term.read(nil, false, nil, "*"))  -- Masking input characters; trim newline
 term.setCursor(1,2)
 term.clearLine()

 -- Password Check
 if answer == "admin" then -- admin pwd to break execution
  term.clear()
  print("Admin Override\n")
  return
 elseif answer == pass then
   print("ACCESS GRANTED")
   openDoor(d)
 else
   print("ACCESS DENIED")
   os.sleep(3)
 end
end

 

Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.