From ce6373a4c8a6b213478a42605a67d091aa23b19d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 06 十一月 2023 22:17:29 +0800
Subject: [PATCH] 9952 【BT0.1】【主干】仙盟修改(额外通知打坐信息)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py                                |   60 ++++++++++++++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py |   17 +++++
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py                                                     |   60 ++++++++++++++++++++
 3 files changed, 137 insertions(+), 0 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index 2aaabb1..76d9b74 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -26921,6 +26921,66 @@
 
 
 #------------------------------------------------------
+# A5 11 打坐信息 #tagMCFamilySitInfo
+
+class  tagMCFamilySitInfo(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("ExpRound", c_ushort),    # 已获得经验轮次
+                  ("Exp", c_int),    # 获得经验求余亿部分
+                  ("ExpPoint", c_int),    # 获得经验整除亿部分
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA5
+        self.SubCmd = 0x11
+        return
+
+    def ReadData(self, stringData, _pos=0, _len=0):
+        self.Clear()
+        memmove(addressof(self), stringData[_pos:], self.GetLength())
+        return _pos + self.GetLength()
+
+    def Clear(self):
+        self.Cmd = 0xA5
+        self.SubCmd = 0x11
+        self.ExpRound = 0
+        self.Exp = 0
+        self.ExpPoint = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagMCFamilySitInfo)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A5 11 打坐信息 //tagMCFamilySitInfo:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                ExpRound:%d,
+                                Exp:%d,
+                                ExpPoint:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.ExpRound,
+                                self.Exp,
+                                self.ExpPoint
+                                )
+        return DumpString
+
+
+m_NAtagMCFamilySitInfo=tagMCFamilySitInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilySitInfo.Cmd,m_NAtagMCFamilySitInfo.SubCmd))] = m_NAtagMCFamilySitInfo
+
+
+#------------------------------------------------------
 # A5 09 仙盟阵法信息 #tagMCFamilyZhenfaInfo
 
 class  tagMCFamilyZhenfa(Structure):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index 2aaabb1..76d9b74 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -26921,6 +26921,66 @@
 
 
 #------------------------------------------------------
+# A5 11 打坐信息 #tagMCFamilySitInfo
+
+class  tagMCFamilySitInfo(Structure):
+    _pack_ = 1
+    _fields_ = [
+                  ("Cmd", c_ubyte),
+                  ("SubCmd", c_ubyte),
+                  ("ExpRound", c_ushort),    # 已获得经验轮次
+                  ("Exp", c_int),    # 获得经验求余亿部分
+                  ("ExpPoint", c_int),    # 获得经验整除亿部分
+                  ]
+
+    def __init__(self):
+        self.Clear()
+        self.Cmd = 0xA5
+        self.SubCmd = 0x11
+        return
+
+    def ReadData(self, stringData, _pos=0, _len=0):
+        self.Clear()
+        memmove(addressof(self), stringData[_pos:], self.GetLength())
+        return _pos + self.GetLength()
+
+    def Clear(self):
+        self.Cmd = 0xA5
+        self.SubCmd = 0x11
+        self.ExpRound = 0
+        self.Exp = 0
+        self.ExpPoint = 0
+        return
+
+    def GetLength(self):
+        return sizeof(tagMCFamilySitInfo)
+
+    def GetBuffer(self):
+        return string_at(addressof(self), self.GetLength())
+
+    def OutputString(self):
+        DumpString = '''// A5 11 打坐信息 //tagMCFamilySitInfo:
+                                Cmd:%s,
+                                SubCmd:%s,
+                                ExpRound:%d,
+                                Exp:%d,
+                                ExpPoint:%d
+                                '''\
+                                %(
+                                self.Cmd,
+                                self.SubCmd,
+                                self.ExpRound,
+                                self.Exp,
+                                self.ExpPoint
+                                )
+        return DumpString
+
+
+m_NAtagMCFamilySitInfo=tagMCFamilySitInfo()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilySitInfo.Cmd,m_NAtagMCFamilySitInfo.SubCmd))] = m_NAtagMCFamilySitInfo
+
+
+#------------------------------------------------------
 # A5 09 仙盟阵法信息 #tagMCFamilyZhenfaInfo
 
 class  tagMCFamilyZhenfa(Structure):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py
index 7ce205d..b1afa64 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py
@@ -34,6 +34,8 @@
 import ItemControler
 import PlayerActivity
 import PlayerTongTianLing
+import ChPyNetSendPack
+import NetPackCommon
 
 #---战盟副本---
 FBPlayerDict_TagPlayerID = 'XMYH_TagPlayerID%s'  # 邀请传功目标玩家ID
@@ -52,6 +54,10 @@
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilySitExpRound, 0)
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilySitTotalExp, 0)
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilySitTotalExpPoint, 0)
+    return
+    
+def OnFBPlayerOnLogin(curPlayer):
+    SyncFamilySitInfo(curPlayer)
     return
 
 ##开启副本
@@ -443,6 +449,7 @@
 # @return 无意义
 def DoExitFB(curPlayer, tick):
     global g_familyMapPlayerIDDict
+    SyncFamilySitInfo(curPlayer)
     lineID = GameWorld.GetGameWorld().GetLineID()
     playerID = curPlayer.GetID()
     if playerID in g_familyMapPlayerIDDict.get(lineID, []):
@@ -476,3 +483,13 @@
         PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_FamilyActivity, addFamilyActivity)
         GameWorld.DebugLog("增加本仙盟成员答题活跃令, playerID=%s,addFamilyActivity=%s" % (curPlayer.GetPlayerID(), addFamilyActivity))
     return
+
+def SyncFamilySitInfo(curPlayer):
+    clientPack = ChPyNetSendPack.tagMCFamilySitInfo()
+    clientPack.Clear()
+    clientPack.ExpRound = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilySitExpRound)
+    clientPack.Exp = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilySitTotalExp)
+    clientPack.ExpPoint = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilySitTotalExpPoint)
+    NetPackCommon.SendFakePack(curPlayer, clientPack)
+    return
+

--
Gitblit v1.8.0