gq表达式目的是用来替代gkoperatevar命令,相较于gkoperatevar命令,可以连续运算,增加逻辑运算等等
基础语法
/gkoperate [变量类型:字符串] [变量名:字符串] [表达式:字符串]
参数释义:
可选参数 | 参数释义 |
[变量类型:string] | world:全局变量 self:实体变量 目前只支持对该对象的var进行操作 |
[变量名:string] | 变量名 |
[表达式:string] | 表达式是一行运算式,建议提前编辑好复制到游戏内,支持四则运算等并且在无“()”干预情况下有优先级,在不被gkrun嵌套情况下可以解析变量,属性等,但是不需要添加$符号,具体请看附录与示例 |
表达式附录:
运算符 | 运算符说明 |
+ | 加法运算 |
– | 减法运算 |
* | 乘法运算 |
/ | 除法运算,在无浮点情况是整除 |
% | 取余 |
** | 幂运算 |
// | 整除 |
and | 与运算,返还布尔值,当左侧运算值的布尔值为True时返回右侧运算值的布尔值,当左侧布尔值为False时直接返回False |
or | 或运算,当左侧为布尔值为False时直接返回右侧布尔值,当左侧为True时直接返回True |
not | 非运算,取反 |
== | 判断是否相等 |
> | 判断左侧是否大于右侧,返还布尔值 |
< | 判断左侧是否小于右侧,返还布尔值 |
>= | 判断左侧是否大于等于右侧,返还布尔值 |
<= | 判断左侧是否小于等于右侧,返还布尔值 |
!= | 判断两侧是否不相等 |
() | 被括号包裹的表达式优先计算 |
示例:
/gkoperate world ab "(2 +1) *5 + 1.7 + self.attr.health"
//world.var.ab的结果为36.7
我们一步步看,首先算括号2+1=3
然后3*5=15
接下来15+1.7=16.7
然后16.7+self.attr.health(也就是20)=36.7
/gkoperate world ab "1 > 2"
//world.var.ab的结果为False
当表达式为真(正确)时,结果为True,反之False
/gkoperate world ab “1>2 and 1<2"
//world.var.ab的结果为False
/gkoperate world ab “1>2 or 1<2"
//world.var.ab的结果为True
//gkoperate world ab “not 1 > 2"
//world.var.ab的结果为True