荣耀引擎与彩虹3引擎极大概率是基于同一个底层代码库(底板引擎)分叉或迭代演进而来。它们在脚本语法、变量命名、系统架构、命令结构等方面高度相似,甚至大量功能模块直接共用逻辑。
🔍 一、核心证据:高度一致的底层设计1. 脚本语法与标签体系完全一致- 两者都使用:
- #IF / #ACT 条件动作结构;
- [@标签名] 触发点;
- $PARAM(n) 参数传递机制;
- CHANGEMODE、SETPROVISIONALABIL、UPGRADEUSERITEM 等命令;
- 变量如 <$JOBID>、<$USERNAME>、$STR(S0) 等命名规则相同。
✅ 这不是“借鉴”,而是同一套脚本解释器。
2. 数据库结构与字段命名高度重合- 物品DB字段:StdMode、Shape、Looks、AniCount、DuraMax、NeedLevel 等完全一致;
- 怪物DB扩展字段:如 RepressDemonExp(镇魔珠经验)、TownDemonExp(镇魔羽翼经验)——仅名称不同,逻辑相同;
- 都依赖 GameLoad DB Manager.exe 工具升级数据库。
3. 系统模块复用明显功能模块
彩虹3引擎
荣耀引擎
共性分析
镇魔系统
RepressDemon.xml
TownDemonWing.xml
同一系统,改名+扩展
元神/主体
支持 $PNEUMANAME
同样支持
架构一致
军衔系统
MilitaryRank.xml
同样存在
配置文件名相同
心魔封印
ImprisonEvil 命令
同命令
完全一致
活力值系统
[@_活力值_补充]
未见但结构兼容
标签命名风格统一
刮刮乐/砸金蛋
[KnockEggItem]
同结构
直接复用
📅 二、分叉时间推测:约在 2017–2018 年间关键线索:2017年及以前:
- 彩虹3引擎文档(如 5.txt)中已出现:
- 镇魔羽翼雏形;
- 心魔系统;
- 国家喊话;
- 元神突破;
- 军衔压制;
- 这些功能在荣耀引擎中全部保留并深化。
2018年后:
- 彩虹3引擎开始强调 “授权注册”、“凤凰登录器绑定”、“邮件系统” 等商业化运营功能;
- 而荣耀引擎则更聚焦于 “国战”、“镇魔中州”、“魔魇副本”、“风控验证” 等玩法深度定制;
- 两者更新日志不再交叉引用,说明开发路线分离。
技术栈冻结点:
- 两者都重度依赖 sqlite3.dll;
- 都使用 Mir200\Envir 存放文本配置;
- 都通过 QFunction-0.txt、QuestDiary 等路径加载脚本;
- 这套架构在 2016–2017 年趋于稳定。
✅ 结论:
荣耀引擎很可能是从彩虹3引擎的 2017 年某个版本(如 0426 或 0602)分叉出来,之后独立开发,强化了 PVP、副本、国家战争等特色,而彩虹3则继续走通用商业化路线。
🛠️ 三、如何写兼容脚本?既然底层一致,绝大多数基础命令和变量是通用的。兼容策略如下:
✅ 1. 通用部分(无需区分)[color=rgba(17, 17, 51, 0.7)]pascal[color=rgba(17, 17, 51, 0.3)]编辑
[color=rgba(17, 17, 51, 0.7)]
[color=rgba(17, 17, 51, 0.7)]
[color=rgba(17, 17, 51, 0.7)]
#
IFCHECKMAGICID
1#ACTSENDMSG
5 你学会了小火球!
CHECKMAGICID、SENDMSG、MOV、EQUAL 等基础命令两者都支持。
⚠️ 2. 差异部分(需检测或封装)功能
彩虹3引擎变量/命令
荣耀引擎变量/命令
兼容建议
镇魔等级
<$REPRESSDEMON.LEVEL>
<$TOWNDEMON.BEADLEVEL>
用 CHECKEXPR 检测变量是否存在
镇魔经验倍数
<$KILLMONMILITARYEXPRATE>
<$KILLMONTOWNDEMONEXPRATE>
分别判断,或统一用自定义变量中转
国家系统
无(或弱)
SETCOUNTRY / $MAPCOUNTRY
用 #IF EXISTS 或 try-catch 式逻辑
手机号风控
无
SENDVALIDSMS
仅荣耀端启用
极品属性读取
$ITEMINFO[X].ITEMEXT(Y)
$ITEMINFO[X].GOODITEMTYPE(Y)
区分模式(经典/时光/荣耀)
✅ 3. 推荐兼容写法示例[color=rgba(17, 17, 51, 0.7)]pascal[color=rgba(17, 17, 51, 0.3)]编辑
[color=rgba(17, 17, 51, 0.7)]
[color=rgba(17, 17, 51, 0.7)]
[color=rgba(17, 17, 51, 0.7)]
[@获取镇魔等级]; 尝试荣耀引擎变量#
IFEXISTS <$TOWNDEMON.BEADLEVEL>
#ACTMOV S0 <$TOWNDEMON.BEADLEVEL>
GOTO @显示等级; 否则尝试彩虹
3变量#
IFEXISTS <$REPRESSDEMON.LEVEL>
#ACTMOV S0 <$REPRESSDEMON.LEVEL>[@显示等级]SENDMSG
5 你的镇魔等级为:$STR(S0)
💡 注:EXISTS 是部分引擎支持的检测变量是否存在的方式;若不支持,可用 #IF EQUAL <$VAR> "" 间接判断。
✅ 最终建议- 将两个引擎视为“同源异构”:90% 基础脚本可通用;
- 差异功能通过“模式开关”隔离:
- 在 Setup.txt 中设置 EngineType=Rainbow3 或 Glory;
- 脚本中根据该变量分支处理;
- 优先使用标准命令,避免使用过于新或过于偏门的扩展;
- 测试时分别部署两个环境,确保关键路径覆盖。