Damage Boost/zh: Difference between revisions

From Minecraft Parkour Wiki
Content added Content deleted
No edit summary
No edit summary
 
(14 intermediate revisions by 2 users not shown)
Line 5: Line 5:
本页面仍需要一个清晰的解释以及代码分析,但主要的想法列在此处。
本页面仍需要一个清晰的解释以及代码分析,但主要的想法列在此处。


玩家可以由自然因素受到伤害:落,火焰,仙人掌,药水等等……
玩家可以由自然因素受到伤害:落,火焰,仙人掌,药水等等……


有意思的是,溺水并不影响玩家的速度。在旧版本的游戏中,溺水会不断地将玩家向下压而使他们困在水中。但是在 1.8 中受到其他种类的伤害,例如药水,同样会使你面对这样的困境。
有意思的是,溺水并不影响玩家的速度。在旧版本的游戏中,溺水会不断地将玩家向下压而使他们困在水中。但是在 1.8 中受到其他种类的伤害,例如药水,同样会使你面对这样的困境。
Line 14: Line 14:




<span id="Introduction:"></span>
== 介绍: ==
== 介绍: ==


Line 38: Line 39:
'''注意:'''
'''注意:'''


* '''大约'''这个词捕获了这样一个事实,即速度通过 1/8000 向 0 四舍五入,这是由于度数据包中存是双精度值
* '''近似'''这个词特指由于双精值在数据包中的储方式,速度是以1/8000为单位向下取整
* 自然原因造成的伤害与击退不同,击退是在玩家被实体击中时应用的。
* 自然原因造成的伤害与击退不同,击退是在玩家被实体击中时应用的。






<span id="Synchronized_Damage_Boost"></span>
== 同步伤害跳跃 ==
== 同步伤害跳跃 ==


Line 49: Line 51:
在与服务器同步的情况下受到伤害时可以保持玩家在下一刻的速度。
在与服务器同步的情况下受到伤害时可以保持玩家在下一刻的速度。


我们想法是利用这种速度守恒来保持尽可能多的垂直速度,这是一个跳跃开始(0.42m/t)。在最佳情况下,跳跃高度的最大值达到约1.6685米,允许玩家跳上1.625高的方块。
的是利用这种速度守恒来保持尽可能多的向上速度,跳跃开始的速度(0.42m/t)。在最佳情况下,跳跃高度的最大值达到约 1.6685 米,使玩家跳上 1.625高的方块。






<span id="Desynchronized_Damage_Boost"></span>
== 不同步时的伤害跳跃 ==
== 不同步时的伤害跳跃 ==


<youtube>https://youtu.be/9HxDTb4QNIc</youtube>
<youtube>https://youtu.be/9HxDTb4QNIc</youtube>


不同步的伤害让玩家'''原地加速'''( 实际上 ,玩家的速度是简单的更新 )。通过在[[Special:MyLanguage/Slime Block|slime block]](或1.12+中的床)上反弹,可以将向下加速度重定向到另一个方向。
不同步的伤害让玩家'''原地加速'''实际上仅仅是玩家的速度更新。通过在[[Special:MyLanguage/Slime Block|粘液块]](或 1.12+ 中的床)上反弹,可以将向下加速度转为上加速度


需要注意的是,通过在方块边缘落地,玩家可以在粘液块上受到摔落伤害的同时反弹。
<div lang="en" dir="ltr" class="mw-content-ltr">
Note that you can take fall damage on a slime block and still bounce, by landing on the outline of the block.
</div>


在非同步状态下进行损坏可能会产生尚未完全了解的其他影响。特别是,玩家可能会从跳跃中过早落地,甚至[https://youtu.be/xYSzRg5rYdA 激活假跳跃]。
在非同步状态下受到伤害可能会产生尚未完全了解的其他影响。特别是,玩家可能会从跳跃中过早落地,甚至[https://youtu.be/xYSzRg5rYdA 激活假跳跃]。






<span id="Interaction_with_Jump_Boost"></span>
==与跳跃提升的交互==
== 与跳跃提升的联动 ==


<youtube>https://youtu.be/FFvNmZ-Zssk</youtube>
<youtube>https://youtu.be/FFvNmZ-Zssk</youtube>


显然,[[Special:MyLanguage/Status Effects|跳跃提升]]效果可以与伤害跳跃相结合,以实现更高的跳跃或反弹。不明显的是游戏如何处理超过 129 级的提升,将其变成负数。所涉及确切机制仍不清楚
显然,[[Special:MyLanguage/Status Effects|跳跃提升]]效果可以与伤害跳跃相结合,以实现更高的跳跃或反弹。跳跃提升等级 129 或更高时,虽然玩家无法得更高(由于服务器以字节而不是无符号字节发送药水效果),但仍然受到伤害提升的影响因为这是在服务器端计算的。


在这种情况下,当玩家跳跃或从跳跃中降落并受到伤害时,他们将以3.9/的初始速度向上运动(这个上限被硬编码到速度包中)。
当玩家跳跃或从跳跃中降落并受到伤害时,他们将以 3.9 m/t 的初始速度向上运动(上限被硬编码到速度包中)。


具体来说,对于252 - 256级的跳跃提升,玩家可以跃,尽管初始速度较慢。在这种情况下,可以很容易地激活故障。
具体来说,对于252 - 256级的跳跃提升,玩家的更低。在这种情况下,可以很容易地激活故障。




'''注意:;'''129 - 249级的跳跃提升可以在黏液块上通过简单的跳跃应用,因为负速度会被转换成正向的垂直速度。
'''注意''' 129 - 249 级的跳跃提升仅通过在黏液块上跳跃就可起效,因为负速度会被转换成正向的垂直速度。

Latest revision as of 03:12, 25 February 2023

Other languages:

伤害跳跃是一种机制,通过以某种方式受到伤害以提升跳跃高度。

本页面仍需要一个清晰的解释以及代码分析,但主要的想法列在此处。

玩家可以由自然因素受到伤害:摔落,火焰,仙人掌,药水等等……

有意思的是,溺水并不影响玩家的速度。在旧版本的游戏中,溺水会不断地将玩家向下压而使他们困在水中。但是在 1.8 中受到其他种类的伤害,例如药水,同样会使你面对这样的困境。

在跑酷服务器中通常会禁用伤害,但这个机制在其它地方有很大作用,例如速通跑酷地图。



介绍:

当受伤时,信息会通过数据包传递给服务器,然后再返回给玩家。对于集成服务器(单人)和专用服务器(多人)都是如此。在这个过程中,玩家的运动被修改:

  • 当玩家的速度与服务器同步时,玩家在受到伤害时保持近似相同的速度。
  • 当玩家的速度与服务器不同步时,玩家似乎会在受到伤害时加速,因为它是以预期的速度更新的。


目前还不清楚玩家的速度何时和如何失去同步,但这里有一些已知的情况:

  • 跑出一个方块,并在最后一刻跳跃
  • 跳到黏液块上
  • 从梯子上下来
  • 处于水中或岩浆中

我们怀疑,失去同步与 NetHandler 独立于移动代码调用 jump() 方法有关。


注意:

  • 近似这个词特指由于双精度值在数据包中的储存方式,速度是以1/8000为单位向下取整的。
  • 自然原因造成的伤害与击退不同,击退是在玩家被实体击中时应用的。


同步伤害跳跃

在与服务器同步的情况下受到伤害时可以保持玩家在下一刻的速度。

目的是利用这种速度守恒来保持尽可能多的向上速度,即跳跃最开始的速度(0.42m/t)。在最佳情况下,跳跃高度的最大值达到约 1.6685 米,使玩家能跳上 1.625 格高的方块。


不同步时的伤害跳跃

不同步的伤害让玩家原地加速(实际上仅仅是玩家的速度被更新)。通过在粘液块(或 1.12+ 中的床)上反弹,可以将向下加速度转为向上加速度。

需要注意的是,通过在方块边缘落地,玩家可以在粘液块上受到摔落伤害的同时反弹。

在非同步状态下受到伤害可能会产生尚未完全了解的其他影响。特别是,玩家可能会从跳跃中过早落地,甚至激活假跳跃


与跳跃提升的联动

显然,跳跃提升效果可以与伤害跳跃相结合,以实现更高的跳跃或反弹。跳跃提升等级 129 或更高时,虽然玩家无法跳得更高(由于服务器以字节而不是无符号字节发送药水效果),但仍然受到伤害提升的影响,因为这是在服务器端计算的。

当玩家跳跃或从跳跃中降落并受到伤害时,他们将以 3.9 m/t 的初始速度向上运动(该上限被硬编码到速度包中)。

具体来说,对于252 - 256级的跳跃提升,玩家会跳的更低。在这种情况下,可以很容易地激活该故障。


注意: 129 - 249 级的跳跃提升仅通过在黏液块上跳跃就可起效,因为负速度会被转换成正向的垂直速度。