azerothcore / mod-solo-lfg

Solo LFG Module for use on AzerothCore 3.3.5a
https://azerothcore.org
MIT License
37 stars 35 forks source link

Bug: using Dungeon Finder (LFG) solo #41

Open mindit opened 3 months ago

mindit commented 3 months ago

Current Behaviour

When you are soloing a dungeon using Dungeon Finder (LFG) and you die, you get removed from LFG and dungeon will reset. You can recover your body and start over the dungeon. Is this intended or bug?

Expected Behaviour

When your are soloing a dungeon using Dungeon Finder (LFG) and you die, you are not removed from LFG and dungeon will not reset. You can recover your body and continue with the dungeon.

Steps to reproduce the problem

  1. Click on Dungeon Finder (LFG) and click Find Group
  2. Click Enter Dungeon and you will enter a random dungeon
  3. Kill some mobs to see progress
  4. Die in the dungeon

Extra Notes

No response

AC rev. hash/commit

AzerothCore rev. 9a38978eb0f8+ 2023-09-05 09:42:08 +0000 (master branch) (Unix, RelWithDebInfo, Static)

Operating system

Ubuntu 22.04.4 (docker)

Custom changes or Modules

List enable modules:

  • mod-ah-bot
  • mod-autobalance
  • mod-fireworks-on-level
  • mod-gain-honor-guard
  • mod-learn-spells
  • mod-solo-lfg
QonDuixote commented 2 months ago

This happens because the core automatically disbands lfg groups when map changes and there's only 1 player in the group. Don't think this can be fixed without core changes and the changes kinda break stuff, but I made it work for myself like this: In LFGScripts.cpp change line 138 from if (group->GetMembersCount() <= 1u) { to if (!sLFGMgr->IsTesting() && group->GetMembersCount() <= 1u) {

The downside is that you don't get to see the dungeon finder icon so you have to teleport back to the dungeon with macro /run LFGTeleport(IsInLFGDungeon()) and leave the group with macro /run LeaveParty() because there's no way in the UI to do it.

If someone finds a way to prevent the dungeon finder icon from hiding maybe this could be submitted as a PR, but I couldn't find it, I guess it's handled client-side.