英雄等级卷通过物品使用事件触发,核心在于读取卷轴名称中的等级数值并写入英雄经验。脚本需在QFunction.txt的[@UseItemEx]标签下处理,配合自定义变量提取等级参数。
首先确保物品数据库已注册等级卷。在DBaseItemList.txt添加条目,格式为:
5001英雄等级卷-10级000
5002英雄等级卷-20级000
……
物品名称必须包含“英雄等级卷-”前缀,后接具体等级数字。
在QFunction.txt中编写处理逻辑:
[@UseItemEx]
IF
EQUAL英雄等级卷-*
ACT
MOVS0
REPLACESTRS0英雄等级卷-""
REPLACESTRS0"级"""
CALCS1S0*300000
;假设每级需30万经验,按实际经验表调整系数
HEROEXP+S1
DELACTIONITEM
SENDMSG6英雄获得S0级对应经验!
关键指令说明:
REPLACESTR清除名称中的固定字符,仅保留数字;
CALC将等级转换为经验数值(需根据HeroLevelExp.txt实际经验曲线设定倍数);
HEROEXP直接增加英雄经验,系统自动升级;
DELACTIONITEM删除已使用的卷轴。
若需支持任意等级输入,改用对话框模式。在物品描述中添加“右键输入等级”,脚本改为:
[@UseItemEx]
IF
EQUAL通用英雄等级卷
ACT
INPUTSTRING请输入目标英雄等级(1-50)
GOTO@SetHeroLevel
[@SetHeroLevel]
IF
SMALL1
LARGE50
SAY
等级超出范围!
ELSE
CALCS10
CALCS21
;累加1到目标等级所需总经验
WHILES2
LOADVARGS2..HeroExpTableS2.txt
INCS1GS2
INCS21
ENDWHILE
HEROEXP$S1
DELACTIONITEM
此方法需预先在HeroExpTable目录生成每级经验文件(如1.txt内容为“10000”)。测试时先用低等级卷验证经验增长是否触发升级,再检查高数值是否导致溢出。脚本保存后重载服务端生效,物品ID与名称必须严格匹配。
首先确保物品数据库已注册等级卷。在DBaseItemList.txt添加条目,格式为:
5001英雄等级卷-10级000
5002英雄等级卷-20级000
……
物品名称必须包含“英雄等级卷-”前缀,后接具体等级数字。
在QFunction.txt中编写处理逻辑:
[@UseItemEx]
IF
EQUAL英雄等级卷-*
ACT
MOVS0
REPLACESTRS0英雄等级卷-""
REPLACESTRS0"级"""
CALCS1S0*300000
;假设每级需30万经验,按实际经验表调整系数
HEROEXP+S1
DELACTIONITEM
SENDMSG6英雄获得S0级对应经验!
关键指令说明:
REPLACESTR清除名称中的固定字符,仅保留数字;
CALC将等级转换为经验数值(需根据HeroLevelExp.txt实际经验曲线设定倍数);
HEROEXP直接增加英雄经验,系统自动升级;
DELACTIONITEM删除已使用的卷轴。
若需支持任意等级输入,改用对话框模式。在物品描述中添加“右键输入等级”,脚本改为:
[@UseItemEx]
IF
EQUAL通用英雄等级卷
ACT
INPUTSTRING请输入目标英雄等级(1-50)
GOTO@SetHeroLevel
[@SetHeroLevel]
IF
SMALL1
LARGE50
SAY
等级超出范围!
ELSE
CALCS10
CALCS21
;累加1到目标等级所需总经验
WHILES2
LOADVARGS2..HeroExpTableS2.txt
INCS1GS2
INCS21
ENDWHILE
HEROEXP$S1
DELACTIONITEM
此方法需预先在HeroExpTable目录生成每级经验文件(如1.txt内容为“10000”)。测试时先用低等级卷验证经验增长是否触发升级,再检查高数值是否导致溢出。脚本保存后重载服务端生效,物品ID与名称必须严格匹配。

