From eba5b922ac7bfbc45ed54054852789c02e97a2e1 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期一, 26 十一月 2018 18:04:14 +0800
Subject: [PATCH] 4923 【后端】【1.3】神兵技能--神兵护盾
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBCommon.py | 68 +++++++++++++++++++++++-----------
1 files changed, 46 insertions(+), 22 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 9f78fe5..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
@@ -1051,7 +1051,7 @@
#根据副本需求, 过滤NPC
for curNPC in gameNPCList:
#尸体不处理
- if curNPC.GetHP() <= 0:
+ if GameObj.GetHP(curNPC) <= 0:
continue
#召唤兽特殊判断
@@ -1380,7 +1380,7 @@
fbIpyData = GetFBIpyData(mapID)
maxTimes = fbIpyData.GetDayTimes()
MWPrivilegeID = fbIpyData.GetExtraTimesMWPriID()
- wmpIpyData = PlayerMagicWeapon.GetMagicWeaponPrivilege(curPlayer, MWPrivilegeID)
+
mwAddCnt = 0#wmpIpyData.GetEffectValue() if wmpIpyData else 0
extraTimesVIPPriID = fbIpyData.GetExtraTimesVIPPriID()
extraCnt = PlayerVip.GetPrivilegeValue(curPlayer, extraTimesVIPPriID)
@@ -1396,7 +1396,7 @@
enterCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_EnterFbCntDay % mapID)
maxTimes = fbIpyData.GetDayTimes()
MWPrivilegeID = fbIpyData.GetExtraTimesMWPriID()
- wmpIpyData = PlayerMagicWeapon.GetMagicWeaponPrivilege(curPlayer, MWPrivilegeID)
+
mwAddCnt = 0#wmpIpyData.GetEffectValue() if wmpIpyData else 0
maxTimes += mwAddCnt #法宝增加的次数加到基础次数里
extraTimesVIPPriID = fbIpyData.GetExtraTimesVIPPriID()
@@ -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