| | |
| | | class XMZZManager(object):
|
| | |
|
| | | def __init__(self):
|
| | | self.XMZZPlayerDict = {} # {playerid:data, ...} PyGameDataStruct.tagDBPySealDemonRecord
|
| | | self.XMZZPlayerDict = {} # {playerid:data, ...} PyGameDataStruct.tagDBPyXMZZ
|
| | | self.XMZZFactionDict = {Faction_1:[0, 0], Faction_2:[0, 0]} # {faction:[积分, 人数]}
|
| | | self.XMZZTopScore = 0 #积分王积分
|
| | | self.XMZZTopPlayerName = '' #积分王名
|
| | |
| | | faction_2_Score = self.XMZZFactionDict.get(Faction_2, [0, 0])[0]
|
| | | if faction_1_Score + faction_2_Score >= XMZZDogFallLimit:
|
| | | SavePKRecord('XMZZ_Draw', [], True)
|
| | | |
| | | PlayerCompensation.SendMailByKey('XMZZDogfall', Faction_2_IDList + Faction_1_IDList, [], goldPaper=dogfallAward)
|
| | | if dogfallAward:
|
| | | PlayerCompensation.SendMailByKey('XMZZDogfall', Faction_2_IDList + Faction_1_IDList, [], goldPaper=dogfallAward)
|
| | |
|
| | | PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_XMZZIsOver, 1)
|
| | | self.NotifyXMZZInfo()
|
| | |
| | | cnt += 1
|
| | | savaData += XMZZData.getBuffer()
|
| | |
|
| | | GameWorld.Log("SaveXMZZ cnt :%s" % cnt)
|
| | | GameWorld.Log("SaveXMZZ cnt :%s len=%s" % (cnt, len(savaData)))
|
| | | return CommFunc.WriteDWORD(cntData, cnt) + savaData
|
| | |
|
| | | # 从数据库载入数据
|
| | |
| | | if isByLVPower:
|
| | | worldLv = PlayerDBGSEvent.GetDBGSTrig_ByKey(ShareDefine.Def_Notify_WorldKey_WorldAverageLv)
|
| | | ipyData = IpyGameDataPY.GetIpyGameData('PlayerLV', worldLv)
|
| | | myPower = ipyData.GetReFightPower() if ipyData else curPlayer.GetFightPower() |
| | | myPower = ipyData.GetReFightPower() if ipyData else PlayerControl.GetFightPower(curPlayer) |
| | | else:
|
| | | myPower = curPlayer.GetFightPower()
|
| | | myPower = PlayerControl.GetFightPower(curPlayer)
|
| | | XMZZPKPowerRange = IpyGameDataPY.GetFuncEvalCfg('XMZZPKPowerRange')
|
| | | minPower1, maxPower1 = myPower * (100 - XMZZPKPowerRange[0][0]) / 100, myPower * (100 + XMZZPKPowerRange[0][1]) / 100
|
| | | minPower2, maxPower2 = myPower * (100 - XMZZPKPowerRange[1][0]) / 100, myPower * (100 + XMZZPKPowerRange[1][1]) / 100
|
| | |
| | |
|
| | | #通知地图
|
| | | if not pkPlayerPropData:
|
| | | GameWorld.ErrLog("仙魔之争没有匹配到对手信息!fightPower=%s" % curPlayer.GetFightPower(), myPlayerID)
|
| | | GameWorld.ErrLog("仙魔之争没有匹配到对手信息!fightPower=%s" % PlayerControl.GetFightPower(curPlayer), myPlayerID)
|
| | | vsPlayerInfo = [pkPlayerID, pkPlayerPropData]
|
| | | XMZZManager.MapServer_XMZZPKInfo(curPlayer, overInfo, vsPlayerInfo)
|
| | | return True
|