当前位置:网站首页 > Java教程 > 正文

指令商店教程java



*所有内容均为原创内容,未经允许禁止转载或摘编

注:今天的内容比较多,前三分之二的内容讲如何使用记分板,后面讲服务器商店。时间有限的读者可以先看后面,不懂的地方再倒回来找详细使用方法。

记分板(Scoreboard)系统是一套通过命令操纵的复杂游戏机制。主要为地图作者与服务器运营者准备。

它是一个庞大的命令系统,在使用时我总结为3个大分支,分别是:

/scoreboard objectives    记分板任务管理

/scoreboard players        玩家分数管理

/scoreboard teams           队伍系统管理

以上指令无效,但其他的指令都是在此基础上延伸使用的。

这期我讲前两个分支,并在讲的过程中带你制作一个记分板,之后运用它建造一个服务器商店!

它包含4个分支。分别是add,remove,setdisplay和list。

注:接下来的四个命令建议不要在命令方块中使用,因为聊天栏可以更直观的看到命令是否成功正常的被执行!

/scoreboard objectives add <name> <criteria> [display name]

这条命令是用来创建一个新的记分板。

/scoreboard objectives add;不做修改,原样输入;

<name>;创建一个内部名称(不在外部显示,服主或op操作记分板用的名字);

<criteria>;准则(部分论坛翻译为判据,慢慢看 下面讲);

[display name];可选参数,输入一个显示出来的名称,不输入时默认为<name>。

注:所有的参数均区分大小写。name>criteria>display name]

我们来新建一个存档,在聊天栏中输入命令,创建一个用于货币流通的服务器商店记分板,我给它取名为暗币。内部名称为money,之后我们可以通过这个名字来操作此记分板。

/scoreboard objectives add money dummy 暗币

执行成功后会在聊天栏显示:成功地添加了新目标'money' 。

刚刚的准则应该有很多人不懂吧,我先讲一下这个是什么。准则分为简单准则和混合准则。

1.dummy(虚拟型):只能通过命令修改分数。因此可以被用来制作特殊事件的标记、映射和通货。我们的商店就是使用的这种记分板。

2.trigger(触发器):只能通过命令修改分数。以它作为准则的记分板可以被无权限的玩家利用命令/trigger来 设置/增加/减少。如果/trigger命令没有对玩家启用,则使用/trigger命令会失败,并且成功使用过一次此命令后该命令将重新被关闭。注:/trigger命令在作弊被关闭的情况下可以被非管理员的普通玩家使用。

3.deathCount(死亡次数):当玩家死亡时,分数会自动增加。

4.playerKillCount(杀人数量):当玩家杀死其他玩家时分数会自动增加。

5.totalKillCount(杀怪数量):当玩家杀死其他生物时分数会自动增加。

混合准则分为准则本名和次级准则两部分,使用时用英文输入法中的点号来分隔(".")。

因为混合准则包含的种类及其丰富,在此只讲解准则本名,每个准则本名举一个次级准则例子。更多次级准则文章末尾我会贴出原文链接❶,里面有所有可使用的次级准则。有兴趣的小伙伴们可以去看一看!

1.achievement(成就):次级准则是英文成就名,例如一个玩家捡起三块原木,他的 achievement.mineWood 准则会+3。

2.stat(统计):可用次级准则见文章末尾链接❶。例如一个玩家跳跃一次,他的 stat.jump 准则会+1。

3.stat.craftItem(统计.物品合成):次级准则是合成物品或方块的数字ID,只有可合成或可熔炼的方块和物品名才会被接受。例如一个玩家烧制了1组石头,当他从熔炉中拿出石头时,他的 stat.craftItem.minecraft.stone 准则会+64。

注:在工作台点击拿走物品会使数据加1,但是使用shift来拿走只会使数据加2。

4.stat.useItem(统计.使用物品):次级准则是方块或物品的数字ID或英文ID名,大部分方块和物品都被接受,除了某些不存在物品形式的方块。

物品的使用次数会随着玩家使用的方块或物品的次数增加而增加。 "使用" 在下列情况被定义为:

①锹、镐、斧、打火石、剪刀、锄、弓或 剑 会消耗它们的耐久度。 即使没有损耗,使用次数也会增加,例如当它们用于破坏一个火把。 每右击钓鱼竿或萝卜钓竿一次,它们的使用次数就会增加,即使它们没有损耗。当盔甲有损耗时,使用次数不会增加。

②放置下一个方块。

③画, 刷怪蛋, 任何一种 矿车, 物品展示框, 船,末影之眼, 末影珍珠, 鸡蛋, 雪球, 弓, 任何一种可投掷的 药水, 附魔之瓶, 或 钓鱼竿 生成一个实体。

④有两种使用方法的染料之一被正确地使用了。包括可可豆在丛林木头上放置可可果或骨粉被使用于催长植物,例如农作物或草。这个数值在给羊染色时并不增长。

⑤牛奶,药水,或任何食物,及除蛋糕之外可放置的,会被记录。

⑥由空地图,桶,熔岩桶,水桶,牛奶,书与笔,或药水制出新的物品。这个数值当由碗制作出蘑菇煲或一个桶制出牛奶时并不增长。

⑦将一份音乐唱片放入唱片机。每个唱片有一个不同的记分板数值。

然而,这些数值不会在物品用于生物上时增长,不管是命名,驯服,喂养,繁殖,上鞍,套绳,薅毛,挤奶,或通过哞菇取得蘑菇煲;或直接穿上盔甲;或者皮革盔甲经由炼药锅染色。

例如一个玩家放置一块石头之后,他的 stat.useItem.minecraft.stone 准则会+1。

5.stat.breakItem(统计.用坏物品):次级准则是有耐久度的物品ID,当耐久度耗尽时数值增加。例如一个玩家用坏一个石镐后,他的 stat.breakItem.stone_pickaxe 准则会+1。

6.stat.mineBlock(统计.挖掘物品):次级准则为方块的ID或ID名。大多数方块都可接受,不可开采的或技术性方块除外。"挖掘" 定义为玩家能使方块掉落物品的破坏方式,除非方块不会掉落,比如 玻璃,或是会创造出另外一个方块,比如 冰。创造模式下该数值不会增加,且 doTileDrops 为false时也会计数。例如一个玩家挖掉一个石头,他的 stat.mineBlock.minecraft.stone 准则会+1。

7.stat.killEntity(统计.杀死实体):次级准则为实体的名字。在玩家杀死特定的实体时增加。例如一个玩家杀死一个僵尸后,他的 stat.killEntity.Zombie 准则会+1。

8.stat.entityKilledBy(统计.被实体杀死):次级准则为实体的名字。在玩家被特定的实体杀死时增加。例如一个玩家被僵尸杀死之后,他的 stat.entityKilledBy.Zombie 准则会+1。

9和10.killedByTeam(团队被击杀数),teamkill(团队击杀数):次级准则是队伍的颜色。在玩家杀死特定颜色的队伍成员或玩家被特定颜色的队伍成员杀死时增加。

准则终于说完了............

/scoreboard objectives remove <name>

它用来删除记分板系统中目标name的所有有关内容。玩家分数的数据等都会被删除。

name

/scoreboard objectives setdisplay <slot> [objective]

它用来在指定位置显示目标的分数信息。

<slot>;指定记分板显示的位置。

[objective];可选参数,如果填写则名称

可用的<slot>有4类:list,sidebar,sidebar.team.<color>,belowName。

显示名称(display name)

color颜色

显示名称(display name)潜行

/scoreboard objectives list

它可以列出所有存在的目标,以及它们的显示名称与准则。

注:记分板中至少存在一个目标时此命令才会成功。

/scoreboard players setplayerobjectivescoredataTag

/scoreboard players resetplayerobjective

player

例如删除现在money记分板上所有玩家的分数:/scoreboard players reset

/scoreboard players addplayerobjectivecountdataTag

count

例如给money记分板上暗冥夜辰玩家的分数增加1000:/scoreboard players add

/scoreboard players removeplayerobjectivecountdataTag

记分板minmax

/scoreboard players operationtargetNametargetObjectiveoperationselectorobjective

selector>targetName>targetObjective>

"+=" 加法: 把selector的分数加到 targetName的分数上。

"*=" 乘法: 将targetName的分数设为 targetName的分数与 selector分数的乘积。

"/=" 除法: 将targetName的分数设为被selector的分数除后的结果。

"%=" 求余: 将targetName的分数设为被selector的分数除后得到的余数。

"=" 赋值: 把targetName的分数设为 selector的分数。

"<" 取较小值: 较小值设为 targetName的分数。

">" 取较大值: 较大值设为 targetName的分数。

"><" 交换selector与targetName的分数。

selector>objective>

玩家

注意聊天栏内容。

刚刚我们已经学习了记分板如何使用。创建好一个以虚拟值为准则、名字叫暗币、内部名称为name的记分板,并且设置好显示玩家分数的位置。接下来我们利用刚刚讲的命令和一些新命令制作收购物品和卖出物品的命令。

在聊天栏输入:

创建记分板:/scoreboard objectives add money dummy 暗币

设置显示位置:/scoreboard objectives setdisplay list money (显示在列表)

/scoreboard objectives setdisplay sidebar(显示在侧边栏)

获得命令方块:/give @p minecraft:command_block

收购命令

首先放置2个命令方块,命令方块的颜色不要管,设置好后会自动变颜色。需要注意的是箭头的方向。放置命令方块时命令方块的箭头总会指向玩家。你们多放几个就会了~!

7号命令方块中输入命令:/clear @p stone 0 1

并设置命令方块为循环 不受制约 红石控制。(你只要改的对,颜色和样式会和我图上的一样)

这个命令的作用是按下按钮后循环

该命令的原有格式是:/玩家物品数据值最大数量数据标签

8号命令方块中输入:/scoreboard players add @p money 5

并设置命令方块为连锁 条件制约 保持开启(这里有人问为什么不用红石,因为有连锁模式和保持开启功能,更小、更稳定、更灵活(反正就是好,我不管我不管!!))

这个命令方块连锁上一个7号命令方块。每清除玩家背包中的一个石头,这个命令方块就将最近的玩家在money记分板上的分数加5。命令格式见上文。

收购的命令就好了!

真的,你们看我的文章反馈能不能多一点啊!你们的支持才是我的动力!第一次在B站发东西我很虚的啊!......

这个命令是检测最近的玩家在money记分板上的分数是否在-到127的范围内(我卖的是鞍,定价为128)。命令格式见上文。

2号命令方块中输入:/w @p 暗币不足

设为连锁 条件制约 保持开启(条件制约限制只有上一个命令方块执行成功才会执行自己的命令)。

这个命令方块连锁上一个1号命令方块。如果1号命令方块检测到玩家金币不足,则这个命令方块内的命令会被执行。

命令格式:/tell <玩家> <信息…> 或 /msg <玩家> <信息…> 或 /w <玩家> <信息…>

它可以

并设置为连锁 不受制约 保持开启

检测最近的玩家在money记分板上的分数是否在128到的范围内(我卖的是鞍,定价为128)。命令格式见上文。

4号命令方块输入:/scoreboard players remove @p money 128

设为连锁 条件制约 保持开启。

这个命令方块连锁上一个3号命令方块。如果3号命令方块检测到玩家金币足够,则这个命令方块内的命令会扣除最近的玩家在money记分板上的128分。命令格式见上文。

5号命令方块输入:/give @p minecraft:saddle 1

设为连锁 条件制约 保持开启。

这个命令方块连锁3号命令方块。如果玩家金币足够,则给最近的玩家1个鞍。命令格式见第1期。

6号命令方块输入:/w @p 购买成功

设为连锁 条件制约 保持开启(这个命令方块可以删掉,功能没什么大用,写出来你们多学一点)

这个命令方块连锁3号命令方块。交易成功后告诉最近的玩家购买成功。

注:关于服务器商店,每一条代码中的目标选择器变量@p后都可以加目标选择器参数(通过坐标选择目标[x=X,y=Y,z=Z](看不懂的可以看上一期)),可以填对应按钮的精确坐标来防止有人站在旁边偷东西!

~~~~~~~神奇的分割线~~~~~~~

注:有想知道的代码或者好的想法可以在评论区写出来,我会考虑优先出教程哒^_^

我写的比较细,零基础的小白们,看到有不懂的地方欢迎在评论区提问。至于大佬们吧...,欢迎批评哦~

我学习的网站(部分内容出处)❶:

https://minecraft-zh.gamepedia.com/%E8%AE%B0%E5%88%86%E6%9D%BF#.E7.9B.AE.E6.A0.87

谢谢大家的支持!

各位读者大大们觉得喜欢就点一下推荐,也可以关注我看更多Minecraft中的命令 ^_^~~~

  • 上一篇: appium教程 java
  • 下一篇: java时钟设计教程
  • 版权声明


    相关文章:

  • appium教程 java2024-12-19 09:42:00
  • java自动爬虫教程2024-12-19 09:42:00
  • java adt 教程2024-12-19 09:42:00
  • java引号教程2024-12-19 09:42:00
  • java使用教程试卷2024-12-19 09:42:00
  • java时钟设计教程2024-12-19 09:42:00
  • java变量设置教程2024-12-19 09:42:00
  • java编程课教程2024-12-19 09:42:00
  • java基础教程清华2024-12-19 09:42:00
  • java实用教程22024-12-19 09:42:00