沙城捐献按钮点了没反应,在自架版本里非常常见。这个功能不是引擎自带的基础功能,而是一套由插件、脚本、UI补丁三部分拼起来的定制系统,任何一环对不上,按钮就是死的。排查的时候别急着改脚本,先搞清楚你的版本到底依赖哪套东西,然后按顺序往下查。
## 先看插件有没有加载
沙城捐献、狂暴之力、顶赞系统这类功能,绝大多数版本都是挂在第三方插件上的,常见的有ESP、SD、PG、鸿盾这几种。插件没加载或者授权失效,捐献功能直接瘫痪。
打开M2Server引擎主面板,看插件加载日志那一栏。如果日志里提示插件文件缺失、加载失败、授权过期,那就是插件的锅。去服务端的 `PlugIn` 目录检查对应的插件文件在不在,完整的话重启引擎重读一遍。有些插件加载成功了但功能默认是关闭状态,需要在插件管理面板里手动把“沙城捐献”的开关勾上,保存后重载插件数据。
如果插件日志里有报错但你不想折腾插件,可以试试在 `Pluglist.txt` 里把对应的插件dll那行去掉,重启引擎看看捐献按钮还拦不拦。但要注意,如果版本本身的脚本用了这个插件的命令,去掉之后M2日志会刷脚本错误,那就得换回插件方案。
## 通区捐献的文件夹路径对不上
这是自架版本翻车率最高的地方。带“通区捐献”的脚本,数据是存在服务端根目录(通常是D盘)的一个独立文件夹里的,不在Mir200里面。
脚本里常见的路径写法是 `..\..\..\..\通区捐献\<$STR(A100)>\当前01区.txt`。在Windows系统里,一个 `..\` 代表上一层目录。你的服务端如果放在 `D:\MirServer`,那么四个 `..\` 就回到了 `D:\` 的根目录,脚本会去 `D:\通区捐献\` 下面找数据文件。
问题就出在这。很多下载来的版本压缩包,解压之后 `通区捐献` 这个文件夹可能没有被放到D盘根目录,或者原作者机器上的路径跟你不一样,脚本读不到文件,按钮点了就没反应。解决办法很简单:打开你的服务端目录,看脚本里写的路径到底是几个 `..\`,算一下它最终指向哪个盘,然后手动在那个盘根目录建一个 `通区捐献` 文件夹。文件夹里面还要有脚本要求的子文件夹,比如以日期或者区服编号命名的目录,以及 `当前01区.txt`、`今日01区.txt` 这类文本文件,缺什么补什么。
## 服务器名字和脚本检测的区名对不上
通区捐献脚本有个固定套路:它会检测当前服务器的名字,来判断你是几区,然后把捐献数据写到对应的文件里。脚本里一般会有 `CheckContainsText <$SERVERNAME> 01区` 或者 `CheckContainsText <$SERVERNAME> 一区` 这样的命令。
如果你架设的时候,服务器名字随便填了个“我的传奇”或者“测试服”,脚本检测不到“01区”或者“一区”这样的关键字,捐献逻辑就直接不往下走了,表现就是按钮点了没反应。
解决办法是打开M2Server的控制台,找到服务器名字设置的地方,把名字改成带区号的形式,比如“01区”或者“一区”。有些版本检测的是“号区”或者“战区”,具体看你脚本里写的是什么。改完名字保存,重新加载引擎。
## 脚本本身的路径和条件有问题
如果插件正常、文件夹也建了,按钮还是没反应,那就得看捐献NPC的脚本了。脚本一般在 `Mir200\Envir\Market_Def` 目录下,文件名可能是“沙城捐献”、“行会捐献”或者类似的。
打开脚本先看 `#IF` 下面的条件判断。有些版本做了限制,比如要求角色转生等级大于0才能捐献。如果你的角色转生是0级,点了按钮脚本直接跳到 `#ELSEACT` 或者 `#SAY`,提示你条件不够,但你如果没仔细看提示,就以为是按钮坏了。还有的脚本会检查行会,没加入行会的号点捐献也是没反应的。
另一个隐蔽的坑是脚本里的 `..\` 路径算错了。比如脚本放在 `Market_Def` 目录下,`..\` 回到 `Envir`,`..\..\` 回到 `Mir200`,`..\..\..\` 回到 `MirServer`,`..\..\..\..\` 才回到D盘。如果原作者写脚本的时候服务端目录结构跟你不一样,路径就偏了。把脚本里所有带 `通区捐献` 的路径拿出来,手动在文件管理器里按那个路径走一遍,看文件到底存不存在。
## 客户端补丁没打对
按钮看得见,但点了没弹窗、没提示、没任何反应,还有一种可能是客户端补丁的问题。服务端逻辑是通的,但客户端没有对应的UI资源来响应点击,或者点击区域跟视觉位置错位了。
检查客户端有没有打全服务端配套的补丁,尤其是UI补丁和功能按钮补丁。有些版本的捐献界面是自定义UI,需要客户端加载特定的PAK文件才能正常显示弹窗。补丁没打,点按钮当然没反应。把服务端配套的完整补丁重新覆盖一遍到客户端目录,覆盖之前先清掉客户端里残留的缓存文件,然后重启客户端。
## 按这个顺序走一遍
先开M2面板看插件加载日志,插件没起来就修插件。插件正常的话,去D盘根目录看 `通区捐献` 文件夹在不在,路径跟脚本里写的对不对得上。然后看M2控制台里服务器名字有没有带“01区”或“一区”这类关键字。这三步做完,大部分捐献按钮的问题就解决了。如果还不行,再打开捐献脚本看 `#IF` 下面的条件限制,以及脚本里 `..\` 路径算出来的最终位置。最后检查客户端补丁。
自己架设传奇沙城捐献按钮不好使的完整排查与修复
来源:
作者:
点击:

