From c68ff0ceb1586e2e3801b10e5924d7c921c0fd7e Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期二, 25 十二月 2018 13:56:21 +0800
Subject: [PATCH] 2677 【1.4】仙魔之争,角色在准备倒计时时死亡,角色会倒在地图内,不会弹结算

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCostRebate.py |   31 +++++++++++++++++++++++--------
 1 files changed, 23 insertions(+), 8 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCostRebate.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCostRebate.py
index e9dc42f..b5ee561 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCostRebate.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCostRebate.py
@@ -28,6 +28,15 @@
 import GameWorld
 import ChConfig
 
+def GetTemplateID(cfgID, dayIndex):
+    if cfgID == None or dayIndex == None:
+        return 0
+    ipyData = IpyGameDataPY.GetIpyGameData("ActCostRebate", cfgID)
+    if not ipyData:
+        return 0
+    templateIDList = ipyData.GetTemplateIDList()
+    templateID = templateIDList[-1] if dayIndex >= len(templateIDList) else templateIDList[dayIndex]
+    return templateID
 
 def OnPlayerLogin(curPlayer):
     isReset = __CheckPlayerCostRebateAction(curPlayer)
@@ -65,7 +74,7 @@
         #GameWorld.DebugLog("消费返利活动ID不变,不处理!", curPlayer.GetPlayerID())
         return
     
-    templateID = actCostRebateInfo.get(ShareDefine.ActKey_TemplateID, 0)
+    templateID = GetTemplateID(actCostRebateInfo.get(ShareDefine.ActKey_CfgID, 0), actCostRebateInfo.get(ShareDefine.ActKey_DayIndex, 0))
     playerTemplateID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CostRebateTemplateID)
     
     GameWorld.DebugLog("消费返利重置! costRebateID=%s,playerCostRebateID=%s,state=%s,templateID=%s,playerTemplateID=%s" 
@@ -135,7 +144,7 @@
         return
     
     actID = actCostRebateInfo.get(ShareDefine.ActKey_ID)
-    templateID = actCostRebateInfo.get(ShareDefine.ActKey_TemplateID)
+    templateID = GetTemplateID(actCostRebateInfo.get(ShareDefine.ActKey_CfgID, 0), actCostRebateInfo.get(ShareDefine.ActKey_DayIndex, 0))
     if not actID or not templateID:
         GameWorld.ErrLog("消费返利活动数据异常!actID=%s,templateID=%s" % (actID, templateID), curPlayer.GetPlayerID())
         return
@@ -158,7 +167,7 @@
     actCostRebateInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_CostRebate, {})
     costRebateID = actCostRebateInfo.get(ShareDefine.ActKey_ID, 0)
     state = actCostRebateInfo.get(ShareDefine.ActKey_State, 0)
-    templateID = actCostRebateInfo.get(ShareDefine.ActKey_TemplateID, 0)
+    templateID = GetTemplateID(actCostRebateInfo.get(ShareDefine.ActKey_CfgID, 0), actCostRebateInfo.get(ShareDefine.ActKey_DayIndex, 0))
     if not state or not templateID:
         GameWorld.DebugLog("没有消费返利活动,无法领奖!state=%s,templateID=%s" % (state, templateID), playerID)
         return
@@ -233,15 +242,21 @@
     if not actCostRebateInfo.get(ShareDefine.ActKey_State):
         return
     
-    templateIDList = actCostRebateInfo.get(ShareDefine.ActKey_TemplateIDList)
+    cfgID = actCostRebateInfo.get(ShareDefine.ActKey_CfgID)
+    ipyData = IpyGameDataPY.GetIpyGameData("ActCostRebate", cfgID)
+    if not ipyData:
+        return
+    
+    templateIDList = ipyData.GetTemplateIDList()
     if not templateIDList:
         return
     
+    openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1
     actInfo = ChPyNetSendPack.tagMCCostRebateInfo()
-    actInfo.StartDate = actCostRebateInfo.get(ShareDefine.ActKey_StartDate, "")
-    actInfo.EndtDate = actCostRebateInfo.get(ShareDefine.ActKey_EndDate, "")
-    actInfo.LimitLV = actCostRebateInfo.get(ShareDefine.ActKey_LVLimit, 0)
-    actInfo.IsDayReset = actCostRebateInfo.get(ShareDefine.ActKey_IsDayReset, 0)
+    actInfo.StartDate = GameWorld.GetOperationActionDateStr(ipyData.GetStartDate(), openServerDay)
+    actInfo.EndtDate = GameWorld.GetOperationActionDateStr(ipyData.GetEndDate(), openServerDay)
+    actInfo.LimitLV = ipyData.GetLVLimit()
+    actInfo.IsDayReset = ipyData.GetIsDayReset()
     actInfo.AwardDayInfo = []
     for templateID in templateIDList:
         ipyDataList = IpyGameDataPY.GetIpyGameDataList("CostRebateTemplate", templateID)

--
Gitblit v1.8.0