制作功能时尽量少用自定义变量,使用过多可能会造成保存不及时造成变量丢失!推荐使用键值对功能

 

 

清理自定义私人变量格式:ClearHumCustVar 参数1 参数2
参数1= 支持多个一起清理 |分割
参数2= 0或者为空清理全服 1清理自己

清理自定义全局变量格式:ClearGlobalCustVar 参数1
参数1=自定义全局变量名 支持多个一起清理 |分割


清理自定义行会变量格式:ClearGuildCustVar参数1 参数2
格式:ClearGuildCustVar 行会名字 行会变量名
参数1=* 清理全部 支持多个一起清理 |分割
参数2=自定义行会变量 支持多个一起清理 |分割
注意:参数1、参数2,均为必填

自定义临时变量

功能:扩展字符变量S和数字变量N
格式:无
说明:扩展字符变量S和数字变量N,除了支持0~499以外,可以在S$变量或N$变量后面增加任意字符,人物基础变量不需要加$。


例子:
[@test]
#ACT
MOV S$我的人物名称 <$USERNAME>
SENDMSG 0 <$STR(S$我的人物名称)> 255 253

[@test1]
#ACT
MOV N$我的杀怪总数 100
INC <$STR(N$我的当前杀怪数)> 1
SENDMSG6【杀怪总数=<$STR(N$我的杀怪总数)>】【当前杀怪数=<$STR(N$我的当前杀怪数)>】 255 253

注意:以下的人物基础变量。不需要在S变量或N变量的后加$,当然你也可以加,加上后就属于扩展变量,例如 S1和S$1 这样的2个变量完全是2个不同的变量。

N (私人变量,数字型) 下线不保存.小退归0.
S (私人变量,字符型) 下线不保存.小退归0.

 


老模式自定义变量是存到文本的里面读取的(不支持合区合并,只能本区使用)

后面加 ..\xxxx\xxx.txt 路径的就会写道文本里面,否则就会存到数据库

想要优先读取文本里面的变量,使用LOADVAR(HUMAN、GLOBAL)去读取

如果没有读取文本,引擎会读取数据库里面的变量值


读取文本存的变量值
LOADVAR HUMAN 文本私人数字 ..\QuestDiary\私人变量.txt

操作变量
CALCVAR HUMAN 文本私人数字 + 100

保存变量值到文本路径
SAVEVAR HUMAN 文本私人数字 ..\QuestDiary\私人变量.txt

自定义保存变量

功能说明:
自定义变量功能,不再受固定几个变量限制

使用方法:
自定义个人变量 自定义全局变量 自定义行会变量,变量使用前需要申明变量类型
个人自定义变量保存在数据库时合区自动合并,全局自定义变量合区以主区为主

自定义私人变量运用:
申明整数型私人变量 VAR Integer HUMAN 变量名
检测整数型私人变量 CHECKVAR HUMAN 变量名 ? 大于等于
检测整数型私人变量 CHECKVAR HUMAN 变量名 = 等于
检测整数型私人变量 CHECKVAR HUMAN 变量名 > 大于
检测整数型私人变量 CHECKVAR HUMAN 变量名 < 小于
操作整数型私人变量 CALCVAR HUMAN 变量名 + - = * /
保存整数型私人变量 SAVEVAR HUMAN 变量名

申明字符型私人变量 VAR String HUMAN 变量名
检测字符型私人变量 CHECKVAR HUMAN 变量名 = 等于
操作字符型私人变量 CALCVAR HUMAN 变量名 =
保存字符型私人变量 SAVEVAR HUMAN 变量名
-------------------------------------------------------------------------------------
自定义全局变量运用:
申明整数型全局变量 VAR Integer GLOBAL 变量名
检测整数型全局变量 CHECKVAR GLOBAL 变量名 ? 大于等于
检测整数型全局变量 CHECKVAR GLOBAL 变量名 = 等于
检测整数型全局变量 CHECKVAR GLOBAL 变量名 > 大于
检测整数型全局变量 CHECKVAR GLOBAL 变量名 < 小于
操作整数型全局变量 CALCVAR GLOBAL 变量名 + - = * /
保存整数型全局变量 SAVEVAR GLOBAL 变量名

申明字符型全局变量 VAR String GLOBAL 变量名
检测字符型全局变量 CHECKVAR GLOBAL 变量名 = 等于
操作字符型全局变量 CALCVAR GLOBAL 变量名 =
保存字符型全局变量 SAVEVAR GLOBAL 变量名
-------------------------------------------------------------------------------------
申明字符型行会变量 VAR String GUILD 变量名
申明整数型行会变量 VAR Integer GUILD 变量名 

查看私人变量:<$HUMAN(XXXX)>
查看全局变量:<$GLOBAL(XXXX)>
查看行会变量:<$GUILD(XXXX)>


修改指定行会自定义变量格式:REVGuildVAR 行会名字 行会变量名 + - = * /

保存指定行会自定义变量格式:SAVEGuildVAR 行会名字 行会变量名



;声明全局变量
[@Startup]
#IF
#ACT
VAR Integer GLOBAL 奔跑次数




;申明行会变量(放置QM中)
[@LoadGuild]
#IF
#ACT
VAR Integer GUILD 行会等级




;声明个人变量
QManage.txt
[@Login]
#If
CHECKLEVELEX > 0
#Act
VAR Integer HUMAN 押镖次数

-------------------------------------------------------------------------------------------------------------------------

新自定义变量排序
注册人物排序变量:RegRankVar 参数1:变量名 参数2:排行类型(0-全体,1-仅在线(跨服只支持1-仅在线) 参数3:排序数量(最大100)  参数4:排序方式(0-从大到小,1-从小到大)
说明: 1.只支持数字型个人HUMAN变量(HUMAN 捐献元宝,变量名填 捐献元宝)
      2.变量值改变后获取排序结果会有1秒延时          
      3.建议放到服务端启动触发里Startup,注册一次即可,注册过的变量,可以直接用常量获取名次等(没有声明的变量也可以先注册的)
      4.注册后的变量,单独线程处理的,排序不影响性能

获取排序常量:<$RankVar(变量名,序号(即第几名,从1开始)获取数值类型(1-玩家ID,2-玩家名,3-排序值))>
获取自己的排序常量:<$MyRankVar(变量名,获取数值类型(1-当前玩家的名次,2-当前玩家的变量值))>
注销自定义变量排序:UnRegRankVar 变量名,注销后变量名次常量全部清空


; 人物变量排序例子
[@变量排序]
<Img|move=0|img=public/bg_npc_01.png|loadDelay=1|bg=1|reset=1|show=0>
<Layout|x=545|y=0|width=80|height=80|link=@exit>
<Button|x=546|y=0|nimg=public/1900000510.png|pimg=public/1900000511.png|link=@exit>
<RText|x=10.0|y=18.0|size=18|color=255|text=<1声明变量/@声明变量>     <2捐献元宝/@捐献元宝>    <3注册人物变量排序(放到M2启动触发里)/@注册人物变量排序> \ <3排序注销/@排序注销>  
当前第一名:<$RankVar(捐献元宝,1,2)>--值是【<$RankVar(捐献元宝,1,3)>】\
当前第二名:<$RankVar(捐献元宝,2,2)>--值是【<$RankVar(捐献元宝,2,3)>】\
当前第三名:<$RankVar(捐献元宝,3,2)>--值是【<$RankVar(捐献元宝,3,3)>】\
当前第四名:<$RankVar(捐献元宝,4,2)>--值是【<$RankVar(捐献元宝,4,3)>】\
我的名次:<$MyRankVar(捐献元宝,1)>--值是【<$MyRankVar(捐献元宝,2)>】>
;变量值改变后会有1秒延时刷新

[@声明变量]
#IF
#act
VAR Integer HUMAN 捐献元宝
sendmsg 6 声明变量成功!
 

[@捐献元宝]
#IF
#act
calcvar HUMAN 捐献元宝 + 8
sendmsg 6 捐献元宝是<$HUMAN(捐献元宝)>

[@注册人物变量排序]
#Act
RegRankVar 捐献元宝 0 10 0  
goto @变量排序
;版本里使用时写在[@Startup]启动M2触发里


[@排序注销]
#act
UnRegRankVar 捐献元宝
Sendmsg 6 注销成功
goto @变量排序