median-dxz / seerh5-assistant

赛尔号H5端登陆器 & api封装接口
https://median-dxz.github.io/sea-project-website/
Mozilla Public License 2.0
28 stars 9 forks source link
seer seerh5 taomee typescript

SEA Project

SEA-Project logo

赛尔号 H5 端登陆器 && API 封装接口 && 模组框架

license core version launcher version last commit

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

如果需要使用当前阶段的内容,请加入我们的DC群组,以跟踪项目进展和获得帮助。

Discord

置顶声明

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

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

近期公告

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

最近更新的内容 & RoadMap

参阅 #26milestones

简介

(待更新)

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

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

截图

(待更新)

快速入门

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

搭建基本运行环境

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

pnpm i

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

构建@sea/core

接下来需要构建@sea/core,得到dist输出。在packages/core下执行:

pnpm build

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

在开发模式下运行登录器

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

首先在@sea/server包下启动后端:

pnpm start

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

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

最后在@sea/launcher包下启动前端开发服务器:

pnpm dev

获得生产构建

如果想要获得登录器的生产构建,那么直接在项目根目录下运行构建脚本:

pnpm build:executable

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

构建的详细步骤请参考scripts/build-executable.js,最后一步是使用pkg生成可执行文件。在packages/server/bin下得到server.exe,直接运行即可。

pkg打包是一个临时方案,未来将使用deno生成SAE(standalone executables,单体可执行文件),使用Tauri分发生产版本。

使用模组

sdk中预置了常用的模组,提供了一系列强大的功能扩展。

在项目根目录下运行:

pnpm build:workspace

该命令会启用一个脚本来构建@sea/mod-type@sea/mod-resolver@sea/core,并自动安装到sdk下。

sdk中包含一个vite构建插件,该插件会在构建是自动安装模组到登录器后端,安装是通过启动后端服务上用于安装模组的REST端点进行的,因此构建模组之前需要先启动后端服务。

接着配置构建插件使用的后端URL环境变量,在sdk下创建.env文件:

VITE_SEA_SERVER_URL={后端URL}

如果上面步骤都使用默认配置的话,这里的URL应该是http://localhost:2147

然后在sdk下运行:

npm i
npm build

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

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

关于编写模组的例子,请看下面的例子等文档。

SDK的环境构成

  1. typescript+vite脚手架的基本配置
  2. @sea/core库的接口定义, 以及将其视为外部模块所需的相关配置
  3. @sea/mod-type库提供了模组接口定义文件,还提供了扩展的@sea/core定义(需要登录器支持)
  4. @sea/core库内嵌的egret白鹭引擎定义,以及seerh5提供的游戏接口定义
  5. vite构建插件,用以从sdk快速安装模组到登录器

功能点

core:

launcher:

其他:

更多信息

(待更新)

开源协议

MPL-2.0

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