
空中竞速
使用Let There Be Flight、GrapplingHook和Jetpack模组进行空中检查点竞速。
查看大图使用 [url=https://www.nexusmods.com/cyberpunk2077/mods/5208]Let There Be Flight[b],[/b][/url] [url=https://www.nexusmods.com/cyberpunk2077/mods/2917]Grappling Hook[/url] 和 [url=https://www.nexusmods.com/cyberpunk2077/mods/996]Jetpack[/url] 模组进行的空中检查点竞速。
已在 Cyberpunk 2077 版本 2.31 上测试
我的其他模组:
[url=https://www.nexusmods.com/cyberpunk2077/mods/27626]Neon Heat Pursuit[/url] 被 NCPD 检测到超过选定限速时进行追捕
[url=https://www.nexusmods.com/cyberpunk2077/mods/27456]Neon Heat[/url] 从随机选择的检查点开始的地图竞速
[url=https://www.nexusmods.com/cyberpunk2077/mods/33804]Ramp Builder[/url] 添加各种尺寸和坡度的坡道与赛道,用于发射或驾驶车辆
[line]
创建这个模组的动机是在组合享受上述 [url=https://www.nexusmods.com/cyberpunk2077/mods/5208]Let There Be Flight[b],[/b][/url] [url=https://www.nexusmods.com/cyberpunk2077/mods/2917]Grappling Hook[/url] 和 [url=https://www.nexusmods.com/cyberpunk2077/mods/996]Jetpack[/url] 模组时产生的——主要使用 GrapplingHook/Rope 进行有趣的摆荡,并使用 Jetpack 在上摆结束时获得一些高度提升或进行移动修正。GrapplingHook 包含一个“摆荡”选项,用于自动生成可供摆荡的空中锚点,但我想要一些固定的附加平台作为目标,从而形成更固定的布局,用于在地图中竞速。这个模组的第一个元素是它使用玩家位置动态创建一个固定的广告牌平台网格,每隔 100 单位生成一个可供摆荡的平台,从当前玩家位置向外至少延伸 200 单位,因此玩家始终能看到附近可供摆荡的广告牌([url=https://staticdelivery.nexusmods.com/mods/3333/images/27804/27804-1772033365-1939778879.jpg]截图[/url])。或者,如果想使用抓钩模组设置中的空中锚点,可以禁用平台(见下方模组设置),之后的游戏启动中就不会再看到任何平台。第二个元素是一组用于创建竞速的检查点,显示从起点到终点的时间并保存最佳时间。
该模组可以只使用第一个元素;如果想尝试竞速,包含的赛道起点(一条绕 Westbrook 并返回起点的路线)位于圣多明戈一座荒坂塔的顶部,如截图 [url=https://staticdelivery.nexusmods.com/mods/3333/images/27804/27804-1772023953-1631803329.jpg]此处[/url] 所示,世界坐标为 x = -486,y = -508,z = 263。当处于起始检查点默认 40 单位范围内时,竞速计时器开始,每通过一个检查点都会发出咔哒声,并且检查点被记录后会消失。HUD 中的标记会显示前往下一个检查点的方向。到达最终检查点后,将显示玩家用时,如果是最好成绩,将记录到存档文件 [b]race_personal_bests.txt[/b] 中。竞速结束后几秒钟,检查点会再次可见并准备进行下一次挑战。
[url=https://www.nexusmods.com/cyberpunk2077/mods/5208]Let There Be Flight[b],[/b][/url] [url=https://www.nexusmods.com/cyberpunk2077/mods/2917]Grappling Hook[/url] 和 [url=https://www.nexusmods.com/cyberpunk2077/mods/996]Jetpack[/url] 模组设置因个人喜好而异,我目前使用的抓钩“绳索”设置如截图 [url=https://staticdelivery.nexusmods.com/mods/3333/images/27804/27804-1772033357-1668295773.jpg]此处[/url] 所示,并且在视线方向上无加速度,朝向锚点加速(加速度 54,最大速度 15),距离(瞄准 120,期望 60),瞄准秒数 0.35,无额外阻力,视线偏离角度 180。如果刚接触 GrapplingHook 模组,有一个绑定键可添加“即时经验”来更改绳索设置。对于 Jetpack,我使用“真实感”设置(关闭坠落伤害),将重力调低到 -9,并给自己约 5 秒燃料。如果使用抓钩空中锚点,瞄准秒数设置为最低 0.05 会感觉响应最快。欢迎在帖子中分享可能更有趣或根据玩法风格更流畅的设置。使用抓钩时,我倾向于发现自己的上摆高度受限于起始高度,所以使用 Jetpack 作为辅助来在上摆时获得高度,或在需要时冲刺。似乎有时为了在停滞时重新获得向上的垂直动量,必须落地(平台/地面)并更直接地向上抓钩。
[b]模组设置[/b]
[b]Race Track[/b]:从 tracks 文件夹中的可用赛道中选择。赛道起点:上方提到的 track 1,track 2 位于 megabuilding 3 顶部附近,track 3 位于 Pacfica 的 marquess hotel 顶部
[b]Checkpoint Detection Radius[/b](10-150,默认 40):更大的半径会让检查点在更远距离更容易被检测到。
[b]Use Platforms[/b](默认 true):供抓钩和 Jetpack 使用,启用基于玩家位置的动态生成/消失广告牌平台以供摆荡。如果想使用抓钩空中锚点、飞行载具等,请禁用。
[b]问题事项[/b]
这个模组可能更容易导致游戏崩溃,我认为是由于部分时候在地图中高速穿梭,游戏无法跟上。生成和消失实体也可能造成问题。从 CET 菜单使用“重新加载所有模组”也可能创建实体重复和问题。避免在起点检查点检测半径内存档/读档。
对于检查点,我遇到了一个计时问题:如果游戏存档尚未完全加载,检查点无法可靠生成,因此在检查点生成前默认有 90 秒计时器,如果需要,可以在 init.lua 中下面这一行更改 90 秒等待时间。如果检查点未能出现,可以尝试在模组设置下更改所选赛道以刷新检查点。
[code] if checkpointsSpawned == false and Game.GetSimTime():ToFloat()-startTime > 90 then[/code]
[b]安装方法[/b]
安装所需模组后,将包含的文件解压/替换到主 Cyberpunk2077 文件夹下对应的现有路径中。
欢迎反馈和建议以改进模组。
[b]推荐模组[/b]
要消除过快坠落时的棕褐色滤镜,请使用以下任一模组
[url=https://www.nexusmods.com/cyberpunk2077/mods/5557]Disable Fall Damage Glitches and Falling Filter[/url](archive 文件)
[url=https://www.nexusmods.com/cyberpunk2077/mods/3161]Disable Fall Damage And Deadly Fall On-Screen Grey Effect Filter[/url](redscript)
卡在室内建筑几何体中时用来脱困
[url=https://www.nexusmods.com/cyberpunk2077/mods/1333]Ghost Forward[/url]
[b]创建新赛道/竞速检查点[/b]
目前模组引用 tracks 文件夹下的赛道……\Cyberpunk2077\x64\plugins\cyber_engine_tweaks\mods\GrappleRace\tracks,其中赛道文件(.lua 文件)应遵循以下用于检查点的文件格式——下方列出了 3 个检查点的示例赛道。
[code]local track = {
id = "nc_template",
displayName = "Example track",
description = "Track template to follow for new tracks",
creator = "someone",
numberOfLaps = 1,
hubPosition = {
position = { x = -1308.1179, y = 2245.0234, z = 14.438087 },
rotation = { roll = 0, pitch = 0, yaw = 0 }
},
startPosition = {
position = { x = -1303.6345, y = 2256.6912, z = 14.384598 },
rotation = { roll = 0, pitch = 0, yaw = 0 }
},
checkpoints = {
--comment: san.dom region
{position = { x = 665.3993, y = -806.5763, z = 31.730103 }, rotation = { roll = 0, pitch = 0, yaw = 0 }},
{position = { x = 684.79846, y = -1051.5482, z = 35.262665 }, rotation = { roll = 0, pitch = 0, yaw = 0 }},
{position = { x = 415.336, y = -1625.9634, z = 12.0388565 }, rotation = { roll = 0, pitch = 0, yaw = 0 }},
},
}
return track[/code]
要在模组设置赛道选择中看到任何额外赛道,请将文件名(带 .lua 文件扩展名)添加到 init.lua 中的列表。
[code] local trackFiles = {
"tracks/track_01",
"tracks/track_02",
"tracks/track_03"
}[/code]
此外,该模组通过 CET 绑定菜单提供了将按键绑定到“[b]Capture Checkpoint Position[/b]”的功能,它会以与上方示例相同的格式将世界位置写入/追加到模组文件夹下的文本文件 [b]generated_checkpoints.txt[/b],提供可替换到赛道文件模板中的检查点列表。赛道 id 将用于在文件 [b]race_personal_bests.txt[/b] 中追踪最佳竞速时间。需要重启游戏才能使用新赛道。
[b]其他说明
[/b]
广告牌平台可供摆荡的水平 100 单位和垂直 80 单位的网格距离,是基于 GrapplingHook 最大距离设置 120 选择的,因为游戏碰撞扫描超过该距离后并不可靠。选择广告牌作为重复平台也是随意的,只是需要一个带碰撞、较小的平台,可以在 init.lua 中下面这一行将其更改为其他带碰撞的游戏网格。
[code]local selectedPropPath = "base\\gameplay\\devices\\advertising\\digital\\entropy\\entropy_digital_billboard_3_3x1_c.ent"[/code]
这些广告牌生成时朝下,但可以在 init.lua 的 spawnTile 函数中下面这一行将 pitch 改为 -90,从而改为朝上
[code] trans:SetOrientation(ToEulerAngles({ roll = 0, pitch = 90, yaw = 0 }):ToQuat())[/code]
对于竞速检查点,我使用了快速旅行全息影像,如果需要,可以在 nc1.lua 中下面这一行更改该实体
[code] checkId = exEntitySpawner.Spawn("base\\fx\\environment\\holograms\\fast_travel_points\\e_hologram_fast_travel_point.ent", trans, '') [/code]
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。