1. 主页
  2. 文档
  3. GQ自定义命令
  4. 自定义功能
  5. gq表达式(预览版)

gq表达式(预览版)

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

我们要如何帮助您?