Skip to content

GhostStar/startpoint-cn

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

733 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StarPoint CN

世界弹射物语(World Flipper)CN(雷霆 Leiting)版本的服务端模拟器。

功能状态

已实现(部分端点沿用国际服设计,对 CN 的通用性尚未验证):

  • 账号:设备自动绑定(device_id)、Web 管理面板
  • 时间系统:全局 / 按存档时间偏移(默认 2024-08-14,规避 CDN 报错)
  • 关卡:主线 / 部分活动·Boss / 单人战斗结算
  • Gacha:角色·武器卡池、兑换、C3032 动画修复、抽卡种子验证
  • 多人联机(NPC 协战):Phase 2 — 建房 + NPC 招募 / 召唤 / 结算
  • 系统:狂热激战 · 体力 · 商店 · 漫画 · 邮件群发
  • 养成:升级 / 突破 / 魔晶板 / EX / 羁绊;武装:觉醒 / 熔解;编队 · 图鉴 · 教程

⚠️ 已知失效 / 注意:

  • 存档导入 / 导出:已修复 —— 采用 MergedPlayerData 快照格式(仅管理面板备份/恢复,非游戏客户端 load)。
  • 漫画资源不随项目分发,需自行导入。
  • 多个端点沿用国际服(global)设计,不保证对 CN 客户端通用。

端点状态见 docs · 端点实现状态

环境需求

  • Node.js ≥ 20 · 打补丁后的 CN 客户端 APK(见"客户端改造")
  • 一份 CN CDN 资源,放入 .cdn/cn/

CDN 路径清单文件(PathFile)

客户端经 EntityLists 的"路径清单文件"获取全部资源路径。服务端对它使用了两套命名且不做归一处理:

  • src/routes/cn/asset.ts 的 version_info → EntityLists/PathFile
  • src/cn-server.tsEntityLists/10939-android_medium.csv

不同来源的 CDN 该文件名 / 位置可能不同(内容一致)。请确保 .cdn/cn/EntityLists/同时存在 PathFile10939-android_medium.csv(复制一份改名即可),否则按命中端点不同可能出现资源 404。

快速启动

前置

cd starpoint-cn
npm install
cp .env.example .env

本地局域网(开发/测试)

.env.example 的局域网区块默认激活,cp .env.example .env 后可直接启动:

# 生产模式(build + 启动)
bash scripts/start-cn.sh

# 开发模式(热重载,无需 build)
npm run debug:cn

如果客户端在另一台设备上,需编辑 .env

  • CN_LISTEN_HOST=你的 LAN IP(如 192.168.x.x
  • CDN_BASE_URL=http://你的LAN_IP:8001/patch/cn

公网云服务器

  1. docs/deployment.md 配置 nginx 反向代理 + 防火墙
  2. 编辑 .env,激活公网区块:
CN_LISTEN_HOST="127.0.0.1"                        # 仅监听本地
CDN_BASE_URL="https://<你的域名>/patch/cn"        # 公网域名 + HTTPS
SESSION_PUBLIC_HOST="<你的域名>"                  # 联机 TCP 公网地址
  1. 启动:
bash scripts/start-cn.sh

两种部署方式 .env 对比

配置项 局域网 公网
CN_LISTEN_HOST 0.0.0.0 / LAN IP 127.0.0.1
CDN_BASE_URL http://<LAN_IP>:8001/patch/cn https://<域名>/patch/cn
SESSION_HOST 0.0.0.0 127.0.0.1
SESSION_PUBLIC_HOST 不设 公网域名
前置层 nginx + SSL + 防火墙

.env 加载说明

  • npm run dev:cnbash scripts/start-cn.shnode --env-file=.env 加载 .env
  • npm run debug:cn(ts-node-dev)无 --env-file、代码也未引入 dotenv,因此不会自动读 .env;调试时需自行 export 环境变量,否则走代码默认值。

关键配置(.env)

  • CN_LISTEN_HOST / CN_LISTEN_PORT — HTTP 绑定地址 + 联机 TCP 房间显示 IP;客户端在别的设备时设为你的 LAN IP(默认端口 8001)。
  • CDN_BASE_URLhttp://<你的LAN_IP>:<端口>/patch/cn
  • CN_RES_VERSION — 须与客户端 resourceVersion 一致(当前 1.4.54)。
  • DROP_MULTIPLIER / NPC_* — 测试与联机调参。

客户端改造(最小功能)

连接本服务需对官方 APK 打两处改动(免登录 + 重定向到本服),详见 client-patch/:

  • 免登录pinball/config/core/DevConfig.as:sdkDummy = falsetrue
  • 重定向到本服pinball/config/gbits/DevConfig_gf_android.as:域名 → 你的服务器,"https""http"

用 FFDec 导出 APK 的 AS3 后执行:

bash client-patch/apply.sh <AS3_导出目录> <你的LAN_IP>:8001

再用 FFDec 回封、重打包签名。完整 APK / 反编译说明见本地环境文档 docs/setup/

Web 管理面板(http://<CN_LISTEN_HOST>:<端口>/)

/ 时间设置 · /player 账号·存档·玩家 · /player/:id 玩家详情 · /mail 群发邮件

面板对写入端点做结构安全校验(拒绝未知字段 / 类型错误 / 超 2³¹ 的非法值并明确报错),但不限制游戏平衡数值;重要操作仍建议先用「下载 JSON」导出备份。 若误发非法邮件导致客户端在邮件界面崩溃,可用玩家详情页的清空邮件箱恢复。

FAQ

  • H404 = 该功能 / 端点尚未实现。

致谢 / 相关项目

About

No description, website, or topics provided.

Resources

License

Code of conduct

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 74.7%
  • JavaScript 11.0%
  • Python 4.9%
  • HTML 3.8%
  • Shell 2.7%
  • CSS 2.5%
  • Batchfile 0.4%