天才一秒记住【第一中文网】地址:www.dyzww.cc
(注意:这一章很烧脑,建议在空闲时间大脑容量充足时阅读,最好阅读时在游戏内实地操作)
我们知道,记分板中所计入的玩家分数都是变量。既然是变量,那么多个变量是否可以互相运算呢?
答案当然是可以。mojang也为这个运算功能单独提供了一个子命令:operation(操作)
operation的格式如下:
\/scoreboard players operation <被跟踪的玩家或非玩家A:目标选择器><计分项a><计算方式><被跟踪的玩家或非玩家b:目标选择器><计分项b>
看着是不是有点迷糊?简单来说,使用operation子命令的具体运算过程是这样的:
第一步:使用目标选择器指定目标A
第二步:指定计分项甲
(上面两步相当于将目标 A在计分项甲中的分数作为输入a。比如,假设目标A是张三,计分项甲是dummy型的“违法次数”,张三的违法次数是12,那么输入a的值就是张三的违法次数的值,即a=12。)
第三步:指定计算方式(或者说是指定操作)
第四步:使用目标选择器指定目标b
第五步:指定计分项乙
(上面的四、五步和一、二步同理,将目标 b在计分项乙中的分数作为输入b)
第六步:将输入a和输入b两个量按照指定的操作进行运算。
第七步:按照指定的操作更改输入a的和输入b的值。(大部分操作只会更改输入a的值,即把运算得出的值覆盖原本输入a的值)
举一个简单的例子:
\/scoreboard players operation 张三 gold +=李四 gold
假设张三在gold计分项中的分数是1,李四也一样。那么这串指令运行过后张三在gold计分项中的分数将会变成2(1+1),但李四的分数还是1。
这个例子中,采用的操作(运算方式)是+=,即“求和”。具体是将输入a(张三的gold分数)和输入b(李四的gold分数)相加,得到结果c,并将结果c的值覆盖原本输入a的值。也就是说,这个“求和”是这么算的:
输入a =结果c =输入a +输入b
(注意,这不是正常的数学等式。在这里有一个运算的时间先后。即最左边的输入a是运算完成时的输入a,并不等于最右边刚开始运算时“输入a+输入b”中的输入a,两者是一新一旧,不能将它们认为是同一个“输入a”)
操作不止有求和(+=),它一共有九种:
(注:“??”指向下取整。如?3.12?=3,?-4.82?=-5)
+=——求和
-=——求差(输入a =结果c =输入a -输入b)
(如:2 -= 1 ,结果就是2-1=1)
*=——求积(输入a =结果c =输入a x输入b)
(如:2 *= 3,结果就是2x3=6)
\/=——求商(输入a =结果c =?输入a ÷输入b?)
(如:24 \/= 12,结果就是24÷12=2;17 \/= 13,结果就是?17÷13?=1)
%=——求余(输入a =结果c =输入a mod 输入b =输入a -?输入a ÷输入b?x输入b。简单点的说法就是:输入a =(输入a ÷输入b)的余数)
[注:Java1.13.1版本更新中,%=的内部代码运
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!