guimc
本帖最后由 guimc 于 2017-2-10 20:20 编辑

大家好,这里是新人CommandKingdom
最近在研究小游戏的制作,于是捣鼓出来一个起床战争
其实也不是很难啦,也是一个小白向教程

首先,这是一个俯视图




OK,那我们开始讲解命令
首先讲最简单的:
  1. /gamerule keepInventory false
复制代码
放入命令方块循环执行(你见过哪个起床战争服务器是死亡不掉落?)
那个。。禁止掉落物品就算了吧,不然。。。(自己想去)





再来讲这个(这里及以下我只拿蓝队来做例子,这里是所有队伍的
添加队伍?当然用计分板了
  1. /scoreboard teams add blue blue
复制代码
添加蓝队(两个blue的第一个是队名,第二个是显示的队名)(我也不知道能不能用中文,没试过)
有人会问:怎么颜色是白的?
呵呵,因为你没加颜色
  1. /scoreboard teams option blue color blue
复制代码
这是给蓝队加上蓝色(怎么感觉怪怪的)

然后是选择队伍:

还是计分板指令
  1. /scoreboard teams join blue @p
复制代码
注:这里必须用@p!!(具体自己想)
这样就成功加入蓝队了
众人:那后面两个命令方块呢?
  1. /tp @p x y z
复制代码
  1. /spawnpoint @p x y z
复制代码
当然是重生点和传送了

spawnpoint建议设在床所在的方块上,这样破坏床时也一并破坏重生点


破坏了床怎么办?用这些东西
首先需要探测床
  1. /testforblock x y z minecraft:bed
复制代码
循环执行
这里需要用一个非门,如果床没了就没有信号了,然后执行后面的命令

  1. /spawnpoint @a[team=blue] x y z
复制代码
首先要重设重生点
  1. /playsound minecraft:entity.enderdragon.death player @a ~ ~ ~ 100 0
复制代码
然后来个音效(这里我用末影龙死了之后的音效)
然后是商店系统


这个其实是两种方式
一个是用summon给予物品,一个是用give(建议大家用give,这样可以不被别人拿走)
然后是探测物品,这里的xyz用的是我的世界里的坐标
  1. /testfor @e[type=minecraft:item,x=-1387,y=67,z=-552,r=1] {Item:{id:"minecraft:brick",Count:10b}}
复制代码
minecraft:brick是砖,单位b不要忘加
然后把砖清除
  1. /kill @e[type=minecraft:item,x=-1387,y=67,z=-552,r=1]
复制代码
之后给予物品:(铁块)

summon格式:
  1. /summon item -1387 67 -552 {Item:{id:"minecraft:iron_block",Count:1b}}
复制代码
give格式:
  1. /give @p minecraft:iron_block 1
复制代码
之后是资源系统:(还是两种方式,一个铁轨,一个中继器)



然后就是一个summon指令:(请无视1b后面那个逗号)
  1. /summon item x y z {Item:{id:"minecraft:brick",Count:1b,}}
复制代码
然后建上建筑就可以愉快的玩耍啦!

注:回档可以用结构方块,清除可以用:
  1. /fill x1 y1 z1 x2 y2 z2 minecraft:air
复制代码
本次教程结束,请大家在下面吐槽吧!
大家可以去我的自频道捧场欧!感谢Java_command的建议,如果你想做村民商店的话,这里有村民商店生成器
教程版本:1.11.2



wu20021001
其实你可以弄死亡不掉落,然后弄个命令方块检测玩家的死亡数,当死亡数=1时,清空玩家背包并把死亡数改成0

九零君
其实不开死亡不掉落也行 创建一个记录死亡次数的计分板 然后死一次检测到分数为1的直接清空背包然后设置分数重新为零,这样就OK了啊

九零君
wu20021001 发表于 2017-1-23 18:53
其实你可以弄死亡不掉落,然后弄个命令方块检测玩家的死亡数,当死亡数=1时,清空玩家背包并把死亡数改成0 ...

你比我先回复 没看见...

九零君
咱俩相差 时间貌似不多 @wu20021001

wu20021001
九零君 发表于 2017-1-23 18:58
咱俩相差 时间貌似不多 @wu20021001

神默契

wu20021001
wu20021001 发表于 2017-1-23 18:53
其实你可以弄死亡不掉落,然后弄个命令方块检测玩家的死亡数,当死亡数=1时,清空玩家背包并把死亡数改成0 ...

如果弄死亡掉落,那杀死玩家还可以获得装备,就翻盘容易

guimc
九零君 发表于 2017-1-23 18:57
其实不开死亡不掉落也行 创建一个记录死亡次数的计分板 然后死一次检测到分数为1的直接清空背包然后设置分 ...

可以可以

TNT嘉音
哦,这是教建造的。

yellow_Gay
都是一些简单的命令方块代码
如果融入一点技术含量高一点的  
那应该是一件不错的作品

guimc
yellow_Gay 发表于 2017-1-25 10:56
都是一些简单的命令方块代码
如果融入一点技术含量高一点的  
那应该是一件不错的作品 ...

我也是刚接触命令方块,做不出那么高端的

Java_command
wu20021001 发表于 2017-1-22 22:53
其实你可以弄死亡不掉落,然后弄个命令方块检测玩家的死亡数,当死亡数=1时,清空玩家背包并把死亡数改成0 ...

不不不,我测试过,玩家死亡后不会被检测到,导致先清除背包后清除积分的方法不可用,不要把事情想得太简单

Java_command
九零君 发表于 2017-1-22 22:57
其实不开死亡不掉落也行 创建一个记录死亡次数的计分板 然后死一次检测到分数为1的直接清空背包然后设置分 ...

不不不,我测试过,玩家死亡后不会被检测到,导致先清除背包后清除积分的方法不可用,不要把事情想得太简单

Java_command
我们一个一个说,首先第一个清除物品的问题,我想不到结果,可以试试在玩家血量低于XXX的时候直接清除玩家物品并杀死玩家(提高血量上限)。

队伍:
没有必要都用@p,游戏开始后再弄@a[team=blue]
还有就是你没有关闭队伍的误伤。

床:
为什么非要检测床呢,直接检测空气即可~

商店:
我怀疑你的智商,为什么不用村民呢
还弄那么麻烦……
而且考虑到物品数量纠纷的问题会导致玩家很麻烦

资源点:
我觉得这里还不错,我也是这么做的

希望改进

Java_command
guimc 发表于 2017-1-25 00:55
我也是刚接触命令方块,做不出那么高端的

那就别来游戏技巧发帖啊……
游戏技巧版的要求算是比较高的……

九零君
Java_command 发表于 2017-1-26 07:44
不不不,我测试过,玩家死亡后不会被检测到,导致先清除背包后清除积分的方法不可用,不要把事情想得太简 ...

为啥我的管用

EternityTQ
说实在的 这并不算比较标准的起床。。
原因:起床地图原本的结构是无法破坏的

pca006132
gamerule那里不需要高频的...设置一次就行了...

guimc
pca006132 发表于 2017-1-26 13:36
gamerule那里不需要高频的...设置一次就行了...

怕游戏中有人改动嘛

guimc
Java_command 发表于 2017-1-26 07:49
我们一个一个说,首先第一个清除物品的问题,我想不到结果,可以试试在玩家血量低于XXX的时候直接清除玩家 ...

村民我按照教程往上写NBT,出来之后没有显示

Java_command
guimc 发表于 2017-1-26 17:18
村民我按照教程往上写NBT,出来之后没有显示

那就是你自己的锅啦
有生成器你都不用

Java_command
guimc 发表于 2017-1-26 17:16
怕游戏中有人改动嘛

你要相信pca
有人改你也别这样啊……
你一个地图不要弄那么多反作弊什么的不然不会有人喜欢的

guimc
Java_command 发表于 2017-1-27 22:24
那就是你自己的锅啦
有生成器你都不用

问一下,怎么探测一个玩家的记分板的分数是否为0?

Java_command
guimc 发表于 2017-1-29 20:17
问一下,怎么探测一个玩家的记分板的分数是否为0?

用选择器@a[score_blablabla_min=0,score_blablabla=0]

pineapple_
Java_command 发表于 2017-1-26 07:44
不不不,我测试过,玩家死亡后不会被检测到,导致先清除背包后清除积分的方法不可用,不要把事情想得太简 ...

死了检测不到,活了不就能检测了吗,我在1.9里试过高频/execute @a[score_deathcount_min=1] ~ ~ ~ /clear @p
后面是连锁型命令方块/scoreboard players reset @a deathcount
难道不行吗……

Java_command
pineapple_ 发表于 2017-1-30 19:29
死了检测不到,活了不就能检测了吗,我在1.9里试过高频/execute @a[score_deathcount_min=1] ~ ~ ~ /clear  ...

活了之前那个分数就被清空了

pineapple_
Java_command 发表于 2017-2-1 01:05
活了之前那个分数就被清空了

尴尬了少打了几个字,后面的连锁方块是要条件制约的

holyholy
楼主,我最近也在做,有一个问题还没解决,地图原来的结构如何让他不能被破坏? 还有就是我不会用检测命令,所以我用的红石块代替床。破坏之后一个非门连接两个命令方块,一个清除出该队的人出队伍,一个是重设不在任何一个队伍的人的出生点。这样死掉的人会到建筑中心的一个踏板上激活另外一个命令方块,让他变成旁观者模式

BuleBoy
学习LZ的知识,慢慢学着玩MC命令方块~

1933932899
根据你的教程我建了个起床战争不过。。。

guimc
1933932899 发表于 2017-8-17 14:26
根据你的教程我建了个起床战争不过。。。

不过什么(好久以前的帖子了,没装修)

無名Five
挺厉害的顶一下

mendeleev_he
那铁锭的产生呢

Dadiao_dad
请问1.7.10咋做

冷刃
大佬大佬

gefjgbvjkfahgef
那个,如果玩家破坏建筑方块怎么办,还不能让他们不能挖方块

gefjgbvjkfahgef
而且村民生成器不能弄附魔物品

yuxiang187
谢谢楼主的讲解 顶!