引擎变量说明


注意:自定义变量不要以P、G、M、I、D、N、S、A开头
字符型变量使用键值对方式存储,控制5000字符以内(中文2500)

变量 解释
A 字符型全局变量.重启服务器保存.500个(A0 - A499)  存放在Mir200/GlobalVal.ini文件里面
G 数字型全局变量.重启服务器保存.500个(G0 - G499)  存放在Mir200/GlobalVal.ini文件里面
I 数字型全局变量.重启服务器不保存.100个(I0 - I99)
S 字符型个人变量.下线不保存.100个(S0 - S99)
P 数字型个人变量.仅在当前NPC有效.当Close对话时.所有P变量归零.100个(P0 - P99)
D 数字型个人变量.下线不保存.100个(D0 - D99)摇骰子变量
N 数字型个人变量.下线不保存.100个(N0 - N99)
M 数字型个人变量.下线不保存.100个(M0 - M99)切换地图清空
U 数字型个人变量.可保存.255个(U0 - U254)(存放在SQL角色数据库)最大值21亿
T 字符型个人变量.可保存.255个(T0 - T254)(存放在SQL角色数据库)最大长度8000字符串以内
J

数字型个人变量.可保存.每晚自动12点重置,合区或关停服务器请错开00:00点.500个(J0 - J499)(存放在SQL角色数据库)

Z

字符型个人变量.可保存.每晚自动12点重置,合区或关停服务器请错开00:00点.500个(Z0 - Z499)(存放在SQL角色数据库)

B

数字型个人变量.可保存.最高支持19位数,适用大数值操作.100个(B0 - B99)(存放在SQL角色数据库)

个人标记 整数型个人变量可存储型,该变量只有0和1的两种状态


变量特性计算说明:

数字型计算例子(支持公式计算):(G,I,P,D,N,M,U,J)

#IF
#ACT
mov U1 1
inc U1 1
sendmsg 7 <$str(U1)>---------打印结果为U1变量=“2”

 

字符型计算例子(不支持公式计算):(A,S,T,Z)

#IF
#ACT
mov T1 1
inc T1 1
sendmsg 7 <$str(T1)>---------打印结果为T1变量=“11”字符型其他计算方式不要用,会导致变量出问题




A 变量:

类型:
字符型 全局变量
数量:500个 ( A0 - A499 )
保存路径:GlobalVal.ini 
使用方法:
可以使用 Mov 对其进行赋值,也可以用 EQUAL 对他进行检测这个变量全局变量


G 变量:

类型:
数字型 全局变量
数量:500个 ( G0 - G499 )
属性:
保存路径:GlobalVal.ini 
可以使用 Mov 对其进行赋值,也可以用 EQUAL 对他进行检测这个变量全局变量


U 变量:

类型:
字符型 个人变量(数字型,可进行公式计算)
数量:255个 ( U0 - U254 )
保存路径:SQL角色数据库中 
使用方法:
可以使用 Mov 对其进行赋值,也可以用 EQUAL 对他进行检测这个变量个人变量,最大值21亿


T 变量:

类型:
字符型 个人变量(字符型,不可进行公式计算)
数量:255个 ( T0 - T254 )
保存路径:SQL角色数据库中 
使用方法:
可以使用 Mov 对其进行赋值,也可以用 EQUAL 对他进行检测这个变量个人变量,最大长度8000个字节

 


S 变量:

类型:
字符型 个人变量 通用传递 临时变量:下线不保存
数量:
100个 ( S0 - S99 )
属性:
取值范围S0-S99,存放字符型数据!人物下线消失。


 
P 变量:

类型:
数字型 个人变量 NPC内有效果
数量:
100个 ( P0 - P99 )
属性:
该变量只对当前对话NPC内有效果。如果中途点其他NPC或者对话产生close、
关闭时所有P变量均归0。该变量取值范围:(0-65375)
使用方法:该变量没有NPC间传递性作为临时变量多重复使用效果十分好。
而且因为脚本命令有对该变量进行加/减/赋值/随机取值等运算,
他和goto的配合可以使脚本中出现仿for循环的效果。
并且因为他不传递的性质其随机取值也能与RANDOM媲美。


D 变量:

类型:
数字型 个人变量 通用传递 临时变量:下线不保存,摇骰子
数量:
100个 ( D0 - D99 )
属性:
该变量在人物不下线时对全局NPC通用传递该变量取值范围:(0-65375)
人物属性私有的变量,可以像P变量一样的进行各种运算。
使用方法:
唯一不足就是下线后该变量会被清空。
可是如果配合上[000]变量或者namelist变量的记录性。
实在是功能强大的个人隐私属性!



I 变量:

类型:
数字型 全局变量 通用传递 重启服务器不保存
数量:
100个 ( I0 - I99 )
属性:
该变量不属于人物属性范围,对于全服务器内该变量唯一并且全局NPC通用传递
使用方法:
但是需要注意服务器关闭后该变量清空,其他与G变量完全一样
该变量通过任何人的运算均产生效果
这个变量是唯一的一个不属于任何人物而属于服务器的变量,


M 变量:

类型:
数字型 个人变量 通用传递 临时变量:下线不保存(切换地图清空)
数量:
100个 ( M0 -M99 )
属性:
取值范围M0-M99,存放字符型数据!人物下线消失(切换地图清空)。


个人标识变量:

类型:
个人变量 通用传递 下线保存
数量:
800个 ( 000 - 799 )
属性:
该变量只有2种状态:1 和 0!
使用方法:
因为该变量记录性比较强。而且如果产生读写操作时服务器的操作不是很大。
所以作为记录一些人物的下线后需要保留的数据的话作用十分大,
大部分任务时常用到他。该变量值只有1和0的两种状态。

 
举例:
#IF
CHECK [008] 0
#ACT
SET [008] 1
Break

标识不支持表格式常量嵌套如:
check [<$cfg_biaoming(1_1)>] 0
set
[<$cfg_biaoming(1_1)>] 1


P,G,M,I,D,N,S,A变量使用说明

检测相等:EQUAL变量名数值
检测大于:LARGE变量名数值
检测小于:SMALL变量名数值
赋予数值:MOV变量名数值
加上指定数值:INC变量名数值
减去指定数值:DEC变量名数值
变量相加:SUM变量名A变量名B
两个数相除:Div变量A除数B被除数C
两个数相乘:MUL变量A乘数B被乘数C
变量赋予小于指定数值的随机非负数:MOVR数值
把变量转为字符串:<$STR(变量)>


变量是用详细说明:

P,G,M,I,D,N,S,A变量使用方法详细说明

MOV命令使用说明:
增加MOV命令可以 直接在2个变量之间操作 。
假设已经定义自定义字符变量Name和数字型自定义变量TEST
以下是MOV的几种使用方法
MOV HUMAN Name S0 这句的意思就是把S0值 传给自定义变量Name
MOV S0 HUMAN Name 把自定义变量Name值 传给变量S0
MOV S0 你好 把“你好”传给变量S0
MOV HUMAN Name 你好 把“你好”传给自定义变量Name
MOV S0 <$STR(S1)> 把S1值传给S0
MOV D1 1 把1传给变量D1 (这个是最常见的使用方法)
MOV HUMAN TEST D1 把变量D1值传给自定义变量TEST
MOV D1 HUMAN TEST 把自定义变量TEST传给变量D1
MOV HUMAN TEST 1 把1传给自定义变量TEST


EQUAL命令使用说明:
EQUAL可以 直接在2个变量之间操作 。
EQUAL S1 1 检测S1值是否等于数字1值 (这个是最常见的使用方法)
EQUAL S1 小达 检测S1值是否等于字符小达
EQUAL S1 G1 检测S1值是否等于G1.该命令也支持2个变量之间的检测


SMALL和LARGE命令使用说明:
增加SMALL和LARGE命令可以 直接在2个变量之间操作 。
假设已经定义数字型自定义变量TEST
以SMALL为例以下是SMALL的几种使用方法
SMALL D0 1 检测D0值是否小于1值 (这个是最常见的使用方法)
SMALL HUMAN TEST D0 检测自定义变量TEST值是否小于D0值
SMALL D0 HUMAN TEST 检测D0值是否小于自定义变量TEST值
SMALL HUMAN TEST 1 检测自定义变量TEST值是否小于1值
LARGE和SMALL用法完全一样


DEC和INC命令使用说明:


增加DEC和INC命令可以直接在2个变量之间操作 。
假设已经定义自定义数字型自定义变量TEST
以DEC为例,以下是DEC的几种使用方法
DEC D0 1 意思是 D0 = D0 - 1 (这个是最常见的使用方法)
DEC D0 D1 意思是 D0 = D0 - D1
DEC HUMAN TEST D0 意思是 TEST = TEST - D0
DEC D0 HUMAN TEST 意思是 D1 = TEST - D0
INC命令使用和DEC一样


Div命令使用说明:


Div可以直接在2个变量之间操作 。
Div N10 100 2 意思是 N10=100/2 100除于2就等于50.那么N10就等于50拉
Div N10 <$STR(N20)> <$STR(N21)> 意思是 N10=N20/N21

MUL命令使用说明:
MUL可以直接在2个变量之间操作 。
MUL N10 100 2 意思是 N10=100*2 100乘于2就等于200.那么N10就等于200拉.
MUL N10 <$STR(N20)> <$STR(N21)> 意思是 N10=N20*N21

同时修改了脚本参数。目前可以使用
<$STR(变量)>用于任何脚本参数中
同时使用<$STR(变量)>(全局变量、自定义变量和其他系统变量)都可以用于[任何脚本]参数中。

例如:

checkgold <$STR(变量)>
CHECKITEM <$STR(变量)> <$STR(变量)>
changeexp = <$STR(变量)>
changelevel = <$STR(变量)>
CheckOnline <$STR(变量)>
CHECKMAPNAME <$STR(变量)>
TAKE <$STR(变量)> <$STR(变量)>
TAKEW <$STR(变量)> <$STR(变量)>
GIVE <$STR(变量)> <$STR(变量)>

DEC对字符型变量操作命令。
MOV命令做了一些改进。

[@Main]
#ACT
MOV S1 GameOfMir引擎M2
MOV S2 GameOfMir引擎M2
DEC S1 GameOfMir引擎;删除S1中的“GameOfMir引擎”字符串
DEC S2 1 3 ;删除S2中的第1至第3个字符串 这个要注意,一个汉字是2个字节长度,不要删除半个汉字的情况,否则会乱码。

结果 S1=M2
S2=引擎M2