Skip to content
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

[Core/Pathfinding] Some improvements... hopefully... #3658

Merged
merged 16 commits into from
Dec 1, 2020
Merged

[Core/Pathfinding] Some improvements... hopefully... #3658

merged 16 commits into from
Dec 1, 2020

Conversation

FALL1N1
Copy link
Contributor

@FALL1N1 FALL1N1 commented Nov 7, 2020

CHANGES PROPOSED:

  • Reduce "Max Walkable Angle" to 60*
  • Use pathfinding for Point movement.
  • Reduce fleeing movement (Not In LoS) check to 100ms

ISSUES ADDRESSED:

TESTS PERFORMED:

Below.

HOW TO TEST THE CHANGES:

As of the issues, example:

    .cheat god
    .go cr 90632 (inside BRD)
    Attack this mob but do not kill it, at around 20% he will flee and join the other side on the right and will pull all the mobs which is normally impossible and will wipe your group. This is kinda gamebreaking (and ugly to see).
    You can also jump below and they will all follow you.

KNOWN ISSUES AND TODO LIST:

None that I know of...

Target branch(es):

  • Master

How to test AzerothCore PRs

When a PR is ready to be tested, it will be marked as [WAITING TO BE TESTED].

You can help by testing PRs and writing your feedback here in the PR's page on GitHub. Follow the instructions here:

http://www.azerothcore.org/wiki/How-to-test-a-PR

Reduce "Max Walkable Angle" to 60*
Use pathfinding for Point movement.
Reduce fleeing movement (Not In LoS) check to 100ms
@FALL1N1
Copy link
Contributor Author

FALL1N1 commented Nov 7, 2020

If you are lazy to build it on your own, here are binaries and extracted mmaps/vmaps:

http://fs.kartselyanski.com/res.zip - dbc/maps/vmaps/mmaps
http://fs.kartselyanski.com/bin.zip - auth/worldserver together with all their stuff

Note that this change may break more than it fixes, so it has to be thoroughly tested. It is very unlikely since Trinity/Mangos are already using them (except for the point movement gen change), so we should be good to go.

@aradep
Copy link
Member

aradep commented Nov 8, 2020

Fleeing works better, but the group on the opposite side still follows through the floor.
https://www.youtube.com/watch?v=wDZ133abAuw

@FALL1N1
Copy link
Contributor Author

FALL1N1 commented Nov 8, 2020

Thank you, on it.

@Kitzunu
Copy link
Member

Kitzunu commented Nov 8, 2020

What would this fix?
"Reduce "Max Walkable Angle" to 60*"

@FALL1N1
Copy link
Contributor Author

FALL1N1 commented Nov 8, 2020

@Kitzunu https://prnt.sc/vc4ga8 - red is current behaviour, wisps - with 60*

@FALL1N1
Copy link
Contributor Author

FALL1N1 commented Nov 8, 2020

Issue fixed, although do not merge before I clean everything up, by "clean everything up" I mean to rewrite sunwell's hack to another hack that does less damage.. http://prntscr.com/vfmops

It's ready for another test, no resource extraction required.
Compiled binaries: http://fs.kartselyanski.com/RelWithDebInfo.zip

@FrancescoBorzi
Copy link
Member

Nice job @FALL1N1 ! Keep up the good work.

There is a compile error:

azerothcore-wotlk/src/server/game/Entities/Creature/Creature.cpp:166:90: fatal error: field 'm_cannotReachTimer' will be initialized after field 'm_AI_locked' [-Wreorder-ctor]

@FALL1N1
Copy link
Contributor Author

FALL1N1 commented Nov 8, 2020

everything should be fine now, let's see if linux stops bitching about the position

latest win build: http://fs.kartselyanski.com/latest.zip

@FrancescoBorzi
Copy link
Member

@FALL1N1 still erroring:

src/server/game/Entities/Creature/Creature.cpp:169:153: fatal error: field '_lastDamagedTime' will be initialized after field 'm_cannotReachTarget' [-Wreorder-ctor]
    m_homePosition(), m_transportHomePosition(), m_creatureInfo(nullptr), m_creatureData(nullptr), m_waypointID(0), m_path_id(0), m_formation(nullptr), _lastDamagedTime(0), m_cannotReachTarget(false), m_cannotReachTimer(0)

@FALL1N1
Copy link
Contributor Author

FALL1N1 commented Nov 8, 2020

yeah, I saw that, sadly I cannot reproduce on windows, setting up my centos vm and will fix it later

@FrancescoBorzi
Copy link
Member

compile looks good now, waiting for testers feedback @azerothcore/testers

Copy link
Member

@FrancescoBorzi FrancescoBorzi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@FALL1N1 some minor codestyle remarks

@locus313
Copy link
Member

locus313 commented Nov 9, 2020

This looks pretty good now.
when standing on the corner the mobs can attack you, but don't fly over the gap anymore:
image
image
image
image
even when jumping down, they no longer fall through the floor:
image
image

@FALL1N1
Copy link
Contributor Author

FALL1N1 commented Nov 10, 2020

@BarbzYHOOL they will evade, because they won't be able to find walkable path to their target.

Running to the player through the entire dungeon and pulling everything around will be blizzlike, but it's not supported with azeroth/trinity as far as I know, either way it's an issue for another day unrelated to the current one.

@aradep
Copy link
Member

aradep commented Nov 11, 2020

Tested, works great!
https://youtu.be/upwws6mVRvo

http://fs.kartselyanski.com/res.zip - dbc/maps/vmaps/mmaps

👏 @FALL1N1! 🚀

@Voxstrasza
Copy link
Contributor

i played around with this and it all seems good, nice work.

@FALL1N1
Copy link
Contributor Author

FALL1N1 commented Nov 15, 2020

Thanks for the tests guys, anyone else experiencing any issues?

@BarbzYHOOL
Copy link
Member

"Running to the player through the entire dungeon and pulling everything around will be blizzlike, but it's not supported with azeroth/trinity as far as I know"

didn't know that! nobody ever told me so, requires some testing

@Winfidonarleyan did you test the PR or on a live server?

@Winfidonarleyan
Copy link
Member

No test, no now time

@Viste
Copy link
Contributor

Viste commented Nov 23, 2020

Are you sure this will not cause problems with creeps going into evade in some specific cases?

@FALL1N1
Copy link
Contributor Author

FALL1N1 commented Nov 23, 2020

@Viste as long as they have valid path to the player they won't have issues, it's blizzlike behavior so anything else than that is MMap issue, either incorrect extraction data or something else.

Although, if there are - we can add a custom hack (exception) like the current one that gets reverted by Sunwell's devs.

@BarbzYHOOL
Copy link
Member

Anyone still using this regularly @locus313 @aradep @Voxstrasza ? no bad feedback if so?

@locus313
Copy link
Member

been using it regularly for the past couple weeks, its been working great.

@BarbzYHOOL
Copy link
Member

ok imo we can merge it, dunno what others think about that

@Helias
Copy link
Member

Helias commented Nov 30, 2020

Have been tested all the cases of the related issues?

Closes #2688
Closes #2912
Closes #862 (Potentially)
Closes #948 (Potentially)
Closes #2124(Potentially)

@LukasVolgger
Copy link
Member

@FALL1N1 Awesome work, thx! Can this be merged?

@Helias
Copy link
Member

Helias commented Dec 1, 2020

Good job guys 🚀

@Si1ker Si1ker merged commit 0baecd3 into azerothcore:master Dec 1, 2020
@boom8866
Copy link

boom8866 commented Dec 6, 2020

@FALL1N1

Please reopen this question, there is a problem with the update, which leads to an error in the judgment of mmasp

  1. .go 641.640 191.140 511.736 658 Through this Stone, creatures can quickly get out of combat

2.The premise is that you need a melee creature, guide him here, and then jump to the top of Stone, and you will find that the creature is out of combat

I have used the latest version of the update[Map file re-extraction]

@FrancescoBorzi
Copy link
Member

@boom8866 can you please open a new issue report?

@boom8866
Copy link

boom8866 commented Dec 6, 2020

ok

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet