Minecraft(我的世界)中文论坛

标题: [CBL∫2b]指令方块进阶教程——模块 §д : 实体操作 [打印本页]

作者: ⭐✔️    时间: 2015-8-8 20:05
标题: [CBL∫2b]指令方块进阶教程——模块 §д : 实体操作
本帖最后由 贰逼 于 2015-8-8 21:46 编辑

(附)效果指令
第二页为 实体操作指令
效果指令作为语句的一个输出,通常为对游戏本体产生影响效果操作的指令

效果指令包含以下内容

实意指令与效果指令区别

文字
物品操作
实体操作
方块操作
音效
粒子效果

全索引链接
上一篇物品操作)--下一篇(方块操作)

§д.4 实体操作
第三页为 summon在模块中,由于数据基本需要转存到实体上,所以实体操作十分重要。

实体操作拥有三种:
summon
kill
entitydata

summon     - 用于生成实体
kill       - 用于销毁实体
entitydata - 用于修改实体数据


对于模块来说,summon和kill用途较大,
entitydata用于实体修改,具体用途就不解释了

        д.4.1 summon
第四页为 killsummon 用于生成实体。

summon的格式为:
  1. /summon 实体名 坐标 NBT
复制代码

在坐标生成指定NBT的实体





summon ArmorStand ~ ~1 ~ {Pose:{RightArm:[0.0F,30.0F,0.0F]},ShowArms:1}
生成一个拥有指定NBT的ArmorStand,坐标为执行体上方
实体NBT大全在:区块格式

summon除了能使用规定的坐标外,结合条件语句的相对性,能够相对生成:



  1. /execute @p ~ ~ ~ summon ArmorStand ~ ~1 ~ {Pose:{RightArm:[0.0F,30.0F,0.0F]},ShowArms:1}
复制代码

在玩家头顶生成一个拥有指定NBT的ArmorStand

由于重力,ArmorStand掉了下来。



总结来说,summon可以在模块结合单次执行模块达到生成自定义实体的效果。


        д.4.2 kill
第五页为 kill双用途kill 用于销毁实体。

kill的格式为:
  1. /kill 实体名
复制代码

即和summon相反,销毁指定(默认全部,可在实体选择器加c来规定数量)实体


kill除了本身能够杀死实体外,由于实体可以携带计分板数据,所以也能清除计分板某种特定类型的数据源,从而彻底地清除数据

                д.4.2.1 kill双用途
第六页为 tp隐藏死亡动画


按照顺序执行:
  1. /execute @p[score_a_min=1] ~ ~ ~ kill @e[name=f]
  2. /execute @e[name=f,score_a_min=1] ~ ~ ~ say 1
复制代码



当f计分版a为1



不断输出say 1

当最近玩家的计分版a为1



将f销毁,这样做到清除数据,阻断输出

唯一需要注意时钟,如果先执行输出再kill,
那么当玩家a分数为1,还会继续输出一次say 1


                д.4.2.1 tp隐藏死亡动画
实体中生物被kill,那么就会出现死亡动画



对creeper使用kill


除了生物倒下的动画,还有影响效果的死亡粒子。

tp可以弥补这一点



/tp @e[type=Creeper] ~ -64 ~
将生物tp到y轴-64处



生物即可消失

这是因为实体坠入虚空,y<-64会掉血(即使无敌也会)
不过不足的是如果关联高频,那么掉血直到死亡还会有一定死亡时间,所以仍然不会立即销毁

所以一般情况下讲求效率,需要
  1. /tp 实体 ~ -64 ~
复制代码

马上执行
  1. /kill 实体
复制代码

[groupid=546]Command Block Logic[/groupid]
作者: zhaoxingeabc    时间: 2015-8-8 20:58
二逼你写教程的速度真的好吗?
再者这一篇通俗了很多啊
完全没有开始时高大上的感觉了
作为面向新手的教程,写成这样才是最适合的
作者: ⭐✔️    时间: 2015-8-8 21:04
zhaoxingeabc 发表于 2015-8-8 20:58
二逼你写教程的速度真的好吗?
再者这一篇通俗了很多啊
完全没有开始时高大上的感觉了

因为效果指令是附加内容
前面全部都是模块主语句注重逻辑,
这边一笔带过介绍一下
作者: ⭐✔️    时间: 2015-8-8 21:20
zhaoxingeabc 发表于 2015-8-8 20:58
二逼你写教程的速度真的好吗?
再者这一篇通俗了很多啊
完全没有开始时高大上的感觉了

本身就是进阶教程,模块毕竟将来会成为主流,官方也倾向于完善这个东西。
然而模块有些复杂,因此需要给指令方块进阶玩家做教程
作者: zhaoxingeabc    时间: 2015-8-8 22:00
贰逼 发表于 2015-8-8 13:20
本身就是进阶教程,模块毕竟将来会成为主流,官方也倾向于完善这个东西。
然而模块有些复杂,因此需要给 ...

然而作为一种检测机制,高频是必不可少的
模块的高频尽管属于最节约内存的一种,但大量使用也不是所有机子都带的起的……
作者: theEinstein    时间: 2015-8-8 22:06
tp也算实体操作吧?
作者: ⭐✔️    时间: 2015-8-8 22:08
zhaoxingeabc 发表于 2015-8-8 22:00
然而作为一种检测机制,高频是必不可少的
模块的高频尽管属于最节约内存的一种,但大量使用也不是所有机 ...

nope

其实是可以的,卡的高频都是没掌握技巧的。

就目前:
一个方块更新发送block package,资源非常小
小于64方块更新发送blocks package,资源小
然而一个区块更新,也就是大于等于64个方块更新发送chunk package,资源非常大。
此外,可以节省区块加载量。

因此,让一个区块高频连接的指令最多63个,让这些指令高频区块原理玩家至少1000个方块,再自行加上区块加载器即可让高频消耗资源非常小,这同样运用服务器/

总之玩的卡的其实是没优化好,真正优化好的地图服务器都能很流畅带动,而实际使用的指令模块数量十分庞大


再者:
Mojang现在让particle采用opengl渲染,也是让资源消耗大大减小,
将来也许同样能压缩blocks package或者chunkpackage使消耗更小。


所以这种担心是不必要的
作者: ⭐✔️    时间: 2015-8-8 22:12
theEinstein 发表于 2015-8-8 22:06
tp也算实体操作吧?

就这么解释,如果我有两个类型,
一个叫做object,是实体
object有个子类型叫transform,是行为变换。

那么transform里包含坐标变换Postion
那么我改变postion也只是改变了子类型,并非改变了实体




欢迎光临 Minecraft(我的世界)中文论坛 (https://www.mcbbs.net/) Powered by Discuz! X3.5