重修中
玩过服务器的人都知道,服务器总会有一种娱乐的“武器”
右键就能发射
但是,如果左右键配合呢?
虽说有探测右键的教程,但没有探测左键的
但是,命令方块可以“探测”左键
虽然,说出来很多人可能不信
但是,我就是做到了23333
没错你没有听错,可以“探测”左键
不信看图:
那么如何探测呢
我点一下就会发射一个东西 |
好的,让我们进入教程
首先,这个效果是怎么做到的呢
基本原理讲解:
其实就是探测玩家手上有没有拿着指定物品 有的话就tp一个隐形的生物到玩家所在的地方,并且这个生物只有一滴血 所以玩家左键点一下就相当于打死了这个生物,然后探测生物死亡 最后触发特效的命令方块(发射雪球、药水、触发机关什么的) |
如何制作呢
1、 你需要一个1.8+的MC 2、 你需要看这个教程贴 3、 做好后 |
好了不开玩笑了,先讲解思路
首先我们要探测玩家手上有没有拿着指定物品
很多人可能会说:这个我会,我看过PotatoMaster101的教程: 然而现在已经有点过时了 我们现在有了新的NBT:SelectedItem(感谢chyx提供) 即探测玩家选中物品栏内(手拿着)的物品 所以我们现在就不用9个命令方块(物品栏有9格)来探测了 格式是:
注意:物品名称前面必须有minecraft:,否则无法探测 Damage和Count可有可无,没有则默认探测所有数据值/损伤值,任何数量 其实就和你用give指令得到那个物品是一样的,加个tag,然后剩下的复制进来
|
接着,探测到玩家拿着物品后要怎样
对,把生物tp过来
那么这个生物究竟是什么呢?
它就是3只叠在一起的狼(叠叠乐2333) 为什么要用狼而且是3个叠在一起呢? 这里面有很大的讲究: 最开始的时候,我是打算把雪人加上NoAI然后tp到玩家那里 但是如果下雨雪人就死了啊……这可不行 后来我又想到装备架 但是生存要点两下装备架才会变成物品形式…… 还是不能满足我的要求 最后我想,不如把友好生物叠在一起吧 一开始我用打算用猪、牛、羊之类的生物 但是发现当玩家站在墙角的时候 由于那些动物的碰撞箱比较大 所以,他们就窒息而亡了…… 后来我就用豹猫,他的碰撞箱比较小 不会窒息而死 但是爬行者(苦力怕)怕猫 所以如果我们拿在物品苦力怕就不敢接近了 这虽然很不错,但是不太妥 于是我换成了狼 本来是担心羊可能会怕狼,但是我发现 羊貌似知道狼动不了(加了NoAI) 所以没有任何逃窜现象 于是我就定下来用狼 为什么用3只呢? 因为3只狼叠起来的高度和玩家的高度是差不多的 这样玩家的光标才能不论在何处都能点到(打死)狼 很多人问我为什么不用怪物,很多怪物都和玩家差不多高 但是怪物又只能在非和平下出现 所以使用范围不是很广 当然如果你觉得用狼比较麻烦 而你的地图又是非和平的 那么你可以考虑用僵尸等怪物 这个,就是生成狼的指令:
指令所生成的是:3只叠在一起的不会动的隐身的狼,上面两只是1滴血,下面1只是正常血量的狼,并且最上面的狼叫a,中间那只叫b,下面那只叫c 关于上面的xyz坐标,后面会提到该怎么填 为什么要两只1滴血的狼呢? 因为玩家点击的时候有可能也会点到下面的那只狼 所以要两只1滴血的狼用于探测 然后是把狼tp到玩家的位置
你可能会问,为什么只tp名字叫c的狼? 因为c是最底下的狼,只有他有主动权 光tp上面的狼是不会动的 只有tp有主动权的狼才能试这3只叠在一起的狼一起动 |
现在我们把狼tp到自己身上了,要干嘛呢?
点(打)啊
这样狼就死了对不对
那么怎么探测狼死了呢?
虽然这是一个探测狼在不在这个世界的指令 但是我们可以用红石火把进行反向探测 本来是狼存在,有输出,加上红石火把后就是狼不在,有输出 探测到一只狼死掉后,就会触发机关,关于机关什么的我们后面说 |
探测到玩家左键后,我们要杀死剩下的狼
因为我们不知道玩家会点到的是a还是b 所以3个都杀掉是最保险的 然后召唤并tp一只全新的狼到玩家那里(前提是玩家还拿着指定物品) |
那么如果玩家没有拿着指定物品呢?狼该何去何从?
图解:
所以,我们需要为狼建一个“狼窝” 当玩家没有拿着物品时,把狼tp回他的小房子里 当狼死掉后并召唤另一只狼的时候,也召唤在小屋里 然后再tp过去,就是这样循环 |
红色:探测玩家左键并触发机关的全过程 绿色:重复红色的过程 蓝色:探测玩家未使用物品的全过程 |
现在,我们才开始做,上面的一切都是思路
关于狼掉落的经验
最后就是触发机关了
红色:命令方块冲脉,所有图里红石块下面是个命令方块的一般都是冲脉
绿色:探测玩家是否拿着某物品
关于指令的用法前面已经讲解了 黄色和蓝色:探测a或b其中一只狼是否在这个世界上
绿色的比较器连中继器(2挡,点一下) 为什么用两档?因为如果玩家快速切换物品 只会有很短的信号输出 这样会导致活塞来不及拉回方块 中继器连接活塞,决定是否tp狼到玩家处 注意最后一个活塞需要红石火把转换 活塞用于遮挡线路 用中继器脉冲激活命令方块 这里要说明一下为什么我不用命令方块高频 如果用了就会出现这样的奇葩现象: 狼的确跟着我走,但是总与我保存一段距离 所以没办法我只好用中继器脉冲 黄色和蓝色的比较器连红石火把进行信号转换 红石火把上面的命令方块 黄色:杀死剩余的狼
红色:召唤3只新的狼,在狼的小屋里(那个玻璃屋)(xyz)
红色:机关/特效区域 |
然后我们还要注意个东西,就是狼无论是被打死还是被kill杀死都会掉落经验 于是玩家可以用一次多一些经验,这怎么能行, 虽然说在有些地图中经验不重要,但是我还是要提一下 我们可以在特效区加入一个命令方块,用来扣一级经验 为什么不是扣一定数量的呢?因为……命令方块不允许啊……
|
最常见的一种就是往那里点,就朝哪里射一个东西 那么我们就要用到execute指令 我们需要的指令是这样的
指令解释:在水平度数在-68到-113度和垂直高度在90到-10度的玩家的向东并向上延伸1格的地方召唤一个朝东速度为2,朝上速度为0.3的叫d的雪球 为什么雪球要有名字呢,这个可有可无 如果有名字,我们就可以加特技,DUANG~ 比如,在雪球出执行召唤粒子的指令,会让你的雪球萌萌哒
注意:恶魂火球、烈焰人火球、和凋灵之首不能用Motion,要用direction 关于发射方向: 有三个数据:0.0,0.0,0.0 第一个0.0指朝东还是西射,如果为正数则朝东射(如5.86),负数反之(如-10.0),如果为0就不往东或者西射,数字越大,飞的越快,越远 第二个0.0指朝上还是下射,如果为正数则朝上射,负数反之,同上 第三个0.0指朝北还是南射,如果为正数则朝南射,负数反正,同上 注意,至少要有一位小数!小数点后几位都可以! 以下讲解为贰逼提供:motion的算法(反正我是看不懂……) \\Motion:(dection) xdeg =math.radians(((x+1)*Degrees)-(Degrees/2)) ydeg =math.radians(((y+1)*Degrees)-(Degrees/2)) xmov =-speed*(math.sin(xdeg)*math.cos(ydeg)) ymov = -speed*math.sin(ydeg) +0.1 zmov =speed*(math.cos(xdeg)*math.cos(ydeg)) Motion:["+str(xmov)+","+str(ymov)+","+str(zmov)+"] \\部分函数和变量: x y z 均为实体所在的坐标 Degrees为间隔角度 math.radians 为运算弧度 speed 为实体运动速度 math.sin 为求圆正弦 math.cos 为求圆余弦 str 为转换字符函数 发射雪球什么的太常见了对不对 来发射方块才叼 |
关于探测的角度:
↑水平度数 ↑垂直度数 如果你要发射的方向比较精确的话,你可以多用几个命令方块 |
最后,附上存档,慢慢享受你的“左键之旅”吧!
点击↓即可下载
机器总体积展示(8×7×3)
BUG提示
其他探测方法见:http://www.mcbbs.net/thread-474463-1-1.html在两格高的地方下面放上中继器、比较器、关上的活版门后 人站在那3种不完整方块上时会导致最上面的狼窒息而死,于是…… 我们就做出了机关枪2333 好吧,如果这个BUG你利用的好就不是个BUG,反而可能是更好玩的东西 还有一个BUG就是每打死一次狼,就会产生很多死亡的烟雾遮住视线 所以建议点一下就往旁边走一点 切忌不要边跑边点,因为冲脉跟不上 |