-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Diagonal Jumps #2142
Add Diagonal Jumps #2142
Conversation
problems with gradlew
it no longer attempts to jump through walls. and now it also dosn't attempt many jumps...
More jumps are now possible.. Also prep now takes into account walls (low run up space)
although they have lower cost jumps east and west are not prioritised (not intended)
- Better momentum cancelling (for overshoots) - possible crashes - System.outs must be removed from a actual build due to very large slowdowns - better collision detection
considers jumps with sharp turns as harder
still very unreliable (50%ish) uses an extra momentum jump
src/main/java/baritone/pathing/movement/movements/MovementParkourAdv.java
Outdated
Show resolved
Hide resolved
int[][] validQuadrant = {{5, 0, JumpType.MOMENTUM.ordinal()}, | ||
{1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1, JumpType.MOMENTUM.ordinal()}, | ||
{0, 2, JumpType.EDGE_NEO.ordinal()}, {1, 2, JumpType.EDGE.ordinal()}, {2, 2, JumpType.EDGE.ordinal()}, {3, 2, JumpType.EDGE.ordinal()}, {4, 2, JumpType.MOMENTUM.ordinal()}, {5, 2, JumpType.MOMENTUM.ordinal()}, | ||
{1, 3, JumpType.EDGE.ordinal()}, {2, 3, JumpType.EDGE.ordinal()}}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i-
I'm not even going to ask
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added a comment to explain the format
src/main/java/baritone/pathing/movement/movements/MovementParkourAdv.java
Outdated
Show resolved
Hide resolved
src/main/java/baritone/pathing/movement/movements/MovementParkourAdv.java
Outdated
Show resolved
Hide resolved
src/main/java/baritone/pathing/movement/movements/MovementParkourAdv.java
Outdated
Show resolved
Hide resolved
src/main/java/baritone/pathing/movement/movements/MovementParkourAdv.java
Outdated
Show resolved
Hide resolved
src/main/java/baritone/pathing/movement/movements/MovementParkourAdv.java
Outdated
Show resolved
Hide resolved
src/main/java/baritone/pathing/movement/movements/MovementParkourAdv.java
Outdated
Show resolved
Hide resolved
src/main/java/baritone/pathing/movement/movements/MovementParkourAdv.java
Outdated
Show resolved
Hide resolved
src/main/java/baritone/pathing/movement/movements/MovementParkourAdv.java
Outdated
Show resolved
Hide resolved
src/main/java/baritone/pathing/movement/movements/MovementParkourAdv.java
Outdated
Show resolved
Hide resolved
src/main/java/baritone/pathing/movement/movements/MovementParkourAdv.java
Outdated
Show resolved
Hide resolved
src/main/java/baritone/pathing/movement/movements/MovementParkourAdv.java
Outdated
Show resolved
Hide resolved
src/main/java/baritone/pathing/movement/movements/MovementParkourAdv.java
Outdated
Show resolved
Hide resolved
src/main/java/baritone/pathing/movement/movements/MovementParkourAdv.java
Outdated
Show resolved
Hide resolved
src/main/java/baritone/pathing/movement/movements/MovementParkourAdv.java
Outdated
Show resolved
Hide resolved
src/main/java/baritone/pathing/movement/movements/MovementParkourAdv.java
Outdated
Show resolved
Hide resolved
src/main/java/baritone/pathing/movement/movements/MovementParkourAdv.java
Outdated
Show resolved
Hide resolved
It can't do straight descends (but does the more difficult diagonal ones) It tries to land on a covered block after a diagonal descend and descending by 1 instead of 2 would be the shorter path as well The reliability is also less than 50% on diagonals for me. If either fails consistently or manages to do it consistently. |
Descending by more than 2 blocks and even dodging obstacles while falling (e.g. for the dropper) and parkourPlace for the new jumps would also be nice to have. |
"The reliability is also less than 50% on diagonals for me. If either fails consistently or manages to do it consistently." This alone, to me, is enough that this should be marked as a draft until you can bump up the success rate of this, otherwise on paper this sounds nice |
it also seems to just not be able to path normally with the settings enabled |
I currently don't replace the functionality of the main Parkour system (straight parkour) except for 4 block jumps. So basically all straight parkour is ignored.
Yea I think some specific jumps it has trouble with. It would be nice if you were to encounter jumps that fail to note down the block configuration so that I can recreate them (the relative jump, and direction, and what blocks are in the way) for testing. Edit: Possibly these jumps were descends (which have been fixed now)
Descending is currently linked to the 'maxFallHeightNoWater' setting (although I haven't tested any jumps larger than the default). Thanks for all the feedback! Also, |
this is high power levels |
- fixed block checking for decends (they were previously only checking as if its a flat jump) - added the ability to dodge some obstacles that obscure edges of the landing block
When you realise you weren't checking for blocks in the way during descends... (The major cause of issues) It made descends that land inside of blocks valid jumps. Now fixed! yay |
I wasn't able to replicate the stacking unless stacking was a pretty optimal route. (on an amplified terrain world up tall mountains) These are some of the longest paths I could get (rounded to the nearest thousand considered movements) with both allowPlace and allowParkourAdv I wasn't able to get anywhere near 24 sec with a 1,600,000 considered movements segment, |
|
- fixed some edge jumps colliding with walls - fixed consecutive mometum jumps timing out - fixed descends calculating that blocks are in the way when they are not (fixes long decends)
- better block checking by knowing which side of the destination we will be entering from - Faster NORMAL transitions. Reduced the prep time for NORMAL jumps by reducing accuracy requirements and aligning the prep locations further forward
All issues from my last 2 comments fixed (didn't check further back). |
- any testing will now be done on the dev branch
- removal of obsolete functions
Neos close to ground still don't work. Since the 2 traverses (the 3rd makes it more likely) are required for it to fail I guess it has to much momentum from the ascend and traverses and thus doesn't jump far enough.Not really important: it seems to sometimes force rotations even if it doesn't place blocks And just a question: When I tested this without freeLook I noticed it turns around a lot, especially for Neos with 2 times 90° and I was wondering if that makes it harder (every human I saw doing Neos didn't noticeably turn their head). |
Sorry, but I think I will have to close this pull request at least for now. This is the first project I've tried to do semi-professionally (since it's possibly going to be used by people other than me) and it's rather draining. I may work on this in my own time without the pressure of a pull request.
Human players use strafing to complete a neo. for the sake of simpler/elegant code I use player rotation, it is a much harder method for humans to follow the near-perfect rotations although for baritone it's like 3 lines of code (using the APIs). It has no impact on the reliability/accuracy of the jump. |
I do wish someone would keep working on this. its a great pr and just needs some bug fixes and other improvements |
bumping because I'd love to see this perfected and merged |
He's explained why its closed and not getting any work. I believe you could still build it to play around with it, but unless someone else chooses to take on this pr, it'll stay closed. |
right i should have made that more clear and I wasn't suggesting OP needed to fix it but I hoped that someone who has more knowledge can upgrade it to 1.19 or clean it up good enough to be added as an experimental option |
The problem with the current implementation is that it cannot accurately detect if a parkour jump is possible, so it works really great on very open parkour jumps with few obstacles but struggles with any real-world tests like climbing mountains where there are lots of blocks that only slightly obstruct the player. I'm not really in a position where I have the time/energy to fix this but am happy to help anyone that wants an explanation. |
This is a common misconception. Pullrequests are merged on the lowest supported version (1.12.2 / master) and are then merged upwards. |
Adds a new movement class that allows diagonal or any angle of jumps to be considered.
Also adds 4 block jumps (using momentum jump)
2 settings for the parkour
I use (almost) standard jump notation. So 3x2+1 is a jump with a 2 (3-1) block gap in the direction the player is jumping plus 2 blocks to the side and 1 block up. This way I can denote a 1x1 "jump" to be the block 1 block diagonal from the player. +- axis are not required.