在传奇游戏的服务端维护中,移除假人系统和清理冗余的变量数据是版本迭代或日常维护时的常见需求。很多GM在接手他人版本或进行二次开发时,往往会遇到假人脚本与核心功能耦合过深,或者全局变量(G变量)、字符变量(A变量)残留导致功能异常的问题。这不仅影响服务器的运行效率,还可能导致脚本逻辑冲突。本文将深入剖析如何彻底剥离假人脚本,以及如何精准清理G变量和A变量,确保服务端环境的纯净与稳定。
假人脚本的识别与剥离
假人脚本通常不是单一文件,而是一套复杂的逻辑组合,分布在服务端的多个核心目录中。要彻底删除假人,不能仅仅删除一个NPC,必须从文件结构、脚本调用和触发机制三个维度入手。
首先,定位假人脚本的物理文件。在大多数引擎(如GOM、GEE、996等)中,假人的核心逻辑通常位于Mir200EnvirQuestDiary目录下的特定文件夹内,常见的命名如“假人”、“机器人”或“FakePerson”。此外,Mir200EnvirRobot_def目录下的AutoRunRobot.txt往往包含了假人的定时登录、喊话和活动触发逻辑。Market_Def目录下可能存在假人管理的NPC脚本,允许GM在游戏中控制假人数量。
删除操作的第一步是“断连”。打开QManage.txt(登录脚本)和QFunction.txt(功能脚本),搜索与假人相关的标签或跳转命令。通常会有类似#CALL [假人主脚本.txt]@Main的调用代码。必须将这些调用行注释掉(在行首加分号;)或直接删除,以防止服务器启动时因找不到文件而报错。
接下来是清理AutoRunRobot.txt。在这个文件中,查找包含“假人”、“Bot”或相关变量检测的定时任务。这些任务通常以MIN(分钟)或SEC(秒)为触发单位。将这些行移除,可以阻止假人在后台自动刷新或执行行为。
最后,处理文件实体。在确认脚本调用已清除后,可以直接删除QuestDiary下的假人文件夹以及Robot_def下的相关脚本文件。如果不敢直接删除,建议将其重命名(例如在文件夹后加_bak),观察服务器运行无误后再彻底删除。
G变量与A变量的清理逻辑
G变量(全局数字型)和A变量(全局字符型)是服务器内存中存储全服数据的关键载体。清理这些变量通常是为了重置活动数据、修复刷榜漏洞或清除假人留下的计数。清理操作分为“脚本实时清理”和“文件底层清理”两种方式。
脚本层面的清理
如果你只是想重置某些特定的数值,编写一个简单的GM命令脚本是最快的方法。在QFunction.txt或专门的GM管理脚本中,添加如下逻辑:
[@清理全服变量]
IF
ISADMIN
ACT
RESETG 0 500
RESETA 0 500
SENDMSG 6 全局G变量与A变量(0-500)已重置!
BREAK
这里使用了RESET命令(部分引擎为MOV赋值0),RESETG 0 500表示将G0到G499这500个变量全部归零。同理,RESETA用于清理字符型变量。对于假人系统,它们往往会占用特定的G变量来记录在线数量或活动状态,找到这些特定变量(如G999)进行单独清零,可以瞬间让假人系统“瘫痪”或重置。
底层文件的强制清理
当变量数据出现异常(如乱码、数值溢出)或无法通过脚本修改时,需要直接操作数据库文件。G变量和A变量通常保存在Mir200Envir目录下的GlobalVal.ini或M2Server生成的特定数据文件中。
关闭M2Server程序,使用记事本或专业的INI编辑工具打开GlobalVal.ini。你会看到类似G0=100、A0=Test的键值对。在这里,你可以手动将不需要的变量值删除或修改为0。对于大规模清理,可以直接删除该文件(服务器重启后会自动生成一个新的空文件),但这会清空所有全服数据(如沙城归属、排行榜等),因此务必谨慎操作,建议先备份。
假人残留数据的深度排查
有时候,删除了脚本但假人依然存在,或者变量清理后自动恢复,这通常是因为“假人引擎插件”或“M2内部设置”在起作用。
检查M2Server控制端的“选项”或“功能设置”。许多现代引擎内置了假人系统,无需脚本即可运行。在M2界面中查找“假人设置”、“机器人管理”等选项卡,取消勾选“启用假人”或“允许假人登录”。同时,检查是否有“假人自动填充”的设置,将其关闭。
关于变量,部分假人脚本会使用自定义变量(如I变量、J变量等持久化变量)来保存状态。这些变量可能不会在GlobalVal.ini中显示,而是存储在Mir200EnvirQuestDiary下的独立文本文件中,或者嵌入在Mir.db数据库中。如果在脚本中看到ADDLIST或LOADLIST命令读取假人数据,记得去对应的文本文件(如BotList.txt)中清空内容。
此外,利用CHECKVAR命令检测变量是排查的好方法。在测试服中,编写一个循环检测脚本,遍历G0-G999和A0-A999,将非零或非空的变量名打印出来。这样你就能精准定位哪些变量被假人系统占用,从而进行定向清除,而不是盲目地重置所有数据。
总结
彻底移除假人脚本和清理变量数据,核心在于“断连”与“归零”。通过删除物理文件、切断QManage调用、清除定时任务,可以根除假人逻辑;通过脚本重置命令和底层文件编辑,可以彻底净化G、A变量环境。在执行这些操作前,务必对Mir200文件夹进行完整备份,以防误删关键数据导致服务器无法启动。保持脚本环境的整洁,是维护高质量游戏版本的基础。

