From 5cb668b8883cc0f8c8930a1d4ed3db632eae7abf Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 10 一月 2020 16:04:29 +0800 Subject: [PATCH] 8368 【开发】开服排行榜活动修改(强化、坐骑改为战力榜;增加洗练战力榜26) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRecover.py | 99 +++++++++++++++++++++++++++++++++++-------------- 1 files changed, 70 insertions(+), 29 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRecover.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRecover.py index 81dca15..45284b8 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRecover.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRecover.py @@ -34,6 +34,7 @@ import PlayerActivity import PlayerSuccess import PyGameData +import BossHurtMng import copy import datetime @@ -69,6 +70,7 @@ playerLV = curPlayer.GetLV() if playerLV <= 1: #刚创角不增加次数 return + RecoverMaxDay = 2 # 最多可找回X天总次数 lostOnDayNum = __GetLastRecoverPastDay(curPlayer) lostOnDayNum = max(0, lostOnDayNum - 1) GameWorld.DebugLog(' 增加可找回次数 lostOnDayNum=%s'%lostOnDayNum) @@ -104,8 +106,8 @@ continue remainInfo, limitInfo = FBCommon.GetFBDetailCntInfo(curPlayer, dataMapID) - rCommonCnt, rExtraCnt, rBuyCnt, rItemAddCnt, noBuyCnt = remainInfo - rCommonCntlimit, rExtraCntlimit, rBuyCntlimit, rItemAddCntlimit, noBuyCntlimit = limitInfo + rCommonCnt, rRegainFbCnt, rExtraCnt, rBuyCnt, rItemAddCnt, noBuyCnt = remainInfo + rCommonCntlimit, rRegainFbCntLimit, rExtraCntlimit, rBuyCntlimit, rItemAddCntlimit, noBuyCntlimit = limitInfo if max(remainInfo) == 0 and not lostOnDayNum: continue #限时活动判断当天是否有开启 @@ -117,11 +119,11 @@ else: addCommonCnt = rCommonCnt + lostOnDayNum * rCommonCntlimit + addRegainCnt = rRegainFbCnt + lostOnDayNum * rRegainFbCntLimit addExtraCnt = rExtraCnt + lostOnDayNum * rExtraCntlimit addBuyCnt = rBuyCnt addItemAddCnt = rItemAddCnt #使用物品增加的次数 addnoBuyCnt = noBuyCnt + lostOnDayNum * noBuyCntlimit - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverGainData % index, historyMaxLine) if dataMapID == ChConfig.Def_FBMapID_MunekadoTrial: @@ -130,41 +132,53 @@ #更新可找回次数 curCommonCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBCommonCnt % index, 0) - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBCommonCnt % index, - min(addCommonCnt + curCommonCnt, rCommonCntlimit * 2)) + addCommonCnt = min(addCommonCnt + curCommonCnt, rCommonCntlimit * RecoverMaxDay) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBCommonCnt % index, addCommonCnt) + + curRegainCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBRegainCnt % index, 0) + addRegainCnt = min(addRegainCnt + curRegainCnt, rRegainFbCntLimit * RecoverMaxDay) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBRegainCnt % index, addRegainCnt) + curExtraCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBExtraCnt % index, 0) - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBExtraCnt % index, - min(addExtraCnt + curExtraCnt, rExtraCntlimit * 2)) + addExtraCnt = min(addExtraCnt + curExtraCnt, rExtraCntlimit * RecoverMaxDay) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBExtraCnt % index, addExtraCnt) + curBuyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBBuyCnt % index, 0) - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBBuyCnt % index, - min(addBuyCnt + curBuyCnt, rBuyCntlimit * 2)) + addBuyCnt = min(addBuyCnt + curBuyCnt, rBuyCntlimit * RecoverMaxDay) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBBuyCnt % index, addBuyCnt) + curItemAddCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBItemAddCnt % index, 0) - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBItemAddCnt % index, - min(addItemAddCnt + curItemAddCnt, rItemAddCntlimit * 2)) + addItemAddCnt = min(addItemAddCnt + curItemAddCnt, rItemAddCntlimit * RecoverMaxDay) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBItemAddCnt % index, addItemAddCnt) + curnoBuyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBNoBuyCnt % index, 0) - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBNoBuyCnt % index, - min(addnoBuyCnt + curnoBuyCnt, noBuyCntlimit * 2)) - GameWorld.DebugLog('增加找回次数index=%s,addCommonCnt=%s,addExtraCnt=%s,addBuyCnt=%s,addItemAddCnt=%s,addnoBuyCnt=%s' - % (index, addCommonCnt, addExtraCnt, addBuyCnt, addItemAddCnt, addnoBuyCnt)) + addnoBuyCnt = min(addnoBuyCnt + curnoBuyCnt, noBuyCntlimit * RecoverMaxDay) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBNoBuyCnt % index, addnoBuyCnt) + + GameWorld.DebugLog('增加找回次数index=%s,addCommonCnt=%s,addRegainCnt=%s,addExtraCnt=%s,addBuyCnt=%s,addItemAddCnt=%s,addnoBuyCnt=%s' + % (index, addCommonCnt, addRegainCnt, addExtraCnt, addBuyCnt, addItemAddCnt, addnoBuyCnt)) recoverNumList.append(index) elif dailyQuestData.GetRelatedType() == 1:#每日活动 dailyID = dailyQuestData.GetRelatedID() + lostOnDay = lostOnDayNum curDayTimes, dayTimesLimit = PlayerActivity.GetDailyActionFinishCnt(curPlayer, dailyID) - if dailyID == ShareDefine.DailyActionID_Dice:#我要太极只分是否参加过,没参加过才能找回,次数算1次 + if dailyID in [ShareDefine.DailyActionID_Dice, ShareDefine.DailyActionID_IceLode]:#我要太极只分是否参加过,没参加过才能找回,次数算1次 dayTimesLimit = 1 if curDayTimes: curDayTimes = dayTimesLimit - - if curDayTimes >= dayTimesLimit and not lostOnDayNum: + elif dailyID is ShareDefine.DailyActionID_WorldBOSS: + canKillCnt, dayTimesLimit = BossHurtMng.GetCanKillBossCnt(curPlayer, 0) + curDayTimes = dayTimesLimit - canKillCnt + if curDayTimes >= dayTimesLimit and not lostOnDay: continue - addCommonCnt = (dayTimesLimit - curDayTimes) + lostOnDayNum * dayTimesLimit + addCommonCnt = (dayTimesLimit - curDayTimes) + lostOnDay * dayTimesLimit if addCommonCnt <=0: continue curCommonCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBCommonCnt % index, 0) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBCommonCnt % index, - min(addCommonCnt + curCommonCnt, dayTimesLimit * 2)) + min(addCommonCnt + curCommonCnt, dayTimesLimit * RecoverMaxDay)) recoverNumList.append(index) GameWorld.DebugLog('增加找回次数index=%s,addCommonCnt=%s' % (index, addCommonCnt)) @@ -350,23 +364,25 @@ def __GetCanRecoverCnt(curPlayer, index): #获取可找回普通次数,vip次数 curCommonCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBCommonCnt % index, 0) + curRegainCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBRegainCnt % index, 0) curExtraCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBExtraCnt % index, 0) curBuyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBBuyCnt % index, 0) curItemAddCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBItemAddCnt % index, 0) curnoBuyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBNoBuyCnt % index, 0) - return curCommonCnt + curExtraCnt + curBuyCnt + curItemAddCnt, curnoBuyCnt + return curCommonCnt + curRegainCnt + curExtraCnt + curBuyCnt + curItemAddCnt, curnoBuyCnt def __SetRecoverNum(curPlayer, recoverCntDict): #更新找回次数 - #每日刷新次数>Vip买回来没用的次数>卷轴加的没用的次数>Vip额外次数>Vip可购买但未买次数 - + #每日刷新次数>Vip买回来没用的次数>卷轴加的没用的次数>每日恢复次数>Vip额外次数>Vip可购买但未买次数 + for index, recoverCnt in recoverCntDict.items(): curCommonCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBCommonCnt % index, 0) + curRegainCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBRegainCnt % index, 0) curExtraCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBExtraCnt % index, 0) curBuyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBBuyCnt % index, 0) curItemAddCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBItemAddCnt % index, 0) curnoBuyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBNoBuyCnt % index, 0) - cntList = [curCommonCnt, curBuyCnt, curItemAddCnt, curExtraCnt, curnoBuyCnt] + cntList = [curCommonCnt, curBuyCnt, curItemAddCnt, curRegainCnt, curExtraCnt, curnoBuyCnt] newCntList = copy.deepcopy(cntList) sumCnt = 0 @@ -375,15 +391,39 @@ newCntList[i] = max(0, sumCnt - recoverCnt) if recoverCnt <= sumCnt: break - newCommonCnt,newBuyCnt,newItemAddCnt,newExtraCnt,newnoBuyCnt = newCntList - + newCommonCnt, newBuyCnt, newItemAddCnt, newRegainCnt, newExtraCnt, newnoBuyCnt = newCntList + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBCommonCnt % index, newCommonCnt) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBRegainCnt % index, newRegainCnt) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBBuyCnt % index, newBuyCnt) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBItemAddCnt % index, newItemAddCnt) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBExtraCnt % index, newExtraCnt) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBNoBuyCnt % index, newnoBuyCnt) - if max(newCommonCnt, newBuyCnt, newItemAddCnt, newExtraCnt, newnoBuyCnt) == 0 and index != Def_TJGRecoverID: - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HaveRecover % index, 1) + GameWorld.DebugLog("资源找回次数: index=%s,recoverCnt=%s" % (index, recoverCnt)) + GameWorld.DebugLog(" curCommonCnt=%s,curBuyCnt=%s,curItemAddCnt=%s,curRegainCnt=%s,curExtraCnt=%s,curnoBuyCnt=%s" + % (curCommonCnt, curBuyCnt, curItemAddCnt, curRegainCnt, curExtraCnt, curnoBuyCnt)) + GameWorld.DebugLog(" newCommonCnt=%s,newBuyCnt=%s,newItemAddCnt=%s,newRegainCnt=%s,newExtraCnt=%s,newnoBuyCnt=%s" + % (newCommonCnt, newBuyCnt, newItemAddCnt, newRegainCnt, newExtraCnt, newnoBuyCnt)) + if index != Def_TJGRecoverID: + #1:找回了普通 2:找回了vip 3:2个都有找回 + recoverData = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HaveRecover % index, 0) + updData = recoverData + if i < len(cntList) -1: + if recoverData == 2: + updData = 3 + elif recoverData == 0: + updData = 1 + else: + if max(curCommonCnt, curBuyCnt, curItemAddCnt, curRegainCnt, curExtraCnt) == 0: + if recoverData == 0: + updData = 2 + elif recoverData == 1: + updData = 3 + else: + updData = 3 + + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HaveRecover % index, updData) + return @@ -400,7 +440,7 @@ expRate = PlayerControl.GetLimitExpRate(curPlayer, ChConfig.ExpRateLimitType_Recover) extraData = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverGainData % index, 0) dataEx = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverGainDataEx % index, 0) - + realmLV = curPlayer.GetOfficialRank() tjgExp = 0 #脱机挂找回经验 exp = 0 sp = 0 @@ -478,6 +518,7 @@ numInfoPack.Index = index numInfoPack.RecoverCnt = commonCnt numInfoPack.ExtraCnt = vipExtraCnt + numInfoPack.HaveRecover = haveRecover numInfoPack.ExtraData = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverGainData % index, 0) numInfoPack.ExtraData2 = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverGainDataEx % index, 0) sendPack.NumInfo.append(numInfoPack) -- Gitblit v1.8.0