From 0494d4903383737139445b11e525a9e2ca583801 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期四, 21 二月 2019 16:47:35 +0800
Subject: [PATCH] 6268 【后端】【1.6.100】增加道具七日巡礼积分和节日巡礼积分支持
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py | 49 +++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 43 insertions(+), 6 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
index 5c4c4b4..3894633 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
@@ -83,6 +83,9 @@
def GetCurWeekMissionMoney(curFamily): return curFamily.GetExtra2()
def SetCurWeekMissionMoney(curFamily, value): return curFamily.SetExtra2(min(value, ChConfig.Def_UpperLimit_DWord))
+# 仙盟上次处理的合服天
+def GetFamilyMixServerDay(curFamily): return curFamily.GetExtra1()
+def SetFamilyMixServerDay(curFamily, value): return curFamily.SetExtra1(value)
## ------------------ 成员 ----------------------
def GetMemberFightPower(curMember): return curMember.GetExattr3()
def SetMemberFightPower(curMember, fightPower): return curMember.SetExattr3(fightPower)
@@ -236,6 +239,9 @@
curFamily.SetAcceptJoin(ShareDefine.FamilyAcceptJoin_Agree) #设置收人方式为直接通过申请
PyDataManager.GetFamilyStoreItemManager().DelFamilyStoreItemAll(curFamily.GetID())
+ #新创建的仙盟默认设置已处理过合服
+ SetFamilyMixServerDay(curFamily, PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_LastMixServerDay))
+
#-设置家族成员属性
DoPlayerJionFamily(curFamily, curPlayer, IPY_GameServer.fmlLeader)
@@ -379,7 +385,6 @@
GameWorld.DebugLog(' 玩家战盟名变更处理, newFamilyName=%s' % familyName, playerID)
#不处理排行榜
needChangeFamilyBillboardList = [
- #ShareDefine.Def_BT_MixCampaign_Recharge, # 累计充值(合服活动)
#ShareDefine.Def_BT_RechargeTeHui, # 充值特惠活动排行榜-当前期记录
]
billboardMgr = GameWorld.GetBillboard()
@@ -1927,6 +1932,37 @@
PlayerRefresh(curPlayer, tick)
GameWorldFamilyWar.OnPlayerLogin(curFamily, curPlayer)
+
+ # 盟主上线处理
+ if curMember.GetFamilyLV() == IPY_GameServer.fmlLeader:
+ OnFamilyLeaderLogin(curPlayer, curFamily)
+ return
+
+def OnFamilyLeaderLogin(curPlayer, curFamily):
+ ## 盟主登录处理
+ __DoFamilyMixServerLogicOnLeaderLogin(curPlayer, curFamily)
+ return
+
+def __DoFamilyMixServerLogicOnLeaderLogin(curPlayer, curFamily):
+ ## 合服仙盟盟主登录处理
+
+ isMixServer = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_IsMixServer)
+ if not isMixServer:
+ return
+ lastMixServerDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_LastMixServerDay)
+ familyID = curFamily.GetID()
+ familyMixServerDay = GetFamilyMixServerDay(curFamily)
+ if familyMixServerDay == lastMixServerDay:
+ GameWorld.DebugLog("已经处理过仙盟盟主合服登录逻辑! lastMixServerDay=%s" % (lastMixServerDay), familyID)
+ return
+ SetFamilyMixServerDay(curFamily, lastMixServerDay)
+ GameWorld.Log("处理合服仙盟盟主登录! lastMixServerDay=%s" % (lastMixServerDay), familyID)
+
+ mailItemList = IpyGameDataPY.GetFuncEvalCfg("MixServerMail", 4)
+ playerID = curPlayer.GetPlayerID()
+ detailDict = {}
+ GameWorld.Log(" 发送合服盟主专属补偿邮件! familyID=%s,mailItemList=%s" % (familyID, mailItemList), playerID)
+ PlayerCompensation.SendMailByKey("MixServer2", [playerID], mailItemList, detail=detailDict)
return
#---------------------------------------------------------------------
## 玩家下线家族刷新逻辑
@@ -2321,6 +2357,7 @@
#上面已经验证过了,家族肯定存在的
curFamily = curPlayer.GetFamily()
curFamilyID = curFamily.GetID()
+ curPlayerID = curPlayer.GetID()
# curFamilyTrig = PlayerDBGSEvent.FindDBGSTrig_ByEventID(curFamilyID , PlayerDBGSEvent.Def_Key_RenameFamily)
#
# if not curFamilyTrig:
@@ -2355,20 +2392,20 @@
curMemberID = curMember.GetPlayerID()
__OnFamilyNameChange(curMemberID, familyName)
memberIDList.append(curMemberID)
- curPlayer = playerManager.FindPlayerByID(curMemberID)
+ player = playerManager.FindPlayerByID(curMemberID)
#玩家不在线
- if not curPlayer:
+ if not player:
continue
- curPlayerMapID = GameWorld.GetQueryPlayerMapID(curPlayer)
+ curPlayerMapID = GameWorld.GetQueryPlayerMapID(player)
if not curPlayerMapID:
continue
- msgStr = str([curPlayer.GetPlayerID(), familyName])
+ msgStr = str([curPlayerID, familyName])
playerManager.MapServer_QueryPlayer(0, 0, curMemberID, curPlayerMapID, 'FamilyNameRefresh',
msgStr, len(msgStr),
- curPlayer.GetRouteServerIndex())
+ player.GetRouteServerIndex())
PlayerCompensation.SendMailByKey('FamilyNameChange', memberIDList, [], [oldName, familyName])
PlayerControl.WorldNotify(0, 'Family_ChangeName', [oldName, familyName])
--
Gitblit v1.8.0