弓箭的箭矢更新了几个新的箭,附带药水效果,这让弓箭的功能有了很大的施展。
创造模式里只有几个状态效果的箭,然而其他的状态效果其实是存在的,需要通过NBT修改:
CustomPotionEffects: 是一个列表,可以包含多种状态效果。
一个状态效果拥有以下标签:
Id: 状态效果的id,参考http://minecraft-zh.gamepedia.co ... 1%E6%95%88%E6%9E%9C;
Amplifier: 状态效果的等级;
Duration: 持续时间;
Ambient: 隐藏效果。
 
 
复制代码这个弓箭的效果是等级999999,持续999999的凋零效果。
 
 
 
 
 
 
那么苦力怕会一直受到凋零持续999999,直到死亡。
 
 
效果也可以是增益效果,比如生命增加:
复制代码这个弓箭的效果是等级10,持续999999的生命增加效果。
 
 
 
 
 
 
复制代码就是一个等级10,时间999999,隐藏效果的防火效果
 
 
 
 
 
 
 
 
 
 
可以看到我射了苦力怕一脸后,我的分数变成1,苦力怕变成2。
做到这个,只需要两个指令:
原理
 
 
复制代码给拥有状态的实体计分版设为1
复制代码既然被射了,那么箭的持有者就是攻击者。
 
 
首先须要给一个拥有指定效果的箭。
复制代码(这边的效果是急迫,其实并没有什么卵用)
来自群组: Command Block Logic
NBT
创造模式里只有几个状态效果的箭,然而其他的状态效果其实是存在的,需要通过NBT修改:
CustomPotionEffects: 是一个列表,可以包含多种状态效果。
一个状态效果拥有以下标签:
Id: 状态效果的id,参考http://minecraft-zh.gamepedia.co ... 1%E6%95%88%E6%9E%9C;
Amplifier: 状态效果的等级;
Duration: 持续时间;
Ambient: 隐藏效果。
 
- /give @p minecraft:tipped_arrow 1 0 {CustomPotionEffects:[{Id:20,Amplifier:999999,Duration:999999}]}
 
 
 
那么苦力怕会一直受到凋零持续999999,直到死亡。
 
效果也可以是增益效果,比如生命增加:
- /give @p minecraft:tipped_arrow 1 0 {CustomPotionEffects:[{Id:21,Amplifier:10,Duration:999999}]}
 
 
 
- /give @p minecraft:tipped_arrow 1 0 {CustomPotionEffects:[{Id:12,Amplifier:10,Duration:999999,Ambient:1}]}
 
 
判定弓箭的攻击者和被攻击者
 
 
 
可以看到我射了苦力怕一脸后,我的分数变成1,苦力怕变成2。
做到这个,只需要两个指令:
原理
 
- /scoreboard players set @e beShot 1 {ActiveEffects:[{Id:3b,Amplifier:0b}]}
- /execute @e[score_beShot_min=1] ~ ~ ~ /scoreboard players set @p beShot 2
 
首先须要给一个拥有指定效果的箭。
- /give @p minecraft:tipped_arrow 1 0 {CustomPotionEffects:[{Id:3,Amplifier:0}]}
来自群组: Command Block Logic
能解释一下,这段代码是什么意思吗?minecraft:tipped_arrow 1 0 
煽火点风 发表于 2015-8-1 19:56
能解释一下,这段代码是什么意思吗?minecraft:tipped_arrow 1 0
这个就是拥有药水效果的箭
 本帖最后由 贰逼 于 2015-8-1 20:10 编辑 
请自学give指令
1是数量0是附加值
煽火点风 发表于 2015-8-1 20:03
minecraft:tipped_arrow这个是弓箭的名称吗?
那后面的1和0代表什么
请自学give指令
1是数量0是附加值
这么快就有教程了。。
这次终于能看懂了,那个潜匿贝就不知道在说什么
我很好奇为什么中间几张图命令方块没有材质了
我很好奇为什么中间几张图命令方块没有材质了
0.0被增幅箭射中回扣血感觉好坑
既然被射了,那么箭的持有者就是攻击者。
这句话没给指令
这句话没给指令
chyx 发表于 2015-8-1 21:33
既然被射了,那么箭的持有者就是攻击者。
这句话没给指令
这句话上面不就是指令
贰逼 发表于 2015-8-1 21:55
这句话上面不就是指令
你觉得离受害者最近的人就是持箭者 于是就是施害者?
逻辑好飘逸
你要是直接说让最近的人是施害者也比你这么说好
当然贴子写的很好
也可以做丘比特得箭让动物发情
chyx 发表于 2015-8-1 23:35
你觉得离受害者最近的人就是持箭者 于是就是施害者?
逻辑好飘逸
你要是直接说让最近的人是施害者也比你 ...
单人模式里面难道还能是herobrine射的箭么
直接用@p并无问题
/execute @e[score_beShot_min=1] ~ ~ ~ /scoreboard players set @p beShot 2
代码的意思是给距离目标最近的玩家加分?但是射击苦力怕的玩家不一定是离他最近的那个玩家
代码的意思是给距离目标最近的玩家加分?但是射击苦力怕的玩家不一定是离他最近的那个玩家
294712564 发表于 2015-8-7 10:37
/execute @e[score_beShot_min=1] ~ ~ ~ /scoreboard players set @p beShot 2
代码的意思是给距离目标最近 ...
好吧和楼上重复了
其实楼主完全可以检测玩家的物品栏
 本帖最后由 贰逼 于 2015-8-7 14:40 编辑 
图中其实就是个例子,
和砸场小王子一样没有变通过来。
图中例子是检测单人游戏里面被玩家射到的生物和射他的玩家。
换做多人游戏:
/give 玩家1 minecraft:tipped_arrow 1 0 {CustomPotionEffects:[{Id:3,Amplifier:0}]}
/give 玩家2 minecraft:tipped_arrow 1 0 {CustomPotionEffects:[{Id:3,Amplifier:1}]}
/give 玩家3 minecraft:tipped_arrow 1 0 {CustomPotionEffects:[{Id:3,Amplifier:2}]}
被玩家1射:
/scoreboard players set @e beShot 1 {ActiveEffects:[{Id:3b,Amplifier:0b}]}
被玩家2射:
/scoreboard players set @e beShot 2 {ActiveEffects:[{Id:3b,Amplifier:1b}]}
被玩家3射:
/scoreboard players set @e beShot 3 {ActiveEffects:[{Id:3b,Amplifier:2b}]}
玩家1射人:
/execute @e[score_beShot_min=1,score_beShot=1] ~ ~ ~ /scoreboard players set 玩家1 Shot 1
玩家2射人:
/execute @e[score_beShot_min=2,score_beShot=2] ~ ~ ~ /scoreboard players set 玩家2 Shot 2
玩家3射人:
/execute @e[score_beShot_min=3,score_beShot=3] ~ ~ ~ /scoreboard players set 玩家3 Shot 3
就是这样,你说我为什么不写,因为这段指令需要服务器支持。
294712564 发表于 2015-8-7 10:40
好吧和楼上重复了
其实楼主完全可以检测玩家的物品栏
图中其实就是个例子,
和砸场小王子一样没有变通过来。
图中例子是检测单人游戏里面被玩家射到的生物和射他的玩家。
换做多人游戏:
/give 玩家1 minecraft:tipped_arrow 1 0 {CustomPotionEffects:[{Id:3,Amplifier:0}]}
/give 玩家2 minecraft:tipped_arrow 1 0 {CustomPotionEffects:[{Id:3,Amplifier:1}]}
/give 玩家3 minecraft:tipped_arrow 1 0 {CustomPotionEffects:[{Id:3,Amplifier:2}]}
被玩家1射:
/scoreboard players set @e beShot 1 {ActiveEffects:[{Id:3b,Amplifier:0b}]}
被玩家2射:
/scoreboard players set @e beShot 2 {ActiveEffects:[{Id:3b,Amplifier:1b}]}
被玩家3射:
/scoreboard players set @e beShot 3 {ActiveEffects:[{Id:3b,Amplifier:2b}]}
玩家1射人:
/execute @e[score_beShot_min=1,score_beShot=1] ~ ~ ~ /scoreboard players set 玩家1 Shot 1
玩家2射人:
/execute @e[score_beShot_min=2,score_beShot=2] ~ ~ ~ /scoreboard players set 玩家2 Shot 2
玩家3射人:
/execute @e[score_beShot_min=3,score_beShot=3] ~ ~ ~ /scoreboard players set 玩家3 Shot 3
就是这样,你说我为什么不写,因为这段指令需要服务器支持。
 本帖最后由 zhaoxingeabc 于 2015-8-7 03:11 编辑 
关于
再看图

苦力怕的名字真飘逸233
PS:不知道怎么回事我掉到第二页了……
关于
我的分数变成1,苦力怕变成2。
再看图

苦力怕的名字真飘逸233
PS:不知道怎么回事我掉到第二页了……
sylqiuyifeng 发表于 2015-8-1 23:49
单人模式里面难道还能是herobrine射的箭么
直接用@p并无问题
还有骷髅射的.......
贰逼 发表于 2015-8-7 11:01
图中其实就是个例子,
和砸场小王子一样没有变通过来。
检测被攻击者很容易理解,就是检测带有特定BUFF的实体
但检测攻击者/execute @e[score_beShot_min=1,score_beShot=1] ~ ~ ~ /scoreboard players set @a Shot 1
意思是让被攻击的目标给所有的玩家加一分?
我太笨了希望你能说的详细一些
294712564 发表于 2015-8-7 12:15
检测被攻击者很容易理解,就是检测带有特定BUFF的实体
但检测攻击者/execute @e[score_beShot_min=1,scor ...
笔误,应该分别是玩家123
太笨了还是应该可以理解的
sylqiuyifeng 发表于 2015-8-1 23:49
单人模式里面难道还能是herobrine射的箭么
直接用@p并无问题
骷髅
贰逼 发表于 2015-8-7 14:39
笔误,应该分别是玩家123
太笨了还是应该可以理解的
终于理解了。。就是让每个玩家手里的箭附加不同的效果,通过检测BUFF的种类来判断玩家
但是这样要给每个玩家手动配置一个药水效果,在多人RPG地图里似乎没法用(因为不知道ID)
不过直接给@p肯定会出错吧
为什么不可以给玩家最近的弓箭设为1分,给并在r=0处设置最近设为2呢?