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