沙巴克武器店升级武器提示“材料没准备好”通常由七类原因导致。第一类是材料存放位置错误,脚本默认只检测背包内材料,仓库中的黑铁矿、首饰不被计入。需将黑铁矿、首饰、金币全部放入背包,清空背包再提交,关闭仓库界面后重试。部分脚本要求材料必须放在背包前36格内,后12格材料可能无法识别。
第二类是物品名称不匹配,!setup.txt中设置的升级材料名称与物品数据库实际名称不一致。检查!setup.txt中blackstone参数,若设置为“黑铁矿”而数据库内物品名为“黑铁矿石”,则无法识别。需用数据库编辑器打开D:\mirserver\Mud2\DB\StdItems.DB,确认黑铁矿的准确名称,将!setup.txt对应参数改为相同名称。首饰名称也需核对,如“圣战项链”与“圣战项链(战)”可能被视为不同物品。
第三类是材料数量或纯度不足,脚本可能检测总纯度而非单块纯度。黑铁矿总纯度需≥60,若放3块纯度15的矿总纯度仅45,会触发材料不足提示。建议放4块纯度15黑铁或3块纯度20黑铁。首饰数量要求通常为2件同属性,若只放1件绿色项链,系统判定材料不全。部分脚本要求首饰必须满持久,持久度低于上限的首饰不被认可。
第四类是金币不足,升级需要特定金额金币,脚本通过<$UPGRADEWEAPONFEE>变量显示具体数值。若背包金币不足变量设定值,即使材料齐全也会提示准备不足。查看NPC对话中显示的所需金币数,确保背包金币超过该数值。部分版本还需额外支付元宝,需同时检查元宝数量。
第五类是武器状态不符合要求,脚本可能检测武器是否装备在手上、是否为满持久、是否经过普通修理。未装备的武器无法触发升级流程,需先将武器佩戴在主手位置。持久度非满值的武器需用特修恢复至上限,普通修理过的武器可能被标记为“已损坏”状态。部分脚本要求武器等级与人物等级匹配,低等级角色无法升级高等级武器。
第六类是引擎配置与脚本逻辑冲突,HERO引擎的M2与DBSERVER版本不配套可能导致材料检测失效。检查M2是否为英雄版而DBSERVER为普通版,或反之。确保使用的登录器与引擎版本匹配,普通登录器连接英雄区会出现各种异常。在!setup.txt中检查UpgradeWeapon参数组,确认各个材料检测开关是否开启。
第七类是变量检测脚本编写错误,常见于自定义脚本中。检查NPC脚本的@upgrade段落,确认CHECKITEM指令格式正确,如“CHECKITEM 黑铁矿 4”表示检测4块黑铁矿。变量名称大小写需一致,所有脚本变量要求大写,如<GLOBAL>不能写成<Global>。条件判断语句完整,避免IF语句缺少对应的ACT或ELSESAY。
上古结阵提示“没有魔法神石”问题排查需从五个方面入手。第一是物品名称核对,确认背包内物品确为“魔法神石”而非“法力神石”“神石”等其他名称。用数据库编辑器查看StdItems.DB中该物品的Idx编号与Name字段,确保脚本检测名称完全一致。部分版本区分“绑定魔法神石”与“非绑定魔法神石”,脚本可能只检测其中一种。
第二是脚本检测逻辑问题,检查上古结阵NPC脚本的@InjectStone或类似段落。确认CHECKITEM指令格式为“CHECKITEM 魔法神石 1”,数字1表示检测1个。若脚本写为“CHECKITEM 魔法神石”缺少数量参数,可能无法正常检测。部分脚本要求魔法神石放在背包特定位置,如前12格内。
第三是全局变量冲突,上古结阵系统通常使用全局变量记录层数,如<$GLOBAL(上古结阵\结阵层数.txt,Global,CurrentLayer)>。若该变量值已达到上限(通常10层),即使有神石也会拒绝接收。检查QuestDiary\上古结阵\结阵层数.txt文件,若CurrentLayer=10需重置为0或提高上限值。
第四是触发条件未满足,部分脚本设置多重检测条件。如要求人物等级≥40、行会成员、特定时间等附加条件。仔细阅读NPC对话所有选项,查看是否有“结阵条件说明”之类的提示。在QFunction-0.txt中搜索“上古结阵”相关触发,检查是否有前置任务要求。
第五是物品数据异常,魔法神石可能被标记为“不可交易”“不可丢弃”等特殊属性,与脚本检测逻辑冲突。在数据库编辑器中查看魔法神石的Stdmode、Shape、AniCount等字段,确保Stdmode为2(任务物品),Shape为0(普通物品)。若AniCount值异常(如255),可能被识别为已使用状态。
脚本调试具体操作包括打开M2Server的控制台,查看材料检测时的系统提示。当点击“开始升级武器”时,控制台会显示“检测黑铁矿...”“检测首饰...”等调试信息,根据提示定位具体哪个材料未通过检测。在脚本关键位置添加SENDMSG指令,如“#ACT SENDMSG 6 正在检测黑铁矿,当前数量:<$PARAM(1)>”,实时显示检测进度。
数据库修正需使用传奇数据库编辑器,打开StdItems.DB后搜索黑铁矿。确认Name字段为“黑铁矿”,Stdmode为2(矿石类),Shape为0(普通),Weight为1(重量),AniCount为0(无特殊效果)。若发现同名物品有多个记录,删除重复项保留一个正确版本。首饰类物品需检查DC、MC、SC字段,确保攻击、魔法、道术属性值正确。
!setup.txt参数调整涉及找到服务端目录下的!setup.txt文件,搜索“BlackStone”参数。将其值改为数据库中黑铁矿的实际名称,如“BlackStone=黑铁矿”。检查“UpgradeWeapon”相关参数组,包括“UpgradeWeaponFee=500000”(金币费用)、“UpgradeWeaponStoneCount=4”(黑铁数量)、“UpgradeWeaponDuraRate=60”(总纯度要求)。确保这些数值与脚本逻辑匹配。
变量检查重点查看脚本中所有<GLOBAL>、<HUMAN>、<STR>变量。使用文本编辑器的搜索功能,在NPC脚本中查找“CHECKITEM”“TAKE”“GIVE”等指令。确认变量名称前后一致,如<HUMAN(升级次数)>不能在某些地方写成<$HUMAN(升级数)>。检查条件判断语句是否完整,每个IF都应有对应的ACT和ELSESAY。
引擎兼容性处理需确认服务端引擎版本,HERO引擎与GOM引擎的脚本指令存在差异。HERO引擎使用“CHECKITEM”检测物品,GOM引擎可能使用“CheckItem”。若脚本从其他引擎移植而来,需逐条转换指令格式。检查M2Server的版本日期,过旧版本可能不支持某些新脚本功能,需更新至对应版本。
权限设置问题可能导致材料检测失败,检查NPC脚本开头是否有“#IF CheckLevelEx > 0”之类的等级限制。部分脚本设置“#IF ISGUILDMASTER”要求行会会长才能使用。查看脚本中所有条件判断,确保人物满足所有前置要求。如有GM权限限制,需在M2Server的“管理员列表”中添加角色名称。
通过系统排查这些可能原因,能解决绝大多数“材料没准备好”提示问题。重点检查材料存放位置、物品名称一致性、脚本检测逻辑三个核心环节,配合引擎调试信息定位具体故障点,即可恢复正常升级功能。

