From caa32cc95a582266cfbe9b78fb4239553ae70943 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 21 十月 2020 10:21:06 +0800
Subject: [PATCH] 4821 【主干】【长尾】【BT】【优化】脱机挂在线玩家在仙盟列表显示优化

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
index acc1879..9ae4a20 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
@@ -1984,8 +1984,10 @@
     
     if not PlayerControl.GetIsTJG(curPlayer):
         #上线重置离线时间为0, 非脱机挂才设置
-        curMember.SetExattr2(0)
+        curMember.SetExattr2(0) # 在线0,脱机1,>1离线时间
         curPlayer.Sync_FamilyInfo()
+    else:
+        curMember.SetExattr2(1) # 脱机1
     
     curPlayer.MapServer_FamilyRefresh()
     curMember = GetPlayerFamilyMember(curPlayer)
@@ -2913,7 +2915,7 @@
         GameWorld.Log("GetLeaderOfflineTime->FindMember, None;%s" % leaderID)
         return 0
     offLineTimeNum = curMember.GetExattr2()
-    if not offLineTimeNum:
+    if not offLineTimeNum or offLineTimeNum == 1:
         return 0
     offLineTime = GameWorld.ChangeTimeNumToStr(offLineTimeNum)
     return GameWorld.GetPastHour(offLineTime)
@@ -2924,7 +2926,7 @@
     for i in range(0, family.GetCount()):
         member = family.GetAt(i) 
         offLineTimeNum = member.GetExattr2()
-        if not offLineTimeNum:
+        if not offLineTimeNum or offLineTimeNum == 1:
             #有人在线直接返回
             return 0
         if not offLineTime:
@@ -2959,7 +2961,7 @@
         elif toMember2.GetExattr1() < member.GetExattr1():
             toMember2 = member
 
-        offLineHour = GameWorld.GetPastHour(GameWorld.ChangeTimeNumToStr(member.GetExattr2())) if member.GetExattr2() else 0
+        offLineHour = GameWorld.GetPastHour(GameWorld.ChangeTimeNumToStr(member.GetExattr2())) if member.GetExattr2() > 1 else 0
         #GameWorld.DebugLog('memberID=%s 离线%s小时,历史贡献度%s'%(member.GetPlayerID(), offLineHour, member.GetExattr1()))
         if offLineHour < 48:
             if not toMember1:

--
Gitblit v1.8.0