From b4b72d0c241ffc26dbbbd7a047578f1f4fead2f4 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 09 十二月 2021 16:11:53 +0800
Subject: [PATCH] 9341 【BT5】【主干】【后端】情缘系统(Couple命令增加添加喜糖宴会;修复多个喜糖宴会同时存在时吃喜糖同步错误bug)

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

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerLuckyTreasure.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerLuckyTreasure.py
index 30c9f4f..e296c80 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerLuckyTreasure.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerLuckyTreasure.py
@@ -79,6 +79,8 @@
     
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_LuckyTreasureFree, 0)
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_LuckyTreasurePoint, 0)
+    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_LuckyTreasureCnt, 0)
+    
     
     SyncLuckyTreasureInfo(curPlayer)
     SyncLuckyTreasureResultInfo(curPlayer)
@@ -153,13 +155,19 @@
     greatItem = randomRateList[-1][1]
     
     curLuckyPoint = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_LuckyTreasurePoint)
+    curLuckyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_LuckyTreasureCnt)
+    
     maxLuckyPoint = actIpyData.GetLuckyPoint()
     singlePoint = IpyGameDataPY.GetFuncCfg('LuckyAppraisal', 2)
     if curLuckyPoint + singlePoint >= maxLuckyPoint:
         giveItem = greatItem
         newLuckyPoint = 0
     else:
-        randomResultList = GameWorld.GetResultByRandomListEx(randomRateList, 1, [])
+        if curLuckyCnt < IpyGameDataPY.GetFuncCfg('LuckyAppraisal', 3):
+            #前X次鉴宝不能出大奖
+            randomResultList = GameWorld.GetResultByRandomListEx(randomRateList[:-1], 1, [])
+        else:
+            randomResultList = GameWorld.GetResultByRandomListEx(randomRateList, 1, [])
         if len(randomResultList) != 1:
             GameWorld.DebugLog('    开始幸运鉴宝 随机库结果 获取错误 !')
             return
@@ -179,9 +187,10 @@
         PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_LuckyTreasureFree, 1)
     #更新幸运值
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_LuckyTreasurePoint, newLuckyPoint)
+    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_LuckyTreasureCnt, curLuckyCnt + 1)
     
     for itemID, itemCount, isBind in [giveItem]:
-        ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem], event=[ChConfig.ItemGive_LuckyTreasure, False, {"isFree":not hasFree}])
+        ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, 0, [IPY_GameWorld.rptItem], event=[ChConfig.ItemGive_LuckyTreasure, False, {"isFree":not hasFree}])
     
     SyncLuckyTreasureResultInfo(curPlayer, giveItem)
     return
@@ -197,11 +206,11 @@
     actIpyData = IpyGameDataPY.GetIpyGameData("ActLuckyTreasure", cfgID)
     if not actIpyData:
         return
-    openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1
+    startDateStr, endDateStr = GameWorld.GetOperationActionDateStr(actIpyData)
     actInfo = ChPyNetSendPack.tagMCLuckyTreasureInfo()
     actInfo.Clear()
-    actInfo.StartDate = GameWorld.GetOperationActionDateStr(actIpyData.GetStartDate(), openServerDay)
-    actInfo.EndtDate = GameWorld.GetOperationActionDateStr(actIpyData.GetEndDate(), openServerDay)
+    actInfo.StartDate = startDateStr
+    actInfo.EndtDate = endDateStr
     actInfo.ResetType = actIpyData.GetResetType()
     actInfo.LimitLV = actIpyData.GetLVLimit()
     actInfo.LuckyPoint = actIpyData.GetLuckyPoint()

--
Gitblit v1.8.0