参考仓库
除了本手册里的教学示例,tlserver/apps2/ 下还维护着一批真实运行的软件包,
它们都已发布到 Gitee,可以直接打开源码对照学习。
本地路径:tlserver/apps2/<全名>/。想快速对照时,可以直接在编辑器里打开对应目录,
不必先克隆仓库。
仓库一览
| 软件包(全名) | 类型 | 版本 | 依赖 | 仓库 |
|---|---|---|---|---|
黑猫@基础库 | 函数库 | v1.0 | — | hm_basic_library |
黑猫@基础设置 | 任务 | v1.0 | 黑猫@基础库 v1.0 | hm_basic |
黑猫@背包设置 | 任务 | v1.0 | 黑猫@基础库 v1.0 | hm_beibao |
黑猫@打怪挂机 | 任务 | v1.0 | 黑猫@基础库 v1.0 | hm_kill_monster |
黑猫@装备打造 | 任务 | v1.0 | 黑猫@基础库 v1.0 | hm_dazao |
黑猫@手工制作 | 任务 | v1.0 | 黑猫@基础库 v1.0 | hm_shou_gong |
黑猫@珍兽出战 | 任务 | v1.2 | 黑猫@基础库 v1.0 | hm_pet_fight |
黑猫@扫描元宝商城 | 任务(隐藏) | v1.0 | 黑猫@基础库 v1.0 | hm_scan_yuan_bao_shop |
黑猫@自动购买 | 任务 | v1.1 | 黑猫@基础库 v1.0、黑猫@扫描元宝商城 v1.0 | hm_pay_shop_item |
按需求挑参考
| 想学的东西 | 建议参考 |
|---|---|
函数库 + inject/ 原生注入 | 黑猫@基础库 |
| 最小可用的任务 + 表单 | 黑猫@基础设置 |
| 一个任务拆分多个子表单 | 黑猫@背包设置 |
完整的挂机循环(CheckTime / Check / Main) | 黑猫@打怪挂机 |
把复杂业务拆成多个 require 模块 | 黑猫@装备打造 |
| 数据驱动的逻辑(配方表) | 黑猫@手工制作 |
隐藏任务(隐藏: true) | 黑猫@扫描元宝商城 |
| 任务依赖另一个任务(按仓库地址声明) | 黑猫@自动购买 |
各仓库看点
黑猫@基础库 —— 函数库范本
它是所有任务的公共依赖。根目录下按能力拆出多个可 require 的模块
(player.lua、pet.lua、skill.lua、package.lua、team.lua 等),
并与 inject/ 下的原生脚本一一对应:
黑猫@基础库/
├── .hm.json
├── player.lua # require("黑猫@基础库.player")
├── ...
└── inject/
├── player.lua # 注入到游戏环境
└── ...
想了解「纯 Lua 封装」与「注入脚本」如何分工,看这个仓库最直接。
黑猫@基础设置 —— 最小任务
一个典型的任务:index.lua 定义运行循环,ui/index.lua + ui/main.lua 提供配置界面。
适合作为自己第一个任务的模板。
黑猫@背包设置 —— 多子表单
除 ui/main.lua 外,还拆出了 ui/form_select_use_item.lua 与
ui/form_select_drop_item.lua 两个子表单,是组织多个表单页面的参考。
黑猫@打怪挂机 —— 挂机循环
演示 CheckTime / Check / Main 在真实挂机场景下的写法。
黑猫@装备打造 —— 模块化拆分
把强化、合成、熔炼、刻铭、镶嵌、打孔等各拆成一个模块
(qiang_hua.lua、he_cheng.lua、rong_lian.lua……),
是复杂任务如何分文件的示例。
黑猫@手工制作 —— 数据驱动
用 formula.lua 存放配方数据,index.lua 负责按数据驱动执行逻辑,
适合学习「把数据与流程分开」。
黑猫@扫描元宝商城 —— 隐藏任务
清单里设置了 "隐藏": true,因此它不直接出现在任务列表中,
而是作为 黑猫@自动购买 的依赖被安装和调用。
黑猫@自动购买 —— 任务依赖任务
清单中同时声明了函数库依赖与任务依赖,后者以仓库地址为键:
{
"name": "自动购买",
"version": "v1.1",
"kind": "task",
"depLibrarys": { "黑猫@基础库": "v1.0" },
"depApps": {
"https://gitee.com/zaijianlixiang1995/hm_scan_yuan_bao_shop": "v1.0"
}
}
:::note 关于历史写法
apps2/ 下这些仓库大多先用中文键(名称 / 类型 / 仓库地址 / 依赖软件包),
个别较老的仓库仍使用英文键(name / kind / repository / depLibrarys / depApps),
或使用 仓库、描述 等别名;也有目录名与清单 名称 不完全一致的情况。
自己写软件包时,请以 软件包清单 .hm.json 里的规范字段为准, 这些差异仅作了解即可。 :::
下一步:回到 发布与安装,把你的软件包分享给其他人。