From 4c6786e17ef724a0dfdfeca8cf4a36bc4a7b9898 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 15 二月 2019 15:17:26 +0800
Subject: [PATCH] 6211 【后端】【1.6】合服任务单(合服邮件、重置首充双倍、重置商店购买次数、设置合服命令SetMixServer)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py |   46 +++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 39 insertions(+), 7 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
index 6e04eb4..8a0fa4a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -816,23 +816,55 @@
     if not isMixServer:
         return
     
-    lastMixServerDayKey = ShareDefine.Def_Notify_WorldKey_LastMixServerDay
-    lastMixServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(lastMixServerDayKey)
-    GameWorld.DebugLog("合服首登处理lastMixServerDay=%s" % lastMixServerDay, curPlayer.GetPlayerID())
+    playerID = curPlayer.GetPlayerID()
+    lastMixServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_LastMixServerDay)
     
     playerDay = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MixLoginDay)
     
     if playerDay == lastMixServerDay:
-        GameWorld.DebugLog("本次合服已经登录过.")
+        GameWorld.DebugLog("本次合服已经登录过. lastMixServerDay=%s" % (lastMixServerDay), playerID)
         return
-
+    mixServerWorldLV = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_LastMixServerWorldLV) # 合服时的世界等级
+    GameWorld.Log("玩家合服首登处理! lastMixServerDay=%s,mixServerWorldLV=%s" % (lastMixServerDay, mixServerWorldLV), playerID)    
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MixLoginDay, lastMixServerDay)
     
+    # 重置首充双倍
+    PlayerCoin.DoResetCTGCount(curPlayer, "MixServer")
+    
+    # 重置商店购买次数
+    FunctionNPCCommon.ResetShopItemBuyCount(curPlayer)
+    
+    # 合服邮件,盟主专属邮件在GameServer处理
+    mailItemList = IpyGameDataPY.GetFuncEvalCfg("MixServerMail", 1)
+    worldLVMailItemList = IpyGameDataPY.GetFuncEvalCfg("MixServerMail", 2)
+    mailMoneyList = IpyGameDataPY.GetFuncEvalCfg("MixServerMail", 3)
+    goldPaper, silver = mailMoneyList
+    worldLVItemList = []
+    for itemID, itemCount, isBind in worldLVMailItemList:
+        itemData = GameWorld.GetGameData().GetItemByTypeID(itemID)
+        if not itemData:
+            continue
+        curEff = itemData.GetEffectByIndex(0)
+        curEffID = curEff.GetEffectID()
+        if curEffID != ChConfig.Def_Effect_ItemAddLV:
+            continue
+        lvLimit = curEff.GetEffectValue(1)
+        if not lvLimit:
+            continue
+        if lvLimit <= mixServerWorldLV:
+            worldLVItemList = [[itemID, itemCount, isBind]]
+        else:
+            break
+    detailDict = {"MixServerWorldLV":mixServerWorldLV, "LastMixServerDay":lastMixServerDay}
+    addItemList = mailItemList + worldLVItemList
+    PlayerControl.SendMailByKey("MixServer1", [playerID], addItemList, goldPaper=goldPaper, silver=silver, detail=detailDict)
+    GameWorld.Log("    发送合服补偿邮件: addItemList=%s" % (addItemList), playerID)
+    
     # 同步排行榜
-    PlayerBillboard.UpdBillboardOnMixServerFirstLogin(curPlayer, lastMixServerDay)
+    PlayerBillboard.UpdatePlayerBillboardOnLeaveServer(curPlayer, isAll=True)
     
     # 重置玩家改名次数
-    UpdatePlayerName.ResetChangeNameCnt(curPlayer)
+    #UpdatePlayerName.ResetChangeNameCnt(curPlayer)
     return
 #---------------------------------------------------------------------
         

--
Gitblit v1.8.0