mirror of
https://github.com/NoCheatPlus/NoCheatPlus.git
synced 2024-10-06 10:27:26 +02:00
[BLEEDING] Re-activate accounting once vertical velocity is used up.
This commit is contained in:
parent
6d1c56675b
commit
0a5f590801
@ -34,6 +34,14 @@ public class AxisVelocity {
|
|||||||
return !queued.isEmpty();
|
return !queued.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Queued or active.
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean hasAny() {
|
||||||
|
return !active.isEmpty() || !queued.isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tick the velocity entries with a moving event, no invalidation takes
|
* Tick the velocity entries with a moving event, no invalidation takes
|
||||||
* place here. This method uses the defaultFrictionFactor.
|
* place here. This method uses the defaultFrictionFactor.
|
||||||
|
@ -605,6 +605,22 @@ public class MovingData extends ACheckData {
|
|||||||
return horVel.hasQueued();
|
return horVel.hasQueued();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Active or queued.
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean hasAnyHorVel() {
|
||||||
|
return horVel.hasAny();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Active or queued.
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean hasAnyVerVel() {
|
||||||
|
return verticalFreedom >= 0.001 || verticalVelocityCounter > 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clear active vertical velocity (until recoded, this will remove all vertical velocity).
|
* Clear active vertical velocity (until recoded, this will remove all vertical velocity).
|
||||||
*/
|
*/
|
||||||
@ -878,8 +894,10 @@ public class MovingData extends ACheckData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Refactoring stage: Test if velocity has affected the in-air
|
* Test if velocity has affected the in-air jumping phase. Keeps set until
|
||||||
* jumping phase. Use clearActiveVerVel to force end velocity jump phase.
|
* reset on-ground or otherwise. Use clearActiveVerVel to force end velocity
|
||||||
|
* jump phase. Use hasAnyVerVel() to test if active or queued vertical
|
||||||
|
* velocity should still be able to influence the in-air jump phase.
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
@ -806,11 +806,11 @@ public class SurvivalFly extends Check {
|
|||||||
// Allow adding 0.
|
// Allow adding 0.
|
||||||
data.vDistAcc.add((float) yDistance);
|
data.vDistAcc.add((float) yDistance);
|
||||||
}
|
}
|
||||||
else if (!data.isVelocityJumpPhase()) {
|
else if (!data.hasAnyVerVel()) {
|
||||||
// Here yDistance can be negative and positive.
|
// Here yDistance can be negative and positive.
|
||||||
if (yDistance != 0D) {
|
if (yDistance != 0D) {
|
||||||
data.vDistAcc.add((float) yDistance);
|
data.vDistAcc.add((float) yDistance);
|
||||||
final double accAboveLimit = verticalAccounting(yDistance, data.vDistAcc ,tags, "vacc");
|
final double accAboveLimit = verticalAccounting(yDistance, data.vDistAcc ,tags, "vacc" + (data.isVelocityJumpPhase() ? "dirty" : ""));
|
||||||
if (accAboveLimit > vDistanceAboveLimit) {
|
if (accAboveLimit > vDistanceAboveLimit) {
|
||||||
vDistanceAboveLimit = accAboveLimit;
|
vDistanceAboveLimit = accAboveLimit;
|
||||||
}
|
}
|
||||||
@ -898,7 +898,7 @@ public class SurvivalFly extends Check {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Moving upwards after falling without having touched the ground.
|
// Moving upwards after falling without having touched the ground.
|
||||||
if (!data.isVelocityJumpPhase() && data.bunnyhopDelay < 9 && !(data.fromWasReset && data.sfLastYDist == 0D)) {
|
if (!data.hasAnyVerVel() && data.bunnyhopDelay < 9 && !(data.fromWasReset && data.sfLastYDist == 0D)) {
|
||||||
// TODO: adjust limit for bunny-hop.
|
// TODO: adjust limit for bunny-hop.
|
||||||
vDistanceAboveLimit = Math.max(vDistanceAboveLimit, Math.abs(yDistance));
|
vDistanceAboveLimit = Math.max(vDistanceAboveLimit, Math.abs(yDistance));
|
||||||
tags.add("ychincfly");
|
tags.add("ychincfly");
|
||||||
|
Loading…
Reference in New Issue
Block a user