From 7228c6e4513da12ef14ef76af89c36431d2bc42e Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期六, 24 十一月 2018 00:21:49 +0800
Subject: [PATCH] 4997 【后端】【1.3】冰晶矿脉AI--技能指定NPCID使用

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py |   62 +++++++++++++++++++++---------
 1 files changed, 43 insertions(+), 19 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py
index 88fe8bb..afaf44b 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py
@@ -1557,6 +1557,7 @@
         return 0
     #任务
     EventShell.EventRespons_FBEvent(curPlayer, 'fbhelp')
+    EventShell.EventRespons_FBEvent(curPlayer, 'fbhelp_%s'%mapID)
     # 每日活动
     PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_FBHelp)
     addHelpPoint = helpPoint * addFBCnt
@@ -1566,7 +1567,10 @@
         PlayerControl.NotifyCode(curPlayer, 'AssistantIntegralFull')
         return 0
     addHelpPoint = min(addHelpPoint, dayMaxPoint-curDayPoint)
-    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FBHelpPointCntDay, curDayPoint+addHelpPoint)
+    updHelpPoint = curDayPoint+addHelpPoint
+    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FBHelpPointCntDay, updHelpPoint)
+    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_DayFBHelpPoint, updHelpPoint, False)
+    
     PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_FBHelpPoint, addHelpPoint, isSysHint=False)
     PlayerControl.NotifyCode(curPlayer, 'AssistantIntegral', [addHelpPoint])
     GameWorld.DebugLog("    增加副本助战积分!mapID=%s, addHelpPoint=%s"%(mapID, addHelpPoint), curPlayer.GetID())
@@ -1661,7 +1665,7 @@
     #重置每日获得的助战积分
     if onDayType ==ShareDefine.Def_OnEventTypeEx:
         PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FBHelpPointCntDay, 0)
-        
+        curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_DayFBHelpPoint, 0, False)
     return
 
 ## 玩家通用副本登录处理
@@ -1676,6 +1680,9 @@
     NotifyFBCntRegainInfo(curPlayer)
     #判断副本里离线超过一定时间则退出副本
     CheckFBPlayerOffine(curPlayer)
+    #通知助战点数
+    curDayPoint = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FBHelpPointCntDay)
+    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_DayFBHelpPoint, curDayPoint, False)
     return
 def CheckFBPlayerOffine(curPlayer):
     mapid = curPlayer.GetMapID()
@@ -1732,7 +1739,7 @@
             return
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_BuyFbCntDay % mapID, hasBuyCnt + 1)
     Sync_FBPlayerFBBuyCount(curPlayer, [mapID])
-        
+    PlayerControl.NotifyCode(curPlayer, 'FBEnterTimeBuy', [mapID])
     lastRegainTime= curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FbCntRegainStartTime % mapID)
     if lastRegainTime:
         maxDayTimes = ipyData.GetDayTimes()
@@ -1858,7 +1865,7 @@
 ## 副本行为 - 鼓舞buff
 #  @param curPlayer 玩家
 #  @param key 副本玩家字典key
-#  @param encourageType 1-铜钱 2-消耗绑玉或仙玉
+#  @param encourageType 金钱类型
 #  @param tick 当前时间
 #  @param isMaxlv 是否直接满级
 #  @return None
@@ -1875,21 +1882,24 @@
     encourageLV = gameFB.GetPlayerGameFBDictByKey(curPlayerID, key)
     encourageCntKey = 'FbEncourageCnt_%s' % encourageType
     encourageCnt = gameFB.GetPlayerGameFBDictByKey(curPlayerID, encourageCntKey)
-    if encourageLV >= 10:
+    maxLV = IpyGameDataPY.GetFuncEvalCfg('FBEncourageBuff', 2, {}).get(curMapID, 0)
+    if encourageLV >= maxLV:
         PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_93643")
         return
     if encourageCnt >= maxCnt:
-        if encourageType == 1:
+        if encourageType == IPY_GameWorld.TYPE_Price_Silver_Money:
             PlayerControl.NotifyCode(curPlayer, "Xjmj_CopperInspireFull")
         else:
             PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_93643")
         return
     
-    encourageCost = ipyData.GetMoneyCount()
-    if encourageType == 1:
-        costMoneyList = [[IPY_GameWorld.TYPE_Price_Silver_Money, encourageCost]]
-    else:
-        costMoneyList = PlayerControl.HaveMoneyEx(curPlayer, ShareDefine.TYPE_Price_Gold_Paper_Money, encourageCost)
+    encourageCost = eval(ipyData.GetMoneyCount())
+    if curMapID == ChConfig.Def_FBMapID_SealDemon:
+        isDouble = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FMTDouble)
+        if isDouble: #封魔坛双倍挑战则鼓舞双倍花费
+            encourageCost *= 2
+
+    costMoneyList = PlayerControl.HaveMoneyEx(curPlayer, encourageType, encourageCost)
     if not costMoneyList:
         return
     
@@ -1910,7 +1920,8 @@
     gameFB.SetPlayerGameFBDict(curPlayerID, key, encourageLV+1)
     gameFB.SetPlayerGameFBDict(curPlayerID, encourageCntKey, encourageCnt+1)
     #GameWorld.Log("FbEncourageBuff encourage nextLV=%s success" % encourageLV)
-    PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_628920", [(encourageLV+1)*10])
+    addHurtNum = IpyGameDataPY.GetFuncEvalCfg('FBEncourageBuff', 3, {}).get(curMapID, 0)
+    PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_628920", [(encourageLV+1)*addHurtNum])
     SendFBEncourageInfo(curPlayer, encourageLV+1)
     #成就
     PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_FBEncourage, 1, [curMapID])
@@ -1964,15 +1975,25 @@
 #  @return None
 def SendFBEncourageInfo(curPlayer, lv):
     #//A3 0A 副本鼓舞信息通知 #tagMCFBEncourageInfo
+    curMapID = curPlayer.GetMapID()
+    curMapID = GetRecordMapID(curMapID)
+    ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition('FbEncourage', {'DataMapID':curMapID}, True)
+    if not ipyDataList:
+        return
     encourageInfo = ChPyNetSendPack.tagMCFBEncourageInfo()
     encourageInfo.Clear()
-    #encourageInfo.LV = lv
+    encourageInfo.InfoList = []
     encourageCntKey = 'FbEncourageCnt_%s'
     gameFB = GameWorld.GetGameFB()
     curPlayerID = curPlayer.GetID()
-    encourageInfo.Cnt1 = gameFB.GetPlayerGameFBDictByKey(curPlayerID, encourageCntKey%1)
-    encourageInfo.Cnt2 = gameFB.GetPlayerGameFBDictByKey(curPlayerID, encourageCntKey%2)
-    NetPackCommon.SendFakePack(curPlayer, encourageInfo)  
+    for ipyData in ipyDataList:
+        inspireType = ipyData.GetInspireType()
+        packData = ChPyNetSendPack.tagMCFBEncourageCnt()
+        packData.MoneyType = inspireType
+        packData.EncourageCnt = gameFB.GetPlayerGameFBDictByKey(curPlayerID, encourageCntKey % inspireType)
+        encourageInfo.InfoList.append(packData)
+    encourageInfo.Cnt = len(encourageInfo.InfoList)
+    NetPackCommon.SendFakePack(curPlayer, encourageInfo)
     return
 
 ## 获取玩家所在副本区域福利倍值
@@ -2007,7 +2028,10 @@
     
     if mapID not in enterCDDict:
         return 0
-    
+    lvLimitDict = IpyGameDataPY.GetFuncEvalCfg('FBEnterCD', 3)
+    if mapID in lvLimitDict:
+        if curPlayer.GetLV() >= lvLimitDict[mapID]:
+            return 0
     cdTick = enterCDDict[mapID]
     lastEnterTick = GetFBPDictValue(curPlayer, ChConfig.Def_PDict_LastEnterFBTick % mapID)
     if not lastEnterTick:
@@ -2097,7 +2121,7 @@
         enterTickObj = ChPyNetSendPack.tagMCFBEnterTick()
         enterTickObj.Clear()
         enterTickObj.MapID = mapID
-        enterTickObj.LastEnterTick = max(enterCDDict.get(mapID) - (timeNum - lastEnterTick), 0)
+        enterTickObj.LastEnterTick = lastEnterTick#max(enterCDDict.get(mapID) - (timeNum - lastEnterTick), 0)
         enterList.EnterTickList.append(enterTickObj)
     
     enterList.Cnt = len(enterList.EnterTickList)
@@ -2241,7 +2265,7 @@
     rewardFormatDict = IpyGameDataPY.GetFuncEvalCfg(cfgKeyName)
     getCntLimit = IpyGameDataPY.GetFuncCfg(cfgKeyName, 3)
     lastAwardTick = gameFB.GetGameFBDictByKey(ChConfig.Map_FBDict_LastAreaRewardTick)
-    if tick - lastAwardTick < rewardInterval * 1000:
+    if tick - lastAwardTick < rewardInterval:
         return
     gameFB.SetGameFBDict(ChConfig.Map_FBDict_LastAreaRewardTick, tick)
     

--
Gitblit v1.8.0