| | |
| | |
|
| | | return
|
| | |
|
| | | def UpdatePlayerFPTotalBillboard(curPlayer, isForceUpdate=False, isCheckRule=True):
|
| | | ##更新玩家总战斗力
|
| | | # |
| | | # playerFightPower = PlayerControl.GetFightPower(curPlayer)
|
| | | # if not __CheckFightPowerCanUpdate(curPlayer, ChConfig.Def_PDict_FightPower_Total, playerFightPower,
|
| | | # isForceUpdate, isCheckRule, ChConfig.Def_PDict_FightPower_TotalEx):
|
| | | # return
|
| | | # |
| | | # fightPower = playerFightPower % ChConfig.Def_PerPointValue
|
| | | # fightPowerEx = playerFightPower / ChConfig.Def_PerPointValue
|
| | | # PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FightPower_Total, fightPower,
|
| | | # ChConfig.Def_PDictType_FightPower)
|
| | | # PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FightPower_TotalEx, fightPowerEx,
|
| | | # ChConfig.Def_PDictType_FightPower)
|
| | | # |
| | | # GameWorld.DebugLog("更新总战斗力:playerFightPower=%s" % (playerFightPower), curPlayer.GetPlayerID())
|
| | | # |
| | | # UpdatePlayerBillboard(curPlayer, ShareDefine.Def_BT_FightPower, fightPowerEx, fightPower)
|
| | | def UpdatePlayerBillboardName(curPlayer):
|
| | | ## 更新排行榜中的玩家名字记录
|
| | |
|
| | | # if bType == ShareDefine.Def_BT_FightPower:
|
| | | # playerID = bID
|
| | | # fightPowerTotal = cmpValue * ChConfig.Def_PerPointValue + cmpValue2
|
| | | # familyID = exInfo[0]
|
| | | # playerJob = bType2
|
| | | # |
| | | # curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID)
|
| | | # if curPlayer:
|
| | | # PlayerControl.SetFightPower(curPlayer, fightPowerTotal)
|
| | | # |
| | | # #更新战盟成员战力
|
| | | # PlayerFamily.UpdFamilyMemberFightPower(familyID, playerID, fightPowerTotal)
|
| | | # |
| | | # #职业战力榜
|
| | | # job = playerJob % 10
|
| | | # if job in ShareDefine.JobFightPowerBillboardDict:
|
| | | # jobBType = ShareDefine.JobFightPowerBillboardDict[job]
|
| | | # UpdatePlayerBillboard(bID, bName, bName2, jobBType, bType2, value1, value2, cmpValue, autoSort, cmpValue2, **kwargs)
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | updName = curPlayer.GetPlayerName()
|
| | | billboardMgr = DBDataMgr.GetBillboardMgr()
|
| | | for billboardType in ShareDefine.BillboardTypeList:
|
| | | if billboardType in ShareDefine.FamilyBillboardList:
|
| | | continue
|
| | | groupList = billboardMgr.GetBillboardGroupList(billboardType)
|
| | | for billboardType, groupValue1, groupValue2 in groupList:
|
| | | billboardObj = billboardMgr.GetBillboard(billboardType, groupValue1, groupValue2)
|
| | | billData = billboardObj.FindByID(playerID)
|
| | | if not billData:
|
| | | continue
|
| | | billData.SetName1(updName)
|
| | | |
| | | # 跨服榜更新, 待处理
|
| | | return
|
| | |
|
| | | #def __CheckFightPowerCanUpdate(curPlayer, key, fightPower, isForceUpdate=False, isCheckRule=True, key2=None):
|
| | | # ''' 检查玩家可否更新战斗力
|
| | | # @param curPlayer 玩家实例
|
| | | # @param key 战斗力类型对应key
|
| | | # @param fightPower 当前战斗力
|
| | | # @param isForceUpdate 是否强制更新(若设置强制更新,在某些潜规则下也不一定能强制更新,如GM等)
|
| | | # @param isCheckRule 是否检查战力范围更新差值
|
| | | # @return True-可更新 |
| | | # '''
|
| | | # if fightPower <= 0:
|
| | | # return False
|
| | | # |
| | | # historyFightPower = curPlayer.NomalDictGetProperty(key, 0, ChConfig.Def_PDictType_FightPower)
|
| | | # if key2 != None:
|
| | | # historyFightPower += curPlayer.NomalDictGetProperty(key2, 0, ChConfig.Def_PDictType_FightPower) * ChConfig.Def_PerPointValue
|
| | | # |
| | | # if not __CanPlayerBillboardComm(curPlayer):
|
| | | # return False
|
| | | # |
| | | # if isForceUpdate:
|
| | | # GameWorld.DebugLog("战斗力更新检查:强制更新 key=%s,fightPower=%s,history=%s" |
| | | # % (key, fightPower, historyFightPower), curPlayer.GetPlayerID())
|
| | | # return True
|
| | | # |
| | | # if fightPower == historyFightPower:
|
| | | # GameWorld.DebugLog("战斗力更新检查:与上次相同,默认不更新 key=%s,fightPower=%s,history=%s" |
| | | # % (key, fightPower, historyFightPower), curPlayer.GetPlayerID())
|
| | | # return False
|
| | | # |
| | | # return True
|
| | |
|
| | | def UpdateHorseBillboard(curPlayer, isForceUpdate=False, isUpdateTotal=True):
|
| | | ##更新玩家坐骑排行榜
|
| | | def UpdatePlayerFPTotalBillboard(curPlayer, isForceUpdate=False, isCheckRule=True):
|
| | | ##更新玩家总战斗力
|
| | | return
|
| | |
|
| | | def UpdatePyPetBillboard(curPlayer, isForceUpdate=False, isUpdateTotal=True):
|
| | |
| | | kwargs["value3"] = curPlayer.GetFace()
|
| | | kwargs["value4"] = curPlayer.GetFacePic()
|
| | | kwargs["value5"] = curPlayer.GetModelMark()
|
| | | kwargs["value6"] = curPlayer.GetEquipShowSwitch()
|
| | |
|
| | | groupValue1 = 0
|
| | | UpdateBillboard(bType, groupValue1, playerID, playerName, playerOpInfo, playerJob, value1, value2,
|
| | |
| | | cmpValueChange = isNewData or billboardData.GetCmpValue() != cmpValue or billboardData.GetCmpValue2() != cmpValue2 \
|
| | | or (cmpValue3 and billboardData.GetCmpValue3() != cmpValue3)
|
| | |
|
| | | # 没设置值默认为时间time,先上榜的排前面
|
| | | if cmpValue3 == 0:
|
| | | # 时间权值仅在比较值变更的情况下才更新, 防止其他附属值更新时导致比较值相同的玩家名次间会变动的问题
|
| | | if cmpValueChange:
|
| | | calcTime = GameWorld.ChangeTimeStrToNum("2090-01-01 00:00:00")
|
| | | cmpValue3 = max(0, calcTime - int(time.time())) # 比较值3如果没指定值则默认存当前更新的time
|
| | | else:
|
| | | cmpValue3 = billboardData.GetCmpValue3()
|
| | | |
| | | billboardData.SetCmpValue(cmpValue)
|
| | | billboardData.SetCmpValue2(cmpValue2)
|
| | | billboardData.SetCmpValue3(cmpValue3)
|
| | | |
| | | if cmpValueChange or not billboardData.GetTime():
|
| | | billboardData.SetTime(int(time.time()))
|
| | | |
| | | GameWorld.DebugLog("更新排行榜值: billboardType=%s,groupValue1=%s,groupValue2=%s,dataID=%s,cmpValueChange=%s,cmpValue=%s,cmpValue2=%s,cmpValue3=%s"
|
| | | % (billboardType, groupValue1, groupValue2, dataID, cmpValueChange,
|
| | | cmpValue, cmpValue2, cmpValue3), dataID)
|
| | |
| | | cmpValueChange = isNewData or billboardData.GetCmpValue() != cmpValue or billboardData.GetCmpValue2() != cmpValue2 \
|
| | | or (cmpValue3 and billboardData.GetCmpValue3() != cmpValue3)
|
| | |
|
| | | # 没设置值默认为时间time,先上榜的排前面
|
| | | if cmpValue3 == 0:
|
| | | # 时间权值仅在比较值变更的情况下才更新, 防止其他附属值更新时导致比较值相同的玩家名次间会变动的问题
|
| | | if cmpValueChange:
|
| | | calcTime = GameWorld.ChangeTimeStrToNum("2090-01-01 00:00:00")
|
| | | cmpValue3 = max(0, calcTime - int(time.time())) # 比较值3如果没指定值则默认存当前更新的time
|
| | | else:
|
| | | cmpValue3 = billboardData.GetCmpValue3()
|
| | | |
| | | # 更新所有值
|
| | | billboardData.SetType(billboardType)
|
| | | billboardData.SetGroupValue1(groupValue1)
|
| | |
| | | billboardData.SetCmpValue(cmpValue)
|
| | | billboardData.SetCmpValue2(cmpValue2)
|
| | | billboardData.SetCmpValue3(cmpValue3)
|
| | | |
| | | if cmpValueChange or not billboardData.GetTime():
|
| | | billboardData.SetTime(int(time.time()))
|
| | | |
| | | GameWorld.DebugLog("更新排行榜值: billboardType=%s,groupValue1=%s,groupValue2=%s,dataID=%s,isNewData=%s,cmpValueChange=%s,type2=%s,value1=%s,value2=%s,cmpValue=%s,cmpValue2=%s,cmpValue3=%s,%s"
|
| | | % (billboardType, groupValue1, groupValue2, dataID, isNewData, cmpValueChange,
|
| | | type2, value1, value2, cmpValue, cmpValue2, cmpValue3, kwargs), dataID)
|