您当前的位置:首页 > 传世技术

传世超级编写经验段的脚本

本文出处:网游动力作者:本站发布时间:2010-03-24阅读次数:

我们常在版本中遇到一些经验段的脚本,例如100级升级到101级,需要5个经验段,类似的脚本,我列出一个常见的写法

我们一般见到的版本都是用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,所需要的经验段)