From c7be7cd97a32658b8629f8c67fbd4973b642de46 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 04 九月 2024 18:20:54 +0800
Subject: [PATCH] 10241 【越南】【砍树】 古宝养成(增加商店支持;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py       |    7 +++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py         |    6 ++++--
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActGubao.py |    6 ++++++
 PySysDB/PySysDBPY.h                                                                          |    1 +
 ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py                            |    7 +++++++
 5 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index 670b4a3..2cfb37e 100644
--- a/PySysDB/PySysDBPY.h
+++ b/PySysDB/PySysDBPY.h
@@ -1940,6 +1940,7 @@
 	char		JoinStartTime;	//参与开始时间点
 	char		JoinEndTime;	//参与结束时间点
 	WORD		LVLimit;	//限制等级
+	WORD		ActShopType;	//开放商店类型,为0时不开放
 	WORD		PersonalTemplateID;	//个人排行模板编号
 	BYTE		IsRelationCrossAct;	//是否关联跨服活动
 };
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index 716b89d..e05f40d 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -36236,6 +36236,7 @@
     JoinStartTime = ""    #(char JoinStartTime[5])// 参与开始时间点 mm:ss
     JoinEndTime = ""    #(char JoinEndTime[5])// 参与结束时间点 mm:ss
     LimitLV = 0    #(WORD LimitLV)// 限制等级
+    ShopType = 0    #(WORD ShopType)// 开放商店类型,可能为0不开放
     PersonalBillCount = 0    #(BYTE PersonalBillCount)
     PersonalBillboardInfoList = list()    #(vector<tagMCActGubaoBillard> PersonalBillboardInfoList)// 个人榜单奖励信息列表,如果没有代表本次活动没有该榜奖励
     data = None
@@ -36255,6 +36256,7 @@
         self.JoinStartTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
         self.JoinEndTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
         self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.ShopType,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.PersonalBillCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         for i in range(self.PersonalBillCount):
             temPersonalBillboardInfoList = tagMCActGubaoBillard()
@@ -36273,6 +36275,7 @@
         self.JoinStartTime = ""
         self.JoinEndTime = ""
         self.LimitLV = 0
+        self.ShopType = 0
         self.PersonalBillCount = 0
         self.PersonalBillboardInfoList = list()
         return
@@ -36285,6 +36288,7 @@
         length += 10
         length += 5
         length += 5
+        length += 2
         length += 2
         length += 1
         for i in range(self.PersonalBillCount):
@@ -36301,6 +36305,7 @@
         data = CommFunc.WriteString(data, 5, self.JoinStartTime)
         data = CommFunc.WriteString(data, 5, self.JoinEndTime)
         data = CommFunc.WriteWORD(data, self.LimitLV)
+        data = CommFunc.WriteWORD(data, self.ShopType)
         data = CommFunc.WriteBYTE(data, self.PersonalBillCount)
         for i in range(self.PersonalBillCount):
             data = CommFunc.WriteString(data, self.PersonalBillboardInfoList[i].GetLength(), self.PersonalBillboardInfoList[i].GetBuffer())
@@ -36315,6 +36320,7 @@
                                 JoinStartTime:%s,
                                 JoinEndTime:%s,
                                 LimitLV:%d,
+                                ShopType:%d,
                                 PersonalBillCount:%d,
                                 PersonalBillboardInfoList:%s
                                 '''\
@@ -36326,6 +36332,7 @@
                                 self.JoinStartTime,
                                 self.JoinEndTime,
                                 self.LimitLV,
+                                self.ShopType,
                                 self.PersonalBillCount,
                                 "..."
                                 )
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index 716b89d..e05f40d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -36236,6 +36236,7 @@
     JoinStartTime = ""    #(char JoinStartTime[5])// 参与开始时间点 mm:ss
     JoinEndTime = ""    #(char JoinEndTime[5])// 参与结束时间点 mm:ss
     LimitLV = 0    #(WORD LimitLV)// 限制等级
+    ShopType = 0    #(WORD ShopType)// 开放商店类型,可能为0不开放
     PersonalBillCount = 0    #(BYTE PersonalBillCount)
     PersonalBillboardInfoList = list()    #(vector<tagMCActGubaoBillard> PersonalBillboardInfoList)// 个人榜单奖励信息列表,如果没有代表本次活动没有该榜奖励
     data = None
@@ -36255,6 +36256,7 @@
         self.JoinStartTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
         self.JoinEndTime,_pos = CommFunc.ReadString(_lpData, _pos,5)
         self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
+        self.ShopType,_pos = CommFunc.ReadWORD(_lpData, _pos)
         self.PersonalBillCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
         for i in range(self.PersonalBillCount):
             temPersonalBillboardInfoList = tagMCActGubaoBillard()
@@ -36273,6 +36275,7 @@
         self.JoinStartTime = ""
         self.JoinEndTime = ""
         self.LimitLV = 0
+        self.ShopType = 0
         self.PersonalBillCount = 0
         self.PersonalBillboardInfoList = list()
         return
@@ -36285,6 +36288,7 @@
         length += 10
         length += 5
         length += 5
+        length += 2
         length += 2
         length += 1
         for i in range(self.PersonalBillCount):
@@ -36301,6 +36305,7 @@
         data = CommFunc.WriteString(data, 5, self.JoinStartTime)
         data = CommFunc.WriteString(data, 5, self.JoinEndTime)
         data = CommFunc.WriteWORD(data, self.LimitLV)
+        data = CommFunc.WriteWORD(data, self.ShopType)
         data = CommFunc.WriteBYTE(data, self.PersonalBillCount)
         for i in range(self.PersonalBillCount):
             data = CommFunc.WriteString(data, self.PersonalBillboardInfoList[i].GetLength(), self.PersonalBillboardInfoList[i].GetBuffer())
@@ -36315,6 +36320,7 @@
                                 JoinStartTime:%s,
                                 JoinEndTime:%s,
                                 LimitLV:%d,
+                                ShopType:%d,
                                 PersonalBillCount:%d,
                                 PersonalBillboardInfoList:%s
                                 '''\
@@ -36326,6 +36332,7 @@
                                 self.JoinStartTime,
                                 self.JoinEndTime,
                                 self.LimitLV,
+                                self.ShopType,
                                 self.PersonalBillCount,
                                 "..."
                                 )
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index ca7d617..39292d2 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -1536,6 +1536,7 @@
                         ("char", "JoinStartTime", 0),
                         ("char", "JoinEndTime", 0),
                         ("WORD", "LVLimit", 0),
+                        ("WORD", "ActShopType", 0),
                         ("WORD", "PersonalTemplateID", 0),
                         ("BYTE", "IsRelationCrossAct", 0),
                         ),
@@ -4662,8 +4663,9 @@
     def GetJoinStartTime(self): return self.attrTuple[3] # 参与开始时间点 char
     def GetJoinEndTime(self): return self.attrTuple[4] # 参与结束时间点 char
     def GetLVLimit(self): return self.attrTuple[5] # 限制等级 WORD
-    def GetPersonalTemplateID(self): return self.attrTuple[6] # 个人排行模板编号 WORD
-    def GetIsRelationCrossAct(self): return self.attrTuple[7] # 是否关联跨服活动 BYTE
+    def GetActShopType(self): return self.attrTuple[6] # 开放商店类型,为0时不开放 WORD
+    def GetPersonalTemplateID(self): return self.attrTuple[7] # 个人排行模板编号 WORD
+    def GetIsRelationCrossAct(self): return self.attrTuple[8] # 是否关联跨服活动 BYTE
 
 # 古宝养成榜单模版表
 class IPY_ActGubaoBillTemp():
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActGubao.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActGubao.py
index bfab5a0..ee1d8f2 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActGubao.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActGubao.py
@@ -20,6 +20,7 @@
 import PlayerControl
 import IpyGameDataPY
 import CrossRealmPlayer
+import FunctionNPCCommon
 import PlayerBillboard
 import ChPyNetSendPack
 import PlayerZhanling
@@ -93,6 +94,10 @@
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ActGubaoScore % actNum, 0)
     
     if state:
+        cfgID = actInfo.get(ShareDefine.ActKey_CfgID)
+        ipyData = IpyGameDataPY.GetIpyGameData("ActGubao", cfgID)
+        if ipyData and ipyData.GetActShopType():
+            FunctionNPCCommon.ResetShopItemBuyCountByShopType(curPlayer, [ipyData.GetActShopType()])
         Sync_GubaoActionInfo(curPlayer, actNum)
         Sync_GubaoPlayerInfo(curPlayer, actNum)
     return True
@@ -240,6 +245,7 @@
     clientPack.JoinStartTime = ipyData.GetJoinStartTime()
     clientPack.JoinEndTime = ipyData.GetJoinEndTime()
     clientPack.LimitLV = ipyData.GetLVLimit()
+    clientPack.ShopType = ipyData.GetActShopType()
     
     clientPack.PersonalBillboardInfoList = __GetTempRankBillPackList(personalTempIpyDataList)
     clientPack.PersonalBillCount = len(clientPack.PersonalBillboardInfoList)

--
Gitblit v1.8.0