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