超级跳跃

创作者: dukusmaximus
已更新:2026-05-24 01:55:34
148KB

关于此 MOD

# 赤色沙漠 超级跳跃 按住 **Shift + C**,站立时按下 **空格** — 克里夫直跃升空。完全INI可配置:组合键、跳跃力度、蹲伏伪装,全部实时重载(无需重启游戏即可调整)。
# 赤红沙漠的超级跳跃

按住 **Shift + C**,站立不动时按下 **空格** — 克里夫垂直起跳。完全支持 INI 配置:复合键、弹跳力度、下蹲假动作,所有修改即时生效(无需重启游戏即可调整)。

目标:`CrimsonDesert.exe v1.06.00`

你好!请把需要翻译的游戏文本发给我,我会自动识别源语言并按要求翻译成地道的中文。

## 需求

- **《红色沙漠》** 已更新至 v1.06.00(其他版本可能导致钩子签名失效,详见故障排除)。
- **终极ASI加载器**(作者:ThirteenAG),已为《红色沙漠》安装。若无ASI加载器,.asi文件将无法加载。下载地址:<https://github.com/ThirteenAG/Ultimate-ASI-Loader/releases>。请根据加载器说明,将DLL文件放入 `Crimson Desert/bin64/` 目录下。

## 安装

1. 请确认已安装并启用终极ASI加载器(有其他.asi模组正在运行即表示生效)。
2. 将压缩包内 `bin64/` 目录下的所有内容,复制到「红色沙漠」游戏安装目录下的 `bin64/` 文件夹中。完成后,目录结构应如下所示:
   `bin64/SuperJump.asi`
   `bin64/SuperJump.ini`
3. 启动游戏。模组挂载后等待15秒,日志将输出至 `bin64/SuperJump.log`。

如果你只有 `source/` 文件夹(未附带 `.asi` 文件),请参考下方的**从源码编译**。

## 使用

默认按键组合:**按住 Shift + C,再按空格键**。必须保持站立不动——若玩家物理位移非零,该模组将阻止起跳。你会看到蹲伏动画短暂播放作为蓄力动作,随后垂直升空。

## 设置

编辑 `bin64/SuperJump.ini` 文件。修改将即时生效(约1秒自动重载,无需重启)。

| 键 | 默认值 | 备注 |
|---|---|---|
| 启用 | 1 | 总开关 |
| `HotkeyMod` | `0x10` (Shift) | 第一修饰键。设为 `0` 可禁用。 |
| `热键修饰键2` | `0x43` (C) | 第二修饰键。设为 `0` 则降级为单修饰键模式。 |
| `快捷键` | `空格键` | 触发按键。 |
| `BoostY` | 40 | 每帧垂直速度增量,数值越大跳得越高。 |
| `BoostFrames` | 5 | 加速持续帧数,数值越高,操控感越飘。 |
| `RequireStationary` | 1 | 移动时禁止发射。设为 `0` 则可在冲刺中发射。 |
| `StationaryThresh` | 0.04 | 开火时允许的最大水平偏移量,数值越低判定越严格。 |
| `AnimCrouch` | 1 | 发送短暂的蹲伏按键指令,作为视觉预备动作。 |
| `CrouchKey` | `0x11` (Ctrl) | 游戏中下蹲的按键绑定。 |
| `CrouchDurationMs` | 120 | 假蹲伏的持续时间 |

虚拟键码参考:<https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes>

## 兼容性 — 挂钩链式调用

超级跳跃(SuperJump)与多个动作类模组(常见如自由飞行FreedomFlyer)共用挂钩点。加载时会等待5秒,让其他模组优先挂钩,随后进入以下两种状态之一:

- **优先安装钩子**(无前置模组时):写入14字节绝对跳转指令,并在自带空位中输出原始指令。
- **连锁挂钩**(另一模组已挂接):植入5字节rel32跳转指令,通过自建代码洞穴绕道接入前一模组的洞穴,由其处理原始逻辑。

实际操作中,这意味着当你将DELTA钩子与一至两个移动模组共用时,加载顺序无关紧要。但若在该站点上堆叠三个或更多模组,则行为无法预判——请在与可还原的存档中进行测试。

已确认兼容:
- 自由翱翔者(任意版本)

## 从源码构建

如果你下载的是仅源代码版本(无已编译的 `.asi` 文件):

1. 请安装 **Visual Studio Build Tools 2019/2022**,并勾选 *使用C++的桌面开发* 工作负载。社区版/免费版即可。
2. 打开 **VS 的 x64 原生工具命令提示符**。
进入 `source/` 文件夹。
4. 运行 `build.bat`。此操作将调用:
   请提供需要翻译的文本内容。
   cl /O2 /LD /EHsc SuperJump.cpp /link /OUT:SuperJump.dll
   好的,请提供您需要翻译的文本。
5. 将 `SuperJump.dll` 重命名为 `SuperJump.asi`。
6. 将 `SuperJump.ini` 放入 `Crimson Desert/bin64/` 目录下。

## 故障排除

该模组每次启动都会写入 `bin64/SuperJump.log` 日志。建议优先检查此文件。

| 日志条目 | 含义说明 |
|---|---|
| `v1.2 加载完成` | DLL 已附加。很好。 |
等待游戏加载中…… 普通模式 — 启动延迟15秒。
| `另一模组先挂载——将连锁` | 检测到前置挂载,正在连锁。很好。
| `钩点:0x... 链式=是/否` | 最终钩点状态 |
| 就绪! | 钩子已安装,输入循环运行中。
| `开火` | 和弦触发且静止判定通过。
| `压制中 — 移动中` | 和弦已开火但你并未保持静止 —— 请提高`驻留阈值`或松开WASD键。 |
| `错误:未找到DELTA挂钩位置` | 游戏版本不匹配。几乎可以确定你的 `CrimsonDesert.exe` 并非 v1.06.00 版本。 |
| `错误:hook 安装失败` | VirtualProtect 失败。请以管理员身份运行游戏,或检查反作弊 / 覆盖层软件。 |

常见问题:
- **无反应。** 请检查 `bin64/SuperJump.log` 是否存在。若无此文件,说明 ASI 加载器未加载该文件;若文件存在但没有 `FIRE` 行,则表示和弦键位错误——请核对 VK 十六进制代码。
- **发射有火焰但无推进效果。** 提高 `BoostY`(建议值60-80)和 `BoostFrames`(建议值8-10)。
- **冲刺中开火。** 缩小`StationaryThresh`值(尝试设为0.02),或保持默认,只需在组合操作前松开WASD键即可。
- **安装其他移动模组后,原有模组失效。** 请检查SuperJump日志中的`chain=yes`设置。若显示`chain=no`,且同时安装了FreedomFlyer,则SuperJump无法充分生效——此为ASI加载器的加载顺序问题,与SuperJump本身无关。

## 卸载

删除 `bin64/SuperJump.asi` 和 `bin64/SuperJump.ini` 即可。该模组不会在磁盘上修改任何游戏文件。

## 制作人员名单 & RE参考资料

- 挂钩点识别与DELTA RVA:本模组使用的原始RE工作。
- 《红色沙漠》通用逆向工程参考资料:[blizz3010/CrimsonDesertCoop](https://github.com/blizz3010/CrimsonDesertCoop),尤其是 [REVERSE_ENGINEERING.md](https://github.com/blizz3010/CrimsonDesertCoop/blob/main/docs/REVERSE_ENGINEERING.md)。
动画参考: [faisalkindi/CDGuardCancel](https://github.com/faisalkindi/CDGuardCancel)
- 解包工具:[lazorr410/crimson-desert-unpacker](https://github.com/lazorr410/crimson-desert-unpacker)

## 许可证

源代码按原样发布,不提供任何担保。你可以随意使用——分支、修改、重新分发均可。署名非强制,但欢迎致谢。


为了帅气的飞行:
此模组
滑翔翼耐力 
自由飞行者模组 
(与角色创建器和女性动画不兼容,可使用,但可能破坏动画效果。)

使用 Xmod 解锁 红色沙漠增强版 的全部潜力 — 今天就探索这些顶级 MOD!