本帖最后由 odixus 于 2018-3-9 23:42 编辑
ComputerCraft是一个非常优秀的MOD,可是竟然没有多少人为它写教程!好吧,我先扔一个。
由于太阳能的广泛使用,按时作息就变得很重要了。如果你的工厂是建设在地表,那么这没有问题;但是如果你的工厂建在地下,那么如何得知当前游戏中的时间呢?MC自带的钟表可以看到时间,但是它并不精确,而且放在物品栏中会占据宝贵的空间。有些MOD提供了时间显示,但是怎么也不如自己动手做一个有趣。这里是通过ComputerCraft(电脑MOD)和ProjectRed(红石计划)自制一个漂亮、可靠的时钟。这是基础版本,大家可以在此基础上设置定时提醒、自动执行等更高级的功能。
老规矩,先上图:
一、环境:我使用的版本是MineCraft 1.7.10 + ComputerCraft 1.75 + ProjectRed 4.7.0pre12.95。
二、知识预备:请至少先看一遍ComputerCraft的教程,虽然是E文,但是讲得很清楚。最好有一点点编程基础。
三、硬件准备:
首先,请做2个分段显示门。这东东有16个不同颜色的输入线,对应16个不同的笔画。准备一些集束线缆当作数据线。再做一台高级电脑作为主机。好了,需要的东西齐全了!
然后,按如图所示摆放:
- 显示门是有方向的,如果方向不对,请用红石计划中的螺丝刀右键点击以调整方向。
- 为避免两个显示门的数据线连接在一起,可以在中间用隔板断开,也可以采用两种不同颜色的集束线缆。两根集束线缆分别接在高级电脑的顶面和左面。如果你的走线需要接在电脑的其它侧面,则需要在下面的程度代码中做相应修改。
- 为了美观,可以用半砖和立柱把前面挡上,就是我放的第一图的效果了。至此,硬件准备完成!
四、软件准备
请右键点击电脑,打开电脑。如果这是一台新电脑,请一定要先输入:
这个命令的作用是为电脑命名。timer是电脑名字,可以换成自己喜欢的名字。只有命名后的电脑才是可以编程的!命名后,可以输入命令"id"看到当前电脑的id( 一个数字),这个在后面会用到。现在假定这台电脑的id是1。
然后键入:
启动内置的程序编辑器:
然后输入下面的代码。如果不愿意手工输入,也可以随便键入点什么,然后按Ctrl,保存然后退出,再到电脑的游戏存档中,查找你的存档目录下的子目录:computer\1,应该会看到文件startup。这个文件就是刚刚编辑器建立的程序文件。用文本编辑器打开它,然后把下面的代码粘贴进去,保存退出:
- local function numLow(n)
- local l = {["0"]=16128,["1"]=12288,["2"]=23296,["3"]=30976,["4"]=29696,["5"]=27904,["6"]=28416,["7"]=15360,["8"]=32512,["9"]=32000}
- return l[n]
- end
- local function numHigh(n)
- local h = {["0"]=63,["1"]=48,["2"]=91,["3"]=121,["4"]=116,["5"]=109,["6"]=111,["7"]=56,["8"]=127,["9"]=125}
- return h[n]
- end
- local thetime, now, hour, min
- while true do
- thetime = os.time()
- now = string.reverse(textutils.formatTime(thetime,true))
- min = numLow(string.sub(now,1,1)) + numHigh(string.sub(now,2,2))
- hour = numLow(string.sub(now,4,4))
- if #now > 4 then
- hour = hour + numHigh(string.sub(now,5,5))
- else
- hour = hour + numHigh("0")
- end
- redstone.setBundledOutput("top",min)
- redstone.setBundledOutput("left",hour)
- sleep(0.1)
- end
复制代码 好了。回到游戏,打开高级电脑,输入"startup",就可以看到当前时间了。简单吧?因为我们编辑的文件是startup,因此这个程序会在每次进入游戏的时候,被高级电脑自动运行,除非你手动关掉这台高级电脑。
|
|