trickerer / Trinity-Bots

NPCBots for TrinityCore and AzerothCore 3.3.5
https://github.com/trickerer/TrinityCore-3.3.5-with-NPCBots/
473 stars 155 forks source link

Bots speed when follow (typemove) #520

Closed ghost closed 1 year ago

ghost commented 1 year ago

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

Current behaviour

When bots follow to player (non combat state), they twitch (run stop and run again). It is clearly visible when the player is walking. But when player run you can see this too (because the speed exceeds the speed of the player and is not calculated from the distance). Need do something with movetype separate. Like this https://github.com/azerothcore/azerothcore-wotlk/pull/15360 In file src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp you can see func GetVelocity where calculated speed.

Expected behaviour

No response

Crashlog

No response

Steps to reproduce the problem

No response

TrinityCore or AzerothCore

AzerothCore

Core rev. hash/commit

fb4b95ba9686cba489f4a5a26def9ae971639d54

Operating system

No response

ghost commented 1 year ago

One more question: bots ignoring player resilience (from items)?

trickerer commented 1 year ago

I'll start from the end.

Resilience with bots is supposed to work both ways. But I didn't have the chance to test it thoroughly on both cores.

Movement for bots always was a kinda complicated matter. So, once upon a time mmaps were finally implemented in TC. But they had all sorts of bugs and the main one affecting bots was a bug with invisible 'walls' between grids where pathing would cut off for follow movement (for any followers, not just bots). At that point bots' movement type was changed to point movement instead of follow. That of course was supposed to be a temporary solution until things get back to normal, but I've never come back to switching it back an here we are: now it's gonna take some doing to make them use follow movement again. Of couse the main problem with point movement is the jitter since point movement doesn't use spline. What I am trying to say is that these changes must come together, otherwise we'll see bots moving too fast after they have already got close to owner. Also, bots shouldn't receive full player's increased speed like pets, since they're supposed to act more like other players. But yes, this change will allow to normalize bots' speed in creature_template.

ghost commented 1 year ago

Thanks for the answer. Now im starting to understand how complicated everything. To fix the smooth movement of hunter pets (default) i use one patch: patch.txt it makes hunter pet (default) movements smoother.

trickerer commented 1 year ago

So, I tried using FollowMovementGenerator and it was awful, because it doesn't provide any of extra features used for bot move position calculation. Reducing distance tolerance causes jittering even worse than it is now. I think I'll just add dynamic movement speed and auto-walk mode, this should be enough to make it possible to normalize movement speed for bots - make base speed equal to players'.