这个报错不是你电脑问题,也不是彩虹引擎本身炸了,而是你把一个 AFT 引擎用的数据/脚本环境,直接拿到彩虹引擎上跑,数据库表结构对不上。
报错里已经写得很直白:
no such table: StdItems
select * from StdItems order by idx
意思是:服务端启动时要从数据库里查 StdItems 这张物品表,但当前数据库里根本没有这张表。
AFT 引擎和彩虹引擎虽然都叫“传奇世界单机/传奇类引擎”,但底层数据存放方式、表名、字段名、脚本目录、DB 文件格式并不通用。你原来 AFT 能读到物品,不代表彩虹也能用同一套 Mir200/Envir、Data、DB、sqlite/mdb 文件。
先说 AFT 老重启的事。
AFT 引擎以前常见重启原因有几个:网关和 M2 版本不一致、列表端口冲突、物品数据库有脏数据、脚本死循环、!Setup.txt 路径错、MAP 文件缺失、怪物库里引用了不存在的怪物、登陆器资源和引擎不匹配。AFT 碰到严重错误有时会直接崩,表现为“服务器错误老是重启”。这时候正确做法是看 Mir200/Log 里的错误日志,而不是单纯换引擎。
你后来换彩虹引擎,启动到“正在加载物品数据库”就报 no such table: StdItems,说明:
1. 彩虹引擎启动时会查 StdItems 表;
2. 你当前使用的数据库文件里没有 StdItems;
3. 你大概率是把 AFT 的 Data、Envir、DB 或 sqlite 文件原样留着,没用彩虹自带初始库;
4. 也可能是彩虹要的是 StdItems.DB / Items.DB / 某张 sqlite 表,而你放的是 AFT 的另一套结构。
传奇世界单机里,“物品数据库”在不同方案里可能是:
• Mir200/Envir/StdItems.DB(DBF/DB 文件)
• Data/StdItems.db
• sqlite 里的 StdItems 表
- 某些引擎里的 Items 表而不是 StdItems
• 彩虹自己的一套 StdItems、Monster、Magic、Npc 表
所以 select * from StdItems 这种语句一执行,sqlite/mysql 里没这张表,就直接抛异常,M2 加载物品阶段中断,服务器起不来。
处理思路别乱换引擎了,按下面来:
一、先确认彩虹引擎要用什么数据库
打开彩虹引擎目录里的说明、配置工具、!Setup.txt、DBServer 配置、登录器配套文档。看它启动加载物品时,是从:
- Mir200/Envir/StdItems.DB
• 还是 Data/xxx.sqlite
• 还是 mysql 里的某个库
• 还是自带 GameDB 里的表
不同彩虹版本不一样。有的彩虹是老传奇世界改版,物品还是 StdItems.DB;有的是 sqlite,表名可能是 StdItems、t_items、Items。
二、别把 AFT 的 Envir 直接覆盖到彩虹
AFT 的:
• Mir200/Envir/QuestDiary
• Mir200/Envir/MapInfo.txt
• Mir200/Envir/MonGen.txt
- Mir200/Envir/StdItems.DB
• Mir200/Envir/Magic.DB
和彩虹不一定兼容。
你换引擎时如果只换了 M2.exe、DBServer.exe、LoginGate.exe,但 Envir 还是 AFT 的,就会出现“能读配置、读到物品阶段报错”的情况。
正确做法:
1. 先拿彩虹引擎原始包,什么都不改,能启动;
2. 再把自己的地图、怪物、NPC、物品慢慢迁;
3. 别 AFT 的 Envir 一把糊到彩虹上。
三、如果彩虹用 sqlite/mysql,就建表或换库
报错是 no such table: StdItems,最直接就是当前库里没表。
你可以:
• 用 SQLiteStudio / Navicat 打开彩虹的 game.db / mir.db;
- 看里面有哪些表;
• 如果有 Items 没有 StdItems,那就是版本差异;
• 如果有空库,就导入彩虹原包里的 StdItems.sql / init.sql / 自带 GameDB;
- 别拿 AFT 的 mdb 当彩虹 sqlite 用。
四、如果彩虹用 DBF/DB 文件
那就看 Mir200/Envir/StdItems.DB 在不在。
常见情况:
• 文件被你改名了;
- 放错目录;
• 原来是 Items.DB,彩虹要 StdItems.DB;
• 文件损坏,引擎打开失败,回退到查 sql 表,自然查不到;
• 引擎配置里写了“使用 SQL 模式”,但实际放的是 DBF 文件。
这时候要么关掉 SQL 模式,要么把 DBF 导进 SQL。
五、AFT 重启和彩虹报错是两件事
AFT 重启可能是:
• 网关版本不对
• 登录器对不上
• 地图编号错
• 怪物刷新文件引用空怪物
- 脚本 @Login 里写错命令
• MonGen.txt 坐标/地图不存在
• MapInfo.txt 里地图文件缺失
彩虹报 no such table: StdItems 是:
- 数据库/表结构不对
• 数据文件没放对
• 引擎模式和配套库不一致
也就是说,你以为“AFT 不行我换彩虹”,其实只是把 AFT 的环境垃圾带进了彩虹。
六、最快救活方案
如果你只是想单机自己玩:
1. 把现在这堆文件备份;
2. 解压一份干净的彩虹引擎原版;
3. 先启动原版,确认能到“服务器启动成功 / 等待连接”;
4. 进游戏,确认能建号、能砍鸡;
5. 然后再把 AFT 里你要的内容迁:
- 地图:MapInfo.txt + Map 文件
• 怪物:Monster.DB / 怪物表 + MonGen.txt
• 物品:别直接覆盖 StdItems,用 Excel/DBF 工具比对字段后合并
- 技能:Magic.DB / Magic 表
• NPC:脚本目录整体拷,但检查命令是否彩虹支持
6. 每加一类,重启一次,看报什么错。
七、字段不对也会间接导致这个问题
比如彩虹物品表里有:
idx, Name, StdMode, Shape, Weight, DuraMax, AC, MAC, DC, MC, SC, Need, NeedLevel, Price ...
你 AFT 的表里字段名是别的,或者少字段、多字段,引擎初始化时可能会建临时表失败,然后后面 select * from StdItems 就找不到表。
这种不是“表名拼错”那么简单,而是整套数据模型不兼容。
八、别信“AFT 换彩虹只要换 exe”
很多人操作是:
• M2.exe 换彩虹
• DBServer.exe 换彩虹
• LoginGate 换彩虹
• Envir 还是 AFT
- Data 还是 AFT
• 登录器还是 AFT
结果就是:网关能起来,配置能读,物品一加载就炸。
引擎不是只换主程序,配套的是:
• 数据表结构
• 脚本命令集
• 物品/技能/怪物字段
- 地图格式
• 登录器资源
• DBServer 和 M2 的通信协议
九、日志比报错那一行更有用
你贴出来的是最后一行:
服务器启动异常!!!no such table: StdItems
select * from StdItems order by idx
前面还会有类似:
• Load StdItems...
• Open database failed
• Table not found
• Field 'XXX' not found
- DBF open error
• SQLite error: no such table: StdItems
看前面那几行,才知道它是 SQL 模式还是 DBF 模式。只看最后一行,容易误判成“只要建个表就行”。
十、临时绕过不算修好
有人会直接建个空表:
create table StdItems (
idx integer,
Name text
);
服务器是不报错了,但进游戏背包空、商店空、怪物不掉东西、NPC 没物品,因为这表是空的。
正确做法是让彩虹用到“字段完整、数据完整”的物品库,不是糊张空表骗过启动。
十一、AFT 总重启可以先这样查
既然你提到 AFT 老是重启:
• 看 Mir200/Log/*.log
• 看 DBServer 是否先起、M2 后起
• 看 LoginGate、RunGate 端口是否重复
• 看 !Setup.txt 里 ServerName、DBServer、ShareDir 路径
- 看 Envir/MapInfo.txt 里地图文件是否都在 Map/ 下
• 看 MonGen.txt 里地图号是不是 MapInfo 存在
• 看有没有 NPC 脚本死循环,比如 @Login 里无脑 #ACT 刷物品刷怪
- 看登录器是不是 AFT 专用,别拿彩虹登录器登 AFT
AFT 能进但重启,往往比彩虹直接起不来更好修;彩虹起不来,说明配套完全不对。
十二、结论
你这个错误核心就是:
AFT 环境 + 彩虹引擎 = 数据/表结构不兼容,导致加载物品数据库时找不到 StdItems 表。
不是彩虹引擎装错了,也不是系统缺运行库,而是你换引擎没换数据体系。
AFT 重启归 AFT,彩虹报 no such table: StdItems 归彩虹,两件事根因不同,但都指向一句话:引擎、Envir、Data、DB、登录器不是一套。
最稳路线就一句:
彩虹用彩虹原包先跑通,AFT 用 AFT 原包先跑通,谁先能进游戏就用谁,再小步迁移内容;别把 AFT 的 Envir/DB/Data 直接塞进彩虹。
你要是真想从 AFT 迁到彩虹,物品表、怪物表、技能表、NPC 命令、地图格式都要按彩虹文档对齐,直接覆盖必炸。
传奇世界单机换彩虹引擎报no such table StdItems
来源:
作者:
点击:

