From 8d7acf4fc03f7166603614ebc8d82cbcb7855656 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期一, 03 九月 2018 16:38:51 +0800
Subject: [PATCH] fix:1796 刚进仙盟宴会地图,就显示获得了1w多盟贡

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py |   29 +++++++++++++++++------------
 1 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py
index d39dbf9..288a5a6 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py
@@ -194,7 +194,6 @@
             FBCommon.SetFBStep(FB_Step_Fighting, tick)
     elif fbStep == FB_Step_Fighting:
         if not FBCommon.GetFBFuncOpenState(ChConfig.Def_FBMapID_FamilyParty):
-            GiveJoinPrize()
             FBCommon.NotifyCopyMapPlayerFBHelp(tick, DoFBHelp, 0)
             PyGameData.g_familyPartyInfo = []
             FBCommon.SetFBStep(FB_Step_Over, tick)
@@ -246,10 +245,22 @@
 
 def OnFamilyPartyStateChange(state, tick):
     #活动状态变更
+    GameWorld.DebugLog('    仙盟宴会活动状态变更 state=%s'%state)
+    if state == 0:
+        playerManager = GameWorld.GetPlayerManager()
+        for i in xrange(playerManager.GetPlayerCount()):
+            curPlayer = playerManager.GetPlayerByIndex(i)
+            if not curPlayer or curPlayer.IsEmpty():
+                continue
+            #答对题或者进过图的给参与奖励
+            curAnswerCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilyPartyAnswerCnt)
+            if FBCommon.GetEnterFBCount(curPlayer, ChConfig.Def_FBMapID_FamilyParty) or curAnswerCnt:
+                GiveJoinPrize(curPlayer)
+                
+    
     mapID = GameWorld.GetMap().GetMapID()
     if mapID != ChConfig.Def_FBMapID_FamilyParty:
         return
-    GameWorld.DebugLog('    仙盟宴会活动状态变更 state=%s'%state)
 
     if state == 1:
         GameWorld.GetGameWorld().SetGameWorldDict(Map_FamilyPartyFB_StartTick, tick)
@@ -258,19 +269,13 @@
     return
 
 
-def GiveJoinPrize():
+def GiveJoinPrize(curPlayer):
     #参与奖
     joinAward = IpyGameDataPY.GetFuncCfg('PartyReward')
     if not joinAward:
         return
-    copyMapPlayerManager = GameWorld.GetMapCopyPlayerManager()
-    for i in xrange(copyMapPlayerManager.GetPlayerCount()):
-        
-        curPlayer = copyMapPlayerManager.GetPlayerByIndex(i)
-        
-        if curPlayer == None or curPlayer.IsEmpty():
-            continue
-        PlayerFamily.AddPlayerFamilyActiveValue(curPlayer, joinAward, True, ShareDefine.Def_AddFAVReason_FamilyParty)
+    
+    PlayerFamily.AddPlayerFamilyActiveValue(curPlayer, joinAward, True, ShareDefine.Def_AddFAVReason_FamilyParty)
     return
 
 
@@ -321,7 +326,7 @@
     expPoint = totalExp / ChConfig.Def_PerPointValue
     
     totalPoint = gameWorld.GetGameWorldDictByKey(FBPlayerDict_TotalPoint%playerID)
-    totalPoint += IpyGameDataPY.GetFuncCfg('PartyReward') #加参与奖
+    #totalPoint += IpyGameDataPY.GetFuncCfg('PartyReward') #加参与奖
     totalPoint += addPoint * curAnswerCnt
     hasCollect = gameWorld.GetGameWorldDictByKey(FBPlayerDict_HasCollect%playerID)
     getCnt = gameWorld.GetGameWorldDictByKey(ChConfig.Map_Player_AreaReward_GetCnt%playerID)

--
Gitblit v1.8.0