当前位置 : 145z游戏站 | 传奇3 | 技术教程 | 

单机传奇闪电雷鸣不锁怪只电自身周围修改法

热度:
闪电雷鸣(传奇3系法师技能,部分1.85/合击端把它做进 Magic.DB 当扩展魔法)释放时只在施法者脚下出雷圈打周围,本质是技能在 Magic.DB 里被标成了“自身范围型(EffectType=1 且 ReleaseType/TargetType 指向 SELF)”而不是“指向锁定型”。改法按引擎分两条路,HERO/BLUE/GOM/GEE 通用底层是动 Magic.DB,脚本端是补 QFunction 触发。

一、先定位技能行
进 D:\MirServer\Mud2\DB\Magic.db,用 DBC2000(或 HeroDBEditor)打开,按 MagName 搜“闪电雷鸣”,记下行内 MagID(常见 127,也有端写成 137 或自定义 3001,以你库里实际为准)。

二、Magic.DB 里要动的字段
找到该行后改这几列(字段名各引擎大同小异,对照改):
• EffectType:原值 1(自身范围特效)→ 改 2(指向目标特效)。这一项决定客户端往哪播动画,1 就是原地炸,2 才会朝鼠标锁定的怪播。

• TargetType / ReleaseType(有的库叫 CastType):原值 0 或 1(0=自身周围,1=原地范围)→ 改 2(指向锁定单体/目标点)。

• Range / MagRange:填 5~15,代表锁定检测距离(格)。填 0 会变贴脸才锁,填 15 覆盖常规法师射程。

- AutoTarget:0 改 1,允许技能自动选取范围内最近怪物当目标。
• LockFlag / IsLock(部分库有):0 改 1,开锁定开关。

• Effect:范围半径,如果你想保留“锁怪的同时带小范围溅射”,填 1(3x3)或 2(5x5);想纯单体锁怪填 0。

改完 Ctrl+A 保存,关 DBC。

三、M2 重载(不改这步等于白改)
开 M2Server 控制台 → 控制 → 重新加载 → 魔法数据库(或“重新加载技能数据库”),不用关服。进游戏小退重登,法师对着怪点闪电雷鸣,雷应该落在怪身上而不是自己脚底。

四、GOM/GEE 引擎额外查脚本
如果 DB 改完还是原地炸,八成是技能触发被 QFunction 劫持了。打开 Mir200\Envir\QuestDiary\QFunction-0.txt,搜 MagSelfFunc 或闪电雷鸣的 MagID,看有没有类似段:
[@MagSelfFunc127]
ACT

RangeHarm <MAP> <X> <$Y> 1 伤害值
这种写死 <X> <Y>(施法者坐标)的就会只电周围。改成传递目标坐标:
RangeHarm <MAP> <TARGERX> <$TARGERY> 1 伤害值
或 GOM 直接用自带锁定不必走 RangeHarm,把这段整个删掉/注释,让引擎走 Magic.DB 原生逻辑即可。

五、客户端显示补一句
DB 里 EffectType 改 2 后,客户端 Magic.wzl 必须有对应指向特效帧,否则锁怪逻辑对了但动画还是原地闪。用 Wil 编辑器打开客户端 Data\Magic.wzl,确认雷电术/闪电雷鸣帧序列完整;缺失就从同版本完整端复制 Magic.wzl 覆盖,不然会出现“伤害跳在怪身上但雷光在自己脚下”的错位。

六、常见改了不生效的原因
• 改错库:服务端有两个 Magic.db(Mud2\DB 下和 Mir200\Envir 下 CustomMagic.txt 并存),以 Mud2\DB\Magic.db 为主,CustomMagic.txt 里若重复定义闪电雷鸣会覆盖 DB,需同步改或删 CustomMagic 里的该行。

- 技能是脚本自定义技:有些端闪电雷鸣不是原生 MagID,而是用 GiveSkill 给的“伪技能”,实际触发走 QFunction 的自定义命令,那种只改 DB 没用,必须把 QF 里 RangeHarm 坐标参数从施法者换目标。
- 没重载直接进游戏:M2 不重载魔法库,读的是内存旧值。
• 鼠标没真正锁定:传奇3系法师技能需按住 Shift 或左键点怪锁定后再放,纯空放技能永远走自身中心逻辑,这不是 BUG 是操作规则。

按“DB 改 EffectType=2 + TargetType=2 + AutoTarget=1 → M2 重载魔法库 → 删 QF 里写死施法者坐标的 RangeHarm”这三步走,闪电雷鸣就会锁怪劈过去。
[顶部]