QFUN里的升级触发标签 [@PLAYLEVELUP] 来触发主体或者元神,例如
[@PLAYLEVELUP]
#IF
CHECKLEVELEX = 69
;检测如果等级69级,则触发下面的经验段
#ACT
goto @升级69级
break
[@升级69级]
#IF
CHECKVAR HUMAN DJSJ < 2
;检测经验段是否小于2
#ACT
CHANGELEVEL – 1
CALCVAR HUMAN DJSJ + 1
SAVEVAR HUMAN DJSJ ..\QuestDiary\数据文件\DJSJSave.txt
;小于2则增加经验段,并扣掉所升的等级
SENDMSG 5 经验段获得+1,目前段位为:<$HUMAN(DJSJ)>段,升级69级需要3个经验段
#ELSEACT
;如果大于或者等于2,就是上面的检测不满足,则不扣等级,执行下面脚本
LCVAR HUMAN DJSJ = 0
SAVEVAR HUMAN DJSJ ..\QuestDiary\数据文件\DJSJSave.txt
SENDMSG 7 恭喜你升级到<$LEVEL>级了
break
以上脚本,只是仅仅69级升级到70级,来触发经验段的脚本,如果,69级到100级,甚至更高的级别,都需要经验段,那么你要意味着写N多脚本,是个非常庞大的工程,今天我教大家一个非常简便的方法
贴脚本如下:
#IF
CHECKLEVELEX > 69
#ACT
MOV M30 $LEVEL
DEC M30 69
;如果以69级触发经验段,我就以69级为起点,看下面注释
RandomStr ..\QuestDiary\保存信息\等级经验.txt S171 $STR(M30)
;读取以69级为起点的行数,如果自己的等级为69级,那么就读取了第一行,我们需要设置一个文本,在上面的命令指定的目录下,具体文本类型,看下面
GETVALIDSTR $STR(S171) | S172 S171
;将读取的内容,以|为分割,前面为保存到S172变量,后面保存到S171
GOTO @两个经验段
BREAK
;下面的脚本和上面的意思一样,但是我们设置的等级经验.TXT 格式如下
[@两个经验段]
#IF
CHECKVAR HUMAN 经验段 < $STR(S171)
#ACT
CHANGELEVEL – 1
CALCVAR HUMAN 经验段 + 1
SAVEVAR HUMAN 经验段 ..\QuestDiary\数据文件\个人变量.txt
SENDMSG 5 恭喜您升级,服务器200级后设置经验段,目前您有:<$HUMAN(经验段)>经验段,升至下一级需要<$STR(S171)>个经验段
BREAK
#ELSEACT
CALCVAR HUMAN 经验段 = 0
SAVEVAR HUMAN 经验段 ..\QuestDiary\数据文件\个人变量.txt
SENDMSG 7 恭喜你升级到<$LEVEL>级了
break
等级经验.TXT 格式是
等级 经验段
69|1
70|2
71|3
72|4
这样规定的等级读取的指定的行数,达到了一个脚本实现不同等级的经验段
例如我72级,触发脚本后,赋值M30 为72,也就是自己的等级,然后DEC M30 69
那么M30的值就为 72 -69 =3
接着
RandomStr ..\QuestDiary\保存信息\等级经验.txt S171 $STR(M30)
读取第三行,RENDOMSTR 读取的行数,从0开始,那么相当于读取文本内的第4行
S171变量就等于以下内容
72|4
接着
GETVALIDSTR $STR(S171) | S172 S171
将171变量 前面保存到172(也就是72)
后面保存到171(也就是4,所需要的经验段)