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

