传奇天下第一脚本经验与攻击倍数修改位置详解

来源: 作者: 点击:
“天下第一”活动通常由服务端内置脚本控制,其经验倍数和攻击倍数设定不直接写在活动公告中,而是通过变量或配置文件实现。要将当前1.5倍经验改为1.2倍,并移除1.2倍攻击加成,需定位并修改以下关键位置。

一、确认倍数来源类型
首先判断倍数是通过以下哪种方式实现:
全局变量控制(如HUMAN变量);
活动脚本内临时设置(如QFunction中的@OnTimer或@Login事件);
M2Server.ini或!Setup.txt中的固定参数。

多数“天下第一”活动采用第1或第2种方式。

二、查找经验倍数设置点
经验倍数通常由EXP_RATE或GetExpRate相关变量控制。检查以下文件:
QFunction-0.txt:搜索天下第一、EXP、经验等关键词;
RobotManage.txt或AutoRunRobot.txt:若活动由机器人触发;
MapQuest_def目录下的活动专属脚本(如TianXiaDiYi.txt)。

典型代码示例:
[@Login]
if
CHECKVARHUMAN天下第一=1
act
CALCEXP_RATE=1.5

三、查找攻击倍数设置点
攻击倍数一般通过ATTACK、PowerRate或SetAttack类命令实现。常见形式:
ACT
SETATTACKRATE120


CALCVARHUMAN攻击倍数=1.2

该逻辑通常与经验倍数在同一段脚本中,位于[@Login]、[@ReConnection]或定时器事件(如@OnTimer_天下第一)内。

四、具体修改步骤
打开QFunction-0.txt,搜索天下第一或TianXia;
找到类似以下代码块:
if
CHECKVARHUMAN天下第一标志=1
act
CALCEXP_RATE=1.5
SETATTACKRATE120

修改为:
if
CHECKVARHUMAN天下第一标志=1
act
CALCEXP_RATE=1.2
;SETATTACKRATE120←整行注释或删除

若使用变量控制攻击,如:
SET[ATT_RATE]1.2

则直接删除该行或设为1.0。

五、处理动态加载逻辑
部分版本在角色登录时从外部文件加载倍数配置。检查是否存在:
..QuestDiary活动天下第一配置.txt
内容可能为:
[倍数]
经验=1.5
攻击=1.2

此时直接修改该文件:
[倍数]
经验=1.2
攻击=1.0

并在脚本中确保读取逻辑存在,如:
LOADVARHUMAN经验倍数..QuestDiary活动天下第一配置.txt

六、验证修改生效
重启M2服务端;
使用已获得“天下第一”称号的角色登录;
输入命令查看当前经验倍数(如@变量EXP_RATE);
用属性查看器确认攻击数值无额外加成。

注意事项
若倍数由数据库字段控制(如HeroDB中的字段),则需通过GM命令或数据库工具修改;
部分引擎使用SendMsg显示倍数但实际未生效,应以角色打怪获得的经验值为准;
修改后务必测试非活动玩家是否受影响,避免全局倍数被误改。

以上修改仅针对活动期间的临时加成,不影响基础游戏设置。核心在于定位控制“天下第一”状态的脚本入口,并调整对应的数值赋值语句。
[顶部]