From fb3f83b79ea7db00225d406f6e579c08961e2f38 Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Sun, 1 Mar 2015 22:15:05 +0300
Subject: hide hidden players from online list if player in list have smaller
 group level than local player.

---
 src/map/map.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/map/map.c b/src/map/map.c
index 6567337..8b0fd6a 100644
--- a/src/map/map.c
+++ b/src/map/map.c
@@ -70,7 +70,9 @@ void emap_online_list(int fd)
     if (!ssd)
         return;
 
+
     const bool showVersion = pc_has_permission(ssd, permission_show_client_version_flag);
+    const int gpoupLevel = pc_get_group_level(ssd);
     data1->onlinelistlasttime = t;
 
     DBIterator* iter = db_iterator(map->pc_db);
@@ -83,12 +85,13 @@ void emap_online_list(int fd)
         if (ptr - buf > 19500)
             break;
 
+        if (pc_isinvisible(sd) && gpoupLevel < pc_get_group_level(sd))
+            continue;
+
         struct SessionExt *data = session_get_bysd(sd);
         if (!data)
             continue;
 
-        // need skip invisible players
-
         uint8 state = data->state;
         if (sd->status.sex == 1)
             state |= 128;
-- 
cgit v1.2.3-70-g09d2