From 21d171ec2d815dd43ab5f428737c59fed6905d6f Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期日, 30 十二月 2018 15:46:54 +0800
Subject: [PATCH] 2797 【1.4】【BUG】跨服匹配战斗中,对方掉线,比赛结算显示自己失败(实际是没掉线,只是其中一个玩家没走完整登录流程,但是后端已经在跨服地图中,导致结算的时候计算胜方逻辑异常)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/OpenServerCampaign.py |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/OpenServerCampaign.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/OpenServerCampaign.py
index c888e2c..91493a1 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/OpenServerCampaign.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/OpenServerCampaign.py
@@ -80,7 +80,8 @@
     
     recordData = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSC_RecordData % campaignType)
     
-    if campaignType not in [ShareDefine.Def_Campaign_Type_StoneLV, ShareDefine.Def_Campaign_Type_FightPower] and value <= recordData:
+    if campaignType not in [ShareDefine.Def_Campaign_Type_StoneLV, ShareDefine.Def_Campaign_Type_FightPower, 
+                            ShareDefine.Def_Campaign_Type_RuneLV] and value <= recordData:
         GameWorld.DebugLog("    开服活动数据小于历史记录, 不更新 campaignType=%s,recordData=%s,updValue=%s" 
                            % (campaignType, recordData, value), curPlayer.GetPlayerID())
         return
@@ -198,7 +199,8 @@
         return
     endOpenServerDay = OSCBillboardDataLimitDict[campTypeS][OSC_EndDay]
     openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1
-    if openServerDay <= endOpenServerDay:
+    # 只限制排行榜;目标奖励随时可领取
+    if awardType == 1 and openServerDay <= endOpenServerDay:
         GameWorld.DebugLog("该开服活动未结束,无法领奖!campaignType=%s,openServerDay=%s <= endOpenServerDay=%s" % (campaignType, openServerDay, endOpenServerDay))
         return
     
@@ -274,6 +276,8 @@
         order = queryResultList[i]
         billAwardInfo = None
         billRankAwardIpyList = IpyGameDataPY.GetIpyGameDataList("OSCBillRankAward", campaignType)
+        if not billRankAwardIpyList:
+            continue
         for billRankIpyData in billRankAwardIpyList:
             if (billRankIpyData.GetRankA() <= order <= billRankIpyData.GetRankB()) \
                 or (not billRankIpyData.GetRankB() and billRankIpyData.GetRankA() == order):

--
Gitblit v1.8.0