From 10691422c3a3c3a9f090a7fabedbea390b185ad8 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 29 六月 2023 16:54:03 +0800
Subject: [PATCH] 9790 9762 【BT9】【后端】藏宝阁修改(增加古宝分类;等级属性改为由分类及品质决定)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGubao.py |   10 ++++++----
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py      |    6 ++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Gubao.py  |    5 +++--
 PySysDB/PySysDBPY.h                                                                       |    2 ++
 4 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index 06281d9..0f4e877 100644
--- a/PySysDB/PySysDBPY.h
+++ b/PySysDB/PySysDBPY.h
@@ -443,6 +443,7 @@
 struct tagGubao
 {
 	WORD		_GubaoID;	//古宝ID
+	BYTE		GubaoType;	//古宝分类
 	BYTE		GubaoQuality;	//古宝品质
 	DWORD		UnlockItemID;	//解锁所需物品ID
 	BYTE		UnlockItemCnt;	//解锁所需物品数量
@@ -478,6 +479,7 @@
 
 struct tagGubaoLV
 {
+	BYTE		_GubaoType;	//古宝分类
 	BYTE		_GubaoQuality;	//古宝品质
 	BYTE		_GubaoLV;	//古宝等级
 	list		LVUPNeedItemInfo;	//升级所需物品 [[物品ID,个数], ...]
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Gubao.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Gubao.py
index 65b8eaa..5bf2b42 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Gubao.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Gubao.py
@@ -66,10 +66,11 @@
         if not starIpyData:
             GameWorld.DebugAnswer(curPlayer, "不存在该古宝星级!gubaoID=%s,star=%s" % (gubaoID, star))
             return
+        gubaoType = ipyData.GetGubaoType()
         quality = ipyData.GetGubaoQuality()
-        lvIpyData = IpyGameDataPY.GetIpyGameData("GubaoLV", quality, lv)
+        lvIpyData = IpyGameDataPY.GetIpyGameData("GubaoLV", gubaoType, quality, lv)
         if not lvIpyData:
-            GameWorld.DebugAnswer(curPlayer, "不存在该古宝品质等级!gubaoID=%s,quality=%s,lv=%s" % (gubaoID, quality, lv))
+            GameWorld.DebugAnswer(curPlayer, "不存在该古宝品质等级!gubaoID=%s,gubaoType=%s,quality=%s,lv=%s" % (gubaoID, gubaoType, quality, lv))
             return
         GameWorld.DebugAnswer(curPlayer, "设置古宝:%s,等级(%s),星(%s)" % (gubaoID, lv, star))
         PlayerGubao.SetGubaoLVInfo(curPlayer, gubaoID, lv, star)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index 1b2a0a5..4ca2ee5 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -365,6 +365,7 @@
 
                 "Gubao":(
                         ("WORD", "GubaoID", 1),
+                        ("BYTE", "GubaoType", 0),
                         ("BYTE", "GubaoQuality", 0),
                         ("DWORD", "UnlockItemID", 0),
                         ("BYTE", "UnlockItemCnt", 0),
@@ -391,6 +392,7 @@
                         ),
 
                 "GubaoLV":(
+                        ("BYTE", "GubaoType", 1),
                         ("BYTE", "GubaoQuality", 1),
                         ("BYTE", "GubaoLV", 1),
                         ("list", "LVUPNeedItemInfo", 0),
@@ -2795,12 +2797,14 @@
     
     def __init__(self):
         self.GubaoID = 0
+        self.GubaoType = 0
         self.GubaoQuality = 0
         self.UnlockItemID = 0
         self.UnlockItemCnt = 0
         return
         
     def GetGubaoID(self): return self.GubaoID # 古宝ID
+    def GetGubaoType(self): return self.GubaoType # 古宝分类
     def GetGubaoQuality(self): return self.GubaoQuality # 古宝品质
     def GetUnlockItemID(self): return self.UnlockItemID # 解锁所需物品ID
     def GetUnlockItemCnt(self): return self.UnlockItemCnt # 解锁所需物品数量
@@ -2851,6 +2855,7 @@
 class IPY_GubaoLV():
     
     def __init__(self):
+        self.GubaoType = 0
         self.GubaoQuality = 0
         self.GubaoLV = 0
         self.LVUPNeedItemInfo = []
@@ -2858,6 +2863,7 @@
         self.LVAttrValueList = []
         return
         
+    def GetGubaoType(self): return self.GubaoType # 古宝分类
     def GetGubaoQuality(self): return self.GubaoQuality # 古宝品质
     def GetGubaoLV(self): return self.GubaoLV # 古宝等级
     def GetLVUPNeedItemInfo(self): return self.LVUPNeedItemInfo # 升级所需物品 [[物品ID,个数], ...]
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGubao.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGubao.py
index ee9c386..8e84b90 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGubao.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGubao.py
@@ -161,13 +161,14 @@
     ipyData = IpyGameDataPY.GetIpyGameData("Gubao", gubaoID)
     if not ipyData:
         return
+    gubaoType = ipyData.GetGubaoType()
     quality = ipyData.GetGubaoQuality()
     
-    if not IpyGameDataPY.GetIpyGameDataNotLog("GubaoLV", quality, lv + 1):
+    if not IpyGameDataPY.GetIpyGameDataNotLog("GubaoLV", gubaoType, quality, lv + 1):
         GameWorld.DebugLog("古宝已满级! gubaoID=%s,quality=%s,lv=%s" % (gubaoID, quality, lv), playerID)
         return
     
-    lvIpyData = IpyGameDataPY.GetIpyGameData("GubaoLV", quality, lv)
+    lvIpyData = IpyGameDataPY.GetIpyGameData("GubaoLV", gubaoType, quality, lv)
     if not lvIpyData:
         return
     needItemList = lvIpyData.GetLVUPNeedItemInfo()
@@ -185,7 +186,7 @@
     
     updLV = lv + 1
     SetGubaoLVInfo(curPlayer, gubaoID, updLV, star)
-    GameWorld.Log("古宝升级: gubaoID=%s,quality=%s,updLV=%s" % (gubaoID, quality, updLV), playerID)
+    GameWorld.Log("古宝升级: gubaoID=%s,gubaoType=%s,quality=%s,updLV=%s" % (gubaoID, gubaoType, quality, updLV), playerID)
     RefreshGubaoAttr(curPlayer)
     Sync_GubaoInfo(curPlayer, [gubaoID])
     return
@@ -207,8 +208,9 @@
         if not star:
             continue
         
+        gubaoType = ipyData.GetGubaoType()
         quality = ipyData.GetGubaoQuality()
-        lvIpyData = IpyGameDataPY.GetIpyGameData("GubaoLV", quality, lv)
+        lvIpyData = IpyGameDataPY.GetIpyGameData("GubaoLV", gubaoType, quality, lv)
         if lvIpyData:
             lvAttrTypeList = lvIpyData.GetLVAttrTypeList()
             lvAttrValueList = lvIpyData.GetLVAttrValueList()

--
Gitblit v1.8.0