本帖最后由 PotatoMaster101 于 2014-8-21 07:53 编辑

大家好。今天无聊时做了一个护法神:

电路展示:


图片图床上传
-------------------
OK。这个原理主要是有一条狼,一直跟着玩家跑。然后有一个装备架一直TP到狼的位置。之后除了主人和自己之外,其他生物进入5格范围就会遭到狂雷的袭击。要刷的话并不是手拿物品,而是直接放下一个刷怪蛋刷。
-------------------

这个系统十分的简单。首先要做的就是创建积分版
  1. /scoreboard objectives add ThunderGod dummy
复制代码
  1. /scoreboard objectives add Owner stat.useItem.minecraft.spawn_egg
复制代码
大家看见这里创建了2个积分版,分别叫“ThunderGod”和“Owner”。ThunderGod是dummy变量,Owner是stat.useItem.minecraft.spawn_egg变量。所以每次使用一次刷怪蛋,Owner积分就会+1

之后就是要给玩家一个刷怪蛋了:
  1. /give @p minecraft:spawn_egg 1 65 {display:{Name:"Thunder_God",Lore:["Summons Thunder God"]}}
复制代码
大家看见这条指令给玩家一个蝙蝠刷怪蛋,并且名字叫“Thunder_God”,自定义信息为"Summons Thunder God"。如果大家不知道,如果给刷怪蛋改名的话,那么刷出来的生物也是那个名字
接下来就是脉冲部分了。以下的指令方块都要接上脉冲(推荐指令方块高速脉冲)

所以,现在每次玩家使用这个刷怪蛋,那么他的Owner积分就会+1。之后就是要把装备架和狼TP到蝙蝠那里去
  1. /execute @e[type=Bat,name=Thunder_God] ~ ~ ~ /summon Wolf ~ ~ ~
  2. {Owner:"PotatoMaster101",Invulnerable:1,ActiveEffects:[{Id:14,ShowParticles:0b,Duration:99999},{Id:1,ShowParticles:0b,Amplifier:3,Duration:99999}],CustomName:"Guard",CollarColor:0,Silent:1b}
复制代码
  1. /execute @e[type=Bat,name=Thunder_God] ~ ~ ~ /summon ArmorStand ~ ~1 ~
  2. {Invulnerable:1b,Equipment:[{id:"minecraft:diamond_sword",Count:1b,tag:{Unbreakable:1}},{id:"minecraft:diamond_boots",Count:1b},{id:"minecraft:diamond_leggings",Count:1b},{id:"minecraft:diamond_chestplate",Count:1b},{id:"minecraft:skull",Count:1b,Damage:3s,tag:{SkullOwner:"PotatoMaster101"}}],Invisible:1b,DisabledSlots:2096896,CustomName:"Thunder_God",CustomNameVisible:1b}
复制代码
这两条指令分别在名字叫“Thunder_God”蝙蝠的位置刷出狼和装备架。狼是隐身的,而且主人是“PotatoMaster101”。装备架是一个穿着钻石装备的一个东西。装备架叫“Thunder_God”,狼叫“Guard”。所以,每次玩家使用刷怪蛋,就会在刷怪蛋使用的地方刷出这个2个东西。
大家看见这里狼的{Owner}打的是PotatoMaster101,如果是其他玩家,那就把其他玩家的名字写上去

之后就要把蝙蝠杀掉。因为如果不杀,那么/execute在脉冲下就会狂刷生物。指令就是:

  1. /execute @e[type=Wolf,name=Guard] ~ ~ ~ /tp @e[type=Bat,name=Thunder_God,r=4] ~ ~-500 ~
复制代码
这里直接探测有没有名字叫“Guard”的狼,然后会把狼周围4格的叫“Thunder_God”的蝙蝠TP到500格以下。这样子会直接到虚空里死亡。

之后由于是护法神,所以就要不停的把装备架TP到狼的位置
  1. /execute @e[type=Wolf,name=Guard] ~ ~ ~ /tp @e[type=ArmorStand,name=Thunder_God] @e[type=Wolf,name=Guard]
复制代码
这样子狼在哪里装备架就在哪里。

最后就是攻击目标了:
  1. /execute @e[name=Thunder_God,type=ArmorStand,score_ThunderGod_min=1] ~ ~ ~ /execute @e[r=5,score_ThunderGod=0,type=!Item] ~ ~ ~ /summon LightningBolt ~ ~ ~
复制代码
这里就有积分版的运用了。大家看见,探测有ThunderGod积分最起码一分的装备架,然后再探测四周又没有ThunderGod为0分的生物,有的话就在那个生物那里刷雷电。

ThunderGod积分版主要就是来分辨敌军我军用的。拥有一分的就是我军,零分就是敌军。
所以,这里还需要积分版的处理,一共4个指令方块:清空,给狼加分,给装备架加分,给主人加分:
首先是给装备架加分
  1. /scoreboard players set @e[type=ArmorStand,name=Thunder_God] ThunderGod 1
复制代码
把一个叫”Thunder_God“的装备架调成ThunderGod积分版一分。

给狼加分
  1. /scoreboard players set @e[type=Wolf,name=Guard] ThunderGod 1
复制代码
给”Guard“狼加一分

给玩家加分
  1. /execute @e[type=Wolf,name=Guard,score_ThunderGod_min=1] ~ ~ ~ /execute @e[r=5,score_Owner_min=1] ~ ~ ~ /scoreboard players set @p[r=0] ThunderGod 1
复制代码
给Guard狼旁边使用过刷怪蛋的玩家加一分

清空
  1. /scoreboard players set @e ThunderGod 0
复制代码
把地图里所有目标的分数变成0分。

最终目的是,如果是主人或者护法神,那么他的积分就会在0和1直接跳动。如果什么也不是,那他的积分就会始终是0。所以我们攻击积分为0的实体就可以了。

这个东西还并不是很完善,因为如果又有一个使用过刷怪蛋的玩家进入了范围,将会被当作友军。要解决这个问题,那么还需要一个积分版,然后把用过刷怪蛋,并且在护法神旁边的范围,那么就会把那个玩家在新的积分版里加一分,然后不停地清空Owner积分版。这个系统本人不会加入,玩家可以自行加入。

百度云盘下载地址点这里(进去后红色按钮关闭机器,绿色开启,黄色重置,蓝色刷刷怪蛋)

==========END=============