传奇杀怪经验倍数设置脚本格式与配置方法

来源: 作者: 点击:
在传奇服务端中,杀怪获得的经验倍数可通过全局变量、地图脚本或角色事件动态控制。以下列出常用设置方式及对应脚本格式。

一、全局经验倍数(影响所有玩家)
在 !Setup.txt 文件的 [GameConfig] 段落中直接设定:
[GameConfig]
ExpRate=3.0

该值为浮点数,3.0 表示3倍经验。此设置对全服生效,重启M2后加载。

二、通过QFunction动态设置(按条件生效)
在 QFunction-0.txt 的 [@KillMonster] 事件中使用 CALC EXP_RATE 修改当前经验倍率。例如:
[@KillMonster]
if
equal "冰宫"
act
CALC EXP_RATE = 5.0
SENDMSG 7 你在冰宫获得5倍经验!

注意:EXP_RATE 仅对本次击杀生效,下次打怪需重新赋值。

三、按角色属性设置(如VIP、等级)
在登录或打怪事件中判断角色状态并赋值。示例:
[@KillMonster]
if
CHECKVAR HUMAN VIP等级 > 0
act
CALC EXP_RATE = 4.0

if
CHECKLEVELEX > 50
act
CALC EXP_RATE = * 1.5

先设基础倍数,再叠加等级加成,最终倍数为两者乘积。

四、使用HUMAN变量持久化经验倍率
若需在玩家在线期间保持固定倍率,可在登录时写入变量:
[@Login]
if
CHECKITEM 神秘令牌 1
act
SET HUMAN(经验倍数) 2.5
goto @应用经验

[@应用经验]
act
CALC EXP_RATE =

此后每次打怪前需在 [@KillMonster] 中重新执行 CALC EXP_RATE = ,因系统默认会重置为全局值。

五、地图独立经验倍数(MapQuest机制)
在 MapQuest_def地图名.txt 中添加:
[@Main]
IF
CHECKONLINE
ACT
CALC EXP_RATE = 8.0

角色进入该地图后,后续击杀均按8倍计算,离开地图后失效。

六、组合条件示例(时间+道具)
[@KillMonster]
if
TIME < 12
CHECKITEM 双倍经验卡 1
act
CALC EXP_RATE = 6.0
TAKE 双倍经验卡 1
SENDMSG 6 使用双倍卡,当前6倍经验!
break

if
TIME < 12
act
CALC EXP_RATE = 3.0

上午12点前有卡则6倍,无卡则3倍。

七、注意事项
EXP_RATE 必须在 [@KillMonster] 或其调用的子标签中设置,其他位置无效;
倍数为小数或整数均可,但部分老引擎仅支持整数,建议测试1.5、2.0等值是否生效;
若同时存在 !Setup.txt 全局倍数和脚本倍数,脚本值会覆盖全局值;
使用 SENDMSG 可实时反馈当前倍数,便于调试;
部分版本需在M2Server.ini中启用 EnableExpVar=1 才支持 EXP_RATE 变量。

以上方法覆盖了从静态配置到动态条件触发的全部常见场景,可根据实际需求组合使用。核心原则是:经验倍数必须在怪物死亡事件触发前完成赋值,且每次击杀独立计算。