mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-06-22 18:11:36 +00:00
[Server] Some fixes to sendToNearest & doForNearest
This commit is contained in:
parent
033472d939
commit
cce49e355a
1 changed files with 24 additions and 16 deletions
|
@ -143,28 +143,36 @@ CellController::TContainer Player::getCells()
|
||||||
|
|
||||||
void Player::sendToNearest(mwmp::PlayerPacket *myPacket)
|
void Player::sendToNearest(mwmp::PlayerPacket *myPacket)
|
||||||
{
|
{
|
||||||
for(auto cell : getCells())
|
std::list <Player*> plList;
|
||||||
{
|
|
||||||
for(auto pl : *cell)
|
|
||||||
{
|
|
||||||
if(pl == this)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
myPacket->Send(this, pl->guid);
|
for(auto cell : getCells())
|
||||||
}
|
for (auto pl : *cell)
|
||||||
|
plList.push_back(pl);
|
||||||
|
|
||||||
|
plList.sort();
|
||||||
|
plList.unique();
|
||||||
|
|
||||||
|
for(auto pl : plList)
|
||||||
|
{
|
||||||
|
if(pl == this) continue;
|
||||||
|
myPacket->Send(this, pl->guid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player::doForNearest(std::function<void (Player *pl, Player *other)> func)
|
void Player::doForNearest(std::function<void (Player *pl, Player *other)> func)
|
||||||
{
|
{
|
||||||
for(auto cell : getCells())
|
std::list <Player*> plList;
|
||||||
{
|
|
||||||
for(auto pl : *cell)
|
|
||||||
{
|
|
||||||
if(pl == this)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
func(this, pl);
|
for(auto cell : getCells())
|
||||||
}
|
for (auto pl : *cell)
|
||||||
|
plList.push_back(pl);
|
||||||
|
|
||||||
|
plList.sort();
|
||||||
|
plList.unique();
|
||||||
|
|
||||||
|
for(auto pl : plList)
|
||||||
|
{
|
||||||
|
if(pl == this) continue;
|
||||||
|
func(this, pl);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue