传奇版本添加转身领取永久攻击倍数脚本设置方法

来源: 作者: 点击:
在自定义传奇版本中实现角色转身时领取永久攻击倍数,需通过修改NPC脚本与登录事件联动。核心逻辑为:检测玩家是否达到指定转身等级,若满足条件则赋予攻击倍数属性,并确保该属性在角色数据中持久保存。

首先,在游戏服务端的“登陆脚本”目录下新建一个文本文件,例如命名为 zhuanshen_att.txt。该文件用于存储转身等级与对应攻击倍数的映射关系。内容格式如下:
50 1.2
80 1.5
110 2.0

每行表示达到某转身等级后可获得的攻击倍数,数值为浮点型,支持小数。

其次,在QM(Quest Master)主配置文件中注册该脚本。找到 QM.ini 或 QM.txt 文件,在 [LoginScript] 段落末尾添加一行:
zhuanshen_att.txt

此举确保每次角色登录时自动执行该脚本逻辑。

脚本内部需调用服务端内置函数读取角色当前转身等级,并匹配对应倍数。以标准Mir引擎语法为例,zhuanshen_att.txt 内容如下:
; 转身攻击倍数发放
IF
CHECKZHUANSHEN >= 50
ACT
CALCATTACKMULTIPLY 1.2
SAVEUSERDATA

IF
CHECKZHUANSHEN >= 80
ACT
CALCATTACKMULTIPLY 1.5
SAVEUSERDATA

IF
CHECKZHUANSHEN >= 110
ACT
CALCATTACKMULTIPLY 2.0
SAVEUSERATA

其中 CHECKZHUANSHEN 为引擎提供的转身等级检测命令,CALCATTACKMULTIPLY 用于设置攻击倍数(需确认所用引擎是否支持该指令,部分版本使用 SETATTACK 或 MODIFYATT)。SAVEUSERDATA 确保属性写入角色数据库,实现永久生效。

若需通过NPC手动领取,可在原有转身NPC脚本中嵌入判断逻辑。例如在 NPC 脚本文件(如 zhuan_shen_npc.txt)的奖励发放段落加入:
[@Main]
IF
CHECKZHUANSHEN > 0
ACT
GOTO @GiveAttackBonus

[@GiveAttackBonus]
IF
CHECKITEMATTACKMULTIPLY < 1.2
ACT
CALCATTACKMULTIPLY 1.2
SENDMSG 7 恭喜!已领取转身专属攻击倍数!

此处 CHECKITEMATTACKMULTIPLY 用于防止重复领取,具体变量名依引擎而定。部分版本需通过自定义变量(如 HUMAN_ATTACK_MULTI)记录状态,并在登录脚本中同步加载。

攻击倍数的实际生效依赖于服务端战斗计算模块。若发现倍数未作用于伤害输出,需检查 MonsterAI 或 DamageCalc 相关源码,确认是否读取了角色的 AttackMultiply 属性。

测试时创建新角色,完成转身任务后重新登录,观察属性面板或使用 GM 命令查看攻击值变化。若倍数未更新,检查 QM 文件是否正确引用脚本、脚本路径是否在 LoginScript 目录、以及服务端是否重启加载配置。

此方案无需修改客户端,所有逻辑在服务端完成,兼容多数基于 Mir2/Mir3 引擎的自定义版本。通过分离配置与逻辑,便于后续调整倍数数值或新增转身阶段。