1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-19 22:23:51 +00:00

[Client] Add method to PlayerList for getting players by their actorId

This commit is contained in:
David Cernat 2021-07-20 03:22:16 +02:00
parent fe4a761ffe
commit 9817d3a563
2 changed files with 18 additions and 0 deletions

View file

@ -80,6 +80,23 @@ DedicatedPlayer *PlayerList::getPlayer(const MWWorld::Ptr &ptr)
return nullptr; return nullptr;
} }
DedicatedPlayer* PlayerList::getPlayer(int actorId)
{
for (auto& playerEntry : playerList)
{
if (playerEntry.second == nullptr || playerEntry.second->getPtr().mRef == nullptr)
continue;
MWWorld::Ptr playerPtr = playerEntry.second->getPtr();
int playerActorId = playerPtr.getClass().getCreatureStats(playerPtr).getActorId();
if (actorId == playerActorId)
return playerEntry.second;
}
return nullptr;
}
std::vector<RakNet::RakNetGUID> PlayerList::getPlayersInCell(const ESM::Cell& cell) std::vector<RakNet::RakNetGUID> PlayerList::getPlayersInCell(const ESM::Cell& cell)
{ {
std::vector<RakNet::RakNetGUID> playersInCell; std::vector<RakNet::RakNetGUID> playersInCell;

View file

@ -34,6 +34,7 @@ namespace mwmp
static DedicatedPlayer *getPlayer(RakNet::RakNetGUID guid); static DedicatedPlayer *getPlayer(RakNet::RakNetGUID guid);
static DedicatedPlayer *getPlayer(const MWWorld::Ptr &ptr); static DedicatedPlayer *getPlayer(const MWWorld::Ptr &ptr);
static DedicatedPlayer* getPlayer(int actorId);
static std::vector<RakNet::RakNetGUID> getPlayersInCell(const ESM::Cell& cell); static std::vector<RakNet::RakNetGUID> getPlayersInCell(const ESM::Cell& cell);
static bool isDedicatedPlayer(const MWWorld::Ptr &ptr); static bool isDedicatedPlayer(const MWWorld::Ptr &ptr);