From 23876f36a929f7e8f1fe94ae543b03bc24a61f1e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 25 二月 2025 20:24:08 +0800
Subject: [PATCH] 10263 【越南】【英文】【BT】【GM】【砍树】后端支持NPC仿真实玩家战斗和快速战斗(镜像回收时同步清除地图中缓存的镜像被动buff效果;)

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyRedPacket.py |   23 ++++++++++++++++++++++-
 1 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyRedPacket.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyRedPacket.py
index d2dca9f..1c95448 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyRedPacket.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyRedPacket.py
@@ -24,6 +24,7 @@
 import ChPyNetSendPack
 import PlayerCompensation
 import PlayerDBGSEvent
+import PlayerViewCache
 import PlayerControl
 import PlayerFamily
 import PyGameData
@@ -78,6 +79,7 @@
     #value4    moneyType
     #value5    getMoney
     #strValue1 名字
+    #strValue2 face|facePic
     
     recData.SetValue1(grabObj.redPacketID)
     recData.SetValue2(grabObj.playerID)
@@ -85,6 +87,7 @@
     recData.SetValue4(grabObj.moneyType)
     recData.SetValue5(grabObj.getMoney)
     recData.SetStrValue1(grabObj.playerName)
+    recData.SetStrValue2('%s|%s' % (grabObj.face, grabObj.facePic))
     return
 
 class RedPacketGrab():
@@ -97,6 +100,8 @@
         self.playerName = ""
         self.moneyType = 0
         self.getMoney = 0
+        self.face = 0
+        self.facePic = 0
         return
 
 class RedPacketData():
@@ -356,11 +361,15 @@
         if not redPacketObj:
             continue
         
+        strValue2List = recData.GetStrValue2().split('|')
+        
         grabObj = RedPacketGrab(redPacketID, playerID)
         grabObj.playerJob = recData.GetValue3()
         grabObj.playerName = recData.GetStrValue1()
         grabObj.moneyType = recData.GetValue4()
         grabObj.getMoney = recData.GetValue5()
+        grabObj.face = GameWorld.ToIntDef(strValue2List[0]) if len(strValue2List) > 0 else 0
+        grabObj.facePic = GameWorld.ToIntDef(strValue2List[1]) if len(strValue2List) > 1 else 0
         
         redPacketObj.grabDict[playerID] = grabObj
         
@@ -953,6 +962,9 @@
 
 def CreateSystemRedPacket(redPackID):
     ## 发放系统红包
+    if IpyGameDataPY.GetFuncCfg("RedPacketClassify", 2):
+        GameWorld.DebugLog("未开放红包发放! redPackID=%s" % redPackID)
+        return
     ipyData = IpyGameDataPY.GetIpyGameData('FamilyRedPack', redPackID)
     if not ipyData:
         return
@@ -1009,6 +1021,9 @@
 def CreatNewFamilyRedPacket(family, playerID, redPackID):
     '''外部接口,生成仙盟新红包'''
     if not family or not playerID or not redPackID:
+        return
+    if IpyGameDataPY.GetFuncCfg("RedPacketClassify", 2):
+        GameWorld.DebugLog("未开放红包发放! redPackID=%s,familyID=%s" % (redPackID, family.GetID()), playerID)
         return
     ipyData = IpyGameDataPY.GetIpyGameData('FamilyRedPack', redPackID)
     if not ipyData:
@@ -1203,6 +1218,8 @@
     grabObj = RedPacketGrab(redPacketID, playerID)
     grabObj.playerJob = curPlayer.GetJob()
     grabObj.playerName = curPlayer.GetName()
+    grabObj.face = curPlayer.GetFace()
+    grabObj.facePic = curPlayer.GetFacePic()
     grabObj.moneyType = moneyType
     grabObj.getMoney = getMoney
     grabRecordDict[playerID] = grabObj
@@ -1238,6 +1255,8 @@
         grabInfo.Name = grabObj.playerName
         grabInfo.NameLen = len(grabInfo.Name)
         grabInfo.PlayeJob = grabObj.playerJob
+        grabInfo.Face = grabObj.face
+        grabInfo.FacePic = grabObj.facePic
         grabInfo.MoneyNum = grabObj.getMoney
         sendPack.GrabInfo.append(grabInfo)
     sendPack.Count = len(sendPack.GrabInfo)
@@ -1295,7 +1314,7 @@
         if isAll and state in [State_HasGot, State_HasAllGot]:
             #GameWorld.DebugLog("    已抢或抢完的不发: redPacketID=%s,state=%s" % (redPacketID, state))
             continue
-        
+        tagCacheDict = PlayerViewCache.GetCachePropDataDict(PlayerViewCache.FindViewCache(redPacketObj.playerID))
         packetInfo = ChPyNetSendPack.tagFRedPacketInfo()
         packetInfo.Clear()
         packetInfo.RedPacketID = redPacketObj.redPacketID
@@ -1304,6 +1323,8 @@
         packetInfo.NameLen = len(packetInfo.Name)
         packetInfo.Time = redPacketObj.createTime
         packetInfo.PlayeJob = redPacketObj.playerJob
+        packetInfo.Face = tagCacheDict.get("Face", 0)
+        packetInfo.FacePic = tagCacheDict.get("FacePic", 0)
         packetInfo.MoneyType = redPacketObj.moneyType
         packetInfo.MoneyNum = redPacketObj.moneyValue
         packetInfo.GetWay = redPacketObj.getWay

--
Gitblit v1.8.0