From c00c67e8ac1d0dda7f0a28b39471819f426a4368 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 15 四月 2025 11:00:44 +0800 Subject: [PATCH] 10367 【越南】【英语】【BT】【砍树】仙盟攻城战-服务端(防范最大生命值为0时除0报错;) --- ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerXMZZ.py | 19 ++++++++++--------- 1 files changed, 10 insertions(+), 9 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerXMZZ.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerXMZZ.py index 6dde1af..58a23dc 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerXMZZ.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerXMZZ.py @@ -225,7 +225,7 @@ 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 = '' #积分王名 @@ -493,8 +493,8 @@ 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() @@ -574,7 +574,7 @@ 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 # 从数据库载入数据 @@ -638,9 +638,9 @@ 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 @@ -648,8 +648,9 @@ underList2, aboveList2 = [], [] #大范围 pyViewCacheMgr = PyDataManager.GetPlayerViewCachePyManager() - playerViewCachePyDict = pyViewCacheMgr.playerViewCachePyDict - for playerID, curCache in playerViewCachePyDict.items(): + for index in range(pyViewCacheMgr.GetCount()): + curCache = pyViewCacheMgr.At(index) + playerID = curCache.PlayerID if myPlayerID == playerID: #不和自己pk continue @@ -719,7 +720,7 @@ #通知地图 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 -- Gitblit v1.8.0