传奇元宝充值脚本解析与排错指南

来源: 作者: 点击:
脚本路径语法与变量含义

1. .. 父目录路径:..\QuestDiary\冲值\500元卡号.txt 表示脚本文件所在目录的上一级目录。假设脚本位于 MirServer\Mir200\Envir\Market_Def\充值NPC.txt,则 ..\ 代表 MirServer\Mir200\Envir\ 目录。最终引擎会读取 MirServer\Mir200\Envir\QuestDiary\冲值\500元卡号.txt 这个文件。若更换服务端后,500元卡号.txt 文件存放的实际路径与 ..\ 指向不符,引擎无法找到文件,必然返回“卡号错误”。
2. <$STR(N8)> 输入变量:<$STR(N8)> 是脚本的文本型变量,表示玩家在 <点这里输入你的充值卡卡号/@@InPutInteger8> 链接中输入的全部内容。N8 是变量编号,<$STR(N8)> 将其内容以字符串形式取出。@@InPutInteger8 中的 8 对应变量号,输入内容会存入 N8 变量。若玩家输入“ABC123456”,则 <$STR(N8)> 值为“ABC123456”。

充值脚本运行逻辑详解

1. 流程分解:
◦ 玩家点击“点这里输入你的充值卡卡号”。

◦ 引擎弹出输入框,将玩家输入的文本(如“ABC123456”)存储到 N8 变量。

◦ 触发 [@InPutInteger8] 段落。

◦ CHECKCODELIST 命令在 ..\QuestDiary\冲值\500元卡号.txt 文件中,逐行匹配 <$STR(N8)> 的字符串。

◦ 若匹配成功,执行 #act 的 CLEARCODELIST 删除该行,并给予元宝。

◦ 若匹配失败,执行 #elsesay 提示“卡号错误”。

2. 卡号文件格式:500元卡号.txt 必须是纯文本文件,每行一个卡号,行末无空格。例如:
ABC123456
DEF789012
若文件为其他格式(如UTF-8 BOM、行末有空格),匹配会失败。CHECKCODELIST 是精确匹配,区分大小写。

服务端更换后常见故障点

1. 路径错误:这是最常见原因。新服务端可能将 500元卡号.txt 放在 QuestDiary\充值\ 目录,而脚本仍指向 ..\QuestDiary\冲值\。“充值”与“冲值”一字之差,或文件夹层级不同,都会导致路径错误。必须核对卡号文件的绝对路径,并修正脚本中的 ..\QuestDiary\冲值\ 为实际路径(如 \QuestDiary\充值\)。
2. 文件编码与空格:打开卡号文件,用Notepad++查看编码,必须为 ANSI 编码。同时检查卡号行前后是否有多余空格,确保为纯净卡号字符串。
3. 变量范围冲突:若新服务端的其他脚本也使用了 N8 变量,可能导致变量被覆盖。可在输入时使用其他未占用的变量,如 N90,将 @@InPutInteger8 改为 @@InPutInteger90,并同步修改后续脚本中的变量引用。

调试与排错步骤

1. 验证文件路径:在M2Server上点击“查看→列表信息→其他设置→管理文本列表”,加载“QuestDiary\冲值\500元卡号.txt”,若能正常加载并显示卡号,证明路径有效。
2. 输出调试信息:在 #act 段落前增加一行:#act SENDMSG 6 你输入的卡号是:<$STR(N8)>,查看玩家输入是否被正确捕获。
3. 简化测试:在 500元卡号.txt 中手动添加一行简单卡号(如“111111”),在游戏内输入“111111”测试。若成功,说明原卡号格式有问题;若失败,证明路径或脚本逻辑有误。

核心修复点:
1. 核对并修正脚本中的卡号文件路径,确保与文件实际存放位置一致。
2. 确认卡号文件为 ANSI 编码,每行一个卡号且无多余字符。
3. 检查变量 N8 是否在其他脚本中被重复使用。