加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

我的世界技术教程 - 利用particle指令制作受伤溅血特效

(2017-01-02 02:06:28)
标签:

minecraft

我的世界

我的世界技术

我的世界服务器

分类: 我的世界技术文献
今天我给大家带来的是各类地图中常用的受伤流血特效,
主要有3种方法,接下来我就一一给大家讲解。


                                                                         scoreboard判据法


先我们需要激活这个指令:
  1. /scoreboard objectives add hurt stat.damageTaken
复制代码


这个指令是什么意思呢?就是创建一个检测玩家受伤血量数值的计分板。
然后按照http://www.mcbbs.net/static/image/smiley/machine/chain_cb_side_1.png利用particle指令制作受伤溅血特效" />来摆放CB(命令方块),在RCB(紫色那个,循环型命令方块)里输入:
  1. /execute @a[score_hurt_min=1] ~ ~ ~ /particle blockcrack ~ ~ ~ 0.2 0.6 0.2 1 10 force @a 152
复制代码
,设置为保持开启。意思是在hurt分数最小为1的玩家处播放红石块的碎裂粒子效果,让受伤玩家“喷血”。
然后在CCB(绿色那个,连锁型命令方块)里输入:
  1. /scoreboard players reset @a hurt
复制代码
重置所有玩家的hurt分数。

优点:适用于1.8以上的所有版本(注意如果是1.8.X版本,包括1.8,则RCB里的指令要改成
  1. /execute @a[score_hurt_min=1] ~ ~ ~ /particle blockcrack_152 ~ ~ ~ 0.2 0.6 0.2 1 10 force @a
复制代码


缺点:只适用于玩家受伤溅血
                                                                         HurtTime标签法

按照http://www.mcbbs.net/static/image/smiley/machine/chain_cb_side_1.png利用particle指令制作受伤溅血特效" />的摆法,然后在RCB里输入:
  1. /scoreboard players tag @a add hurt {HurtTime:10s}
复制代码
,玩家和大部分实体受伤时会有一段时间变红,HurtTime就是记录这段时间的NBT(貌似是,不管了,能用就好),这个指令就是将受伤玩家添加hurt标签。
第一个CCB里输入:
  1. /execute @a[tag=hurt] ~ ~ ~ /particle blockcrack ~ ~ ~ 0.2 0.7 0.2 1 20 force @a 152
复制代码
在拥有hurt标签的玩家处播放粒子效果。
第二个CCB里输入:
  1. /scoreboard players tag @a remove hurt
复制代码
清除所有玩家的hurt标签。
优点:适用范围广,将@a换为@e就可以实现其他实体受伤溅血
缺点:只能用于1.9以上版本
                                                     scoreboard + HurtTime 混合法

首先激活
  1. /scoreboard objectives add hurt2 dummy
复制代码
然后按照http://www.mcbbs.net/static/image/smiley/machine/chain_cb_side_1.png利用particle指令制作受伤溅血特效" />摆放CB,RCB处指令:
  1. /scoreboard players add @a hurt2 1 {HurtTime:10s}
复制代码
将受伤玩家的hurt2分数加1。
第一个CCB处指令:

  1. /execute @a[score_hurt2_min=1] ~ ~ ~ /particle blockcrack ~ ~ ~ 0.2 0.7 0.2 1 20 force @a 152
复制代码
在hurt2分数大于1的玩家处播放粒子效果。
第二个CCB处指令:
  1. /scoreboard players reset @a hurt2
复制代码
重置玩家的hurt2分数。
优点:集合了方法1和2的优点
缺点:如果不是需要1.8.X的实体受伤溅血效果的话用得着这么麻烦吗?http://tb2.bdstatic.com/tb/editor/images/face/i_f25.png利用particle指令制作受伤溅血特效" />

蛤?扩展?
                                                           扩展1:自定义实体受伤音效

将particle指令换成playsound指令就行了嘛。前提:需要自定义受伤的实体无声(Silent:1b)
比如用方法2(方法1不行,只能适用于玩家),将第一个CCB的指令换成:
  1. /execute @e[tag=hurt,type=Zombie] ~ ~ ~ /playsound minecraft:block.note.bass voice @a ~ ~ ~ 1 2
复制代码
RCB处指令和第二个CCB处指令里的@a换成@e[type=Zombie]
然后召唤一只神奇的僵尸http://tb2.bdstatic.com/tb/editor/images/face/i_f25.png利用particle指令制作受伤溅血特效" />:
  1. /summon Zombie ~ ~ ~ {Silent:1b}
复制代码
打他一下,就会发出音符盒的最高音调的贝斯声音。是不是很有趣呢?
                                                           扩展2:检测实体被攻击次数

将particle换成scoreborad对某个计分板的分数增加或减少就能检测玩家攻击指定实体的次数(前提是没有把它打死,而且实体受到其他伤害也会触发,主要可以应用于某些小游戏),方法我就不列举了

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有