在PVP地图中,分成两支队伍,战斗后一方成员全部死亡,请问该如何检测该方成员全部死亡,并宣布另一方获胜呢?求教
假如限定每人有几条命,那又如何在失去全部命数后判定死亡?求教~~~~~~~~
假如限定每人有几条命,那又如何在失去全部命数后判定死亡?求教~~~~~~~~
分成两支队伍分别为A队和B队
/scoreboard teams add A
/scoreboard teams add B
然后我们得确定人数
生成两个积分板来分别统计两队人数
scoreboard objectives add A dummy
scoreboard objectives add B dummy
生成一个盔甲架来探测人数
summon armor_stand ~ ~ ~ {Tags:["X"]}
设置初始值
scoreboard players set @e[tag=X] A 0
scoreboard players set @e[tag=X] B 0
探测
execute @e[tag=X] ~ ~ ~ testfor @a[team=A]
stats entity @e[tag=X] set AffectedEntities @e[tag=X] A
/stats entity @e[tag=X] clear AffectedEntitie
execute @e[tag=X] ~ ~ ~ testfor @a[team=B]
stats entity @e[tag=X] set AffectedEntities @e[tag=X] B
/stats entity @e[tag=X] clear AffectedEntitie
然后生成一个积分板来统计玩家死亡数
scoreboard objectives add die stat.deaths
以下命令按顺序高频执行
当A队玩家死一次就减少A数值1
execute @e[score_die_min=1,team=A] ~ ~ ~ scoreboard players remove @e[tag=X] A 1
当B队玩家死一次就减少B数值1
execute @e[score_die_min=1,team=B] ~ ~ ~ scoreboard players remove @e[tag=X] B 1
重置
scoreboard players set @e[score_die_min=1] die 0
当A为0时判定B队伍获胜
execute @e[score_A_min=0,socre_A=0] ~ ~ ~ say B队伍获胜
当B为0时判定A队伍获胜
execute @e[score_B_min=0,socre_B=0] ~ ~ ~ say A队伍获胜
如果有很多条命?
比如有3条
那么,这就相当于 人数x3
先创建一个积分板
/scoreboard objectives add z dummy
使tag=X的z设置为3
scoreboard players set 3
A和B都分别乘以z
/scoreboard players operation @e[tag=X] A *= @e[tag=X] z
/scoreboard players operation @e[tag=X] B *= @e[tag=X] z
这样就好了awa
并没有进行测试,出错了.....再说A.A
/scoreboard teams add A
/scoreboard teams add B
然后我们得确定人数
生成两个积分板来分别统计两队人数
scoreboard objectives add A dummy
scoreboard objectives add B dummy
生成一个盔甲架来探测人数
summon armor_stand ~ ~ ~ {Tags:["X"]}
设置初始值
scoreboard players set @e[tag=X] A 0
scoreboard players set @e[tag=X] B 0
探测
execute @e[tag=X] ~ ~ ~ testfor @a[team=A]
stats entity @e[tag=X] set AffectedEntities @e[tag=X] A
/stats entity @e[tag=X] clear AffectedEntitie
execute @e[tag=X] ~ ~ ~ testfor @a[team=B]
stats entity @e[tag=X] set AffectedEntities @e[tag=X] B
/stats entity @e[tag=X] clear AffectedEntitie
然后生成一个积分板来统计玩家死亡数
scoreboard objectives add die stat.deaths
以下命令按顺序高频执行
当A队玩家死一次就减少A数值1
execute @e[score_die_min=1,team=A] ~ ~ ~ scoreboard players remove @e[tag=X] A 1
当B队玩家死一次就减少B数值1
execute @e[score_die_min=1,team=B] ~ ~ ~ scoreboard players remove @e[tag=X] B 1
重置
scoreboard players set @e[score_die_min=1] die 0
当A为0时判定B队伍获胜
execute @e[score_A_min=0,socre_A=0] ~ ~ ~ say B队伍获胜
当B为0时判定A队伍获胜
execute @e[score_B_min=0,socre_B=0] ~ ~ ~ say A队伍获胜
如果有很多条命?
比如有3条
那么,这就相当于 人数x3
先创建一个积分板
/scoreboard objectives add z dummy
使tag=X的z设置为3
scoreboard players set 3
A和B都分别乘以z
/scoreboard players operation @e[tag=X] A *= @e[tag=X] z
/scoreboard players operation @e[tag=X] B *= @e[tag=X] z
这样就好了awa
并没有进行测试,出错了.....再说A.A
第一个问题
使用team应该可以达到你的要求
两方玩家分别加入两个队伍
使用deathCount判据新建一个计分板
将分数为一的人移出队伍
两个循环型命令方块
第一个/testfor @a[team=第一个队伍名字]//检测不到说明第二队赢了
第二个/testfor @a[team=第二个队伍名字]//检测不到说明第一队赢了
均用比较器输出
连接非门
第一个最后输出第二个队伍获胜
第二个最后输出第一个队伍获胜
第二个问题
新建一个判据为deathCount的计分板
新建一个判据为dummy的计分板
当玩家deathCount计分板分数为一时
将其dummy计分板分数加1
同时其deathCount重置
循环型命令方块/testfor @a[score_你的dummy计分板_min=允许复活的最大生命数]
比较器输出
连续执行
移出队伍
重置其所有分数
输出其死亡
后续指令
===end===
使用team应该可以达到你的要求
两方玩家分别加入两个队伍
使用deathCount判据新建一个计分板
将分数为一的人移出队伍
两个循环型命令方块
第一个/testfor @a[team=第一个队伍名字]//检测不到说明第二队赢了
第二个/testfor @a[team=第二个队伍名字]//检测不到说明第一队赢了
均用比较器输出
连接非门
第一个最后输出第二个队伍获胜
第二个最后输出第一个队伍获胜
第二个问题
新建一个判据为deathCount的计分板
新建一个判据为dummy的计分板
当玩家deathCount计分板分数为一时
将其dummy计分板分数加1
同时其deathCount重置
循环型命令方块/testfor @a[score_你的dummy计分板_min=允许复活的最大生命数]
比较器输出
连续执行
移出队伍
重置其所有分数
输出其死亡
后续指令
===end===
jimmy1234 发表于 2017-7-30 16:03
分成两支队伍分别为A队和B队
/scoreboard teams add A
/scoreboard teams add B
好的。。。。谢谢。。。。QAQ
q1a2g3 发表于 2017-7-30 16:42
第一个问题
使用team应该可以达到你的要求
两方玩家分别加入两个队伍
啊啊啊谢谢谢,这个我一下就明白了!!最佳答案无误~~谢谢谢谢233
诶诶诶?我回答的时候没看到有人回答过
jimmy1234 发表于 2017-7-30 19:44
诶诶诶?我回答的时候没看到有人回答过
2333加油啦↖(^ω^)↗