
You are viewing a potentially older version of this package. View Latest Version
SelfResurrection
一键复活自己。在死亡/幽灵状态下按快捷键(默认 Home)弹出复活菜单,选择队友即可复活并传送到其身边,带防弹飞处理。Self Resurrection for PEAK
一键复活自己的 PEAK 模组。死亡变成幽灵后,按快捷键弹出复活菜单,选择队友即可原地复活并传送到队友身边,自带防弹飞处理。
作者: DestinyWind
功能特性
- 一键复活:死亡/幽灵状态下按快捷键(默认 Home)弹出复活菜单
- 选择队友传送:复活时可选择传送到任意队友身边
- 只复活自己:不影响其他客户端玩家,仅同步显示
- 昏迷队友可选:昏迷(未死亡)的队友也可作为传送目标
- 防弹飞处理:使用游戏自带 WarpPlayer 协程 + 上方偏移,避免传送弹飞
- 快捷键选择:支持数字键 1-9 和字母键 Q-P 快速选择队友(最多 19 个)
- 配置文件自定义:所有参数可通过 cfg 配置文件修改
- 中途加入支持:无论开局还是中途加入游戏,死亡后均可复活
- 只在游戏内生效:主菜单/加载界面不会误触发
安装方法
- 安装 BepInEx 5.4.2403 for PEAK
- 下载本模组的最新版本
- 将
DestinyWind.SelfResurrection.dll复制到PEAK/BepInEx/plugins/目录 - 启动游戏,首次加载会自动生成配置文件
使用方法
基本操作
- 游戏中死亡后变成幽灵(观战状态)
- 按 Home 键(默认)打开复活菜单
- 菜单显示所有可选队友列表:
选择复活目标队友
昏迷的队友也可作为目标
[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 游戏中传送可能因物理碰撞导致角色被弹飞。本模组采用三重防护:
- 位置偏移:传送到队友上方 2 米处,避免踩到队友碰撞体
- 游戏自带 Warp:使用
WarpPlayerRPC(poof=true),游戏内部协程会关闭碰撞→逐帧移动→清零速度→恢复碰撞 - 上方偏移可调:如仍遇弹飞,可在配置文件把
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.IsGhost和CharacterData.dead双重判断幽灵状态 - 使用
Character.AllCharacters遍历可选队友
License
MIT License - 自由使用、修改、分发