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


  • Content Count

  • Joined

  • Last visited

  • Days Won


Fingercomp last won the day on July 31 2020

Fingercomp had the most liked content!

1 Follower

About Fingercomp

  • Rank
    Leading Member

Profile Information

  • Gender

Contact Methods

  • GitHub
  • IRC

Recent Profile Visitors

2755 profile views
  1. Anything not impossible is possible, and this feature doesn't even require much perseverance to implement. Right now we're using owner to store the nickname of one player. We are going to replace it with a table, and therefore the name owner is no longer satisfactory. Let's rename it as trustedPeople and populate it with some test names. local trustedPeople = {"player1", "player2", "player3"} A table is the universal record type in Lua, that is, the type that stores multiple values. But we still need to choose the correct data structure. The table trustedPeople is a sequence. This
  2. I am sorry, but unless I'm misreading your code, it can't possibly throw an "attempt to index a nil value" error, with any people in proximity or without. And the question is contradictory, stating both that the program crashes and that it freezes (the latter is correct, however). Actually, I'm unsure what the actual question is. Therefore, I'll do the only thing I can here: that is, explain what your code does wrong and how to fix it. Before I can proceed to fix the actual issues in the program's logic, I have to get rid of some minor problems. The first such problem is that the code is
  3. It's hard to find the error because indentation is a mess, to be honest. I strongly recommend that you learn how to indent the code properly. If you do that, you should get something like https://pastebin.com/D5adZ0HV. Look at the line 97: you can easily notice that the position of elseif seems weird. Backtrack a little to find where it went wrong — and there, the line 44 contains an extraneous end. Now, if you remove it and re-indent the code again, you'll find out that the last line seems out of place. Sure enough, if you just remove that end, there will be no other end to close the if!
  4. There are three ways to turn on a computer that don't require player interaction: use some kind of an autoclicker to shift-click on the computer case; set a wake message and repeatedly send it over the network; configure a redstone card or a redstone I/O block to turn on the computer when either of them receives a redstone signal and connect a clock generator to it. I guess 3 is the best choice here (and it works for servers, too). And it effectively solves your problem, because computers won't start unless they are powered.
  5. Yes, I forgot to mention it, but the sender side was also a microcontroller. Note that I've tested this on the latest OC dev build for MC 1.12.2. But I could reproduce the bug on OC 1.7.5 (same MC version). So, perhaps it was already fixed. I suggest that you also try running the latest dev build: https://ci.cil.li/job/OpenComputers-MC1.12/ There's an issue on the bug tracker that described a very similar problem. If updating the mod version doesn't resolve the problem, you could post a comment there asking the issue to be reopened.
  6. I've just tried running exactly the same code you have, and it worked. Although the µC turned off right after that, as the its program doesn't have any kind of loop to keep the µC busy. This may be the reason you don't notice that it actually turns on.
  7. This commit (2017-03-30) added getDeuterium and getTritium: https://github.com/mekanism/Mekanism/commit/3eba40c8700a5165f3ce52088643f141c8d0ab57 Here's the PR: https://github.com/mekanism/Mekanism/pull/4282 Since you don't have these methods, you're probably using some really outdated version of Mekanism. You could update the mod or patch it yourself.
  8. If you're running OpenOS, there's a proper way to disable hard interrupts: require("process").info().data.signal = function() end. This function is the interrupt handler, and by populating the body of the function, you can define the desired behavior when Ctrl-Alt-C is pressed. Though the pcall solution makes sense if you want to restart the program when it crashes (because of a bug, for instance). For the sake of completeness, soft interrupts, Ctrl-C without the Alt key, generate an interrupted event.
  9. Let's solve the problem iteratively, one step at a time. The first thing to do is to define the task thoroughly. Our goal is to make a program that checks periodically if there's an authorized person, opens the door if there is one, and closes it otherwise. Then we should require everything we need — that is, the door and the RFID reader. local door = require("component").os_door local rfid = require("component").os_rfidreader This is almost the same as what you did in your code, but notice that the variables I've defined are local. You may wonder what it means and why I'm doing th
  10. I had this problem quite a long time ago, and I think I fixed it by also updating the settings client-side to match those on the server.
  11. There was no IRC library for OpenComputers, so I've made one. Here's a demo bot that uses it: local com = require("component") local event = require("event") local thread = require("thread") local gpu = com.gpu local irc = require("irc") local events = irc.events local env = setmetatable({ irc = irc, events = events, }, {__index = _G}) local client = irc.builder() :connection { host = "irc.esper.net:6667", throttling = { maxDelay = 2, maxThroughput = 5, }, } :auth { nickname = "oc-finger-irc", username = "fingercomp", realname = "OpenComput
  12. TL;DR: set the resolution to 159×28. Displays automatically scale the content to fit the screen's inner area. If you decrease the resolution height, the display area will occupy more horizontal space. I'll assume that your screen is 8×3. The aspect ratio of the screen's inner area is (2 × (8×16 - 4.5)) : (3×16 - 4.5) = 494×87. The "- 4.5" terms are the screen borders, and the width is doubled because the cell width is half its height. If you set the resolution proportional to this ratio, it will fill the whole screen. Of course, you can't do this, as the maximum resolution is 160×50.
  13. Pressing the button that is placed on the screen turns the screen on/off. Make sure the button is not adjacent to the screen. Also, you should use rs.getInput in yor problem. rs.getOutput returns the strength of the redstone signal emitted by the computer's redstone card.
  14. Of course there is. Assembling a drone with a leash upgrade produces a drone that can transport cows, horses, sheeps, and pigs. Like this: Or... like this: Besides, drones are entities. They move in straight lines; they don't get stuck in the fence and can actually enter a house through a door. They move pretty fast — about 6 blocks a second (robots are at least 2 times slower). Drone's movement is asynchronous, so the machine can execute some other code in the middle of the flight. Drones can fly above the block height limit. The screenshot above was made while enjoying th
  15. It's a bit unclear for me what kind of problem you have. Is print also called twice per supposedly one sent modem message? Or is it only the doHarvestRoutine call that's repeated? If it's the former case (the print line is also run twice), it means your sent messages are somehow duplicated. First thing to check for is whether you have any relays nearby. These blocks LOVE to mess up with network packets. If you use them, I advice you to remove them and use linked cards or a network that checks for duplicates. If you don't, it's very likely that the sender program has a bug that causes it t
  • Create New...

Important Information

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