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