Minecraft(我的世界)中文论坛
标题: [Mc1.8][2b]还原爆破系统!(枪战党的福音!)
作者: ⭐✔️ 时间: 2014-4-29 21:51
标题: [Mc1.8][2b]还原爆破系统!(枪战党的福音!)
也许你认为在Mc中爆破只能是TNT的艺术,但可惜我们不能用TNT来完全模仿出FPS射击中的爆破。现在,在1.8版本中终于酝酿出了完全效果、相同原理的爆破系统,本教程可谓地图制作者,尤其是FPS射击爱好者的福音。
下载地址(可以利用Mce转存、或研究体验)
展示:
http://v.youku.com/v_show/id_XNzA0NTU1OTQ4.html
原理:

这是主要处理部分,命令方块比较多,将给大家详细讲解。(将以羊毛颜色命名命令方块)
前端输入区

主要目的:探测玩家是否有安放C4的动作,并输入信号。
首先一个命令方块脉冲(←点击“脉冲”进入教程)连接蓝色。
蓝色:- /testfor @p[388,8,381,r=0] {SelectedItemSlot:4,Inventory:[{Slot:4b,id:"minecraft:firework_charge",tag:{display:{Name:"C4"}}}]}
复制代码 命令讲解:探测某方位(地图中红色地毯处,也就是C4安放点)那个方块位置的最近玩家、且手里拿着在5号物品栏(模仿背包中的C4为止)的名为C4的烟火之星。
若探测是,则输出黄色
黄色:在绿色放置一个红石块
绿色开启脉冲,激活安包区

主要目的:显示安包时间、刷出实体C4
绿色下面:命令讲解:给予最近(因为前面已经探测到了最近玩家持有C4,不用增加判据)玩家8级经验。
脉冲长度5刻,模拟大概1秒
白色:命令讲解:(每秒)减少最近玩家1级经验。
于是制作了一个经验条显示器。
灰色组:命令讲解:(每秒)给予玩家长度2秒,等级255(无法移动)并隐藏颗粒物的缓慢效果。命令讲解:探测玩家等级0,若是则输出。

深灰组:- /summon Item 388 8 381 {Item:{id:firework_charge,Count:1},PickupDelay:1000000000,Age:-32768}
复制代码 命令讲解:在下包处(红色地毯处)生成一个无法捡起的烟火之星。(无法捡起物品的教程)- /clear @p firework_charge 0 1 {display:{Name:"C4"}}
复制代码 命令讲解:清除玩家物品栏里的C4
在“前端输入区”红色处防止一个红石块,一个命令方块把红色羊毛设为空气,且激活:- /scoreboard players set @e[type=Item,c=-1] firework 1
复制代码 命令讲解:给最近物品的firework计分板分数设为1。
首先我们需要一个实体计分板firework来探测:- /scoreboard objectives add firework dummy firework
复制代码 这样做的主要目的是execute无法直接添加NBT标签,只能通过这样增加判据。
黑色组:
开启爆炸计时区、拆弹区、关闭安包区。
爆炸计时区

主要目的:显示爆炸倒计时、爆炸特效及重置。
当红色下面得到红石块输入后,激活三个命令方块:
按照先后信号顺序实现上下后左右
所以下面是:- /scoreboard objectives add C4DetonatingTime dummy C4DetonatingTime
复制代码 命令讲解:创建名为“C4引爆时间”的计分板。
接着左右:- /scoreboard objectives setdisplay sidebar C4DetonatingTime
复制代码 命令讲解:把这个计分板设置到侧边栏。- /scoreboard players set @a C4DetonatingTime 30
复制代码 命令讲解:分数设为30(模拟30秒)

接着仍然也是激活一个5刻(长度1秒)的脉冲,连接黄色:- /scoreboard players remove @a C4DetonatingTime 1
复制代码 命令讲解:(每秒)给这个计分板减1.
也连接蓝色:- /testfor @a[score_C4DetonatingTime=0]
复制代码 命令讲解:探测全部玩家分数0,若是,则输出信号

绿色组(负责爆炸特效):- /execute @e[type=Item,score_firework_min=1] ~ ~ ~ kill @e[type=!FallingSand,r=10]
复制代码 命令讲解:杀死所有在firework分数为1的物品周围10个方块单位的实体(除了掉落沙是因为周围有一个命令方块脉冲,同时也清除了C4)- /playsound ambient.weather.thunder @a ~ ~ ~ 1 1 1
复制代码 命令讲解:给所有人播放打雷的音效。- /execute @e[type=Item,score_firework_min=1] ~ ~ ~ /particle largeexplode ~ ~ ~ 10 10 10 0.001 2000
复制代码 命令讲解:在firework分数为1的物品处生成一个范围10,时间0.001,颗粒数量2000的大型烟雾
- /scoreboard objectives remove C4DetonatingTime
复制代码 命令讲解:删除倒计时计分板。
棕色(负责重置):
关闭爆炸倒计时、关闭拆包探测、关闭拆包倒计时、重置经验(若拆包失败及时清除倒计时)。
紫色:在拆包区另外讲解。
拆包区

主要负责拆包倒计时、重置。
首先我们来看一下警匪判据:

- /scoreboard objectives add ispolice dummy
复制代码 命令讲解:创建一个判断警匪的计分板。
若选择警察:- /scoreboard players set @p ispolice 1
复制代码 则设为1
若选择土匪:- /scoreboard players set @p ispolice 0
复制代码- /give @p firework_charge 1 0 {slot:4b,display:{Name:"C4"}}
复制代码 设为0,并且给个C4。
所以若拆包,就探测这个人是否为警察。
拆包探测区:

红色:- /execute @e[type=Item,score_firework_min=1] ~ ~ ~ execute @p[score_ispolice_min=1,r=0] ~ ~ ~ playsound random.successful_hit @p[sore_ispolice_min=1] ~ ~ ~ 1 1 1
复制代码 命令讲解:探测firework为1的物品(C4)接触到警察就播放ding的音效,并输出黄色
黄色:激活拆包倒计时- /xp 8l @p[score_ispolice_min=1]
复制代码 给警察8级经验
倒计时区:

激活5刻(长度1秒)脉冲。激活蓝色组:
- /xp -1l @p[score_ispolice_min=1]
复制代码 命令讲解:(每秒)减去警察1级经验
- /effect @p[score_ispolice_min=1] 2 2 255 true
复制代码 命令讲解:(每秒)给予警察长度2秒,等级255(无法移动)并隐藏颗粒物的缓慢效果。
绿色:- /testfor @p[score_ispolice_min=1,l=0]
复制代码 命令讲解:探测警察等级0,若是,则输出信号。
输出棕色:
- /scoreboard objectives remove C4DetonatingTime
复制代码 命令讲解:移除爆炸倒计时计分板
- /kill @e[type=Item,score_firework_min=1]
复制代码 命令讲解:清除C4
并且关闭爆炸倒计时、关闭拆包探测、关闭拆包倒计时
最后两个紫色一起讲:
若C4爆炸,则
匪:- /tellraw @a[score_ispolice=0] {text:"Explosion C4 successfully!",color:red,bold:true}
复制代码 警:- /tellraw @a@a[score_ispolice_min=1] {text:"C4 has exploded",color:gray,bold:true}
复制代码 若拆包成功,则:
警:- /tellraw @a[score_ispolice_min=1] {text:"Demolition C4 successfully!",color:red,bold:true}
复制代码 匪:- /tellraw @a[score_ispolice=0] {text:"C4 has been defused",color:gray,bold:true}
复制代码 最后希望大家能从此帖中增长下命令知识! -来自CBL by 2b
@cyqsimon @songfeitong @tyson @我的世界sun123 @PotatoMaster101 @ghyzhi10086
[groupid=546]Command Block Logic[/groupid]
作者: Jms 时间: 2014-4-29 21:53
好深奥一个D不懂
作者: Forsworn_ 时间: 2014-4-29 21:53
等下 地上的草是什么情况。。
作者: songfeitong 时间: 2014-4-29 21:54
太花哨了眼晕
我觉得以后把大致原理一说,不用一条一条列出来
作者: a731385540 时间: 2014-4-29 21:59
你太强大了
作者: lcpg 时间: 2014-4-29 21:59
提示: 作者被禁止或删除 内容自动屏蔽
作者: Qfang23 时间: 2014-4-29 22:04
2触膝盖收好
作者: pacerrecap 时间: 2014-4-29 22:05
丧心病狂。
现在最讨厌的部分其实已经解决了,剩下的就是全歼判定和枪、手雷的制造了
全歼和手雷不用说
我觉得枪可以根据玩家的位置信息刷出一点东西,大概在下列选择:
1。速度快的箭 缺点:弧度
2。烈焰人火球 缺点:着火影响视线
3。还没想好。。。
祝LZ早日做出实用的地图。
附:dust2
http://www.mcbbs.net/thread-93116-1-1.html
作者: 67880371 时间: 2014-4-29 22:25
其实手雷系统我早就做好了
http://www.mcbbs.net/thread-268431-1-5.html
只是没人看而已=A=
作者: 1123fff 时间: 2014-4-30 01:03
下次记得@在下
作者: 可口可乐dseg 时间: 2014-4-30 05:19
NB不解释
作者: pacerrecap 时间: 2014-4-30 12:37
但是还是有问题,CS受到伤害不应该被击退。。。。
意思就算说大概只能是用命令伤害了。。。
另外也可以据此开发人质系统
作者: 捌柒 时间: 2014-5-1 10:51
枪直接用附魔的雪球就好了233
作者: 圆石 时间: 2014-5-2 13:44
命令大触手。
作者: pacerrecap 时间: 2014-5-3 11:22
会击退的。。。
作者: 捌柒 时间: 2014-5-3 11:27
http://www.mcbbs.net/thread-272142-1-1.html