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

古剑迷失传奇摆摊卡无敌机制解析:QFunction脚本触发与GOM漏洞实操

热度:
古剑迷失这类迷失版本里说的“摆摊卡无敌”,分两种情形:一种是GM/服主在服务端脚本里给摆摊加了免疫伤害状态;另一种是版本脚本写漏了判定,被玩家利用弹窗时序在非安全区摆摊+大退,卡出脱离怪物伤害判定的状态。下面按实际文件位置和触发逻辑拆开说。

一、正常摆摊无敌的服务端实现(服主侧脚本)
迷失版多数基于GOM/GEE/HERO引擎,摆摊触发写在:
D:\MirServer\Mir200\Envir\Market_Def\QFunction-0.txt
核心标签是[@ShopStall]或[@StartMyShop]、[@OnStallStart]。

1.GOM/GEE引擎标准写法
[@ShopStall]
IF

INSAFEZONE
ELSEACT

MESSAGEBOX需要在安全区才能摆摊
BREAK
IF

CHECKSHOPSTALLSTATUS
ACT

MESSAGEBOX你是否确认要停止摆摊@停止摆摊
ELSEACT

MESSAGEBOX你是否确认要开始摆摊@确定开始

[@确定开始]
IF

ISDUPMODE
SAY

请找一个空位置,不能与别人站在一起。
ACT

BREAK
IF

ACT

SHOPSTALL
ChangeModeEx10
SENDMSG6摆摊期间进入无敌状态

[@停止摆摊]
IF

ACT

SHOPSTALL
ChangeModeEx0
SENDMSG6摆摊取消,无敌解除

ChangeModeEx10含义:1=无敌标识,0=持续到取消摆摊或手动解除;若写ChangeModeEx1300就是仅300秒。

2.GEE引擎替代命令
[@OnStallStart]
ACT

SetImmunity1000000000
SENDMSG5摆摊已开启,自动进入无敌状态
[@OnStallEnd]
ACT

SetImmunity0000000000
SENDMSG5摆摊已取消,无敌状态已解除

3.HERO引擎写法
用SetStatus或SETINVINCIBLE1开启,停止摆摊时SETINVINCIBLE0关闭。

4.地图层兜底
改MapInfo.txt,给摆摊专图加:
[GA0摆摊专用地图]SAFENORECALLALLOWUSEMYSHOP
进图即安全区,所有怪物不锁仇恨、不掉血,重启M2生效。

二、玩家侧“卡无敌”漏洞时序(古剑迷失常见脚本缺陷)
当QFunction-0.txt里的[@ShopStall]只做了INSAFEZONE判断,但确认摆摊的MESSAGEBOX和SHOPSTALL执行之间存在时序窗口,就能卡:

操作步骤:
1.角色A站在安全区,点摆摊→弹出“你是否确认要开始摆摊@确定开始”
2.不要点确定,让角色B把A推出安全区(免Shift追杀或组队牵引,视版本判定)
3.A在安全区外点“确定开始”→SHOPSTALL执行成功,A在非安全区进入摆摊
4.直接大退客户端→再上线时部分GOM编译端会保留OFFLINEPLAY/CHANGEMODE21的离线挂机标记,表现为非安全区也不被怪物打,即“卡无敌”
根源在脚本里这段:
[@PlayOffline]
IF

CHECKLEVELEX>1
ACT

MOVRP2323338
MOVRP3324339
MAPMOVE3
CHANGEMODE21
OFFLINEPLAY1440
没在摆摊开始/结束处严格回滚CHANGEMODE和离线标记。

修复办法(服主):
•[@确定开始]里再加一层#IFINSAFEZONE#ELSEACTBREAK,确认框点下时也校验位置

•[@停止摆摊]和角色下线触发里强制CHANGEMODE20、ChangeModeEx0、OFFLINEPLAY0

-M2→选项→人物状态→取消“摆摊继承离线模式”

三、古剑迷失玩家实操摆摊不卡的常规流程
1.进土城/新手安全区,背包放非绑定装备、元宝足够
2.快捷键或NPC“个人商店”→开始摆摊
3.拖物品进摊位格,标价(元宝/金币按版本StallPriceUnit)
4.摆摊成功左上角出摊位名,此时若服务端写了ChangeModeEx10就显示无敌保护
5.离线摆摊时限到了或手动收摊→无敌自动清
非安全区点摆摊被拒提示“需要在安全区才能摆摊”属正常,不是BUG。

四、常见异常对照
•摆摊被小怪秒→QFunction-0.txt没写ChangeModeEx/SetImmunity,或引擎命令不匹配(GOM用ChangeModeEx,HERO用SetStatus)

-收摊后还能免伤→停止摆摊段漏了ChangeModeEx0,重启M2仍残留,需清人物状态变量
•非安全区也能摆+大退无敌→上面时序漏洞,改脚本校验位置

•摆摊按钮灰→地图没ALLOWUSEMYSHOP、等级不够、背包绑定物未解绑

服务端改完QFunction-0.txt后,M2控制台点“重载脚本”或重启M2Server生效;客户端无操作权限,纯玩家只能按服内规则走安全区摆摊。
[顶部]