Closed kelbren closed 1 year ago
very interesting... First of all, You need to know that alliance DK Players have diff Map than Horde ones... (smth like dungeons).. So They will never see each other. Second. if actualy you got 2 same faction players next to each other... and theres some kind of non respond from quest giver/ender.. pls give soem examples so we can look directly. (what and where)... Last.. Blizz have many quests where.. only one Player can participate at same time and other will have to wait.
I understand the Horde/Alliance situation, that is not the case. I created two alliance DK chars. one on 2 diff accounts. both login to server. I can not see the other player, but I can group and see the dot on the mini map.
as far as quests go, any quest does this. if you both take the initial quest, and then one abandons it, it will cause the quest log to either not respond, or the npc will still show the ! and not the ? one you log out and back on, then you can re-acquire the quest.. and the other char who stayed online will be bugged. It's hard to explain. It acts like the chars get swapped or something. This really becomes obvious when on the same quests.
A prime example was the quest to fight the 5 DK initiates, if 2 accounts on, it would not work properly, sometimes not counting down, other times not responding to gossip menus, etc.
I really don't know how to explain it better than that.
Thanks for all your efforts, I am always amazed of the work you all do.
I did figure something out: if I comment out where it checks for map 609 (line 129,130) in the MapManager.cpp the problems are resolved and everything works as expected, grouping, quests etc. (Alliance and Horde are not on separate maps now, so I understand this is not what is desired) So It appears it has something to do with the way it tries to create the map instance? Hopefully someone who understands it better can solve the issue.
// if (id == 609 && obj->IsPlayer()) // DeathKnightStart map - alliance and horde have own version
// instanceId = static_cast<Player const*>(obj)->GetTeam() == ALLIANCE;
Yes, that code is meant to make sure that there is a separate DK map for ally and horde. But I figured it would have smth to do with that.
Linked a commit, it should resolve your issues.
Tested, that fixed it. Thanks KW
Bug Details
Create 2 accounts and a death knight on each. login to the server with both accounts to the starter area. take quests on 1st account, as soon as the second account logs in the quest markers start to be non responsive, npc's will not interact properly, and other strange behavior. Everything works fine with only one DK in the starter area. If both chars are on the same quest, neither work properly. I have noticed that whatever char is logged on last, seems to get the responses. and the previous char has trouble with npc's, quests, etc. It is very strange behavior, almost like the server is confusing what char is actually there if there are more than one. I have tested with the most resent fresh core and db. You can't see the other players in the area either, I tried with 3 diff accounts at same time on diff pc's. I was able to group and see the dot on the mini map. I did have a core crash once, but was not able to capture any useful info. This used to work, as I recall doing it in past, but it has been a long time, so I am not sure when.
Steps to Reproduce
Expected behavior
see other chars, and share quests, etc.
Suggested Workaround
No response
Crash Log
No response
Core SHA1 Commit Hash
44f70dffd6e8c6284ae9d8396d84de79807f5c3a
Database SHA1 Commit Hash
0bc9c12557aa54c9b2aa348a3474e0267c4f8b69
Operating System
Ubuntu 20.04 server
Client Version
3.3.5a (Wrath of the Lich King)