Skip to content

median-dxz/seerh5-assistant

Repository files navigation

SEA Project

赛尔号 H5 端登陆器 && api 封装接口

license core version launcher version last commit

目前处于alpha阶段,整体架构和api随时可能有大型更改和重构

置顶声明

IMPORTANT:项目全部开源,仅供学习使用,禁止用于任何商业和非法行为。项目内全部功能不涉及付费相关和 pvp 相关,项目内全部通信仅涉及淘米官方服务器,不涉及任何第三方。

WARNING: 目前该项目的安全性考虑是欠缺的,请注意:模组是不可信且不受控的外部代码,将在前端执行,这可能导致严重的安全问题!请勿安装任何未经事先人工验证的模组!

近期公告

请在SEA Project网站上查看: SEA Project

最近更新的内容

请在SEA Project网站上查看: SEA Project

简介

SeerH5-Assistant 是一款使用typescript编写的赛尔号H5端登陆器。项目目前包含四个部分:core、launcher、server、sdk,其中

  • core: 核心库,负责环境注入和接口封装
  • launcher: 目前的登录器应用程序原型,同时负责e2e测试
  • server: 登陆器后端,负责登陆器服务,游戏资源反代以及用户配置的存储(参见现在还不存在的文档了解为什么使用后端服务而不是直接使用Electron来实现这些)
  • sdk: 适用于本登录器的模组开发框架

项目简称: SEA,登录器简称:SEAL

快速入门

前排提示:本项目目前处于开发阶段,没有可用的成品,如果你对相关的技术栈不熟悉,可以等待该项目成熟后再来。

首先clone整个仓库,然后安装依赖:

pnpm i

依赖安装完成后,项目目前结构如下:

  • core: 核心库,
  • launcher: 登录器前端本体
  • server:登录器后端
  • sdk: sdk环境,内含一些预制的模组包

然后你需要分别为前端和sdk安装sea-core,由于各种因素的考虑,sea-core没有发布在npm上,因此你有两种选择:

  1. 通过本地tarball包安装
  2. 通过远程tarball包安装

不过现阶段使用clone整个项目的方式来尝鲜的话,可以直接遵循下面步骤:

  1. 对sea-core执行手动构建,得到dist输出。

packages/core下执行:

pnpm build

因为launcher是使用工作区链接来安装sea-core的,因此现在登录器就能使用了。

  1. 在开发模式下,分别运行登录器的前端和后端。

server包下启动后端服务:

pnpm start

然后在package/launcher下创建.env.local文件,详情见vite的环境变量配置文档:

VITE_BACKEND_PORT={你的后端端口号,默认是2147}

然后在launcher包下启动开发服务:

pnpm dev
  1. 如果要进一步使用sdk中的预设模组,你可以直接运行:
pnpm release
pnpm build

第一条命令会启用一个脚本来构建sea-core,并自动安装到sdk下, 第二条命令会自动构建模组并复制到server的mods目录下。

最后进入游戏!请注意浏览器版本, 如果不支持import-map, 原生esm加载等功能, 需要手动添加相应的polyfill。

  1. 如果要进行服务的打包构建,即生产环境的构建,则第二步中不需要分别运行前后端,而是在主目录下运行构建脚本:
pnpm build

该命令会启用一个构建脚本,构建登录器前端和后端,并使用pkg打包为Windows下可以独立运行的服务器程序。

注意该项目的后端的主要功能是作为本地数据存储跨域反代部署在本地,对于每一个用户存的都是独一份的数据。暂时还不考虑一人游玩多个号的场景。

关于编写模组的例子,请看下面的例程。

SDK的环境构成

  1. typescript+vite脚手架的基本配置
  2. sea-core库的接口定义, 以及将其视为外部模块所需的相关配置
  3. launcher扩展的sea-core定义,提供了更多高级常用功能
  4. launcher提供的模组定义文件,用以支持模组的开发
  5. sea-core库内嵌的egret白鹭引擎定义,以及seerh5游戏模块的反混淆定义

功能点

core:

  • 自动战斗
    • 设置战斗模型
    • 完备的回合信息
  • 统一的游戏静态数据查询接口
  • 常用操作封装
  • 精灵养成操作封装
    • 包含一个内部精灵信息缓存
  • 收发包支持
  • 多个事件订阅器
    • 模块加载
    • 收发包
    • 各种事件的监听
    • 注入了额外的常用事件的hook
  • 游戏内实体封装
  • 支持扩展

launcher:

  • 扩展核心
    • 实现一些常用功能集
      • 压血
      • 战队派遣
      • 切换背包
    • 游戏内部优化
      • 本地换肤
      • 静态模式对战加速
      • 查看对方血量
      • 战队加成一键加满
      • h5端自动治疗开关
      • 离屏挂机
      • 更多功能编写中...
  • 控制面板,你可以在这里轻松:
    • 切换称号
    • 切换套装
    • 分开治疗指定精灵
    • 压血
    • 借火
    • 保存并切换背包
  • 一键签到
  • 一键日任,稳定不掉线
  • 因子扫荡
  • 收发包调试
  • 手动设置常用战斗
  • 快捷控制面板
  • 充分的功能扩展支持(未实现)

其他:

  • 入口注入
  • 多重缓存加速游戏加载
  • 登陆器和实际游戏客户端之间的ui与数据同步
  • 反代资源
  • ui操控

完整参考

请等待还没完工的文档

原理与高级用例

同上,包括注入原理,修改原理,如何拿到官方原始源码进行调试,收发包细节,官方游戏引擎细节等

运行测试

目前登录器本体的功能就直接当作手动e2e测试啦!

对于core核心库的测试,同样需要先运行后端。

路线图 (Road Map)

Core:

--> Release: 1.0.0 解耦登录器特定逻辑以及非核心功能, 要求可以方便对接到launcher

App:

  • --> 0.8.x 模组安装与卸载,独立仓库作为外部源,基于PR自动构建发布,模组与关卡配置可以在UI内完成
  • 0.9.x ctOverride功能,模组对等依赖处理

开源协议

MPL-2.0

并确保您遵守了 eula 中的开发者条款