Files
main_plugin_farm/docs/12-crop-catalogue.md
T
2026-10-19 17:25:25 +08:00

2.1 KiB
Raw Blame History

作物字段与文字指令

本次只补充现有玩法所需的规则与身份字段,不导入网页全量目录, 不保存网页作物 ID,也不更改旧版参考数据库。

作物规则

Plant 新增字段:

字段 默认值 用途
purchasable True 控制商店展示与购买,旧目录从 isBuy 读取
enabled True 关闭时禁止新购买与播种,不影响已种作物收获和出售
crop_type 1 当前只允许类型 1 购买和播种

旧目录可选字段 enabled 使用整数 0/1,crop_type 使用正整数。 未提供时按上表默认值读取,不将网页 show 或 isLock 当作购买权限。 isVip、金币和点券价格、成熟时间、再生长时间继续沿用原规则。

本地 ID

库存使用本地 plant_id 作为业务标识。名称仅用于展示与指令查找, 目录内允许同名作物,但每个本地 ID 必须唯一且不能改给另一种作物。 目录改名不改变库存归属;已经种下的作物继续按播种快照结算。

文字指令可使用名称或 #本地编号,例如 购买种子 #1 2。 同名时拒绝按名称执行,要求使用编号;商店与仓库显示本地编号。 #编号 建议保留为指令语法,不作为作物名称。

数据库升级

新数据库版本为 2,inventory 的主键从 (identity, name) 改为 (identity, plant_id);保留名称、种子数、产物数和锁定状态。

版本 1 在 SQLiteStore.initialize() 时自动迁移,整个过程在同一事务内。 迁移通过本地目录与已种作物快照解析旧名称;不存在唯一对应 ID 时中止, 保留版本 1 的全部数据,不猜测 ID、不丢弃库存。 自定义目录应传入 initialize(catalogue=自定义目录),真寻接入已传入目录。 账户、流水、历史操作回执和地块成熟时间不改写。 迁移提交后记录版本和行数日志,不记录玩家身份或库存明细。

仅在临时测试库验证迁移,不代表已升级部署中的玩家库。 本次不包含生长阶段、浇水虫害或网页数据导入器。