利用脚本监控经验增长数据,用来识别短时间异常获取经验的行为,整套功能包含定时采集人物经验记录、前后经验差值比对、阈值判定、异常日志存储、GM查询面板,操作前备份Envir目录下定时脚本与NPC脚本,防止语法错误导致引擎定时任务异常。
新建全局定时脚本,设置固定执行周期,每隔一段时间遍历全部在线角色,读取角色当前等级、当前经验数值、角色名称、地图编号、坐标信息,将数据存入临时变量。脚本读取上一次采集保存的经验记录,计算两次采集之间的经验增量,增量超过预设阈值,就标记为疑似异常行为。阈值可以根据版本设定,不同版本打怪经验倍率不同,需要按照正常刷怪的经验上限填写,避免正常玩家被误标记。
脚本区分经验来源,单纯经验数值上涨无法完全判定行为,可增加配套记录,同步抓取角色附近怪物击杀记录、道具使用记录,写入同一条日志。短时间击杀少量怪物却产生巨额经验增量,属于高风险记录;正常打怪逐步获取经验,增量稳定在阈值以内,不会触发标记。脚本只负责记录信息,不自动执行封号、清经验操作,网络延迟、批量任务一次性结算经验容易产生瞬时经验暴涨,自动处罚容易造成误处理。
编写GM专用查询NPC脚本,对话内增加异常经验记录查看选项,仅指定权限角色能够访问。打开面板后分页展示所有疑似记录,包含角色名字、记录时间、前后经验数值、经验差值、所在地图、坐标。增加单条记录详情查看,可查看该角色相邻时间段的多条经验采集记录,用来判断是一次性任务结算还是持续批量获取经验。脚本内增加日志清理功能,只允许高权限账号清理过期日志,防止日志文件持续膨胀占用磁盘。
脚本增加黑名单临时标记功能,GM查看记录确认存在异常之后,可通过NPC将角色加入临时观察名单,后续采集数据会重点标记该角色,每次经验采集都单独写入日志,方便持续跟踪数据变化。观察名单使用人物变量存储,服务端重启之后名单不会丢失。
日志文件统一放在Envir下独立目录,每条记录使用分隔符分开字段,方便后期导出查看。每次采集写入日志时,记录角色等级,等级提升时同步记录升级时间,快速定位短时间连续升级的账号。脚本增加过滤规则,任务一次性发放大量经验的场景,可在脚本添加白名单,白名单内角色执行任务发放经验不会触发异常标记。
在Merchant.txt注册GM查询NPC,填写NPC名称、地图编号、坐标以及脚本文件路径,保存文件重载NPC。开启M2日志输出,测试定时采集脚本是否按时执行,查看日志内是否正常写入玩家经验数据。使用测试账号模拟正常打怪获取经验,确认不会触发异常标记;再模拟短时间大量经验增长,核对脚本生成疑似记录。
常见故障排查,定时脚本没有采集玩家经验,优先核对全局定时任务注册文件,检查定时脚本的执行周期单位;经验差值计算错误,检查变量存储逻辑,上一轮经验数据没有保存,差值计算会出现负数;GM面板读取日志乱码,检查日志文件换行符,换行格式错误会造成单条记录跨多行。
使用这套脚本做核查,需要配合M2自带的日志系统,查看角色获得经验对应的来源记录,确认经验获取方式。日常维护时定期导出日志,筛选高增量记录人工复核。阈值参数可以根据版本不断微调,版本更新经验倍率之后,同步修改脚本内经验阈值。整套脚本调试完成后,备份定时采集脚本、GM查询NPC脚本,后续修改采集周期和阈值参数,直接使用备份文件进行比对。
传奇脚本监控玩家刷经验异常行为检测与日志核查功能编写教程
来源:
作者:
点击:

