攻略详情

《我的世界》枪械系统实现心得

作者: 法海 2014-05-08 14:17

枪械系统实现方法:

空白菌原本得作品

/scoreboard objectives add explode dummy 创建一个名为explode的变量

高频

/scoreboard players set @e[type=Arrow] explode 1 {inGround:1b} 给所有落在地上的箭的explode分数设置为1

/execute @e[type=Snowball] ~ ~ ~ kill @e[type=Arrow,r=3] 以雪球杀死周围半径3内的所有箭

/execute @e[type=Snowball] ~ ~1 ~ summon Arrow ~ ~ ~ 在雪球上方召唤一只箭

超高频

/execute @e[type=Snowball] ~ ~ ~ execute @e[type=Arrow,r=3] ~ ~ ~ tp @e[type=Arrow,r=0] @e[type=Snowball,r=3] 把离雪球最近的弓箭传送到雪球的位置

/execute @e[type=Arrow,score_explode_min=1] ~ ~ ~ summon Creeper ~ ~ ~ {ignited:1,Fuse:3} 在explode分数为1的箭召唤一只待爆的苦力怕

/kill @e[type=Arrow,score_explode_min=1] 杀死所有explode分数为1的弓箭

如上,顺序必须十分严谨

而改进是基于上文之上,先是

/scoreboard objectives add quantity dummy 创造一个名为quantity的变量

然后将

/execute @e[type=Arrow,score_explode_min=1] ~ ~ ~ summon Creeper ~ ~ ~ {ignited:1,Fuse:3} 指令的位置改为

/execute @e[type=Arrow,score_explode_min=1] ~ ~ ~ effect @p[team=blue,r=1] 7 1 1 在explode分数为1的箭给半径为1内的蓝队玩家一个1秒的瞬间伤害效果

/execute @e[type=Arrow,score_explode_min=1] ~ ~ ~ tp @p[team=red] ~ ~ ~ ~ ~-5 在explode分数为1的箭给最近的红队玩家角度上调5度(后座力)

/execute @e[type=Arrow,score_explode_min=1] ~ ~ ~ clear @p[team=red] snowball 1 1 在explode分数为1的箭清除最近红队玩家的一个雪球

/execute @e[type=Arrow,score_explode_min=1] ~ ~ ~ scoreboard players remove @p[team=red] quantity 1 在explode分数为1的箭给最近红队玩家的quantity分数减一

然后放一个中继器(档数就是换弹速度)

与/execute @e[type=Arrow,score_explode_min=1] ~ ~ ~ testfor @p[score_quantity_min=1,team=red](在explode分数为1的箭检测最近的红队玩家是否quantity分数不小于1)构成与门

/execute @e[type=Arrow,score_explode_min=1] ~ ~ ~ give @p[team=red] snowball 1 1 在explode分数为1的箭给予最近红队玩家一个雪球

而弹夹更是简单

/scoreboard objectives add 20 dummy 创造一个20的变量

/scoreboard objectives add number dummy 创造一个名为number的变量

/scoreboard objectives add quantity2 dummy 创造一个名为quantity2的变量

然后设置进入服务器就触发:/scoreboard players add @a number 1 给所有玩家的number分数加1

然后/scoreboard players set @a 20 20 给所有玩家的20变量设置为20

高频

/testfor @p[score_number_min=x,ccore_number=x] {SelectedItemSlot:5} 检测number分数为x的玩家是否选中6号物品栏(x为任意数字,或者用tellraw,不过我不会用这个指令)

-true

/clear @p[score_number_min=x,ccore_number=x] redstone 1 1 给number分数为x的玩家清除1格红石(这里的redstone只是代表弹夹,任何物品不限)

/scoreboard players operation @p[score_number_min=x,ccore_number=x] 20 -= @p quantity 将玩家的20变量减去quantity变量

/scoreboard players operation @p[score_number_min=x,ccore_number=x] quantity2 -= @p 20 将玩家的quantity2变量减去20变量

/testfor @p[score_number_min=x,ccore_number=x,score_quantity2_min=1] 检测玩家的quantity2变量是否不小于1

-true

/give @p[score_number_min=x,ccore_number=x] snowball 给玩家一个雪球

/scoreboard players set @p[score_number_min=x,ccore_number=x] quantity 20 将玩家的quantity分数设置为20

/scoreboard players set @a 20 20 给所有玩家的20变量设置为20

上一篇 : 《最终幻想14 ...

下一篇 : 《刀剑神域: ...

相关阅读

精彩推荐