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

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

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

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

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

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

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

IF
CHECKZHUANSHEN>=80
ACT
CALCATTACKMULTIPLY1.5
SAVEUSERDATA

IF
CHECKZHUANSHEN>=110
ACT
CALCATTACKMULTIPLY2.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
CALCATTACKMULTIPLY1.2
SENDMSG7恭喜!已领取转身专属攻击倍数!

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

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

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

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