查看“︁工程参考/配置文件/Public/ResearchItem.txt”︁的源代码
来自天龙知识库
←
工程参考/配置文件/Public/ResearchItem.txt
跳到导航
跳到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{DISPLAYTITLE:<span style="font-size:24px;line-height:1.4;overflow-wrap:anywhere;">工程参考/配置文件/Public/ResearchItem.txt</span>}} __NOTOC__ <div class="config-file-reference" style="max-width:1200px;margin:0 auto;line-height:1.8;color:#29343a;font-family:Arial,'Microsoft YaHei',sans-serif;letter-spacing:0;overflow-wrap:anywhere;"> [[首页|首页]] · [[工程参考/配置文件索引|配置文件索引]] · [[工程参考/配置文件修改约定|修改约定]] ResearchItem.txt 是城市 / 帮会建筑的研究集合表。第 1 列是集合编号,第 2 列是本集合的研究项组数,从第 3 列起每 7 列为一组:物品索引、贡献度、最大数量、价格、条件编号、票券价格、是否预置。样本 106 个集合、246 列,单集合最多 34 组。 这张表只定义「某个研究集合里有哪些物品、各自什么价」,不包含建筑等级与解锁关系;后者在 Public/CityBuilding.txt 的 ResearchItem 列里按等级指向这里的集合号。 [[#文件位置与生效|位置与生效]] · [[#文件格式|文件格式]] · [[#字段详解|字段详解]] · [[#常用修改实例|修改实例]] == 文件位置与生效 == {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="width:24%;text-align:left;background:#edf3f2;padding:8px;" | 项目 ! scope="col" style="width:76%;text-align:left;background:#edf3f2;padding:8px;" | 说明 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 运行文件 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">../Public/Config/ResearchItem.txt</code>,路径写死在加载函数里,相对于 World 工作目录;客户端从资源目录按同名文件加载。Server(GameServer)进程不读本表。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 读取程序 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | World 进程:TableInit::Init_ResearchItemTable 用 DBCFile::OpenFromTXT 打开 "../Public/ResearchItem.txt";客户端 GMDataBase.cpp 以 DBC_RESEARCH_ITEM(id 141)注册同名文件,不限列数 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 生效方法 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 正常保存并停 World 后重启 World;客户端一侧需要随资源更新并重启客户端。当前检索未发现单独重载本文件的可用入口。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 样本格式 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">ASCII</code>,<code style="white-space:normal;overflow-wrap:anywhere;">CRLF</code>。保留原编码;源码读取器不会自动把中文转为 UTF-8。 |} 服务端 Init_ResearchItemTable 先取行数作为集合数(上限 MAX_RESEARCH_TYPE = 512),逐行读入 <code style="white-space:normal;overflow-wrap:anywhere;">m_iNum</code>(第 2 列),再 for j 从 0 到 m_iNum-1 按 <code style="white-space:normal;overflow-wrap:anywhere;">column = 2 + j * 7</code> 的 0 基列号读 7 个整数。也就是说第 1 列只用于建 DBC 索引,真正的集合定位靠行号。 {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="width:34%;text-align:left;background:#edf3f2;padding:8px;" | 列 ! scope="col" style="width:42%;text-align:left;background:#edf3f2;padding:8px;" | 字段 ! scope="col" style="width:24%;text-align:left;background:#edf3f2;padding:8px;" | 含义 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 3 列起,每组 +7</code> | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">ItemIndex</code> | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 物品索引(必须 > 0) |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 4 列起,每组 +7</code> | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">Contribution</code> | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 贡献度 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 5 列起,每组 +7</code> | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">MaxNum</code> | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 最大数量 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 6 列起,每组 +7</code> | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">Price</code> | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 价格 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 7 列起,每组 +7</code> | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">Condition</code> | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 条件编号(引 Condition.txt,1 起) |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 8 列起,每组 +7</code> | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">TicketPrice</code> | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 票券价格(>= 0) |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 9 列起,每组 +7</code> | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">AlreadyIn</code> | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 是否预置(>= 0) |} {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="width:24%;text-align:left;background:#edf3f2;padding:8px;" | 检查项 ! scope="col" style="width:76%;text-align:left;background:#edf3f2;padding:8px;" | 结论 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 集合编号怎么定位 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">m_Table[ResearchSet - 1]</code>,ResearchSet 是 1 起的行号,来自 CityBuilding.txt 的 ResearchItem 列。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 一组几列 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 7 列。第 j 组占第 <code style="white-space:normal;overflow-wrap:anywhere;">3 + 7j</code> 到 <code style="white-space:normal;overflow-wrap:anywhere;">9 + 7j</code> 列(j 从 0 起)。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 最多几组 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 数组容量 100,但本文件 246 列只放得下 34 组完整数据;第 241 到 246 列是残缺的第 35 组。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 建筑等级与集合的关系 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 代码对 Level 从 0 到建筑当前等级逐个取集合,等级越高叠加的集合越多,不是只取最高等级那一个。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | AlreadyIn 两端相反 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 服务端非 0 会自动预置进建筑列表;客户端等于 1 反而跳过、不显示为可研究项。 |} == 文件格式 == 首行是类型行:<code style="white-space:normal;overflow-wrap:anywhere;">INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT</code>;第二行是列名行,程序跳过其内容;从第三行开始读取数据。各列用真实 Tab 分隔,保留首列、空列及行尾,不用空格代替。数据行行首 # 表示注释,分号不是此表的注释规则。首列为空的行被跳过;不足的尾列补为空值,多余列不参与本页字段读取。空整数和非数字经 atoi 可能成为 0,空字符串仍为空,不把解析成功当作业务合法。第一列须唯一,重复会触发读取器错误。 == 字段详解 == 列号从 1 开始,源码列下标从 0 开始。 {| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;" ! scope="col" style="width:34%;text-align:left;background:#edf3f2;padding:8px;" | 字段与类型 ! scope="col" style="width:42%;text-align:left;background:#edf3f2;padding:8px;" | 含义与修改要点 ! scope="col" style="width:24%;text-align:left;background:#edf3f2;padding:8px;" | 缺项或特殊值 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 1 列</code><br>INT:ID | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 研究集合编号,同时是 DBC 索引列。消费方按 <code style="white-space:normal;overflow-wrap:anywhere;">g_ResearchItemTbl.m_Table[ResearchSet - 1]</code> 取用,ResearchSet 来自 CityBuilding.txt 的 ResearchItem 列,因此这一列必须等于本行的行号(1 起)。样本 106 行的 ID 正好是 1 到 106。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须唯一且非空。重复编号触发 DBC 重复索引错误;空首列使整行被跳过,该集合在全部建筑上都取不到。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 2 列</code><br>INT:NUM | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 本行的研究项组数,决定后面读几组(每组 7 列)。数组容量是 MAX_RESEARCH_ITEM_PER_BUILDING = 100,但本文件只有 246 列,最多放得下 34 组完整数据。样本取值是 18、6、2、3。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必填。填 0 或留空表示本集合没有研究项;填到 35 会让代码去读第 247 列,超出本文件列数,不要这么做。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 3 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 1 组研究项(列 3 到 9)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 4 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 1 组研究项(列 3 到 9)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 5 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 1 组研究项(列 3 到 9)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 6 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 1 组研究项(列 3 到 9)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 7 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 1 组研究项(列 3 到 9)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 8 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 1 组研究项(列 3 到 9)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 9 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 1 组研究项(列 3 到 9)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 10 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 2 组研究项(列 10 到 16)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 11 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 2 组研究项(列 10 到 16)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 12 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 2 组研究项(列 10 到 16)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 13 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 2 组研究项(列 10 到 16)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 14 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 2 组研究项(列 10 到 16)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 15 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 2 组研究项(列 10 到 16)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 16 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 2 组研究项(列 10 到 16)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 17 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 3 组研究项(列 17 到 23)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 18 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 3 组研究项(列 17 到 23)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 19 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 3 组研究项(列 17 到 23)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 20 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 3 组研究项(列 17 到 23)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 21 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 3 组研究项(列 17 到 23)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 22 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 3 组研究项(列 17 到 23)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 23 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 3 组研究项(列 17 到 23)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 24 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 4 组研究项(列 24 到 30)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 25 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 4 组研究项(列 24 到 30)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 26 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 4 组研究项(列 24 到 30)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 27 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 4 组研究项(列 24 到 30)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 28 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 4 组研究项(列 24 到 30)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 29 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 4 组研究项(列 24 到 30)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 30 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 4 组研究项(列 24 到 30)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 31 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 5 组研究项(列 31 到 37)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 32 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 5 组研究项(列 31 到 37)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 33 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 5 组研究项(列 31 到 37)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 34 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 5 组研究项(列 31 到 37)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 35 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 5 组研究项(列 31 到 37)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 36 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 5 组研究项(列 31 到 37)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 37 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 5 组研究项(列 31 到 37)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 38 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 6 组研究项(列 38 到 44)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 39 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 6 组研究项(列 38 到 44)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 40 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 6 组研究项(列 38 到 44)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 41 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 6 组研究项(列 38 到 44)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 42 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 6 组研究项(列 38 到 44)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 43 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 6 组研究项(列 38 到 44)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 44 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 6 组研究项(列 38 到 44)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 45 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 7 组研究项(列 45 到 51)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 46 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 7 组研究项(列 45 到 51)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 47 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 7 组研究项(列 45 到 51)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 48 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 7 组研究项(列 45 到 51)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 49 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 7 组研究项(列 45 到 51)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 50 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 7 组研究项(列 45 到 51)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 51 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 7 组研究项(列 45 到 51)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 52 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 8 组研究项(列 52 到 58)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 53 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 8 组研究项(列 52 到 58)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 54 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 8 组研究项(列 52 到 58)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 55 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 8 组研究项(列 52 到 58)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 56 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 8 组研究项(列 52 到 58)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 57 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 8 组研究项(列 52 到 58)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 58 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 8 组研究项(列 52 到 58)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 59 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 9 组研究项(列 59 到 65)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 60 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 9 组研究项(列 59 到 65)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 61 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 9 组研究项(列 59 到 65)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 62 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 9 组研究项(列 59 到 65)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 63 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 9 组研究项(列 59 到 65)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 64 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 9 组研究项(列 59 到 65)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 65 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 9 组研究项(列 59 到 65)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 66 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 10 组研究项(列 66 到 72)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 67 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 10 组研究项(列 66 到 72)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 68 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 10 组研究项(列 66 到 72)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 69 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 10 组研究项(列 66 到 72)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 70 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 10 组研究项(列 66 到 72)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 71 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 10 组研究项(列 66 到 72)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 72 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 10 组研究项(列 66 到 72)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 73 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 11 组研究项(列 73 到 79)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 74 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 11 组研究项(列 73 到 79)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 75 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 11 组研究项(列 73 到 79)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 76 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 11 组研究项(列 73 到 79)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 77 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 11 组研究项(列 73 到 79)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 78 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 11 组研究项(列 73 到 79)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 79 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 11 组研究项(列 73 到 79)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 80 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 12 组研究项(列 80 到 86)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 81 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 12 组研究项(列 80 到 86)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 82 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 12 组研究项(列 80 到 86)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 83 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 12 组研究项(列 80 到 86)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 84 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 12 组研究项(列 80 到 86)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 85 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 12 组研究项(列 80 到 86)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 86 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 12 组研究项(列 80 到 86)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 87 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 13 组研究项(列 87 到 93)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 88 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 13 组研究项(列 87 到 93)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 89 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 13 组研究项(列 87 到 93)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 90 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 13 组研究项(列 87 到 93)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 91 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 13 组研究项(列 87 到 93)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 92 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 13 组研究项(列 87 到 93)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 93 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 13 组研究项(列 87 到 93)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 94 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 14 组研究项(列 94 到 100)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 95 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 14 组研究项(列 94 到 100)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 96 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 14 组研究项(列 94 到 100)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 97 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 14 组研究项(列 94 到 100)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 98 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 14 组研究项(列 94 到 100)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 99 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 14 组研究项(列 94 到 100)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 100 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 14 组研究项(列 94 到 100)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 101 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 15 组研究项(列 101 到 107)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 102 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 15 组研究项(列 101 到 107)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 103 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 15 组研究项(列 101 到 107)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 104 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 15 组研究项(列 101 到 107)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 105 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 15 组研究项(列 101 到 107)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 106 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 15 组研究项(列 101 到 107)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 107 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 15 组研究项(列 101 到 107)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 108 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 16 组研究项(列 108 到 114)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 109 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 16 组研究项(列 108 到 114)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 110 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 16 组研究项(列 108 到 114)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 111 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 16 组研究项(列 108 到 114)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 112 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 16 组研究项(列 108 到 114)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 113 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 16 组研究项(列 108 到 114)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 114 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 16 组研究项(列 108 到 114)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 115 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 17 组研究项(列 115 到 121)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 116 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 17 组研究项(列 115 到 121)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 117 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 17 组研究项(列 115 到 121)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 118 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 17 组研究项(列 115 到 121)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 119 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 17 组研究项(列 115 到 121)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 120 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 17 组研究项(列 115 到 121)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 121 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 17 组研究项(列 115 到 121)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 122 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 18 组研究项(列 122 到 128)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 123 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 18 组研究项(列 122 到 128)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 124 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 18 组研究项(列 122 到 128)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 125 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 18 组研究项(列 122 到 128)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 126 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 18 组研究项(列 122 到 128)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 127 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 18 组研究项(列 122 到 128)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 128 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 18 组研究项(列 122 到 128)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 129 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 19 组研究项(列 129 到 135)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 130 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 19 组研究项(列 129 到 135)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 131 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 19 组研究项(列 129 到 135)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 132 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 19 组研究项(列 129 到 135)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 133 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 19 组研究项(列 129 到 135)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 134 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 19 组研究项(列 129 到 135)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 135 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 19 组研究项(列 129 到 135)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 136 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 20 组研究项(列 136 到 142)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 137 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 20 组研究项(列 136 到 142)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 138 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 20 组研究项(列 136 到 142)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 139 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 20 组研究项(列 136 到 142)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 140 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 20 组研究项(列 136 到 142)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 141 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 20 组研究项(列 136 到 142)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 142 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 20 组研究项(列 136 到 142)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 143 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 21 组研究项(列 143 到 149)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 144 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 21 组研究项(列 143 到 149)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 145 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 21 组研究项(列 143 到 149)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 146 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 21 组研究项(列 143 到 149)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 147 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 21 组研究项(列 143 到 149)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 148 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 21 组研究项(列 143 到 149)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 149 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 21 组研究项(列 143 到 149)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 150 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 22 组研究项(列 150 到 156)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 151 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 22 组研究项(列 150 到 156)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 152 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 22 组研究项(列 150 到 156)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 153 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 22 组研究项(列 150 到 156)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 154 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 22 组研究项(列 150 到 156)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 155 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 22 组研究项(列 150 到 156)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 156 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 22 组研究项(列 150 到 156)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 157 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 23 组研究项(列 157 到 163)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 158 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 23 组研究项(列 157 到 163)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 159 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 23 组研究项(列 157 到 163)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 160 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 23 组研究项(列 157 到 163)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 161 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 23 组研究项(列 157 到 163)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 162 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 23 组研究项(列 157 到 163)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 163 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 23 组研究项(列 157 到 163)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 164 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 24 组研究项(列 164 到 170)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 165 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 24 组研究项(列 164 到 170)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 166 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 24 组研究项(列 164 到 170)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 167 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 24 组研究项(列 164 到 170)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 168 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 24 组研究项(列 164 到 170)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 169 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 24 组研究项(列 164 到 170)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 170 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 24 组研究项(列 164 到 170)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 171 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 25 组研究项(列 171 到 177)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 172 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 25 组研究项(列 171 到 177)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 173 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 25 组研究项(列 171 到 177)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 174 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 25 组研究项(列 171 到 177)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 175 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 25 组研究项(列 171 到 177)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 176 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 25 组研究项(列 171 到 177)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 177 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 25 组研究项(列 171 到 177)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 178 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 26 组研究项(列 178 到 184)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 179 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 26 组研究项(列 178 到 184)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 180 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 26 组研究项(列 178 到 184)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 181 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 26 组研究项(列 178 到 184)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 182 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 26 组研究项(列 178 到 184)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 183 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 26 组研究项(列 178 到 184)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 184 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 26 组研究项(列 178 到 184)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 185 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 27 组研究项(列 185 到 191)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 186 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 27 组研究项(列 185 到 191)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 187 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 27 组研究项(列 185 到 191)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 188 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 27 组研究项(列 185 到 191)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 189 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 27 组研究项(列 185 到 191)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 190 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 27 组研究项(列 185 到 191)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 191 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 27 组研究项(列 185 到 191)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 192 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 28 组研究项(列 192 到 198)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 193 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 28 组研究项(列 192 到 198)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 194 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 28 组研究项(列 192 到 198)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 195 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 28 组研究项(列 192 到 198)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 196 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 28 组研究项(列 192 到 198)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 197 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 28 组研究项(列 192 到 198)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 198 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 28 组研究项(列 192 到 198)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 199 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 29 组研究项(列 199 到 205)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 200 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 29 组研究项(列 199 到 205)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 201 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 29 组研究项(列 199 到 205)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 202 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 29 组研究项(列 199 到 205)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 203 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 29 组研究项(列 199 到 205)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 204 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 29 组研究项(列 199 到 205)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 205 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 29 组研究项(列 199 到 205)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 206 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 30 组研究项(列 206 到 212)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 207 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 30 组研究项(列 206 到 212)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 208 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 30 组研究项(列 206 到 212)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 209 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 30 组研究项(列 206 到 212)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 210 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 30 组研究项(列 206 到 212)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 211 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 30 组研究项(列 206 到 212)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 212 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 30 组研究项(列 206 到 212)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 213 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 31 组研究项(列 213 到 219)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 214 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 31 组研究项(列 213 到 219)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 215 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 31 组研究项(列 213 到 219)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 216 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 31 组研究项(列 213 到 219)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 217 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 31 组研究项(列 213 到 219)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 218 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 31 组研究项(列 213 到 219)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 219 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 31 组研究项(列 213 到 219)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 220 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 32 组研究项(列 220 到 226)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 221 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 32 组研究项(列 220 到 226)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 222 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 32 组研究项(列 220 到 226)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 223 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 32 组研究项(列 220 到 226)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 224 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 32 组研究项(列 220 到 226)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 225 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 32 组研究项(列 220 到 226)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 226 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 32 组研究项(列 220 到 226)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 227 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 33 组研究项(列 227 到 233)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 228 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 33 组研究项(列 227 到 233)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 229 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 33 组研究项(列 227 到 233)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 230 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 33 组研究项(列 227 到 233)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 231 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 33 组研究项(列 227 到 233)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 232 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 33 组研究项(列 227 到 233)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 233 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 33 组研究项(列 227 到 233)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 234 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 34 组研究项(列 234 到 240)的物品索引。由 City.cpp 与 IBuilding.cpp 按它匹配建筑研究列表里的物品,是这一组的主键。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 必须大于 0,否则加载期断言。超出 NUM 的组不会被读取,填了也不生效。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 235 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 34 组研究项(列 234 到 240)的贡献度。加入建筑研究列表后存为 m_ResearchItemContri。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 236 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 34 组研究项(列 234 到 240)的最大数量。建筑刷新商店时用它覆盖 m_ResearchItemMaxNum。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于禁止购买。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 237 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 34 组研究项(列 234 到 240)的价格。加入建筑研究列表后存为 m_ResearchItemPrice。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 缺失经 atoi 视为 0,等于免费。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 238 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 34 组研究项(列 234 到 240)的条件编号,指向 Public/Condition.txt 的第 1 列,1 起。研究升级时由 BuildingCore::ConditionTest 校验并扣除消耗。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时只断言非负;实际研究时要求落在 1 到 Condition.txt 行数之间,否则日志出现 condition illegal 并失败。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 239 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 34 组研究项(列 234 到 240)的票券价格。加入建筑研究列表后存为 m_ResearchItemTicketValue。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 240 列</code><br>INT:AlreadyIn | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 34 组研究项(列 234 到 240)的是否预置标记。非 0 时服务端 City::AddAlreadyInResearchItem 会把这一项自动加进建筑的研究列表;而客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 遇到这一列等于 1 会直接 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不再把它显示为可选研究项。两端对同一个值的处理是相反的。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 加载时断言非负。样本全部为 0;置 1 会同时改变服务端预置行为与客户端显示,改前先想清楚要哪一边。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 241 列</code><br>INT:ItemIndex | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 35 组研究项的残缺列(列名 ItemIndex)。本文件到第 246 列就结束了,这一组缺了最后的 AlreadyIn,服务端也不会读它——因为读满 34 组后就已经到列数上限。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 不属于受支持的用法。想再加一组就必须同时在类型行、列名行和所有数据行末尾补列,不能只改 NUM。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 242 列</code><br>INT:Contribution | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 35 组研究项的残缺列(列名 Contribution)。本文件到第 246 列就结束了,这一组缺了最后的 AlreadyIn,服务端也不会读它——因为读满 34 组后就已经到列数上限。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 不属于受支持的用法。想再加一组就必须同时在类型行、列名行和所有数据行末尾补列,不能只改 NUM。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 243 列</code><br>INT:MaxNum | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 35 组研究项的残缺列(列名 MaxNum)。本文件到第 246 列就结束了,这一组缺了最后的 AlreadyIn,服务端也不会读它——因为读满 34 组后就已经到列数上限。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 不属于受支持的用法。想再加一组就必须同时在类型行、列名行和所有数据行末尾补列,不能只改 NUM。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 244 列</code><br>INT:Price | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 35 组研究项的残缺列(列名 Price)。本文件到第 246 列就结束了,这一组缺了最后的 AlreadyIn,服务端也不会读它——因为读满 34 组后就已经到列数上限。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 不属于受支持的用法。想再加一组就必须同时在类型行、列名行和所有数据行末尾补列,不能只改 NUM。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 245 列</code><br>INT:Condition | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 35 组研究项的残缺列(列名 Condition)。本文件到第 246 列就结束了,这一组缺了最后的 AlreadyIn,服务端也不会读它——因为读满 34 组后就已经到列数上限。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 不属于受支持的用法。想再加一组就必须同时在类型行、列名行和所有数据行末尾补列,不能只改 NUM。 |- | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">第 246 列</code><br>INT:TicketPrice | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 第 35 组研究项的残缺列(列名 TicketPrice)。本文件到第 246 列就结束了,这一组缺了最后的 AlreadyIn,服务端也不会读它——因为读满 34 组后就已经到列数上限。 | style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | 不属于受支持的用法。想再加一组就必须同时在类型行、列名行和所有数据行末尾补列,不能只改 NUM。 |} == 常用修改实例 == 示例为局部教学片段,先备份原运行文件,再修改对应行并保留其余配置。教学值不是程序默认值。 以下代码块保留真实 Tab;本地示例文件保留原样本编码、中文表头与 CRLF。网页文字使用浏览器编码显示,不表示运行文件应改存 UTF-8。 === 把 1 号集合第 1 项研究的售价从 3000 改为 3500 === 修改前: <pre style="white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;padding:12px;background:#f5f7f8;border:1px solid #dbe3e6;">INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT ID NUM ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice 1 18 30302006 30 1 3000 56 0 0 30302016 30 1 3000 56 0 0 30302026 30 1 3000 56 0 0 30301006 30 1 3000 56 0 0 30301016 30 1 3000 56 0 0 30301026 30 1 3000 56 0 0 30301036 30 1 3000 56 0 0 30301046 30 1 3000 56 0 0 30301056 30 1 3000 56 0 0 30301066 30 1 3000 56 0 0 30301076 30 1 3000 56 0 0 30301086 30 1 3000 56 0 0 30301096 30 1 3000 56 0 0 30301106 30 1 3000 56 0 0 30301116 30 1 3000 56 0 0 30301126 30 1 3000 56 0 0 30301136 30 1 3000 56 0 0 30301146 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0</pre> 修改后: <pre style="white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;padding:12px;background:#f5f7f8;border:1px solid #dbe3e6;">INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT ID NUM ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice AlreadyIn ItemIndex Contribution MaxNum Price Condition TicketPrice 1 18 30302006 30 1 3500 56 0 0 30302016 30 1 3000 56 0 0 30302026 30 1 3000 56 0 0 30301006 30 1 3000 56 0 0 30301016 30 1 3000 56 0 0 30301026 30 1 3000 56 0 0 30301036 30 1 3000 56 0 0 30301046 30 1 3000 56 0 0 30301056 30 1 3000 56 0 0 30301066 30 1 3000 56 0 0 30301076 30 1 3000 56 0 0 30301086 30 1 3000 56 0 0 30301096 30 1 3000 56 0 0 30301106 30 1 3000 56 0 0 30301116 30 1 3000 56 0 0 30301126 30 1 3000 56 0 0 30301136 30 1 3000 56 0 0 30301146 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0 0 0 30 1 3000 56 0</pre> 按第 1 列定位 1 号集合。它的第 1 组占第 3 到 9 列:物品 30302006、贡献度 30、最大数量 1、价格 3000、条件 56、票券 0、预置 0。这里只把第 6 列(价格)改成 3500,其余 245 列与 NUM=18 全部保留。 改价格不需要动其它列:本表没有「合计必须等于某值」的校验,每组彼此独立。但改第 2 列 NUM 会让后面多读或少读整组,改第 7 列条件时要先确认 Condition.txt 里确实有那一号。 示例块含类型行、列名行与该行原文,不能覆盖整张表。改完需要重启 World。 == 验证与排查 == World 启动日志里 Init_ResearchItemTable 会打印 “Load ResearchItem.txt ... OK!”;物品索引非正或条件、票券、预置为负会在加载期断言。改动后重启 World,在城市建筑界面打开研究列表,核对物品、价格、数量与票券价,再实际发起一次研究,确认进度条上限来自 Condition.txt 的任务数、消耗按 Condition.txt 扣除。失败时恢复备份并重启。 === ID 必须等于行号 === 消费方是 <code style="white-space:normal;overflow-wrap:anywhere;">m_Table[ResearchSet - 1]</code>,用的是行下标而不是第 1 列的值。样本 106 行的 ID 正好是 1 到 106,说明二者必须一致;只改第 1 列而不挪行会让引用错位。 === 建筑等级会叠加多个集合 === <code style="white-space:normal;overflow-wrap:anywhere;">for(Level = 0; Level <= BuildingLevel; ++Level)</code> 逐级取 CityBuilding.txt 的 ResearchItem 集合,等级 3 的建筑会依次应用 0、1、2、3 四个集合。想让某项在高等级才出现,就把它放到后面等级对应的集合里。 === AlreadyIn 的两端行为相反 === 服务端 <code style="white-space:normal;overflow-wrap:anywhere;">AddAlreadyInResearchItem</code> 见到非 0 就把该项自动加进建筑的研究列表;客户端 <code style="white-space:normal;overflow-wrap:anywhere;">GMInterface_Script_City.cpp</code> 见到 1 则是 <code style="white-space:normal;overflow-wrap:anywhere;">continue</code>,不把它显示成可研究项。这不是 bug 而是「预置项由服务端直接下发、界面不再列出」的设计,但改这个值时必须同时考虑两端。 === 只有 34 组能放满 === 246 列 = 2 + 34×7 + 6。第 241 到 246 列是残缺的第 35 组(缺 AlreadyIn)。把 NUM 填到 35 会让代码读第 247 列,超出本文件列数。要突破就得同时给类型行、列名行和所有数据行补列。 === 条件编号是 1 起 === 第 7 列写的是 Condition.txt 的编号,使用时是 <code style="white-space:normal;overflow-wrap:anywhere;">m_Table[ConditionIndex - 1]</code>,编号必须落在 1 到 Condition.txt 行数之间。 == 关联与依据 == [[工程参考/配置文件/Public/Condition.txt|Public/Condition.txt]] · [[工程参考/配置文件/Public/CityBuilding.txt|Public/CityBuilding.txt]] [[工程参考/配置文件索引|其他配置及整理状态]] · [[工程参考/服务端外网设置|服务端外网设置]] · [[Lua接口/服务端函数索引|Lua 接口索引]] * <code style="white-space:normal;overflow-wrap:anywhere;">Common/DataBase/TLBB_DBC.cpp</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">Common/DataBase/TLBB_DBC.h</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">Server/Server/WorldServer/World/Main/WorldTable.cpp</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">Server/Server/WorldServer/World/Main/WorldTable.h</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">Common/GameDefine_City.h</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">Server/Server/WorldServer/World/WorldData/City.cpp</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">Server/Server/WorldServer/World/WorldData/IBuilding.cpp</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">Server/Server/WorldServer/World/WorldData/BuildingCore.cpp</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">Server/Server/WorldServer/World/WorldData/exe/ExeCityResearchLevelUp.cpp</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">Server/Server/WorldServer/World/WorldData/exe/ExeCityBuildingLevelUp.cpp</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">Client/Client/Common/TDDBC_Struct.h</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">Client/Client/Game/DBC/GMDataBase.cpp</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">Client/Client/Game/Interface/GMInterface_Script_City.cpp</code>:实际加载、解析、字段使用或示例关联依据 * <code style="white-space:normal;overflow-wrap:anywhere;">resources/Public/Config/ResearchItem.txt</code>:实际加载、解析、字段使用或示例关联依据 本页核对 Init_ResearchItemTable 的 7 列循环与 0 基列号、MAX_RESEARCH_TYPE=512 与 MAX_RESEARCH_ITEM_PER_BUILDING=100 两个上限、各字段的断言范围,以及 City.cpp / IBuilding.cpp / ExeCityResearchLevelUp.cpp 的消费路径、ConditionTest 的 1 起编号、客户端 _DBC_RESEARCH_ITEM 的全 246 整数结构与 AlreadyIn 的跳过分支;样本 106 行的 ID 与行号一致性、列数与组数边界经脚本核算。未启动服务端与游戏,研究流程的实际表现需要实测。 </div> [[Category:工程参考]]
返回
工程参考/配置文件/Public/ResearchItem.txt
。
导航菜单
页面操作
页面
讨论
阅读
查看源代码
历史
页面操作
页面
讨论
更多
工具
个人工具
创建账号
登录
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
搜索
工具
链入页面
相关更改
页面信息