CHANGEPERMISSION 10 是HEROM2引擎中的权限设置指令,用于将当前角色的权限等级修改为10。在多数服务端配置中,权限等级10通常对应最高管理权限(GM),可执行封号、踢人、传送、刷怪等后台命令。该指令本身不构成漏洞,但若被放置在可公开触发的脚本节点中,可能导致普通玩家非法获取高权。
接下来看脚本主体:
[@StdModeFunc202]
IF
isgroupmaster
CheckGroupCount > 1
ACT
GROUPMAPMOVE D717C
SENDMSG 1 [%s]带领队伍进入了天骄地图挑战BOSS
sendcentermsg 0 223 []带领队伍成功进入了天骄地图挑战BOSS. 1 8
此段功能为:当玩家是队伍队长且队伍人数大于1时,整队传送到地图编号为 D717C 的“天骄地图”,并发送系统提示。其中 GROUPMAPMOVE 指令用于队伍集体传送,D717C 为自定义地图标识,需在 MapInfo.txt 中预先定义。
问题核心在于 CHANGEPERMISSION 10 的位置。若该指令位于 [@StdModeFunc202] 节点内或其调用链中(例如在 #ACT 块里),则任何满足组队条件的玩家在触发此功能时都会被赋予权限10。这属于严重逻辑错误,相当于公开开放GM权限。
正确做法应为:移除 CHANGEPERMISSION 10,或将其限制在特定验证条件下(如检测账号是否在AdminList.txt中)。若该指令是误写或测试残留,必须立即删除。
此外,D717C 地图若为高价值副本(如爆率高、有特殊BOSS),应增加额外准入条件,例如:
检查是否持有特定物品(CHECKITEM)
检查角色等级(LEVEL > 50)
检查是否完成前置任务(HAVEQUEST)
否则仅凭组队即可进入,易导致资源滥用或地图拥堵。
脚本末尾的 #ELSEACT 未填写内容,虽不影响运行,但建议补全失败提示,例如:
ELSEACT
SENDMSG 7 队伍人数不足或你不是队长,无法进入天骄地图!
综上,所谓“漏洞”并非引擎缺陷,而是脚本编写不当所致。CHANGEPERMISSION 10 不应出现在面向普通玩家的功能流程中。修复方法是彻底删除该行,或将其移至受严格验证的管理指令分支下。同时建议检查整个Envir目录,排查其他脚本是否存在类似权限赋值语句。
传奇脚本中CHANGEPERMISSION 10与天骄地图进入逻辑解析
来源:
作者:
点击:

