From eddda540e947bcc6483b1c89b3e42b81a337f77e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 23 十月 2020 15:28:52 +0800
Subject: [PATCH] 4834 【主干】【长尾】【BT】GM补偿邮件重复;(当非单服邮件时GUID相同则不允许重复插入;当指定单服邮件批量发送补偿指令时,每个服重新生成GUID插入邮件)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_PlayerBuyZhenQi.py |   57 +++++++++++++++++++++++++++++++++------------------------
 1 files changed, 33 insertions(+), 24 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_PlayerBuyZhenQi.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_PlayerBuyZhenQi.py
index 248ab4f..a03dbba 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_PlayerBuyZhenQi.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_PlayerBuyZhenQi.py
@@ -30,6 +30,9 @@
 import PlayerBossReborn
 import PlayerFairyCeremony
 import PlayerNewFairyCeremony
+import PlayerActLogin
+import PlayerWeekParty
+import EventShell
 #------------------------------------------------------------------------------ 
 
 #获取金币祈愿奖励
@@ -47,7 +50,7 @@
 
 
 #祈愿类型列表
-TotalPrayList = [ChConfig.VIPPrivilege_MoneyPray,ChConfig.VIPPrivilege_ExpPray]
+TotalPrayList = [ChConfig.VIPPrivilege_MoneyPray, ChConfig.VIPPrivilege_ExpPray]
 
 
 #struct    tagCMBuySomething
@@ -67,7 +70,7 @@
     buyType = clientData.Type  #购买的类型
     #祈愿类型错误,不处理
     if buyType not in TotalPrayList:
-        GameWorld.DebugLog("祈愿类型错误---buyType:%s"%buyType )
+        GameWorld.DebugLog("祈愿类型错误---buyType:%s" % buyType)
         return
     if buyType == ChConfig.VIPPrivilege_MoneyPray:
         if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_RefineMoney):
@@ -79,11 +82,11 @@
             return
     
     totalCnt = PlayerVip.GetPrivilegeValue(curPlayer, buyType)
-    curCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_HasPrayCnt%buyType)
-    cnt = curCnt+1 #参数用
+    curCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_HasPrayCnt % buyType)
+    cnt = curCnt + 1 #参数用
     #金币祈愿
     if buyType == ChConfig.VIPPrivilege_MoneyPray:
-        historyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_HistoryPrayCnt%buyType)
+        historyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_HistoryPrayCnt % buyType)
         #判断免费祈愿CD时间
         needTime = __GetFreeCD(curPlayer)
         if needTime:
@@ -106,23 +109,24 @@
                     GameWorld.DebugLog("仙玉不足!costGold=%s" % needGold)
                     return
             if not isCostItem: #用物品不增加次数
-                PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_HasPrayCnt%buyType, curCnt + 1)
+                PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_HasPrayCnt % buyType, curCnt + 1)
         else:
             curTime = int(time.time())
             PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FreePrayTime, curTime)
-        
-        preCnt, fixMoney =IpyGameDataPY.GetFuncEvalCfg('MoneyPray', 4)
-        GameWorld.DebugLog('11111fixMoney=%s,historyCnt=%s,preCnt=%s'%(fixMoney,historyCnt,preCnt))
-        if fixMoney and historyCnt< preCnt:
+            
+        preCnt, fixMoney = IpyGameDataPY.GetFuncEvalCfg("MoneyPray", 4)
+        GameWorld.DebugLog('11111fixMoney=%s,historyCnt=%s,preCnt=%s' % (fixMoney, historyCnt, preCnt))
+        if fixMoney and historyCnt < preCnt:
             addMoney = fixMoney
             #更新历史次数(特殊收益次数达到后不再更新)
-            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_HistoryPrayCnt%buyType, historyCnt+1)
+            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_HistoryPrayCnt % buyType, historyCnt + 1)
         else:
             addMoney = GetMoneyPrayAward()
         addDataDict = {ChConfig.Def_Give_Reason_SonKey:"MoneyPray"}
-        PlayerControl.GiveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Silver_Money, addMoney, 
-                            ChConfig.Def_GiveMoney_Pray, addDataDict, False)
-        PlayerControl.NotifyCode(curPlayer, 'MoneyPray_HowMuch', [addMoney])
+        #20190917 by hxp 祈愿金币改为绑玉
+        giveMoneyType = IPY_GameWorld.TYPE_Price_Gold_Paper
+        PlayerControl.GiveMoney(curPlayer, giveMoneyType, addMoney, ChConfig.Def_GiveMoney_Pray, addDataDict, False)
+        PlayerControl.NotifyCode(curPlayer, 'MoneyPray_HowMuch', [addMoney, giveMoneyType])
         PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_MoneyPray, 1)
         
     #经验祈愿    
@@ -146,7 +150,7 @@
         else:
             infoDict = {ChConfig.Def_Cost_Reason_SonKey:buyType}
             needGold = eval(GetExpPrayCost())
-            GameWorld.DebugLog("需要仙玉--needGold--%s"%needGold )
+            GameWorld.DebugLog("需要仙玉--needGold--%s" % needGold)
             if not PlayerControl.PayMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, needGold, ChConfig.Def_Cost_Pray, infoDict):
                 GameWorld.DebugLog("仙玉不足!costGold=%s" % needGold)
                 return   
@@ -157,16 +161,21 @@
         PlayerControl.PlayerControl(curPlayer).AddExp(addExp)
         PlayerControl.NotifyCode(curPlayer, 'ExpPray_HowMuch', [addExp])
         if not isCostItem: #用物品不增加次数
-            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_HasPrayCnt%buyType, curCnt + 1)
+            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_HasPrayCnt % buyType, curCnt + 1)
         PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_ExpPray, 1)
     else:
         return
+    EventShell.EventRespons_Pray(curPlayer, buyType)
     #成就
     PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_Pray, 1, [buyType])
+    PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_FeastRedPack_Pray, 1)
+    
     # 每日活动
     PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_Pray)
     PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_Pray, 1)
     PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_Pray, 1)
+    PlayerActLogin.AddLoginAwardActionCnt(curPlayer, ChConfig.Def_LoginAct_Pray, 1)
+    PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Pray, 1)
     Sync_NotifyDataChange(curPlayer, [buyType])
     return
 
@@ -176,7 +185,7 @@
     curTime = int(time.time())
     passTime = curTime - lastTime
     cdTime = IpyGameDataPY.GetFuncCfg("MoneyPray", 3)
-    needTime = max(0,cdTime - passTime)
+    needTime = max(0, cdTime - passTime)
     return needTime
     
 ## OnDay操作,通知客户端,购买次数变了
@@ -185,10 +194,10 @@
 def PlayerOnDay(curPlayer):
     needSyncList = []
     for prayType in TotalPrayList:
-        hasPrayCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_HasPrayCnt%prayType)
+        hasPrayCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_HasPrayCnt % prayType)
         if not hasPrayCnt:
             continue
-        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_HasPrayCnt%prayType, 0)
+        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_HasPrayCnt % prayType, 0)
         needSyncList.append(prayType)
     Sync_NotifyDataChange(curPlayer, needSyncList)
     return
@@ -197,7 +206,7 @@
 ## 通知客户端,购买次数变了
 #  @param curPlayer: 玩家实例
 #  @return None
-def Sync_NotifyDataChange(curPlayer, prayType = []):
+def Sync_NotifyDataChange(curPlayer, prayType=[]):
     if prayType == []:
         prayList = TotalPrayList
     else:
@@ -206,13 +215,13 @@
     for buyType in prayList:
         subPack = ChPyNetSendPack.tagMCSingleBuySomethingInfo()
         subPack.Type = buyType
-        subPack.BuyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_HasPrayCnt%buyType)
-        subPack.HistoryBuyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_HistoryPrayCnt%buyType)
+        subPack.BuyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_HasPrayCnt % buyType)
+        subPack.HistoryBuyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_HistoryPrayCnt % buyType)
         
         if buyType == ChConfig.VIPPrivilege_MoneyPray:
             subPack.LastFreeTime = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FreePrayTime)
         pack.Infos.append(subPack)
-        GameWorld.DebugLog("通知祈愿次数--buyType:%s--BuyCnt:%s--LastFreeTime%s" % (subPack.Type,subPack.BuyCnt,subPack.LastFreeTime))
+        GameWorld.DebugLog("通知祈愿次数--buyType:%s--BuyCnt:%s--LastFreeTime%s" % (subPack.Type, subPack.BuyCnt, subPack.LastFreeTime))
     pack.Cnt = len(pack.Infos)
     NetPackCommon.SendFakePack(curPlayer, pack)
     
@@ -223,4 +232,4 @@
 def DoPlayerLogin(curPlayer):
     Sync_NotifyDataChange(curPlayer)
     return
-    
\ No newline at end of file
+    

--
Gitblit v1.8.0