Trinitycore: [MMAP] NPC movement hiccups

Created on 22 Apr 2018  路  24Comments  路  Source: TrinityCore/TrinityCore

Description:

NPC's movement is strange:

  1. moving over obstacles (objects too high to walk over)
  2. moving up/down (hiccupping) inside houses, caves, instances (wmo's ?)
  3. moving up/down (hiccupping) when underwater

Current behaviour:

Incorrect movement. I'm pretty sure this all worked correctly in one of he previous revisions - not sure which (~month ago)

Expected behaviour:

  1. NPC's should NOT walk on top of / over obstacles when their movement is set as random (not sure what should happen for waypoint movement)
  2. NPC's shouldn't hiccup when stepping from terrain to house and vice versa. Narrow places cause NPC's to move into the ceiling...
  3. underwater/water NPC's should swim or walk on the ocean floor (like crabs)

Steps to reproduce the problem:

  1. A great example for this bug(s) is Darkshire. Observe various moving NPC's there:
    Town Crier (entry 468) for example, is showing first two symptoms: https://gph.is/2qTpgLI
    Watcher Jordan (entry 887) moves over the fountain.
    Night Watch Guard (entry 10038, spawn id: 6133) gets stuck in house wall above the ground (at one point he disappeared inside the wall completely).
  2. Various crabs at Zoram Strand (and other underwater places): https://gph.is/2F7V0So
    Blackfathom Deeps' underwater parts exhibit all these problems. Try attacking one of the murlocs/nagas and swim underwater and above the water.

Branch(es):

3.3.5

TC rev. hash/commit:

TrinityCore rev. f1ab32fbb7d5 2018-04-22 17:22:26 +0200 (3.3.5 branch) (Win64, RelWithDebInfo, Static)
Using SSL version: OpenSSL 1.0.1u 22 Sep 2016 (library: OpenSSL 1.0.2g 1 Mar 2016)
Using Boost version: 1.60.0
Using MySQL version: 5.5.58
Using CMake version: 3.10.2
Compiled on: Windows 10.0.16299
Automatic database updates are enabled for the following databases: Auth, Characters, World
Worldserver listening connections on port 8085
Realmlist (Realm Id: 1) configured in port 8085
VMAPs status: Enabled. LineOfSight: 1, getHeight: 1, indoorCheck: 1
MMAPs status: Enabled
maps directory located in ./maps. Total size: 252191207 bytes
vmaps directory located in ./vmaps. Total size: 588247501 byte
mmaps directory located in ./mmaps. Total size: 2152621724 bytes
Using enUS DBC Locale as default. All available DBC locales: enUS
Using World DB: TDB 335.64

Operating system: Win 10 x64

Branch-3.3.5a Comp-Core Sub-MapMMapVmaps Sub-Movement

Most helpful comment

I commented out the line Shauren referenced above and I'm no longer experiencing things like floating NPC's walking through the roof etc.

All 24 comments

Having same issue pets going through ceilings, npc's acting funny in water, npc's going on top of canopy's, structures, or on top of buildings.

Z normalization, probably a duplicate

I don't know, but is unexpected player pet movement related to this?
Currently, the pet tends to enter the roof/ceiling/next floor when entering houses and caves.
For warlocks and hunters, this is the typical pet behaviour now.

TrinityCore rev. b19413aaf21d 2018-04-20 14:44:03 +0200 (3.3.5 branch) (Win64, Release, Static)
Using SSL version: OpenSSL 1.1.0h 27 Mar 2018 (library: OpenSSL 1.1.0h 27 Mar 2018)
Using Boost version: 1.65.1
Using MySQL version: 5.6.38
Using CMake version: 3.10.1
Compiled on: Windows 10.0.16299
Automatic database updates are enabled for the following databases: Auth, Characters, World
Worldserver listening connections on port 8085
Realmlist (Realm Id: 1) configured in port 8085
VMAPs status: Enabled. LineOfSight: 1, getHeight: 1, indoorCheck: 1
MMAPs status: Enabled
maps directory located in ./maps. Total size: 252191207 bytes
vmaps directory located in ./vmaps. Total size: 588247501 bytes
mmaps directory located in ./mmaps. Total size: 2152621724 bytes
Using enUS DBC Locale as default. All available DBC locales: enUS
Using World DB: TDB 335.64


edit: Maybe cherry-picking commit https://github.com/TrinityCore/TrinityCore/commit/edb2b16f546d18bb66f1527dddb6189f617ec1b3 + https://github.com/TrinityCore/TrinityCore/commit/87278b69f08732ddba735f0e4283f89b484ba5d6 from master to 3.3.5 will help in this case?

Illfated I would agree on pet behavior but the pets literally hiccup through the air just like npcs are doing ( and fight in the air) and I know they weren鈥檛 before I鈥檓 currently trying to find when it started this weird behavior.

This is the commit when all the npcs started acting wierd. Anything before this and they are fine.
b9c6bbb

Most likely this part does it https://github.com/TrinityCore/TrinityCore/commit/b9c6bbb51df0ed10f74617482740fedb91ff5366#diff-61dd1cb015dd02635cca299472b41422R585

ref point 3 - this is not going to work, movement in water other than swimming is not implemented

I commented out the line Shauren referenced above and I'm no longer experiencing things like floating NPC's walking through the roof etc.

This issue still happen for npcs using random movements.

npcs that have issues getting the correct Z on water, guid 38519, 38526, 38518
Npcs with random movements getting the wrong floor: guid 6133 (.npc move inside the house to see the issue without waiting)

Fix note for random movement - use dtNavMeshQuery::findRandomPointAroundCircle

Most likely this part does it b9c6bbb#diff-61dd1cb015dd02635cca299472b41422R585

@Shauren is that part supposed to stay there if it causes issues ? or do they happen only with random movement generator ?

No, that part was already removed

  1. Town Crier (entry 468) for example, is showing first two symptoms: https://gph.is/2qTpgLI

This particular NPC seems to work fine now. one thing to check with moving npcs is also if the waypoint Z coordinate is close to the ground or somehow "wrong"

what's the status with this issue after all the mmaps changes done in the past months ?

TC> server debug
TrinityCore rev. f35582f98a6d 2020-07-30 21:43:03 +0200 (3.3.5 branch) (Win64, RelWithDebInfo, Static)

Using SSL version: OpenSSL 1.0.2u  20 Dec 2019 (library: OpenSSL 1.0.2u  20 Dec 2019)
Using Boost version: 1.73.0
Using MySQL version: 50731
Using CMake version: 3.18.0
Compiled on: Windows 10.0.19041
Automatic database updates are enabled for the following databases: Auth, Characters, World
Worldserver listening connections on port 8085
Realmlist (Realm Id: 1) configured in port 8085
VMAPs status: Enabled. LineOfSight: 1, getHeight: 1, indoorCheck: 1
MMAPs status: Enabled
maps directory located in ./maps. Total size: 251987687 bytes
vmaps directory located in ./vmaps. Total size: 658130721 bytes
mmaps directory located in ./mmaps. Total size: 3901434544 bytes
Using enUS DBC Locale as default. All available DBC locales: enUS
Using World DB: TDB 335.20071
TC> _

First impressions from around Echo Isles: crabs (Surf Crawler) and "humanoid lobsters" (Makrura) are popping like corks in the water, sometimes sitting/standing/walking on top of the water.

Teleport commands to get there: .tele echoisles or .tele Senjin (walk/ride through the village to get to the beach)

the underwater issue has not been fixed yet, see https://github.com/TrinityCore/TrinityCore/pull/24020 . that is not the only issue mentioned in this github issue though.

Very well, thanks for the explanation. I will continue to look for the other movement issue details now that I have a working build locally, as well as playing on tcubuntu.northeurope.cloudapp.azure.com

Other creatures that exhibit this incorrect movement behavior:
-"Timberling Trampler"s @ Wellspring Lake in Teldrassil (.go c 49535)
-"Fjord Crawler" @ Chillmere Coast in Howling Fjord (.go c 110684)
-"Giant Tidecrawler" @ Howling Fjord (.go c 96301)

They "jump" up & down in water, sometimes standing on it.
Some creatures also show this "jumping behavior" on land as shown by Toomaa in the beginning of this issue.

you can try https://github.com/TrinityCore/TrinityCore/pull/24020 and see if those cases have been fixed

you can try #24020 and see if those cases have been fixed

All changes from jan 2020 up till April 2020 are included & present on my current core. Issue still exists.
Will pull latest TC, however it will be irrelevant to this, since the changes have been made during January 25, 2020 for #24020

All changes from jan 2020 up till April 2020 are included & present on my current core. Issue still exists.

https://github.com/TrinityCore/TrinityCore/pull/24020 is a pull request, it's not included in 3.3.5 branch.

All changes from jan 2020 up till April 2020 are included & present on my current core. Issue still exists.

24020 is a pull request, it's not included in 3.3.5 branch.

My bad, haven't noticed. Pulling in the changes, will update PR on the current behavior.

Can confirm the proposed changes here seemed to have fixed the issue for the above mentioned 3 swimming creatures:
-"Timberling Trampler"s @ Wellspring Lake in Teldrassil (.go c 49535)
-"Fjord Crawler" @ Chillmere Coast in Howling Fjord (.go c 110684)
-"Giant Tidecrawler" @ Howling Fjord (.go c 96301)

Ground/Land:
-Town crier seems to be working fine as well (.go c 468)

No hiccups whatsoever for all the above mentioned creatures after pulling the changes mentioned @ #24020

Fixed the water hiccups in https://github.com/TrinityCore/TrinityCore/commit/fc1a0d936888395f114028af3337e7d674e0a43c . A lot of other changes have been done to mmaps in the past 2 years, please test them and open a new issue focusing only what's still broken.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ZenoX92 picture ZenoX92  路  53Comments

minkokomaung picture minkokomaung  路  69Comments

click picture click  路  51Comments

Treeston picture Treeston  路  56Comments

Keader picture Keader  路  119Comments