From 4a5b10c5ca95f49cf3700619e1033da645c9de89 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期五, 23 十一月 2018 11:37:37 +0800
Subject: [PATCH] 4969 上古战场退出副本清除buff

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWishingWell.py |   33 +++++++++++++++++++--------------
 1 files changed, 19 insertions(+), 14 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWishingWell.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWishingWell.py
index 4736a3a..f15e88a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWishingWell.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerWishingWell.py
@@ -33,7 +33,7 @@
 import time
 
 g_randomWellDict = {}
-g_specialMarkDict = {}
+
 
 (
 WellType_Select,  #可选库
@@ -73,11 +73,14 @@
         if actCostRebateInfo.get(ShareDefine.ActKey_State):
             SyncWishingWellInfo(curPlayer)
             SyncWishingWellPlayerInfo(curPlayer)
+        elif __GetItemInfoByData(curPlayer, WellType_Get, 0)[0]:
+            SyncWishingWellPlayerInfo(curPlayer)
     return
 
 def OnDay(curPlayer):
     actCostRebateInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_WishingWell, {})
     if not actCostRebateInfo.get(ShareDefine.ActKey_State):
+        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WishingWellFreeTime, 0)
         __SendWishingWellMail(curPlayer, int(time.time()))
     return
 
@@ -95,7 +98,7 @@
 def __CheckPlayerWishingWellAction(curPlayer):
     ## 检查玩家许愿池活动数据信息
     global g_randomWellDict
-    global g_specialMarkDict
+
     playerID = curPlayer.GetPlayerID()
     
     actWishingWellInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_WishingWell, {})
@@ -120,11 +123,11 @@
     #每天开始随机一次免费盘
     if state:
         g_randomWellDict = {}
-        g_specialMarkDict = {}
+        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WishingWellRefreshCnt, 0)
         __DoActWishingRefresh(curPlayer, 1, True)
  
         SyncWishingWellInfo(curPlayer)
-        SyncWishingWellPlayerInfo(curPlayer)
+    SyncWishingWellPlayerInfo(curPlayer)
     return True
 
 
@@ -162,10 +165,13 @@
             mailItemList.append([itemID, itemCnt, isBind])
         __SetItemData(curPlayer, WellType_Result, i, 0, 0, 0, 0)
         j +=1
-    
+    if state > 0:
+        isOver = False
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WishingWellAwardTime, 0 if isOver else curTime)
     if mailItemList:
         PlayerControl.SendMailByKey('WishPool', [curPlayer.GetID()], mailItemList)
+        if state == -1:
+            SyncWishingWellPlayerInfo(curPlayer)
     GameWorld.DebugLog('许愿池距离时间 passDay=%s,mailItemList=%s,saveItemList=%s,isOver=%s'%(passDay, mailItemList, saveItemList, isOver), curPlayer.GetID())
     return
 
@@ -173,7 +179,6 @@
 def __InitWishRateList():
     ## 初始许愿池随机库
     global g_randomWellDict
-    global g_specialMarkDict
     actWishingWellInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_WishingWell, {})
     state = actWishingWellInfo.get(ShareDefine.ActKey_State, 0)
     cfgID = actWishingWellInfo.get(ShareDefine.ActKey_CfgID, 0)
@@ -199,15 +204,14 @@
         isBind = ipyData.GetIsBind()
         weight = ipyData.GetWeight()
         mark = ipyData.GetMark()
+        rare = ipyData.GetRare()
         weightDict[isFree] = weightDict.get(isFree, 0) + weight
         if isFree not in g_randomWellDict:
             g_randomWellDict[isFree] = []
-        g_randomWellDict[isFree].append([weightDict[isFree], [itemID, itemCnt, isBind, mark]])
+        g_randomWellDict[isFree].append([weightDict[isFree], [itemID, itemCnt, isBind, mark, rare]])
         
-        groupID, rowID = mark / 100, mark % 100
-        if rowID > g_specialMarkDict.get(groupID, 0) % 100:
-            g_specialMarkDict[groupID] = mark
-    GameWorld.DebugLog('    初始许愿池随机库 g_randomWellDict=%s, g_specialMarkDict=%s' % (g_randomWellDict, g_specialMarkDict))
+        
+    GameWorld.DebugLog('    初始许愿池随机库 g_randomWellDict=%s' % (g_randomWellDict))
     return
 
 
@@ -275,8 +279,8 @@
         PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_WishingWellFreeTime, int(time.time()))
         
     for i, info in enumerate(randomResultList):
-        itemID, itemCnt, isBind, mark = info
-        isSpecial = 1 if mark in g_specialMarkDict.values() else 0
+        itemID, itemCnt, isBind, mark, rare = info
+        isSpecial = rare
         __SetItemData(curPlayer, WellType_Select, i, itemID, itemCnt, isBind, isSpecial)
     GameWorld.DebugLog(' 许愿池活动刷新 isFree=%s, randomResultList=%s' % (isFree, randomResultList), playerID)
     return
@@ -379,12 +383,13 @@
     actInfo.WellItemInfo = []
     randomItemList = __GetRandomRateList(0)
     for itemInfo in randomItemList:
-        itemID, itemCnt, isBind, mark = itemInfo[1]
+        itemID, itemCnt, isBind, mark, rare = itemInfo[1]
         wellItemInfo = ChPyNetSendPack.tagMCWishingWellItem()
         wellItemInfo.ItemID = itemID
         wellItemInfo.ItemCnt = itemCnt
         wellItemInfo.IsBind = isBind
         wellItemInfo.Mark = mark
+        wellItemInfo.Rare = rare
         actInfo.WellItemInfo.append(wellItemInfo)
     actInfo.Count = len(actInfo.WellItemInfo)
     NetPackCommon.SendFakePack(curPlayer, actInfo)

--
Gitblit v1.8.0