问题出在 DelNameList 命令执行逻辑上。以下是关键原因及解决方案:
⚠️ 原因解析
DelNameList 命令未生效
命令格式应为:DelNameList 文件路径 角色名变量。
您的脚本中缺失了角色名参数:
DelNameList ..\QuestDiary\碧海传奇\会员名单.txt # 缺少角色名变量!
正确写法需补充动态角色名,例如:
DelNameList ..\QuestDiary\碧海传奇\会员名单.txt <$USERNAME>
删除逻辑依赖关系错误
脚本中先执行 DelNameList 删除名单,再执行 DELUSERDATE 删除日期记录。
但若角色名未正确传入,DelNameList 会静默失败(无报错),导致名单残留。
🛠️ 解决方案(两步修复)
✅ 步骤1:修正命令参数
在 DelNameList 后添加 当前角色名的系统变量(如 <USERNAME> 或 <SUSERNAME>):
修改后代码:
DelNameList ..\QuestDiary\碧海传奇\会员名单.txt <$USERNAME>
✅ 步骤2:调整执行顺序
确保先删除日期记录,再移除名单(避免中途出错导致数据不一致):
调整顺序:
DELUSERDATE ..\QuestDiary\碧海传奇\会员日期7天.txt # 先删日期
DelNameList ..\QuestDiary\碧海传奇\会员名单.txt <$USERNAME> # 再删名单
📚 命令详解:DelNameList 的作用
功能:从文本文件中删除指定角色名(每行一个名字)。
典型应用:管理会员名单、封禁列表、特权玩家列表等。
错误示例:
DelNameList XXXX.txt → 缺少参数,系统无法执行删除操作。
正确示例:
DelNameList VIP名单.txt 玩家张三 → 删除该文件中“玩家张三”所在行。
⚠️ 其他注意事项
变量兼容性
不同引擎变量名可能不同(如 <USERNAME>/<STR(S0)>),需根据引擎文档调整。
文件权限问题
检查 会员名单.txt 是否被其他进程占用(如服务器运行时直接修改文本可能导致锁定)。
日志监控
在脚本中添加调试信息,便于追踪执行结果:
#ACT
SENDMSG 6 "尝试从名单中删除:<$USERNAME>" # 发送调试消息
💎 总结
您的脚本问题本质是 参数缺失 和 执行顺序风险。按上述方案修正后,会员到期时将同步清理日期记录和名单文件。若仍无效,建议检查:
1️⃣ 文件路径是否正确(大小写/特殊字符);
2️⃣ 引擎是否支持 <USERNAME> 变量(可替换为 <SUSERNAME> 测试);
3️⃣ 重启服务端使脚本生效。
脚本调试是精细活,一个小参数就能卡住整个流程。建议每次修改后重启服务端验证效果,避免缓存干扰。

