azerothcore / azerothcore-wotlk

Complete Open Source and Modular solution for MMO
http://www.azerothcore.org
GNU Affero General Public License v3.0
6.46k stars 2.59k forks source link

Errors present in all instances #3269

Open PkllonG opened 4 years ago

PkllonG commented 4 years ago

Errors present in all instances

CURRENT BEHAVIOUR:

When there is no player in the instance, the creature does not return to its original position

EXPECTED BLIZZLIKE BEHAVIOUR:

When there is no player in the example, the living creature should immediately return to its original position

STEPS TO REPRODUCE THE PROBLEM:

Enter the instance, Make creatures follow and attack you, leaving instances, enter the instance again to view the biological position.

  1. Enter the instance image
  2. Make creatures follow and attack you, leaving instances image
  3. Leave the instance and enter the instance again to see the biological location. image You can see that the creature is still in position when you left the instance is not moving
EXTRA NOTES:
AC HASH/COMMIT:

https://github.com/azerothcore/azerothcore-wotlk/commit/3cce44469aaf46a9884c276e29dc262c5722f9bb

OPERATING SYSTEM:

Windows 7/10

MODULES:
OTHER CUSTOMIZATIONS:
--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/92266819-errors-present-in-all-instances?utm_campaign=plugin&utm_content=tracker%2F40032087&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F40032087&utm_medium=issues&utm_source=github).
r0m1ntik94 commented 4 years ago

confirm

BarbzYHOOL commented 4 years ago

Have you enabled the config option to have all creatures active at all time?

Without this option, ALL creatures will stop moving as soon as no player is in line of sight and it's extremely unrealistic (and not blizzlike imo). This is something we discussed with the long gone Stoabrogga, so he made that config option. It will use a bit more memory/cpu if enabled and may fix your issue

PkllonG commented 4 years ago

I'll try

PkllonG commented 4 years ago

thank you PreloadAllNonInstancedMapGrids = 1 SetAllCreaturesWithWaypointMovementActive = 1

Kitzunu commented 4 years ago

Is that config Default ON? If so I think it would be better to have it Default OFF (So that they always return to home pos)

PkllonG commented 4 years ago

The default is off

Kitzunu commented 4 years ago

So by default they do return to home?

PkllonG commented 4 years ago

It is found that only opening "SetAllCreaturesWithWaypointMovementActive = 1" can solve the problem

PkllonG commented 4 years ago

The default is 0

Kitzunu commented 4 years ago

Okay, then we should make it default = 1 so that this bug does not occur...

PkllonG commented 4 years ago

If set to 1, it consumes some CPU resources

PkllonG commented 4 years ago

It is recommended to set the default to 1

PkllonG commented 4 years ago

It can solve a lot of mistakes

Kitzunu commented 4 years ago

yes. I will change default later

BarbzYHOOL commented 4 years ago

no, don't, wait a little :D

Stoabrogga was against enabling this by default. I was for enabling it but he said it would eat more resources (obviously) and that Blizzard probably had it MUCH better handled to save resources.

If you enable this conf, it means that ALL mobs in the world will be active once loaded, at all time. Example: if a player visits a zone rarely visited like https://wow.gamepedia.com/Jaguero_Isle he will load all the mobs here. Then they will constantly patrol even if no player comes here. And since the grids never unload, they will take resources forever until restart.

So I'm not sure what to do.

@yehonal @rochet2 what do you think guys?

Kitzunu commented 4 years ago

Blizzard saves NPC's for 15 minutes, that way they let them return

BarbzYHOOL commented 4 years ago

then we'd need that

also note that during all those years, almost NOBODY noticed the mobs stopped when out of sight lol

Yehonal commented 4 years ago

We need to implement the grid unload I guess

Solution 1: GridUnload + SetAllCreaturesWithWaypointMovementActive means: the creatures are always active except if the grid is unloaded. So, whenever no player is visiting that zone for the time specified inside the GridUnload conf, that zone will be unloaded, but the system has the time to fix the creature movement. It can also help to reduce the RAM on low-resource systems.

Solution2: However, for people that want to keep the GridUnload disabled, we could also implement a delay for stopping the creature's movements when a player left the zone. Otherwise, the issue will be still there if you want to keep both SetAllCreaturesWithWaypointMovementActive and GridUnload disabled. Maybe this last one is the fastest and easiest solution

Both should be implemented IMHO

Helias commented 4 years ago

Is there still the conf to enable the GridUnload system?

Yehonal commented 4 years ago

Is there still the conf to enable the GridUnload system?

Nope, It must be implemented and it's not easy to do it. The solutions 2 is definitely faster

BarbzYHOOL commented 4 years ago

yeah solution 2 would allow us to put the conf to true by default, and then we'd have a better ingame experience overall

solution 1 is a lot of work and might not even be used on populated servers (like on the old sunwell server aka sunwellcore)

so what do we do with the current issue? :D close?