From 631cfe043789ddc76ddfbe19e0d01e21e26b5fbb Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期四, 29 十一月 2018 01:35:03 +0800
Subject: [PATCH] 5027 法宝副本里上线副本结束则T人
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py | 42 +++++++++++++++++++++++++-----------------
1 files changed, 25 insertions(+), 17 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
index 50c2fcb..1d7b633 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
@@ -348,7 +348,8 @@
# 玩家战盟名变更处理
__OnFamilyNameChange(jionPlayer.GetPlayerID(), curFamily.GetName())
-
+ #玩家缓存
+ PlayerViewCache.OnPlayerFamilyChange(jionPlayer.GetPlayerID(), curFamily.GetID(), curFamily.GetName())
#加入仙盟联赛成员
GameWorldFamilyWar.AddFamilyWarMem(jionPlayer.GetPlayerID(), curFamily.GetID())
GameWorldFamilyWar.CheckPlayerJoinFamilyWarInfo(jionPlayer)
@@ -1524,7 +1525,7 @@
# 玩家战盟名变更处理
__OnFamilyNameChange(leavePlayerID, '')
AddFamilyIDToFightPowerChangeList(curFamily.GetID())
- PlayerViewCache.OnPlayerLeaveFamily(leavePlayerID)
+ PlayerViewCache.OnPlayerFamilyChange(leavePlayerID, 0, "")
return
#//////////////////////////////////////////////////////////////
@@ -2533,8 +2534,6 @@
# if useMoney > 0:
# #帮会日常维持消耗{%S1%}银两帮会资金
# PlayerControl.FamilyNotify(family.GetID(), 'jiazu_lhs_272921', [useMoney])
- #自动传位
- __AutoChangeLeader(family)
#通知客户端刷新
family.Broadcast_FamilyChange()
@@ -2575,6 +2574,12 @@
SetFamilyBroadcastCnt(family, 0)
#清除本周任务已获得资金数量
SetCurWeekMissionMoney(family, 0)
+ for j in xrange(family.GetCount()):
+ member = family.GetAt(j)
+ #原先是地图玩家上线后重置,导致玩家不上线周贡献显示之前的,固在此重置
+ member.SetFamilyActiveValue(0)
+
+
#通知地图服务器刷新家族属性
SendPack_MapServer_PlayerFamilyRefresh(family)
#oss记录上周家族信息
@@ -2586,6 +2591,13 @@
return
+def FamilyOnHour():
+ familyManager = GameWorld.GetFamilyManager()
+ for i in xrange(familyManager.GetCount()):
+ family = familyManager.GetAt(i)
+ #自动传位
+ __AutoChangeLeader(family)
+ return
#---------------------------------------------------------------------
##通知地图服务器, 玩家家族属性刷新
# @param curFamily 家族实例
@@ -2704,16 +2716,15 @@
return 0
leaderID = curFamily.GetLeaderID()
- # 帮主在线
- if GameWorld.GetPlayerManager().FindPlayerByID(leaderID) != None:
- return 0
curMember = curFamily.FindMember(leaderID)
if curMember == None:
GameWorld.Log("GetLeaderOfflineTime->FindMember, None;%s" % leaderID)
return 0
-
- offLineTime = GameWorld.ChangeTimeNumToStr(curMember.GetExattr2())
+ offLineTimeNum = curMember.GetExattr2()
+ if not offLineTimeNum:
+ return 0
+ offLineTime = GameWorld.ChangeTimeNumToStr(offLineTimeNum)
return GameWorld.GetPastHour(offLineTime)
def GetLastOnlineMemberOfflineTime(family):
@@ -2721,17 +2732,14 @@
offLineTime = 0
for i in range(0, family.GetCount()):
member = family.GetAt(i)
- playerID = member.GetPlayerID()
- tagPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID)
- if tagPlayer:
- return 0
- if not member.GetExattr2():
+ offLineTimeNum = member.GetExattr2()
+ if not offLineTimeNum:
#有人在线直接返回
return 0
if not offLineTime:
- offLineTime = member.GetExattr2()
+ offLineTime = offLineTimeNum
else:
- offLineTime = max(offLineTime, member.GetExattr2())
+ offLineTime = max(offLineTime, offLineTimeNum)
if not offLineTime:
return 0
offLineTime = GameWorld.ChangeTimeNumToStr(offLineTime)
@@ -2741,7 +2749,7 @@
'''自动传位'''
# 获得帮主下线了多久(小时)
leaderOffLineTime = GetLeaderOfflineTime(curFamily)
- GameWorld.DebugLog('帮主下线了%s小时'%leaderOffLineTime)
+ GameWorld.DebugLog('帮主下线了%s小时'%leaderOffLineTime, curFamily.GetID())
if leaderOffLineTime < IpyGameDataPY.GetFuncCfg('AutoChangeLeader'):
return
--
Gitblit v1.8.0