Browse Source

remove previous client from the mapping when replacing its current usable player (linkdead/rejoining)

Image 2 years ago
parent
commit
dd874435aa
2 changed files with 9 additions and 4 deletions
  1. 8 0
      EQ2/source/WorldServer/client.cpp
  2. 1 4
      EQ2/source/WorldServer/client.h

+ 8 - 0
EQ2/source/WorldServer/client.cpp

@@ -10767,4 +10767,12 @@ void Client::SetTempPlacementSpawn(Spawn* tmp) {
 		temp_placement_timer.Start();
 	else
 		temp_placement_timer.Disable();
+}
+
+void Client::SetPlayer(Player* new_player) {
+	if (player && player != new_player)
+		zone_list.RemoveClientFromMap(player->GetName(), this);
+
+	player = new_player;
+	player->SetClient(this);
 }

+ 1 - 4
EQ2/source/WorldServer/client.h

@@ -343,10 +343,7 @@ public:
 	void	SetItemSearch(vector<Item*>* items);
 	vector<Item*>* GetSearchItems();
 	void	SearchStore(int32 page);
-	void	SetPlayer(Player* new_player){
-		player = new_player;
-		player->SetClient(this);
-	}
+	void	SetPlayer(Player* new_player);
 
 	void	AddPendingQuestAcceptReward(Quest* quest);
 	void	AddPendingQuestReward(Quest* quest, bool update=true);