# huax **Repository Path**: fesaa/huax ## Basic Information - **Project Name**: huax - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-05 - **Last Updated**: 2026-07-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 小花仙图鉴工具 这个仓库当前包含小花仙 Flash 脱机登录分析、Go 模拟客户端、SWF/XML 资料解析工具,以及未来图鉴 App 的设计文档。 ## 快速上手 ```text go test ./... go run ./cmd/hua-ui cd app npm ci npm run type-check npm run dev:h5 ``` 如果要继续开发,先读 [贡献和上手规范](CONTRIBUTING.md)。如果由 AI 接手修改,先读 [AI 协作规范](AGENTS.md),修改 `app/` 时还要读 `app/AGENTS.md`。 ## 目录结构 - `cmd/`:Go 命令入口,包含登录分析和调试 UI。 - `internal/hua/`:协议、客户端、背包、活动自动化和任务注册等核心逻辑。 - `tools/`:SWF 检查、活动发现、任务注册生成等辅助脚本。 - `analysis/`:线上 Flash/XML/HTML 输入、活动索引和分析报告。 - `app/`:uni-app 图鉴客户端。 - `docs/`:产品设计、数据契约和落地路线。 批量生成的客户端图片素材不进入 Git;需要恢复时在 `app/` 下运行 `npm run generate:png` 或按 `app/src/static/catalog-assets/README.md` 中的分步命令重新生成。 ## 文档 - [产品和架构设计](docs/product_design.md) - [资料包数据契约](docs/data_contract.md) - [落地路线](docs/implementation_roadmap.md) ## 当前定位 - Go 侧负责反编译资料解析、协议校验、资料包导出。 - uni-app 客户端负责 H5、Android、iOS、微信小程序的图鉴浏览体验。 - 用户端图鉴不登录、不发包,只读取版本化资料包。 ## 已有命令 ```text go test ./... go run ./cmd/hua-ui ``` ## 活动 SWF 解析 玩家侧自动化不再要求手填包体参数。当前流程是先从线上 `Client.swf` / DLL 中定位活动模块,下载 `module/externalModule/...` 下的活动 SWF,再用本地 FFDec 导出 AS 并扫描 `RemoteServicManager.send` / `SocketConnection.send` 调用。 ```text python tools/activity_swf_pipeline.py python tools/activity_swf_pipeline.py --discover --validate-discover --only-discover ``` 输出: - `analysis/activity_swfs/`:下载到的活动 SWF。 - `analysis/activity_decompiled/`:FFDec 导出的 AS。 - `analysis/activity_index.json`:UI 读取的活动动作索引。 - `analysis/activity_discovery.json`:从 Client/DLL/已反编译 AS 中发现并验证过的线上活动 SWF 候选。 已确认的线上活动 SWF 路径形态: ```text http://hua.61.com/module/externalModule/.swf ``` `cmd/hua-ui` 的“SWF 解析活动”面板只执行已能从源码确定 body 的动作;依赖运行时状态的动作会显示来源文件和需要继续追踪的表达式。 当前 UI 默认只展示从 SWF/XML 推导出的“一键流程”,不再让玩家填写 cmd/body。开发调试入口需要用 `http://127.0.0.1:8787/?debug=1` 打开。 当前已落地的一键流程: - 每日上限总控巡检/领取:聚合 8874 一键日常、最新活动奖励、剧情任务安全提交、爱心小厨、迷你派对、四国星星、奇妙星库存、家族拔萝卜和花精灵任务状态;只包含已解析的空包/固定参数/回包派生/只读状态动作。 - 迷你派对每日奖励:读取进度后领取赠爱心、打扫、浇水奖励。 - 迷你派对在线派对豆:按 `MiniPartyOnlinePresentModule.as` 展开 1/5/15/30/60/90 分钟 6 档奖励。 - 迷你派对礼包/装扮巡检:领取 VIP 礼包,并读取月度免费装扮状态;消耗派对樱桃的扭蛋动作保留为单独动作。 - 迷你派对每日上限巡检/领取:聚合每日任务、在线奖励、VIP 礼包、爱心记录、花豆、家具仓库、房间资料、人气榜、余额和 NPC 邀请状态;读取爱心记录后会按回包自动回赞,NPC 任务完成继续做动态解析。 - 迷你派对 NPC 任务自动展开:按 `MiniPartyMissionInfoModule.as` 读取已邀请 NPC,再自动发送 `MINIPARTY_TASK_MAIN_INFO` 获取每个 NPC 的任务详情;该流程只读状态,不消耗任务材料。 - 迷你派对 NPC 任务安全完成:按 `MiniPartyMissionInfoModule.as` 和任务 XML 读取 NPC/任务/材料条件,自动检查背包与花豆,材料足够时交付任务并播放新解锁剧情;会消耗派对豆的任务默认跳过。 - 自动过剧情任务:按 `JobModel.getTaskList()` 读取 `TASK_LIST`,从回包自动生成 `OVER_JOB [jobId, step, 0]`,只提交本地任务表判定无物品/小游戏需求且服务端进度已完成的步骤;当前任务表已覆盖 2026-07-03 当周剧情「晨昏·无形之手」mainId=966(服务端 jobId 通常为 2966),玩家不填写 mainId/stepId。 - 月灵之森状态巡检/∞羽尘自动订单:按入口、交易所、加工坊、订单和萌宠园 SWF 读取状态;加工坊可领取已完成合成物,订单流程会先读 `MOON_FOREST_ORDER_INFO`,再扫背包材料,材料足够时自动发送 `MOON_FOREST_ORDER_COMPLETE(orderID)` 换羽尘,不让玩家手填订单号。 - 家园种植巡检:按 `Home.as`/`FastPlantModule.as` 进入自己家园,读取 HOME_INFO、徽章、家园仓库、爱心种植次数。 - 家园随机一键补种:按 `Res_HOME_INFO.as`/`Res_HOME_DEPOT.as`/`FastPlantModule.requestPlan(randomMode)` 自动计算可补种数量,从仓库土栽/水栽种子生成 `HOME_ONEKEY_PLANT_RAN`。 - 家园浇水施肥一键护理:按 `Home.as`/`HomeDepot.as` 读取家园仓库,拥有 `300081/300082/300083/300084` 时自动执行浇水、施肥、复活和治愈植物。 - 家园魅力/花神镜热度:按 `FairyPartyToolManager.updateBeautyVal()` 读取家园/派对魅力值,按 `homeHeatProxy.as` 读取当前家园热度并对当前家园献花;花神镜按 `FairyGodMirrorMainModule.as`、`FairyGodMirrorShowModule.as` 和 `FairyGodMirrorPlayerInfo` 回包自动生成开红包、点赞、拉票 1 次的热度提升包,玩家不填写 uid/位置,拉票会消耗 30 个花神镜并增加 10 热度。 - 好友/家园互动:按 `FriendListManager.as`、`FriendListUI.as`、`MapLogic.goHome`、`Home.requestHomeInfo`、`homeHeatProxy.as`、`HomeDeptBtnFun.as`、`OneKeyPollenController.as` 和 `MiniPartyLoveRecordsModule.as` 读取好友列表并自动进入好友家园;有花粉时采粉,可献花时献花,迷你派对爱心记录会按回包自动回赞,不让玩家填写 uid 或自定义包体。 - 背包/衣柜展示:按 `Shop.myclothReq()` 的 `CLOTH_INFO`、`CLOTH_OWEN_ALL` 和 `PocketModel/MainBookNetSocketManager` 的 `ITEM_TYPE_INFO` 固定线路读取穿戴、衣柜和常见背包分类;普通界面不要求玩家填写物品类型。 - 个人/家族资金与仓库巡检:按 `Shop.as`、家族资金/仓库 SWF 读取个人仙豆、本人家族信息、仓库进度和家具仓库;小额捐献保留为独立流程,可按 `VoteMoneyPanel.as` 默认值用个人资金捐献 1 次,不自动消耗花朵或神叶。 - 花精灵经验/变异提升:按 `FairyTreeGarden.as`、`GardenTaskManager.as`、`GardenHouse.as` 和精灵园回包读取普通/变异花精灵、任务列表、小屋状态;未接任务自动接取,空闲小屋自动开始生产,可收获小屋自动收获,加速、维修和购买道具不会自动执行。 - 副本/训练巡检与领奖:云之神殿按 `LINK_GAME_ACHIEVE_INFO` 自动领取可领奖成就,并按 `CommonReward.xml` 固定兑换通用奖励;地心历险按成就 XML 与勋章位自动领取达标奖励,缝纫训练按技能书 `ACTIVATE_GOODS_LIST [1]` 读取进度/材料,并领取节日脚印固定奖励和服装圣殿入口标记;核心小游戏分数结算未找到可信 SWF 发送点前不暴露给玩家。 - 恶德花园奖励:按 `CorruptForestBus/Eat/DocDataManager/Precious.as` 展开巴士礼物、用餐互动、4 个角色剧情奖励、4 个宝箱奖励和最终奖励。 - 咕噜咕噜爱心小厨每日巡检:进入餐厅读取座位状态,按 `state=1/2` 自动招待顾客或收取营业额,再领取每日补给、派采购员拿材料礼包。 - 爱心小厨材料包自动兑换:按 `MaterialBagPanel.as` 和 `LoveKitchen.xml` 扫描 `1702453` 食材礼包与已有食材,自动生成 `LOVE_KITCHEN_EXCHANGE_MATERIALS_CMD` 兑换食材。 - 爱心小厨营业额奖励:按 `LoveKitchen.xml` 展开 4 期 48 档奖励。 - 拔蘑菇满分巡检:按 `PullOutCarrotModule.as` 和地图 `MushroomPickBean` 点位枚举 15 个采集点,自动提交 `score=10` 满分结算;未开放或已完成点由服务端拒绝。 - 十六周年四国星星福利:按 `CommonActivityReward.xml` 的 `arId=27` 展开智慧国、美丽国、爱心国、勇气国 4 个神祈福利奖励,固定领取 `rId=1/2/3/5`,跳过空奖励项。 - 奇妙星库存巡检 / 星箱开箱:按导航模块的“奇妙星”特殊道具入口和奖励 XML 中的 `1700005`,自动扫描常见背包分类并统计当前数量;星箱按 `StarChest.as` 读取 `ITEM_TYPE_INFO [17]` 后,只对背包已有的 `1700010..1700013` 星棒生成 `STARCHEST_EXCHANGE_CHEST [chestId,stickId]`,不让玩家填写物品类型、宝箱或星棒 ID。 - 最新通用活动奖励巡检:动态读取 `CommonActivityReward.xml` 中最近 3 个无消耗奖励组,当前覆盖 `普普拉赠礼`、`颠倒童话` 和 `雪晶的共鸣20260626` 等最新材料/进度/版本周顺序奖励;扣道具和空奖励会跳过。 - 2026 暑假&6000纪念版本:按官方 2026-07-03 活动预告和 `CommonActivityReward.xml` 固定展开 `arId=40` 普普拉赠礼、`arId=37` 颠倒童话、`arId=39` 雪晶的共鸣;米米卡、礼盒抽取、付费礼包/抽奖和绑定好友签到不放入普通一键。 - 气泡中的时光礼物安全抽奖:按 `BubbleInTimeGiftsModule.as` 读取进度勋章 `3000133550`,扫描 `_flowerList` 中 12 种花朵库存,再按 `BUBBLE_TIME_GIFT_DRAW_CMD 9260` 自动生成 `[drawCount, selectedCount, flowerIds...]`;该流程会消耗花朵,因此只作为独立按钮,不放入每日总控。 - 旅行回忆相册状态巡检:按 `PhotoAlbumPanel.as` 读取照片总数勋章 `3000133646` 和 `3000133648..3000133689` 的 1280 张照片解锁位;`PhotoShowPanel.as` 只负责展示,不让玩家填写照片 ID。 - 团圆元宵夜祈愿树状态巡检:按 `PrayTreePanel.as`/`PrayCardSetPanel.as` 读取服务器时间、祈愿树勋章、已挂祈愿牌数量和千纸鹤 `1702381` 库存;`LANTERN_FESTIVAL_EXCHANGE_CARD_CMD 9147` 会消耗千纸鹤并需要选择卡片,暂不自动执行。 - 美仙节/风中舞会:按 `DPartyIntroModule`、`DPartyBeautyShopModule`、`DancePartManager.as`、`DanceWithNpcBean.as` 和 `Map83StartDancePartyBean.as` 固定链路读取舞会积分、挑战星级、商店积分;可一键进入舞会服、发送简单第 1 关或风中舞会 118 关挑战、请求 `DANCE_PARTY_FINISH [1]` 结算并退出,不让玩家填写 score/combo/npcId。 - 2025 中秋话剧月蚀王冠:新增普通玩家功能卡,入口指向「2025 中秋话剧奖励全领取」「2025 中秋 TE 七日剧情一键推进」「2025 中秋动画图鉴全记录」「2025 中秋剧情节点补全」,不让玩家填写 reward id、场景 id 或选项包。 - 2025 中秋话剧奖励:按 `CommonActivityReward.xml` 展开奖励组 5/6/7/8。 - 2025 中秋 TE 七日剧情推进:按 `MidAutumnDrama2025Stage1Module.as` 的固定 `_step=0..6` 发送 `9259`。 - 2025 中秋动画图鉴全记录:按 `LunarEclipseAnimation.xml` 展开 90 个 `9258` 动画记录包;字符串参数依据 `SocketImpl.send` 的 `writeUTFBytes` 编码生成固定 body。 - 2025 中秋剧情节点补全:按 `LunarEclipseScene/Event/Dialogue.xml` 展开场景和选项,服务端只接受当前进度可触发节点。 - 2011-2024 历史中秋固定结局/奖励:先按 `MidautumnPlayLookBackPanel.as` 的年度入口目录下载并反编译对应 SWF,再从各年度 `Main/Stage/Ending/Reward/After` 子模块整理固定参数动作;2011《嫦娥奔月》补入打开/观看记录,跳过动画、购买、抽奖和材料兑换不会自动执行。 - 花神镜状态巡检/热度提升:读取全服上镜数量、好友榜、主状态、本人上镜信息和宣传位状态;按 `FairyGodMirrorShowModule.as` 自动打开红包、点赞,并对本人上镜位拉票 1 次。 后续计划新增: ```text go run ./cmd/hua-export -out dist-data/v1 ```