本帖最后由 乙烯_中国 于 2016-3-20 18:11 编辑

贴上前贴链接:http://www.mcbbs.net/thread-440531-1-1.html
由于前贴已经加精,请版主不用再对此贴进行高亮等操作。
首先,就上一贴的地图进行解释,所有的格子都是通过展示框加地图的方式展示的,地图是利用map it!滤器导入的mc。然后我会对其中所用到的计分板和存储方式进行简洁的说明。
展示框结合地图的显示方法有着一个劣势,就是说这得是81个消耗电脑资源的实体。然而相对于之前站内人所发的扫雷而言,这反而又变成了优势。事情很简单,1.8的话@r这个选择器可以选择任意种类的实体了,而利用@r的话可以很方便的做出随机器,而且对于随机表的修改也是轻而易举。那么我只需要对这81个实体进行@r选择就可以很快速的生成扫雷棋局(仍然存在更快速的方案)。那么实体的另一个优势就是其可以存储计分板数据而且可以利用选择器直接读取。

这是我在地图里所用到的所有计分板。
Mine:指每个格子里的数字,存储于棋局每个格子内部。
High:对雷的标记,存储于棋局每个格子内部。
Flag:对旗帜的标记,存储于棋局每个格子内部。
Fn:对旗帜的统计,存储于玩家身上。
Mark,mark2:对各个格子的状态标记,存储于棋局每个格子内部。
Best:英雄榜战绩,存储于玩家身上。
L,r:左/右键的操作标记,存储于棋局每个格子内部。
Kill:开局时按下的第一个格子的标记,存储于棋局每个格子内部。
Time,time1,time2,timeall:时间及其各位数的标记,存储于玩家身上。
S:对满足胜利条件的格子的统计,存储于玩家身上。


英雄榜模块
首先整个英雄榜模块的核心是tellraw打字机,本体的命令非常之长,所以单独开贴。


这是我tellraw打字机的核心电路。采用隐身的盔甲架作为指针。
指针所指的cb是用来生成指针。指令如下。
  1. summon ArmorStand 24 20 36.6 {Invisible:1,NoGravity:1,Equipment:[0:{},1:{},2:{},3:{},4:{id:"minecraft:skull",Count:1b,tag:{SkullOwner:{Id:"68f59b9b-5b0b-4b05-a9f2-e1d1405aa348",Properties:{textures:[0:{Signature:"vO5wCLOQMbblMgAYblfEC70AElyOix/3I0jKGmwGOerFh2Ga9etdiEPFve3kyYEFnTXfCTp1OAuH06SXnEo5mXHJtrNFF4lIV6/VQzLMh5tFC/kyR5wy1GrsmIcYpNHhUYm1cb5ovCtpPWWWrhbp91Hx2c4ZNBz2O89pawFTixbuHbOvV13KlkYtwXrJqkVqzf+XKK+P7sqERbnDh6LNJEjUIpPs2ciQACbxiHeWTGTRfoo4e+O8ElPxG/ugMS/iXzWwVKGM5elbTGaMjhdBbZTNEp9lBbBFEq+flRZafoiLy7nzeLWst9HLyD+btW9zEVF/IlJ/vLZps2tOUtIbHKLe6Qi8x/GLu1Nbscw+N0CfDlwNZ6Rx/FrLmOU9ykS/fW7kZqL6btOPQ7pwBo3AM6oKfqZifuaFkFsWdgNBt5GvQhc4clhOlMC7GUgHRxufAKzf3AVSjBEeqMSKMWrCCI5SagS462K7DxEORzYMh+FdmAaG43KN2+B5weqmATqhGnv4ISRJ70rsP+I1e+OvxnUm5vZ139HhCKN40F7EhbcyLL5BWPps8sQCTcxUXWGBhnYRcNeurk8QJkflFFEAyMGl/lu30THeZhGyItaZLRQIkOVYog+WMq+okzrpQO1o4AEJXLR1BVfqVYLCuKYgD01P5GV0+124RGRdtxw8vlI=",Value:"eyJ0aW1lc3RhbXAiOjE0MTk2Njk2NTE0MjYsInByb2ZpbGVJZCI6IjY4ZjU5YjliNWIwYjRiMDVhOWYyZTFkMTQwNWFhMzQ4IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dEb3duIiwiaXNQdWJsaWMiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8yZGFkZDc1NWQwODUzNzM1MmJmN2E5M2UzYmI3ZGQ0ZDczMzEyMWQzOWYyZmI2NzA3M2NkNDcxZjU2MTE5NGRkIn19fQ=="}]},Name:"MHF_ArrowDown"}},Damage:3s}],Rotation:[180f],CustomName:"hi"}
复制代码


这是指令的执行效果,视觉效果个人觉得不错。

然后接下来,还有一个单独不成列的cb,其内部指令如下:
  1. setblock 27 20 41 redstone_block
复制代码


此条命令用于持续激活生成指针的cb,因为在指针移动的过程中,会有能量源跟随移动(即中间那条橡木里),因此有重复激活summon的可能。
接下来靠墙一列的cb内部是有类似这种格式的指令,移动指针用,无需多说:
  1. tp @e[type=ArmorStand,name=hi] 24 ~ ~
复制代码


最下面一列的cb即为核心指令,tellraw键盘,其效果是这个样子的。

其核心代码是:
  1. tellraw @a {text:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",color:green,extra:[{text:"[ 1 ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 31 6 -3 31 6 -3 ~ ~ ~"}},{text:"[ 2 ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 30 6 -3 30 6 -3 ~ ~ ~"}},{text:"[ 3 ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 29 6 -3 29 6 -3 ~ ~ ~"}},{text:"[ 4 ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 28 6 -3 28 6 -3 ~ ~ ~"}},{text:"[ 5 ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 27 6 -3 27 6 -3 ~ ~ ~"}},{text:"[ 6 ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 26 6 -3 26 6 -3 ~ ~ ~"}},{text:"[ 7 ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 25 6 -3 25 6 -3 ~ ~ ~"}},{text:"[ 8 ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 24 6 -3 24 6 -3 ~ ~ ~"}},{text:"[ 9 ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 23 6 -3 23 6 -3 ~ ~ ~"}},{text:"[ 0 ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 22 6 -3 22 6 -3 ~ ~ ~"}},{text:"   ┌─────┐\n",clickEvent:{action:run_command,value:"/setblock 19 18 41 redstone_block"}},{text:" [ Q ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 31 5 -3 31 5 -3 ~ ~ ~"}},{text:"[ W ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 30 5 -3 30 5 -3 ~ ~ ~"}},{text:"[ E ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 29 5 -3 29 5 -3 ~ ~ ~"}},{text:"[ R ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 28 5 -3 28 5 -3 ~ ~ ~"}},{text:"[ T ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 27 5 -3 27 5 -3 ~ ~ ~"}},{text:"[ Y ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 26 5 -3 26 5 -3 ~ ~ ~"}},{text:"[ U ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 25 5 -3 25 5 -3 ~ ~ ~"}},{text:"[ I ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 24 5 -3 24 5 -3 ~ ~ ~"}},{text:"[ O ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 23 5 -3 23 5 -3 ~ ~ ~"}},{text:"[ P ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 22 5 -3 22 5 -3 ~ ~ ~"}},{text:"  │ ENTER │\n",clickEvent:{action:run_command,value:"/setblock 19 18 41 redstone_block"}},{text:"  [ A ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 31 4 -3 31 4 -3 ~ ~ ~"}},{text:"[ S ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 30 4 -3 30 4 -3 ~ ~ ~"}},{text:"[ D ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 29 4 -3 29 4 -3 ~ ~ ~"}},{text:"[ F ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 28 4 -3 28 4 -3 ~ ~ ~"}},{text:"[ G ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 27 4 -3 27 4 -3 ~ ~ ~"}},{text:"[ H ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 26 4 -3 26 4 -3 ~ ~ ~"}},{text:"[ J ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 25 4 -3 25 4 -3 ~ ~ ~"}},{text:"[ K ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 24 4 -3 24 4 -3 ~ ~ ~"}},{text:"[ L ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 23 4 -3 23 4 -3 ~ ~ ~"}},{text:"[ ? ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 22 4 -3 22 4 -3 ~ ~ ~"}},{text:" └─────┘\n",clickEvent:{action:run_command,value:"/setblock 19 18 41 redstone_block"}},{text:"   [ Z ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 31 3 -3 31 3 -3 ~ ~ ~"}},{text:"[ X ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 30 3 -3 30 3 -3 ~ ~ ~"}},{text:"[ C ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 29 3 -3 29 3 -3 ~ ~ ~"}},{text:"[ V ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 28 3 -3 28 3 -3 ~ ~ ~"}},{text:"[ B ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 27 3 -3 27 3 -3 ~ ~ ~"}},{text:"[ N ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 26 3 -3 26 3 -3 ~ ~ ~"}},{text:"[ M ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 25 3 -3 25 3 -3 ~ ~ ~"}},{text:"[ . ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 24 3 -3 24 3 -3 ~ ~ ~"}},{text:"[ / ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 23 3 -3 23 3 -3 ~ ~ ~"}},{text:"[ ! ]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone 22 3 -3 22 3 -3 ~ ~ ~"}},{text:"【←】",color:red},{text:"【→】\n",color:green,clickEvent:{action:run_command,value:"/clone 26 18 41 28 18 41 25 18 41 replace move"}},{text:"    [_________________________]",clickEvent:{action:run_command,value:"/execute @e[type=ArmorStand,name=hi] ~ ~ ~ /clone ~ ~1 ~ ~ ~1 ~ ~ ~ ~"}}]}
复制代码


ps:写的时候没注意,贴出来吓到我了。。。
其中每个键都带有一条clone命令,用于从字库中复制出对应的文字,方向键表示移位,红色的地方没有点击事件,代表禁用。总共8条这样的指令,这里的话应该可以简化,但我懒得改了。

这四个cb是关闭英雄榜的系统。关闭英雄榜需在tellraw键盘上点击“enter”
指针所指的cb的作用是消除保持生成summon激活的能量源。
  1. setblock 27 20 41 planks
复制代码


这四个cb没有位置需求。
用于清屏的指令,其中的\n是转行符。
  1. tellraw @a {text:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"}
复制代码


用于清除移位能量源。
  1. fill ~1 ~ ~ ~10 ~ ~ planks
复制代码


清除指针。
  1. kill @e[type=ArmorStand,name=hi]
复制代码
好的。。。就到这里吧。。。扫雷这个担子终于可以放下了。希望大家喜欢,谢谢观看。




[groupid=143]The Redpixel[/groupid]