传奇服务端制作修改教程-4.3变量
变量有效的扩大了脚本的灵活性. 4.3.1已定义变量 P0-P9 私人变量(数字型) 不可保存 G0-G499 全局变量(数字型) 可保存 M0-M99 私人变量(数字型) 不可保存 I0-I99 全局变量(数字型) 不可保存 D0-D9 私人变量(数字型) 不可保存 N0-N99 私人变量(数字型) 不可保存 S0-S99 私人变量(字符型) 不可保存 A0-A499 全局变量(字符型) 可保存 注意:自定义变量不要以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 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 变量运算 除法 格式: DIV N1 N2 N3 即N1=N2/N3 乘法 格式: MUL N1 N2 N3 即N1=N2*N3 百分比 格式: PERCENT N1 N2 N3 即N1=(N2/N3)*100< /STRONG> [@MAIN] #IF #ACT Mov M2 10 MUL N1 M2 <$LEVEL> SENDMSG 1 恭喜∶<$STR(N1)>,获得金刚<$STR(M2)>石锻造附赠品∶<$LEVEL> 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一样 变量的比较 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用法完全一样 equal (变量) (字符串) ;测试变量是不是等于指定字符串(不区分大小写) 4.3.2 自定义变量 自定义变量功能,不再受固定几个变量限制 使用方法: 三个步骤: 1、首先要声明变量 2、读取变量 3、保存变量 该变量支持增加、减少、脚本查看、检查大小等功能,该功能的开发突破了变量使用受限制,利用该变量可制作出超强功能脚本。 脚本样例: ========================================= <声明变量/@newvarInteger> \ <查看变量/@viewvarInteger>\ <读取变量/@loadvarInteger> \ <保存变量/@savevarInteger> \ <增加变量/@calcvarinc> <检查变量是否大于5/@checklarage5>\ <减少变量/@calcvardec> <检查变量是否小于5/@checksmall5>\ <检查变量是否等于5/@checkequal5> [@calcvarinc] #IF #ACT CALCVAR HUMAN QQQQ + 5 goto @varcontrol [@calcvardec] #IF #ACT CALCVAR HUMAN QQQQ - 5 goto @varcontrol [@checkequal5] #IF CHECKVAR HUMAN QQQQ = 5 #ACT sendmsg 7 等于5 goto @varcontrol #ELSEACT sendmsg 7 不等于5 goto @varcontrol [@checklarage5] #IF CHECKVAR HUMAN QQQQ > 5 #ACT sendmsg 7 大于5 goto @varcontrol #ELSEACT sendmsg 7 小于5 goto @varcontrol [@checksmall5] #IF CHECKVAR HUMAN QQQQ < 5 #ACT sendmsg 7 小于5 goto @varcontrol #ELSEACT sendmsg 7 大于5 goto @varcontrol [@decInteger] #ACT DEC QQQQ 1 sendmsg 7 <$HUMAN(QQQQ)> goto @varcontrol [@addInteger] #ACT INC QQQQ 1 sendmsg 7 <$HUMAN(QQQQ)> goto @varcontrol [@loadvarInteger] #IF #ACT LOADVAR HUMAN QQQQ VarSave.txt sendmsg 7 OK GOTO @varcontrol [@savevarInteger] #IF #ACT SAVEVAR HUMAN QQQQ VarSave.txt sendmsg 7 OK GOTO @varcontrol [@viewvarInteger] #ACT sendmsg 7 <$HUMAN(QQQQ)> GOTO @varcontrol [@newvarInteger] #IF #ACT VAR Integer HUMAN QQQQ sendmsg 7 OK GOTO @varcontrol [@viewvarString] <$HUMAN(QQQS)> 4.3.3 人物标志(标识) [001]-[800](各引擎不同标识的上限值不能。IGE的是800个),这不是变量,这是标识 标识的初始值是关闭的,它不会因为人物下线或服务器重启而重置 相关命令格式: Check [001] 0 的意思是检测你的标识[001]是否关闭 SET [001] 1 的意思是设置你的标识[001]为开的状态
|