本帖最后由 ghyzhi10086 于 2015-1-31 22:11 编辑

Cbl穷酸的周刊开始啦
Cbl试行周刊-01 猪猪的愤怒

分页开始阅读:)
阅读指
2-说点什么:关于创刊
3-焦点访谈:syl-猪爆背后的汗水
4-复制粘贴:owen:让我们聊聊Minecraft服务器
5-指令教程1-猪爆系统讲解(讲师:SYL)
6-指令教程2-stats详解(讲师:K_bai)
7-最后说两句



创刊起因
看到这个封面的时候,很多人可能都要开始骂了:LZ你不带这么玩的吧?别人家的周刊都是一张张带背景的图片,怎么你这里就是一大堆文字?
说道为什么要创刊,甚至是这么寒酸的刊物,其实也不是为了跟风,更多的是希望能够带动论坛里的人学习指令。
为了不被说成是跟风,cbl周刊最主要的一个特色是独家,不像某些刊物只是把新闻版的一些东西重新回顾一下,这样的刊物,欺骗自己也欺骗别人
我希望做一个真正有积极作用的刊物,这就是cbl周刊。在cbl周刊上,我们会登一些:
  • 新版本更新内容详析,把不好理解的术语图文化
  • 原创的指令教程,当然是不在其他版块上发表的,所以其他地方找不到
  • cbl最新作品和已有作品的动态新闻
  • 论坛知名人物访谈
当然仅有这些还不够,更多的还需要有观众来完善
说说CBL
CBL其实不像一个团队,更像一个讨论的大集体,它存在的时间比很多老牌团队存在的时间都要少,不过怎么说也度过了一年的艰辛岁月。
从一个在游戏技巧版块的不知名小组到现在登上版头,都是很不容易的事,其中经历了不少挫折,甚至是一再沉沦,CBL已经从当初一个
翻外国视频讲解基础NBT的小组蜕变成能够自己制作小游戏的团队,对于每个成员都是一个惊喜,不过我相信有你的加盟,CBL一定会越
来越好,为期待我们的人提供更多有趣的作品:)
CB
CB自从1.8以来,从一个在建筑与红石地图幕后默默支持的小方块渐渐走向前台,以至于可以独当一面。CB从原本的辅助渐渐走入大众视
野,进入寻常百姓家。浅显地可以看出1.8的小游戏以肉眼可见的速度增加,越来越多的黑科技,值得开发和探索的潜力不禁让很多CBer
乐在其中,而展示版块和技巧版块也多了不少cb作品,中国的cb界也是有一点萌发的趋势,这时候需要有一个东西带动大众一起参入CB中
了解到其实它是这么一个简单而又有趣的东西,CBL周刊承载了这个使命。


焦点访
     SYL-猪爆背后的汗水

When The Pig Blow - 猪爆之日是Command Block Logic小组再一力作,When The Pig 系列第二部,在刚出来时就博得了大众的好评,
其实这个小游戏本身也在默默地说:中国指令界也有自己的小游戏了,从此当你进入一个小游戏地图,可能出现的就不再是拗口的英文了。
那么现在我们来采访一下猪爆的作者syl的看法:
Q:为了让我更好的复制,请用A:xxx回答
A:ok

Q:你觉得你最好的作品是哪一部
A:一定要选一部的话嘛…我可能会选NBT吧…这是我第一部技术向教程,也是我迈入技术界的第一步呢

Q:我觉得猪爆很多系统都跟ray的ss很像,像设置大厅,道具的类型,对此你有什么看法
A:设置大厅这概念确实是SS给我的启发,我很喜欢这种给予玩家自由选择的概念。至于道具就是为了扩展游戏性的设置了,这个到是原创的

Q:从猪猪三系列到土豆头像,总有一个其实无关紧要的东西在起载体的作用,你对这种主题式地图有什么看法
A:看法嘛…怎么说呢…我觉得算是团队精神的一种延伸吧,大家看到有个有趣的主题可以发挥创意,就一起脑洞大开,这种行为有助提高大家的凝聚力,所以我会觉得这是团队精神的另一种表现方式和延伸

Q:制作猪爆的地图时有遇到困难吗,比如指令莫名其妙出错,为了一个标点符号纠结一整天之类的
A:有,试过胜利判定系统出问题,游戏结束系统没有被关闭,debug半天最后发现是坐标填错了。还有我觉得弄地图对我来说简直就是最大的困难233

Q:你对其他CBer的制作地图方面有什么建议吗
A:我觉得创意是很重要的,好的创意决定好的地图。还有就是系统的规划了,在搭建系统前有一个完整的规划,有助于整个系统的刘畅运行。

Q:对于论坛的指令现状你想说些什么吗?你有权保持沉默
A:有,我会用四个字评论现状:青黄不接。论坛有不少擅长于这方面的大触,也要很多新人,但是说有潜力有这个恒心去研究CB的新人似乎没多少,造成了很两极化的局面。所以我觉得有必要去鼓励一些新人来加入研究CB的行列了,正所谓有分享才有进步,更多的人加入这个行列才能带来更好的发展。

Q:还想说什么吗?
A:有兴趣研究CB的朋友们快来加入CBL这个有爱大家庭,我在这里等着调♂教你们

Q:ok你的言行已经被我记录下来了
A:会不会成为呈堂证供啊2333
Q:你猜
A:我猜会
-A:(你猜对了)
(Q:Im87,A:SYL_qiuyifeng出场费:10金粒




Owen: 让我们谈谈Minecraft服务器

嘿!

大部分人都了解Minecraft服务器运转机制,但还有一些人并不这样。我们想在此说明。

简而言之,服务器创造了让玩家共同游戏的机会。

社区中有各种各样的服务器,大家喜欢这些类型的服务器。
除了Minecraft Realms(另一种与朋友享受长期发展地图的方法)之外,没有一个服务器是由Mojang运营的。它们是独立的,由各种各样的人因各式各样的原因而设立。有一些是由玩家设立以与家人朋友游戏,有一些是为了赚钱,还有一些是奇怪的、我们搞不懂的社会实践。

很多第三方的Minecraft服务器给我们的玩家提供了崭新有趣的新游戏方法。我们很感激这种现象的存在。没有这些,Minecraft不会如此成功,亦不会与今日相同。

我们并不对服务器运转方式负责

Minecraft具有如此乐趣的原因之一是其创造精美事物与无拘束表达的自由,但这也带来了一些被认为不合适的内容,或是我们不喜欢的东西。我们不对第三方的服务器内容负责。

这些网站和服务器不受我们控制。只要他们遵守我们的最终用户许可协议我们就不会干涉。这就像YouTube——这个网站上的某个视频可能是关于Minecraft的,但我们并不一定赞成这些视频里的全部内容。我们看了很多这些视频以便了解这种情况会有多蠢。

我们也不对服务器收费或者存储用户信用卡信息负责。就像在互联网的其他地方付费一样,十分重要的是你是否信任你在交易的人(此处是服务器运营者),在此之前你不应该将自己的个人信息与信用卡信息交给他们。             (个人吐槽:骗完钱就关的服务器之类的。。)

互联网可以是疯狂的地方

追踪那些Minecraft内容对于特定用户是否合适,这是玩家自己或者(大多数情况下)孩子们的父母 / 监护人的责任。也就是说,纯净的PC版,主机版Minecraft与Minecraft Realms在我们的责任范围内。我们会尽可能提供安全,安心的游戏体验。让这一切尽可能有趣。

感谢阅读。

Owen – @bopogamel


源地址:http://www.mcbbs.net/thread-398398-1-1.html

教程-猪爆系统讲解 by  SYLqiuyifeng
今天带来猪爆的系统讲解,我们这一期先讲讲猪爆的核心机制系统:猪猪爆炸整个系统涉及到两个scoreboard里面的虚拟玩家,分别是
在目标time(类型为dummy)的S_time
和在目标setting(类型为dummy)的S_time
好吧虽然他们名称一样,但位于不同的分数里面
最后还有一个名为pig的分数(类型为dummy)


首先来看看系统的第一个组成部分,计时器

这是一个简单的漏斗计时器,两个漏斗互相对着对方
  1. /blockdata 1530 46 -826 {TransferCooldown:20}
复制代码

这条命令是设置右边的漏斗的TransferCooldown这个NBT标签,代表着漏斗的输送冷却
这样就可以很简单做出一个输出间隔约1秒的时钟
  1. /scoreboard players remove S_time time 1
复制代码

而这条指令的,就是控制我们召唤间隔的重要部分了
每秒减少在time分数里面的S_time,每次减1


你就好奇了,减一有什么用,这是给接下来的系统用的

(最后还有一个命令方块看不到)
  1. /scoreboard players test S_time time 0 0
复制代码

猜到了嘛?当S_time为0的时候,就会激活这个系统
  1. /scoreboard players operation S_time time = S_time setting
复制代码

当系统被激活的时候,就会先执行这个operation,把setting里面的S_time数值设定为time里面的S_time数值
这就是为啥猪爆的召唤时间可以被自定义——通过更改setting里面的S_time分数达到这个目的
当倒数到0的时候,就重新把S_time设定为玩家设定的数值,从而开始重新倒计时
  1. /spreadplayers 1535 -899 0 25 false @e[type=ArmorStand,name=MAP]
复制代码

那么猪爆究竟是怎么做到随机召唤猪猪的呢?答案就在这里
这个命令会把名为MAP的盔甲架随机分布,他们位于地图的最上方,天花板上面
每次这个系统激活的时候,他们就会重新随机分布一次
  1. /execute @e[type=ArmorStand,name=MAP] ~ ~ ~ /summon Pig ~ ~-5 ~ {Fire:1000,Attributes:[{Name:generic.movementSpeed,Base:0}],HealF:2}
复制代码

这个就是召唤猪猪的命令了,在这个盔甲架下方召唤一只无法移动,着火,并且具有两点生命的猪猪
并且在系统这个系统外有两个连接高频的命令方块,用于给予猪猪们防火效果和255级的跳跃提升(防止掉落伤害)



这个就是最后的系统了,用于控制猪猪的爆炸
  1. /scoreboard players add @e[type=Pig] pig 1 {OnGround:1b}
复制代码

这个命令会不断增加已经落地的猪猪,名为pig的分数
  1. /execute @e[type=Pig,score_pig_min=6] ~ ~ ~ /summon Creeper ~ ~ ~ {Silent:1,Fuse:0,ignited:1,ExplosionRadius:3,ActiveEffects:[{Id:14,Amplifier:0,Duration:6000,ShowParticles:0}]}
复制代码

这个命令看起来很长,但其作用就是在分数最少为1/4/6的猪猪(这个就是爆炸延迟所设定的数值)召唤一只苦力怕
这只苦力怕具有静音,0延迟爆炸,自定义爆炸范围,还有隐身效果
这就产生了猪猪爆炸了的错觉


本期教程就到这里,我们下期再见



======================前言======================


/stats这个指令 在MC的所有指令中算是比较难懂的一个了
今天我就详细解释一下/stats这条命令的 理解 用法 以及应用~
先来看看这条命令的具体应用我做了两个小例子~
见光死”与”安检门
演示看视频啦~
[bili=1944480]1[/bili]

见光死”就是让玩家僵尸一样在阳光下会掉血~安检门”就是如果玩家身上有超过9个铁就不让通过~

======================命令作用======================

这两个小应用中的核心都是 /stats 命令先大概的解释一下这条命令~

stats这个单词直译成中文叫"统计"
而我更愿意将它意译为"创建连接"
这里的连接,指的就是一条命令的执行结果和一个计分板变量的连接
创建了这样的连接后就能将一条命令的执行结果输出到计分板里

------------------解释一小下------------------

以/setblock为例

以/fill为例
以/testforblocks为例
这条命令就是在视频中"见光死"所用的命令
用于将玩家头顶的所有方块与一条空气柱比对
可见 命令执行后都会在屏幕上有一个反馈 这个反馈就是命令的执行结果
那么/stats指令的连接作用是什么意思呢? 看图!


------------------解释一小下------------------


以/setblock为例

以/fill为例

以/testforblocks为例

可见 使用了/stats 后命令执行后的效果就增加了一个:
改变计分板的数值
原本应该输出在屏幕上的东西被输出到了计分板里
这就是/stats命令的作用了

======================格式详解======================
  • /stats entity <玩家名> set <模式> <玩家名> <计分板变量名>


[color=rgb(51, 102, 153) !important]复制代码

  • /stats block <x> <y> <z> set <模式> <玩家名> <计分板变量名>

[color=rgb(51, 102, 153) !important]复制代码


填entity还是block取决于命令是由实体执行还是由命令方块(或牌子)执行的
注:execute 执行的命令也算是实体执行的命令
以上三张图中情况玩家执行的命令所以都用entity
注:选择entity时, 有前后两个实体
前一个实体是执行命令的实体
后一个是计分板变量数值要被改变的实体这个实体可以不存在


------------------关键理解部分------------------


<模式>这个选项有如下几个选择:

  • AffectedBlocks:命令影响的方块数
  • AffectedEntities:命令影响的实体数
  • AffectedItems:命令影响的物品数
  • QueryResult:命令获取的结果 [这一条可以先无视]
  • SuccessCount:命令成功执行的次数



那么这5条如何选择呢?这取决于命令执行后, 玩家的屏幕上/命令方块的输出处显示的内容
例如setblock fill clone testforblock等等会在执行后在屏幕上输出 被放置/克隆/比对 的方块数量
这就明显选择AffectedBlocks

give clear 会在执行后显示 给与/清除 的物品数量 这里就要选择AffectedItems

------------这里有一个特殊点------------

/testfor @e     /kill @e 等等这些指令 要想获得探测/杀死到的实体数量时,
要用SuccessCount而不用 AffectedEntities
因为这些指令执行后并不会在屏幕上输出 "探测到10个实体"  等等这些提示
取而代之的是一行行的 "找到了 XXX实体”"
一行输出, 就代表着命令被成功执行了一次
一共输出了几行就代表成功执行几次所以要使用SuccessCount

此时如果使用AffectedEntities则计分板出会一直输出1
这里需要注意, AffectedEntities这个模式目前实际上是没有什么实质作用的可以忽略

QueryResult这个模式稍后讲~


------------题外话------------

众所周知, 比较器接在带有testfor的命令方块边上可以输出testfor到的实体数量
实际上, 比较器正是输出了命令方块的 SuccessCount
命令成功执行几次就会有几格的输出


那么 "安检门" 的原理也就显而易见啦~
视频中也有说各位可以自己研究和探索一下~
使用/stats创建的连接是 "牢不可破" 的
一旦一个实体的变量和命令结果创建了连接使用指令就不能改变内个变量的值了
他会永远保持内个数值, 除非那个方块/实体又执行了另一条命令
那么如何解除连接?

  • /stats entity <玩家名> clear

[color=rgb(51, 102, 153) !important]复制代码

  • /stats block <x> <y> <z> clear

[color=rgb(51, 102, 153) !important]复制代码


轻而易举~


======================注意事项======================

  • 搞清楚stats的作用 stats命令起的是将命令执行结果重定向至计分板的作用
  • 搞清楚stats命令中的实体分别指的是什么 一个指的是执行命令的实体 另一个是存计分板变量数值的实体
  • 使用前务必在计分板激活该玩家, 这样才能正常使用具体方法就是给对应玩家计分板变量add 0即可


======================结束语
======================

Stats命令前途不可估量!!!
它是连接MC世界与计分板的桥梁  以后定有大作为
欢迎各位少年批评指正!


最后两句
还有三周就是CBL一周岁生日啦,大家记得等待惊喜吧XD





[groupid=546]Command Block Logic[/groupid]