| 游戏引擎变量说明; 注意:自定义变量不要以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 |