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

GOM引擎传奇隐身术增强与分身术脚本分身召唤异常解决

热度:
GOM引擎传奇中,隐身术效果增强、分身术添加困难及分身召唤异常,核心与引擎技能机制、脚本配置直接相关。分身术因涉及属性继承与状态同步,多数情况需脚本辅助实现学习与召唤;隐身术增强则需结合技能配置与脚本补全效果。本文详解具体操作方案与问题根源。

一、GOM引擎隐身术:效果增强的两种核心方法

GOM引擎隐身术默认效果单一,可通过“Skill.DB参数修改”实现基础增强,配合脚本添加特殊效果(如隐身免伤、破隐反击),两种方式覆盖不同需求。

1.基础增强:Skill.DB修改核心参数

适合提升隐身术持续时间、范围等基础属性,无需脚本,直接修改技能数据库即可,操作前备份Skill.DB(路径:MirServer\Mir200\Envir\Skill.DB)。

1.打开Skill.DB:用DBEditor或Notepad++打开,搜索“隐身术”找到对应技能条目,记录技能ID(如105)。

2.修改核心参数:
持续时间:找到“参数1”,默认值为30(秒),改为60即延长至1分钟,数值越大持续越久。

3.隐身范围:“参数2”控制范围,默认0为仅自身,改为3代表以自身为中心3格内队友同步隐身。

4.等级成长:“参数3”设为5,代表每提升1级技能,持续时间增加5秒,适配技能等级体系。

5.破隐惩罚:“参数4”设为1,代表隐身状态主动攻击时,额外造成10%伤害(GOM引擎专属参数)。

6.保存生效:编码设为ANSI,保存后重启M2Server,技能基础效果立即增强。

2.进阶增强:QFunction脚本添加特殊效果

适合实现“隐身时免伤”“被攻击不破隐”等特殊效果,需在QFunction-0.txt(路径:MirServer\Mir200\Envir\Market_Def)中添加脚本,配合技能触发。

示例1:隐身时获得20%免伤

;隐身术触发免伤脚本,SkillUse后接隐身术技能ID(如105)
[@SkillUse105]
{
#IF
CheckJob3;仅道士生效(职业ID=3,法师隐身术改对应ID)
#ACT
;给玩家添加免伤变量,20代表20%免伤
SetVarHUMAN隐身免伤20
;发送效果提示
SENDMSG1【隐身术】已激活,期间受到伤害降低20%!
;技能持续时间60秒后清除变量(与Skill.DB参数一致)
WAIT60000
SetVarHUMAN隐身免伤0
SENDMSG1【隐身术】效果结束,免伤状态消失!
}

;战斗中检测免伤效果,减少受到的伤害
[@TakeDamage]
{
#IF
CheckVarHUMAN隐身免伤>0
#ACT
;计算减免后伤害,Damage为原始伤害变量
CALCVARDamage=%Damage%*(100-%隐身免伤%)/100
;应用减免后的伤害
SETRESULT%Damage%
}


示例2:隐身状态下被攻击不破隐(限道士)

;被攻击时检测隐身状态,避免破隐
[@BeAttack]
{
#IF
CheckSkill1051;确认玩家已学习1级以上隐身术(ID=105)
CheckVarHUMAN隐身免伤>0;隐身效果存续中
#ACT
;清除破隐判定,GOM引擎专属命令
CancelBreakInvis
SENDMSG1【隐身术】韧性触发,受到攻击未显形!
}


二、GOM分身术:为何只能脚本学习?完整添加方案

GOM引擎自带技能系统对“分身术”支持有限,因分身需关联玩家属性、技能同步等复杂逻辑,直接在Skill.DB添加易出现“学不会”“召唤无反应”,脚本辅助是稳定方案。核心分“技能学习脚本”“分身召唤脚本”两步。

1.分身术添加核心:先明确3个关键参数

参数类型

确认方式

示例值

分身术技能ID

Skill.DB中查询未占用ID,如210

210(自定义)

分身怪物ID

MonItems.DB中添加“分身”怪物,ID设为600

600(与玩家职业匹配)

学习等级限制

根据玩法设定,如45级学习

45级

2.第一步:分身术学习脚本(替代直接添加技能)

通过NPC对话触发学习,避免直接添加技能的冲突,脚本添加至QFunction-0.txt:

;分身术学习脚本,NPC对话触发(如“技能导师”)
[@分身术学习]
{
#IF
CheckLevel>=45;满足等级要求
CheckJob2;仅战士可学(职业ID=2,法师改1,道士改3)
CheckGold100000;消耗10万金币
CheckSkill2100;未学习过分身术(ID=210)
#ACT
;给玩家添加分身术技能(等级1)
AddSkill2101
TakeGold100000
SENDMSG1【学习成功】已掌握分身术,输入@召唤分身即可召唤!
#ELSEACT
CheckLevel<45
SENDMSG1等级不足45级,无法学习分身术!
CheckJob1||CheckJob3
SENDMSG1仅战士可学习此分身术!
CheckSkill2101
SENDMSG1你已掌握分身术,无需重复学习!
}


配套操作:在NPC脚本(如Merchant.txt)中添加对话选项,让玩家触发“@分身术学习”命令。

3.第二步:分身召唤与控制脚本(核心功能实现)

处理分身的召唤、属性继承、跟随等逻辑,解决“召唤无实体”“不跟随”问题,脚本添加至QFunction-0.txt:

;玩家输入@召唤分身触发
[@召唤分身]
{
#IF
CheckSkill2101;已学习1级以上分身术
CheckSummonCount<1;当前无分身(避免多开)
#ACT
;记录玩家当前属性(攻击、防御)
SetVarHUMAN分身攻击<$ATT>
SetVarHUMAN分身防御<$DEF>
;召唤分身怪物(ID=600),固定在玩家身边
MonGen60011<$MAP><$X+1><$Y>
;给分身命名,与玩家关联
ChangeMonName600<$USERNAME>的分身
;让分身继承玩家80%属性
MonSetAttr600ATT%分身攻击%*0.8
MonSetAttr600DEF%分身防御%*0.8
;命令分身跟随玩家
MonFollow600<$USERID>
SENDMSG1【分身召唤】你的分身已出现,将跟随你作战!
#ELSEACT
CheckSummonCount>=1
SENDMSG1你已召唤过分身,分身消失后可再次召唤!
CheckSkill2100
SENDMSG1你未学习分身术,请先前往技能导师处学习!
}

;分身死亡触发提示
[@SummonDie]
{
#IF
CheckMonName*的分身;匹配所有带“的分身”后缀的怪物
#ACT
SENDMSG1你的分身已阵亡,1分钟后可重新召唤!
;1分钟冷却时间(60000毫秒)
SetVarHUMAN分身冷却1
WAIT60000
SetVarHUMAN分身冷却0
}

;冷却时间内禁止召唤
[@召唤分身]
{
#IF
CheckVarHUMAN分身冷却=1
#ACT
SENDMSG1分身处于冷却中,剩余%冷却时间%秒可召唤!
BREAK
}


4.配套Skill.DB与MonItems.DB配置

脚本需基础DB数据支撑,避免分身召唤无实体:

-Skill.DB添加分身术条目:技能ID=210,名称“战士分身”,职业限制=2,类型=“特殊技能”,参数1=600(分身怪物ID),其他参数留空(脚本已覆盖)。

-MonItems.DB添加分身怪物:怪物ID=600,名称“战士分身”,类型=“召唤兽”,血量=5000,攻击=100,防御=50,勾选“可召唤”“可跟随”。

三、分身召唤异常:常见问题与解决办法

分身“招不出来”“召唤后无动作”等问题,多因参数不匹配或脚本逻辑缺失,以下是高频问题解决:

异常现象

核心原因

解决步骤

输入命令无任何反应

1.脚本未添加至QFunction-0.txt;2.脚本编码非ANSI;3.未重启M2

1.确认脚本路径正确;2.用Notepad++转为ANSI编码;3.重启M2Server加载脚本

召唤有动作但无分身实体

1.分身怪物ID=600在MonItems.DB中不存在;2.怪物类型设为“怪物”而非“召唤兽”

1.检查MonItems.DB,确保ID=600的分身怪物存在;2.将怪物类型改为“Summon”

分身不跟随、不攻击

1.未添加MonFollow命令;2.分身归属未绑定玩家ID

1.确认脚本中包含“MonFollow600<$USERID>”;2.检查MonGen命令是否指定玩家当前地图

分身属性与玩家无关

未通过SetVar记录玩家属性,或MonSetAttr命令格式错误

1.补充“SetVarHUMAN分身攻击<$ATT>”等变量记录;2.确认MonSetAttr参数为“怪物ID属性值”

四、GOM引擎特殊配置:避免技能与脚本冲突

GOM引擎对脚本与技能的兼容性要求较高,需调整M2参数确保功能正常:

1.启动M2Server,登录后台,点击“选项”→“功能设置”→“脚本权限”:
勾选“允许召唤兽属性修改”“允许变量操作”

2.将“召唤兽数量限制”设为1(避免多分身)

3.点击“技能设置”→“特殊技能”:
找到分身术(ID=210),勾选“允许技能触发脚本”

4.隐身术(ID=105)中取消“攻击破隐”勾选(如需脚本控制破隐则取消)

5.保存配置,重启M2使设置生效。

五、拓展功能:隐身术与分身术联动效果

结合两种技能设计联动玩法,提升游戏趣味性,示例脚本(添加至QFunction-0.txt):

;隐身时召唤分身,分身同步隐身
[@SkillUse105];隐身术触发(ID=105)
{
#IF
CheckSkill2101;已学习分身术
CheckSummonCount=1;已召唤分身
#ACT
;让分身同步获得隐身效果
MonSkill6001051;给分身添加1级隐身术
SENDMSG1【技能联动】你的分身已同步进入隐身状态!
}

;分身破隐时,玩家获得短暂加速
[@SummonAttack];分身攻击触发
{
#IF
CheckMonName*的分身
CheckVarHUMAN隐身免伤>0
#ACT
;玩家获得10秒加速效果
ChangeSpeed1010000
SENDMSG1【分身破隐】你获得10秒加速,可趁机追击!
}


总结

GOM引擎中,隐身术增强可通过“DB参数修改+脚本拓展”实现,基础属性改Skill.DB,特殊效果靠QFunction脚本;分身术因逻辑复杂,确实需脚本辅助学习与召唤,核心是通过变量记录玩家属性、关联分身归属。分身召唤异常多因参数不匹配,重点检查怪物ID、脚本命令格式及M2权限设置。按“参数确认→DB配置→脚本添加→M2调试”步骤操作,即可实现隐身术增强、分身术稳定添加与召唤,两种技能还可通过脚本联动设计特色玩法。
[顶部]