From 4222222e7a1ab903843016ea84cb57717bd11ec7 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期四, 22 十一月 2018 20:24:54 +0800
Subject: [PATCH] 4715 【1.3】【后端】新的洗练副本-冰晶矿脉(日常活动)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py |   33 ++++++++++++++++++++++-----------
 1 files changed, 22 insertions(+), 11 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 5b2610f..d87eb9a 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
@@ -29,6 +29,7 @@
 import PyGameData
 import ItemCommon
 import ItemControler
+import Item_AddLV
 
 #当前副本地图的状态
 (
@@ -38,7 +39,6 @@
 ) = range(3)
 
 #---战盟副本---
-Map_FamilyPartyFB_FamilyID = "FamilyPartyFB_FamilyID"  # 对应的家族id
 Map_FamilyPartyFB_StartTick = "Map_FamilyPartyFB_StartTick"  # 副本开始时间
 GameFBDict_LastEnterFbDay = 'LastEnterFbDay_%s'  #上次进入活动的开服天
 FBPlayerDict_TotalExp = 'XMYH_TotalExp%s'  # 获得的总经验
@@ -59,7 +59,6 @@
 # @remarks 开启副本
 def OnOpenFB(tick):
     gameFB = GameWorld.GetGameFB()
-    gameFB.SetGameFBDict(Map_FamilyPartyFB_FamilyID, 0)
     gameFB.ClearAllPlayerGameFBDict()  # 清除所有玩家对应的副本字典信息
     gameFB.SetGameFBDict(ChConfig.Map_FBDict_NotifyStart, 0)
     return
@@ -159,8 +158,6 @@
         return
     curPlayer.Sync_TimeTick(IPY_GameWorld.tttTowerTake, 0, closeFB_RemainTick, True) 
     GameWorld.DebugLog('closeFB_RemainTick=%s' % closeFB_RemainTick)
-    if not gameFB.GetGameFBDictByKey(Map_FamilyPartyFB_FamilyID):
-        gameFB.SetGameFBDict(Map_FamilyPartyFB_FamilyID, curPlayer.GetFamilyID())
        
     openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay)
     if gameWorld.GetGameWorldDictByKey(GameFBDict_LastEnterFbDay % playerID) != openServerDay + 1:
@@ -195,8 +192,12 @@
 # @return 返回值无意义
 # @remarks 副本定时器
 def OnProcess(tick):
+    familyID = GameWorld.GetGameWorld().GetPropertyID()
+    if not familyID:
+        return
     gameFB = GameWorld.GetGameFB()
     fbStep = gameFB.GetFBStep()
+
     #GameWorld.DebugLog("    OnProcess...")
     if fbStep == FB_Step_Open:
         if FBCommon.GetFBFuncOpenState(ChConfig.Def_FBMapID_FamilyParty):
@@ -220,7 +221,7 @@
                 remaindTick = max(0, __GetRemainTick(tick) - 1000)
                 if remaindTick <= (notifySecond + 1) * 1000:   
                     #remaindSecond = remaindTick / 1000
-                    familyID = gameFB.GetGameFBDictByKey(Map_FamilyPartyFB_FamilyID)
+                    
                     PlayerControl.FamilyNotify(familyID, "Party_OverTime", [notifySecond])
                      
                     GameWorld.GetGameFB().SetGameFBDict(ChConfig.Map_FBDict_NotifyStart, notifyIndex + 1)
@@ -430,19 +431,29 @@
             return
         curPlayer.StopMove()
         curPlayer.Sit()
-        if tagPlayer.GetPlayerAction() not in [IPY_GameWorld.paSit, IPY_GameWorld.paPreparing]:
-            tagPlayer.StopMove()
-            tagPlayer.Sit()
+        if not gameWorld.GetGameWorldDictByKey(FBPlayerDict_HasSit % tagPlayerID):
+            if tagPlayer.GetPlayerAction() not in [IPY_GameWorld.paSit, IPY_GameWorld.paPreparing]:
+                tagPlayer.StopMove()
+                tagPlayer.Sit()
     elif actionType == 1:  #打坐结束给奖励
+        hasSit = gameWorld.GetGameWorldDictByKey(FBPlayerDict_HasSit % playerID)
+        if hasSit:
+            GameWorld.Log('打坐结束给奖励,玩家已打坐过一次', playerID)
+            return
+        reLV = curPlayer.GetLV()
+        worldlv = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_WorldAverageLv)
+        giveLV = eval(IpyGameDataPY.GetFuncCompileCfg('FamilyPartySitAward', 2))
+        addExp = 0
+        if giveLV:
+            addExp = Item_AddLV.DoAddLVEx(curPlayer, giveLV, True, True, 0)
         reLV = curPlayer.GetLV()
         reExp = PlayerControl.GetPlayerReExp(curPlayer)
-        worldlv = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_WorldAverageLv)
         giveExp = eval(IpyGameDataPY.GetFuncCompileCfg('FamilyPartySitAward'))
         if giveExp:
             PlayerControl.PlayerControl(curPlayer).AddExp(giveExp)
             exp = gameWorld.GetGameWorldDictByKey(FBPlayerDict_TotalExp % playerID)
             expPoint = gameWorld.GetGameWorldDictByKey(FBPlayerDict_TotalExpPoint % playerID)
-            newTotalExp = expPoint*ChConfig.Def_PerPointValue+exp+giveExp
+            newTotalExp = expPoint*ChConfig.Def_PerPointValue+exp+giveExp+addExp
             gameWorld.SetGameWorldDict(FBPlayerDict_TotalExp % playerID, newTotalExp%ChConfig.Def_PerPointValue)
             gameWorld.SetGameWorldDict(FBPlayerDict_TotalExpPoint % playerID, newTotalExp/ChConfig.Def_PerPointValue)
             
@@ -450,5 +461,5 @@
         DoFBHelp(curPlayer, 0)
         if curPlayer.GetPlayerAction() == IPY_GameWorld.paSit:
             curPlayer.Stand()
-        GameWorld.DebugLog('    传功结束,给经验%s, worldlv=%s' % (giveExp, worldlv))
+        GameWorld.DebugLog('    传功结束,giveLV=%s, giveExp=%s, worldlv=%s' % (giveLV, giveExp, worldlv))
     return

--
Gitblit v1.8.0