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