DestinyWind-SelfResurrection icon

SelfResurrection

一键复活自己。在死亡/幽灵状态下按快捷键(默认 Home)弹出复活菜单,选择队友即可复活并传送到其身边,带防弹飞处理。

Last updated 4 hours ago
Total downloads 53
Total rating 0 
Categories Mods
Dependency string DestinyWind-SelfResurrection-1.9.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack_PEAK-5.4.2403 icon
BepInEx-BepInExPack_PEAK

BepInEx pack for PEAK. Preconfigured and ready to use.

Preferred version: 5.4.2403

README

Self Resurrection for PEAK

一键复活自己的 PEAK 模组。死亡变成幽灵后,按快捷键弹出复活菜单,选择队友即可原地复活并传送到队友身边,自带防弹飞处理。

作者: DestinyWind

功能特性

  • 一键复活:死亡/幽灵状态下按快捷键(默认 Home)弹出复活菜单
  • 选择队友传送:复活时可选择传送到任意队友身边
  • 只复活自己:不影响其他客户端玩家,仅同步显示
  • 昏迷队友可选:昏迷(未死亡)的队友也可作为传送目标
  • 防弹飞处理:使用游戏自带 WarpPlayer 协程 + 上方偏移,避免传送弹飞
  • 快捷键选择:支持数字键 1-9 和字母键 Q-P 快速选择队友(最多 19 个)
  • 配置文件自定义:所有参数可通过 cfg 配置文件修改
  • 中途加入支持:无论开局还是中途加入游戏,死亡后均可复活
  • 只在游戏内生效:主菜单/加载界面不会误触发

安装方法

  1. 安装 BepInEx 5.4.2403 for PEAK
  2. 下载本模组的最新版本
  3. DestinyWind.SelfResurrection.dll 复制到 PEAK/BepInEx/plugins/ 目录
  4. 启动游戏,首次加载会自动生成配置文件

使用方法

基本操作

  1. 游戏中死亡后变成幽灵(观战状态)
  2. Home 键(默认)打开复活菜单
  3. 菜单显示所有可选队友列表:
选择复活目标队友
昏迷的队友也可作为目标

[1]  玩家A   距离 15m
[2]  玩家B   距离 23m
[3]  玩家C   距离 45m
...

操作:点击列表项 或 按对应数字/字母键 [1-9 Q-P] 快速选择
关闭:ESC 或再次按菜单键
[关闭 (ESC)]

选择队友的三种方式

方式 操作 说明
鼠标点击 点击列表项 直接选择
数字键 1-9 选择第 1-9 个队友(主键盘数字键,笔记本也能用)
字母键 Q W E R T Y U I O P 选择第 10-19 个队友(支持 20+ 玩家房间)

关闭菜单

  • ESC
  • 再次按 Home 键(菜单键)
  • 点击"关闭"按钮

配置说明

配置文件位置:PEAK/BepInEx/config/destinywind.peak.selfresurrection.cfg

首次启动游戏后自动生成,可用文本编辑器修改:

[按键]

## 打开复活菜单的按键,可改为任意 KeyCode(如 F1/F5/T/Keypad7/Mouse3 等)。仅死亡/幽灵状态下生效。
# 设置类型:KeyCode
# 默认值:Home
MenuKey = Home

[防弹飞]

## 传送到队友上方的偏移(米)
# 设置类型:Single
# 默认值:2
TeleportOffsetUp = 2

[行为]

## 复活冷却秒数
# 设置类型:Single
# 默认值:1.5
Cooldown = 1.5

常用 KeyCode 值

按键 KeyCode
Home Home
F1-F15 F1 - F15
字母 A-Z A - Z
数字 0-9 Alpha0 - Alpha9
小键盘 0-9 Keypad0 - Keypad9
鼠标左/右/中键 Mouse0 / Mouse1 / Mouse2
Insert / Delete / End Insert / Delete / End
Tab / Space Tab / Space

防弹飞机制

PEAK 游戏中传送可能因物理碰撞导致角色被弹飞。本模组采用三重防护:

  1. 位置偏移:传送到队友上方 2 米处,避免踩到队友碰撞体
  2. 游戏自带 Warp:使用 WarpPlayerRPC(poof=true),游戏内部协程会关闭碰撞→逐帧移动→清零速度→恢复碰撞
  3. 上方偏移可调:如仍遇弹飞,可在配置文件把 TeleportOffsetUp 调大到 3-4 米

复活机制说明

  • 死亡→幽灵:游戏在角色死亡后自动创建 PlayerGhost 进入观战
  • 复活流程:清除死亡/昏迷状态 → 清除所有状态效果 → 触发外观同步 RPC → 游戏自动销毁幽灵退出观战
  • 复活惩罚:游戏自带 5% 诅咒 + 30% 饥饿(applyStatus=true 时)
  • 网络同步:复活和传送通过 PhotonView RPC 同步到所有客户端,仅作用于自己的角色

常见问题

Q: 按键没反应?

  • 确认 DLL 已放在 BepInEx/plugins/ 目录
  • 确认 BepInEx 已正确安装(检查 BepInEx/LogOutput.log 是否有加载日志)
  • 确认只在死亡/幽灵状态下才有效(活着时按键会提示"只有死亡/幽灵状态下才能复活")

Q: 配置文件没生成?

  • 首次启动游戏后会在 BepInEx/config/ 自动生成
  • 如果没生成,检查 BepInEx 日志确认模组是否加载成功
  • 配置文件名:destinywind.peak.selfresurrection.cfg

Q: 复活后被弹飞?

  • 在配置文件增大 TeleportOffsetUp(默认 2,可调到 3-4)
  • 确保传送到的是开阔区域的队友

Q: 中途加入游戏能用吗?

  • 可以。无论开局还是中途加入,死亡后都能正常复活

Q: 会不会复活其他玩家?

  • 不会。复活逻辑只在本地执行,网络 RPC 仅同步显示,不会影响其他玩家的角色状态

Q: 队友死了能传送到他身边吗?

  • 不能。已死亡或变成幽灵的队友会从列表中排除(三重检查:data.dead + IsGhost + 列表渲染检查)
  • 昏迷(未死)的队友可以选择

兼容性

  • BepInEx: 5.4.2403 (PEAK 版)
  • 游戏版本: PEAK 最新版
  • 多人游戏: 完全兼容,其他客户端无需安装本模组
  • 冲突: 不修改任何游戏原始方法,仅通过 RPC 调用,兼容性良好

更新日志

详见 CHANGELOG.md

技术实现

  • 通过反射调用游戏内部 Character.RPCA_Revive(bool) 方法实现本地复活
  • 通过 PhotonView.RPC("RPCA_Revive", RpcTarget.Others) 同步其他客户端
  • 通过 PhotonView.RPC("WarpPlayerRPC", RpcTarget.All, pos, true) 实现防弹飞传送
  • 使用 Character.IsGhostCharacterData.dead 双重判断幽灵状态
  • 使用 Character.AllCharacters 遍历可选队友

License

MIT License - 自由使用、修改、分发