传奇单机技能升级NPC脚本报错解决方法与CHECKSKILL命令详解

来源: 作者: 点击:
`checkskill 攻杀剑法 = 1` 这行报错的原因不在语法,而在技能名称写错了。传奇引擎中战士的基础技能叫“攻杀剑术”,不是“攻杀剑法”,名称一字之差,引擎找不到对应的技能数据,就会直接报错。下面把CHECKSKILL命令的完整用法、你脚本里的其他问题以及一个可运行的修正版本拆开来讲。


CHECKSKILL命令的正确格式

CHECKSKILL是检测人物技能等级的核心命令,标准格式是:`CHECKSKILL 技能名称 检测符(=,>,<) 等级 是否检测强化技能`。

第四个参数“是否检测强化技能”是最容易被忽略的地方。填0或不填,检测的是普通技能等级;填1,检测的是强化技能等级。大部分技能升级NPC脚本操作的是普通技能等级,这个参数留空即可,引擎会按普通技能处理。

举个正确写法:检测攻杀剑术是否达到1级,写成 `CHECKSKILL 攻杀剑术 = 1`。如果要检测冰咆哮的强化等级是否达到1重,则写成 `CHECKSKILL 冰咆哮 = 0 1`,配合 `SKILLLEVEL 冰咆哮 = 1 1` 来提升强化等级。

你的脚本里把技能名写成了“攻杀剑法”,引擎在技能数据库里匹配不到这个名称,报错是必然的。


你脚本中的其他几个问题

第一个问题是逻辑不自洽。`#IF` 里写的是 `checkskill 攻杀剑法 = 1`,检测的是1级,但 `#elseact` 里的提示信息写的是“你的攻杀剑术没有3级”。检测条件和提示内容对不上,玩家就算技能到了3级,如果检测写的是等于1级,条件依然不满足。应该根据实际需求统一检测等级和提示文案。

第二个问题是金币检测提示写错了。`#IF` 里写的是 `checkgold 100000`,检测的是10万金币,但 `#elseact` 里提示“没有100W金币”,多写了一个零。这不影响脚本运行,但玩家看到的提示信息是错的。

第三个问题是 `#say` 的位置。`#act` 段执行完之后,`#say` 出现在 `#act` 和 `#elseact` 之间,结构不够清晰。标准的写法是把 `#say` 放在 `#act` 段之前,或者用 `SENDMSG` 在 `#act` 段内发送提示信息。


修正后的完整脚本

```
[@main]
①:强化技能
<强化攻杀剑术/@jineng1>

[@jineng1]
#if
CHECKSKILL 攻杀剑术 = 1
CHECKGOLD 100000
#act
TAKE 金币 100000
SKILLLEVEL 攻杀剑术 + 1
SENDMSG 6 攻杀剑术已提升1级,消耗10万金币
#elseact
MESSAGEBOX 你的攻杀剑术未达到1级,或者金币不足10万
```

如果目标是把攻杀剑术从1级升到2级,检测条件改为 `CHECKSKILL 攻杀剑术 = 1`,执行 `SKILLLEVEL 攻杀剑术 + 1` 即可。如果目标是升到3级,检测条件改为 `CHECKSKILL 攻杀剑术 = 2`,执行 `SKILLLEVEL 攻杀剑术 = 3`。


技能名称的准确性是关键

传奇各引擎中技能名称必须和数据库里的完全一致,包括字数。战士的常见技能标准名称是:基本剑术、攻杀剑术、刺杀剑术、半月弯刀、烈火剑法、野蛮冲撞、狮子吼、逐日剑法、开天斩。

“攻杀剑术”四个字不能简写成“攻杀”,“烈火剑法”不能写成“烈火”,“刺杀剑术”不能写成“刺杀”。多一个字少一个字,引擎都匹配不到。如果你不确定某个技能在服务端数据库里的准确名称,打开服务端Mud2\DB目录下的Magic.DB文件,用DBC2000查看技能列表,第一列就是引擎识别的技能名称。


常见报错排查

如果换了名称之后还是报错,按这个顺序检查。检查脚本文件的编码格式,用记事本打开脚本,另存为时选择ANSI编码,UTF-8编码在部分引擎中会导致脚本加载失败。检查M2引擎的脚本错误日志,位置在MirServer\Mir200\Log\ScriptError.log,日志会显示具体的报错行号和错误描述。检查 `#if` 和 `#act` 之间有没有多余的空格或制表符,部分引擎对缩进敏感。

如果 `SKILLLEVEL 攻杀剑术 + 1` 执行后技能等级没变化,检查技能名称在Magic.DB中的写法是否和脚本中完全一致,同时确认执行脚本的角色职业是战士。SKILLLEVEL调整技能等级时,引擎会校验角色职业是否匹配该技能,战士以外的职业执行攻杀剑术的升级命令会静默失败。


145z.com相关资源

标题:传奇脚本功能:脚本调整技能等级
链接:http://www.145z.com/html/rexuechuanqi/jishujiaocheng/7446.html

标题:传奇上线送技能脚本及技能连接脚本编写全指南
链接:http://www.145z.com/html/rexuechuanqi/jishujiaocheng/7004.html

标题:LegendM2传奇引擎版本检查等级脚本
链接:http://www.145z.com/html/rexuechuanqi/jishujiaocheng/6913.html