以前用的火鸟传奇3引擎,在NPC处买东西,都是批量购买,所有买卖NPC都是一样的界面,换成996传奇3引擎,我看很多服都没批量购买了, 买东西,要找不同的NPC,跑着麻烦。但996引擎用txt脚本写批量购买有点麻烦。LUA又不会,但今天遇到一个AI工具,是专门给996传奇写LUA脚本的,一试真不错,对于新手来说,方便啊。

对话流程



与原TXT脚本的差异说明
| TXT原功能 | Lua实现方式 |
|---|---|
@goumaiys1() 直接买1个 | 按钮链接 @onBuy,直接扣金币给物品 |
@@goumaiys5() 输入1~5个 | 点击"选购" → 跳转数量选择页,显示1~5的按钮 |
@@goumaiys50() 输入1~50个 | 同上,显示1~50的按钮(10个一行) |
@@goumaiys999() 输入1~999个 | 同上,显示1~999的按钮 |
CHECKWEIGHT 检测负重 | 脚本里只检测背包空格(getbagblank),负重检测可再加 |
checkgold 检测金币 | 用 querymoney(actor, 0) 检测金币数量 |
| 货币ID 0=金币 | changemoney(actor, 0, "-", 数量, 备注, true) 扣金币 |
使用前必改:所有道具名称请按你 StdItems.DB 中的实际名字调整 ShopCfg.lua 的 item 字段。
上面的批量购买脚本存在下面的问题,修改一下
1、点购买提示没有金币,是不是没用996的检测和扣金币的形式。
2、回城卷类增加100,200,500的量,药水类把999改成1000,增加2000的量
3、直接点击物品名字购买,不用专门弄一个购买的按钮。同时把一行弄二个物品,减少翻页
4、引擎直接重新加载NPC无报错,重启引擎有报错,如下,提示我是把二个文件放在lua目录的,所以目录跟你的不对应
[2026-06-08 16:11:09] [脚本错误2]:2, 药中\『药店』,,调用函数(@main)时出错: ...erver30401\Mir200\Envir\QuestDiary\lua\ShopMain.lua:61: attempt to index a nil value (upvalue 'shopCfg'), @main
[2026-06-08 16:11:10] [脚本错误2]:2, 药中\『药店』,,调用函数(@main)时出错: ...erver30401\Mir200\Envir\QuestDiary\lua\ShopMain.lua:61: attempt to index a nil value (upvalue 'shopCfg'), @main
1、把UI上显示的分类三个职业的书籍弄成一个就叫书籍类,点进书籍类后,二级子分类再显示战士书籍,法师书籍,道士书籍,在其它分类看不到二级子分类。书籍类每行显示三个物品,其它的显示二条。
2、多少金,改成金币。可以点击的字(现在是白色)改成黄色,点击后(现在是黄色)改成红色,多少金币类不能点击的字改成白字
3、每页最多显示13行物品,减少翻页
改动一览
| 需求 | 实现 |
|---|---|
| 书籍类合并 | 顶级页签只显示"书籍类",点击进去显示二级子分类(战士/法师/道士) |
| 书籍类3列 | cols = 3,每行3个物品,x坐标设为 15/225/435 |
| 其他分类2列 | cols = 2,每行2个物品,x坐标设为 15/330 |
| 颜色调整 | 物品名(可点击)=黄色251;价格(不可点击)=白色255;当前选中页签=红色249 |
| 多少金→金币 | 所有 金 改成 金币 |
| 每页13行 | 非书籍 13×2=26个/页,书籍类 13×3=39个/页 |
改动确认
| 需求 | 状态 |
|---|---|
| 书籍类合并为1个页签 | 一级只显示"书籍类",点进去显示 战士书籍/法师书籍/道士书籍 三个二级子页签 |
| 非书籍无二级子分类 | if isBook then ... end,只有书籍类显示二级导航 |
| 书籍类每行3个 | 3列布局,x=15/225/435 |
| 非书籍每行2个 | 2列布局,x=15/330 |
| "多少金"→"金币" | price .. "金币" |
| 可点击名字=黄色 | color=251 |
| 当前选中页签=红色 | color=249 |
| 价格/页码等不可点击=白色 | color=255 |
| 每页13行 | 2列=26个/页,3列=39个/页 |