From 47813c8aef184ab6bc6f4556d2a18303a2a31d47 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 14 十月 2025 12:33:30 +0800
Subject: [PATCH] 15 卡牌服务端搭建 - 跨服支持PY自定义封包通信
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py | 248 ++++++++++++-------------------------------------
1 files changed, 63 insertions(+), 185 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index 2483e81..2eb4c1f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -772,10 +772,18 @@
"Gubao":(
("WORD", "GubaoID", 1),
- ("BYTE", "GubaoType", 0),
("BYTE", "GubaoQuality", 0),
("DWORD", "UnlockItemID", 0),
("BYTE", "UnlockItemCnt", 0),
+ ("list", "BaseAttrIDList", 0),
+ ("list", "BaseAttrValueList", 0),
+ ("list", "BaseAttrPerStarAddList", 0),
+ ("BYTE", "SpecEffType", 0),
+ ("BYTE", "SpecEffLayerMax", 0),
+ ("BYTE", "SpecAttrID", 0),
+ ("DWORD", "SpecAttrValue", 0),
+ ("DWORD", "SpecAttrPerLVAdd", 0),
+ ("DWORD", "SpecAttrPerStarAdd", 0),
),
"GubaoResonanceAttr":(
@@ -791,35 +799,16 @@
),
"GubaoStar":(
- ("WORD", "GubaoID", 1),
- ("BYTE", "GubaoStar", 1),
- ("list", "StarUPNeedItemInfo", 0),
- ("list", "StarUPNeedQualityPiece", 0),
- ("list", "StarAttrIDList", 0),
- ("list", "StarAttrValueList", 0),
- ("list", "StarEffIDList", 0),
- ),
-
- "GubaoEffAttr":(
- ("DWORD", "GubaoEffID", 1),
- ("BYTE", "GubaoEffType", 0),
- ("DWORD", "EffCond", 0),
- ("DWORD", "EffCond2", 0),
- ("DWORD", "EffCond3", 0),
- ("BYTE", "IsPer", 0),
- ("list", "EffFuncAttrIDList", 0),
- ("DWORD", "EffAttrID", 0),
- ("DWORD", "EffAttrValue", 0),
- ("list", "EffItemAwardList", 0),
+ ("BYTE", "GubaoQuality", 1),
+ ("BYTE", "GubaoStar", 0),
+ ("BYTE", "StarUPNeedSelfCnt", 0),
+ ("list", "StarUPNeedItemList", 0),
),
"GubaoLV":(
- ("BYTE", "GubaoType", 1),
("BYTE", "GubaoQuality", 1),
- ("BYTE", "GubaoLV", 1),
+ ("BYTE", "LessEqualLV", 0),
("list", "LVUPNeedItemInfo", 0),
- ("list", "LVAttrTypeList", 0),
- ("list", "LVAttrValueList", 0),
),
"Shentong":(
@@ -934,14 +923,6 @@
("dict", "ExpMaterial", 0),
),
- "FamilyTech":(
- ("DWORD", "TechID", 1),
- ("BYTE", "AttrType", 0),
- ("DWORD", "AttrValue", 0),
- ("DWORD", "Contribution", 0),
- ("DWORD", "PowerEx", 0),
- ),
-
"NPCDropItem":(
("DWORD", "NPCID", 1),
("WORD", "MaxWorldLV", 0),
@@ -1028,16 +1009,6 @@
("BYTE", "ADCntMax", 0),
("list", "ADAwardItemList", 0),
("DWORD", "ADMapID", 0),
- ),
-
- "FBGeneralTrain":(
- ("DWORD", "DataMapID", 1),
- ("BYTE", "LineID", 1),
- ("WORD", "LVLimit", 0),
- ("WORD", "RealmLimit", 0),
- ("DWORD", "BossNPCID", 0),
- ("list", "OtherNPCIDList", 0),
- ("list", "PassAwardItemList", 0),
),
"DailyAction":(
@@ -1283,14 +1254,6 @@
("list", "PersonFirstKillAward", 0),
),
- "FamilyActivity":(
- ("DWORD", "ID", 1),
- ("WORD", "UnLockFuncID", 0),
- ("BYTE", "TotalActivityTime", 0),
- ("WORD", "SingleTimes", 0),
- ("WORD", "SingleActiveValue", 0),
- ),
-
"FamilyRedPack":(
("WORD", "ID", 1),
("WORD", "GetType", 0),
@@ -1424,12 +1387,6 @@
"LoginDayAward":(
("BYTE", "DayID", 1),
- ("dict", "Reward", 0),
- ),
-
- "OnlineAwardNew":(
- ("BYTE", "DayID", 1),
- ("list", "StageTime", 0),
("dict", "Reward", 0),
),
@@ -2386,6 +2343,14 @@
("BYTE", "UnlockFamilyLV", 0),
("DWORD", "ExpireMinutes", 0),
("DWORD", "CustomFamilyID", 0),
+ ),
+
+ "FamilyDonate":(
+ ("BYTE", "DonateType", 1),
+ ("BYTE", "DailyCnt", 0),
+ ("BYTE", "MoneyType", 0),
+ ("DWORD", "MoneyValue", 0),
+ ("list", "AwardItemList", 0),
),
"FamilyZhenbaogeCut":(
@@ -3642,10 +3607,18 @@
return
def GetGubaoID(self): return self.attrTuple[0] # 古宝ID WORD
- def GetGubaoType(self): return self.attrTuple[1] # 古宝分类 BYTE
- def GetGubaoQuality(self): return self.attrTuple[2] # 古宝品质 BYTE
- def GetUnlockItemID(self): return self.attrTuple[3] # 解锁所需物品ID DWORD
- def GetUnlockItemCnt(self): return self.attrTuple[4] # 解锁所需物品数量 BYTE
+ def GetGubaoQuality(self): return self.attrTuple[1] # 古宝品质 BYTE
+ def GetUnlockItemID(self): return self.attrTuple[2] # 解锁所需物品ID DWORD
+ def GetUnlockItemCnt(self): return self.attrTuple[3] # 解锁所需物品数量 BYTE
+ def GetBaseAttrIDList(self): return self.attrTuple[4] # 基础属性ID列表 list
+ def GetBaseAttrValueList(self): return self.attrTuple[5] # 基础属性初始值 list
+ def GetBaseAttrPerStarAddList(self): return self.attrTuple[6] # 基础属性每星成长 list
+ def GetSpecEffType(self): return self.attrTuple[7] # 特殊效果类型 BYTE
+ def GetSpecEffLayerMax(self): return self.attrTuple[8] # 特殊效果最大层数 BYTE
+ def GetSpecAttrID(self): return self.attrTuple[9] # 特殊属性ID BYTE
+ def GetSpecAttrValue(self): return self.attrTuple[10] # 特殊属性初始值 DWORD
+ def GetSpecAttrPerLVAdd(self): return self.attrTuple[11] # 特殊属性每级成长 DWORD
+ def GetSpecAttrPerStarAdd(self): return self.attrTuple[12] # 特殊属性每星成长 DWORD
# 古宝共鸣属性表
class IPY_GubaoResonanceAttr():
@@ -3669,38 +3642,17 @@
def GetResonanceID(self): return self.attrTuple[0] # 共鸣ID WORD
def GetGubaoIDList(self): return self.attrTuple[1] # 古宝ID列表 list
-# 古宝升星表
+# 古宝品质升星表
class IPY_GubaoStar():
def __init__(self):
self.attrTuple = None
return
- def GetGubaoID(self): return self.attrTuple[0] # 古宝ID WORD
+ def GetGubaoQuality(self): return self.attrTuple[0] # 古宝品质 BYTE
def GetGubaoStar(self): return self.attrTuple[1] # 古宝星级 BYTE
- def GetStarUPNeedItemInfo(self): return self.attrTuple[2] # 升星所需物品 [[物品ID,个数], ...] list
- def GetStarUPNeedQualityPiece(self): return self.attrTuple[3] # 升下一星额外所需品质碎片 [[品质,个数], ...] list
- def GetStarAttrIDList(self): return self.attrTuple[4] # 累计总属性ID列表 list
- def GetStarAttrValueList(self): return self.attrTuple[5] # 累计总属性值列表 list
- def GetStarEffIDList(self): return self.attrTuple[6] # 星级特殊效果ID列表 list
-
-# 古宝特殊效果表
-class IPY_GubaoEffAttr():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetGubaoEffID(self): return self.attrTuple[0] # 古宝特殊效果ID DWORD
- def GetGubaoEffType(self): return self.attrTuple[1] # 效果类型 BYTE
- def GetEffCond(self): return self.attrTuple[2] # 条件 DWORD
- def GetEffCond2(self): return self.attrTuple[3] # 条件2 DWORD
- def GetEffCond3(self): return self.attrTuple[4] # 条件3 DWORD
- def GetIsPer(self): return self.attrTuple[5] # 是否百分比提升 BYTE
- def GetEffFuncAttrIDList(self): return self.attrTuple[6] # 提升指定功能属性ID列表 list
- def GetEffAttrID(self): return self.attrTuple[7] # 直接增加属性类型 DWORD
- def GetEffAttrValue(self): return self.attrTuple[8] # 提升属性值 DWORD
- def GetEffItemAwardList(self): return self.attrTuple[9] # 领取物品列表 list
+ def GetStarUPNeedSelfCnt(self): return self.attrTuple[2] # 升到本星消耗本体碎片数量 BYTE
+ def GetStarUPNeedItemList(self): return self.attrTuple[3] # 消耗其他物品列表 [[物品ID,个数], ...] list
# 古宝品质升级表
class IPY_GubaoLV():
@@ -3709,12 +3661,9 @@
self.attrTuple = None
return
- def GetGubaoType(self): return self.attrTuple[0] # 古宝分类 BYTE
- def GetGubaoQuality(self): return self.attrTuple[1] # 古宝品质 BYTE
- def GetGubaoLV(self): return self.attrTuple[2] # 古宝等级 BYTE
- def GetLVUPNeedItemInfo(self): return self.attrTuple[3] # 升级所需物品 [[物品ID,个数], ...] list
- def GetLVAttrTypeList(self): return self.attrTuple[4] # 等级属性类型列表 list
- def GetLVAttrValueList(self): return self.attrTuple[5] # 等级属性值列表 list
+ def GetGubaoQuality(self): return self.attrTuple[0] # 古宝品质 BYTE
+ def GetLessEqualLV(self): return self.attrTuple[1] # 小于等于等级 BYTE
+ def GetLVUPNeedItemInfo(self): return self.attrTuple[2] # 升级所需物品 [[物品ID,个数], ...] list
# 神通表
class IPY_Shentong():
@@ -3878,19 +3827,6 @@
def GetRandExpMax(self): return self.attrTuple[2] # 最大随机精炼值 DWORD
def GetExpMaterial(self): return self.attrTuple[3] # 翅膀代数对应精炼值 dict
-# 仙盟科技表
-class IPY_FamilyTech():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetTechID(self): return self.attrTuple[0] # 科技ID*1000+等级 DWORD
- def GetAttrType(self): return self.attrTuple[1] # 属性类型 BYTE
- def GetAttrValue(self): return self.attrTuple[2] # 属性值 DWORD
- def GetContribution(self): return self.attrTuple[3] # 需要贡献度 DWORD
- def GetPowerEx(self): return self.attrTuple[4] # 额外战力 DWORD
-
# NPC掉落表
class IPY_NPCDropItem():
@@ -4013,21 +3949,6 @@
def GetADCntMax(self): return self.attrTuple[1] # 每日次数 BYTE
def GetADAwardItemList(self): return self.attrTuple[2] # 广告奖励物品列表 list
def GetADMapID(self): return self.attrTuple[3] # 对应副本ID,默认给该副本1次次数 DWORD
-
-# 副本通用养成表
-class IPY_FBGeneralTrain():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetDataMapID(self): return self.attrTuple[0] # 数据地图ID DWORD
- def GetLineID(self): return self.attrTuple[1] # 功能线路ID BYTE
- def GetLVLimit(self): return self.attrTuple[2] # 多少级可挑战, 0为不限制 WORD
- def GetRealmLimit(self): return self.attrTuple[3] # 多少境界可挑战, 0为不限制 WORD
- def GetBossNPCID(self): return self.attrTuple[4] # 过关bossID DWORD
- def GetOtherNPCIDList(self): return self.attrTuple[5] # 其他NPCIDList list
- def GetPassAwardItemList(self): return self.attrTuple[6] # 过关奖励列表 list
# 日常活动表
class IPY_DailyAction():
@@ -4367,19 +4288,6 @@
def GetPerPlayerMoneyAward(self): return self.attrTuple[1] # 首杀全服玩家奖励灵石额度/人 WORD
def GetPersonFirstKillAward(self): return self.attrTuple[2] # 个人首次击杀奖励 [[物品ID,个数,是否拍品], ...] list
-# 仙盟活跃表
-class IPY_FamilyActivity():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetID(self): return self.attrTuple[0] # ID DWORD
- def GetUnLockFuncID(self): return self.attrTuple[1] # 解锁功能ID WORD
- def GetTotalActivityTime(self): return self.attrTuple[2] # 总次数 BYTE
- def GetSingleTimes(self): return self.attrTuple[3] # 增加活跃需要次数 WORD
- def GetSingleActiveValue(self): return self.attrTuple[4] # 每轮增加活跃积分 WORD
-
# 仙盟红包表
class IPY_FamilyRedPack():
@@ -4585,17 +4493,6 @@
def GetDayID(self): return self.attrTuple[0] # 天数 BYTE
def GetReward(self): return self.attrTuple[1] # 奖励 {"职业":[[物品ID,个数],...], ...} dict
-
-# 七天在线奖励表新
-class IPY_OnlineAwardNew():
-
- def __init__(self):
- self.attrTuple = None
- return
-
- def GetDayID(self): return self.attrTuple[0] # 天数 BYTE
- def GetStageTime(self): return self.attrTuple[1] # 阶段所需时间(分钟) list
- def GetReward(self): return self.attrTuple[2] # 奖励 {"索引":[[物品ID,个数],...], ...} dict
# 七天限时特惠表
class IPY_SpringSale():
@@ -6077,6 +5974,19 @@
def GetExpireMinutes(self): return self.attrTuple[2] # 有效时长,分钟 DWORD
def GetCustomFamilyID(self): return self.attrTuple[3] # 定制仙盟ID DWORD
+# 仙盟捐献表
+class IPY_FamilyDonate():
+
+ def __init__(self):
+ self.attrTuple = None
+ return
+
+ def GetDonateType(self): return self.attrTuple[0] # 捐献类型 BYTE
+ def GetDailyCnt(self): return self.attrTuple[1] # 每日次数 BYTE
+ def GetMoneyType(self): return self.attrTuple[2] # 消耗货币类型 BYTE
+ def GetMoneyValue(self): return self.attrTuple[3] # 消耗货币值 DWORD
+ def GetAwardItemList(self): return self.attrTuple[4] # 获得奖励列表[[物品ID,个数], ...] list
+
# 仙盟珍宝阁砍价表
class IPY_FamilyZhenbaogeCut():
@@ -6256,7 +6166,7 @@
def GetAwardID(self): return self.attrTuple[0] # 奖励ID 1~n BYTE
def GetAwardItemList(self): return self.attrTuple[1] # 物品奖励[[物品ID,个数,是否拍品], ...] list
-# 战令表
+# 战令表/基金
class IPY_Zhanling():
def __init__(self):
@@ -6480,7 +6390,6 @@
self.__LoadFileData("GubaoResonanceAttr", onlyCheck)
self.__LoadFileData("GubaoResonance", onlyCheck)
self.__LoadFileData("GubaoStar", onlyCheck)
- self.__LoadFileData("GubaoEffAttr", onlyCheck)
self.__LoadFileData("GubaoLV", onlyCheck)
self.__LoadFileData("Shentong", onlyCheck)
self.__LoadFileData("ShentongLV", onlyCheck)
@@ -6492,7 +6401,6 @@
self.__LoadFileData("EquipSuitAttr", onlyCheck)
self.__LoadFileData("WingRefineAttr", onlyCheck)
self.__LoadFileData("WingRefineExp", onlyCheck)
- self.__LoadFileData("FamilyTech", onlyCheck)
self.__LoadFileData("NPCDropItem", onlyCheck)
self.__LoadFileData("RuneTower", onlyCheck)
self.__LoadFileData("ChinMap", onlyCheck)
@@ -6500,7 +6408,6 @@
self.__LoadFileData("FBLine", onlyCheck)
self.__LoadFileData("Tianzi", onlyCheck)
self.__LoadFileData("ADAward", onlyCheck)
- self.__LoadFileData("FBGeneralTrain", onlyCheck)
self.__LoadFileData("DailyAction", onlyCheck)
self.__LoadFileData("EquipGSParam", onlyCheck)
self.__LoadFileData("Success", onlyCheck)
@@ -6520,7 +6427,6 @@
self.__LoadFileData("ActivityPlaceReward", onlyCheck)
self.__LoadFileData("BOSSInfo", onlyCheck)
self.__LoadFileData("BOSSFirstKill", onlyCheck)
- self.__LoadFileData("FamilyActivity", onlyCheck)
self.__LoadFileData("FamilyRedPack", onlyCheck)
self.__LoadFileData("ActFeastRedPacketSucc", onlyCheck)
self.__LoadFileData("NPCShow", onlyCheck)
@@ -6535,7 +6441,6 @@
self.__LoadFileData("OSCBillRankAward", onlyCheck)
self.__LoadFileData("OSCBillTagAward", onlyCheck)
self.__LoadFileData("LoginDayAward", onlyCheck)
- self.__LoadFileData("OnlineAwardNew", onlyCheck)
self.__LoadFileData("SpringSale", onlyCheck)
self.__LoadFileData("OrderInfo", onlyCheck)
self.__LoadFileData("CTG", onlyCheck)
@@ -6641,6 +6546,7 @@
self.__LoadFileData("EquipPlusEvolve", onlyCheck)
self.__LoadFileData("Family", onlyCheck)
self.__LoadFileData("FamilyEmblem", onlyCheck)
+ self.__LoadFileData("FamilyDonate", onlyCheck)
self.__LoadFileData("FamilyZhenbaogeCut", onlyCheck)
self.__LoadFileData("FamilyZhenbaogeItem", onlyCheck)
self.__LoadFileData("FamilyZhenfa", onlyCheck)
@@ -7400,13 +7306,6 @@
self.CheckLoadData("GubaoStar")
return self.ipyGubaoStarCache[index]
- def GetGubaoEffAttrCount(self):
- self.CheckLoadData("GubaoEffAttr")
- return self.ipyGubaoEffAttrLen
- def GetGubaoEffAttrByIndex(self, index):
- self.CheckLoadData("GubaoEffAttr")
- return self.ipyGubaoEffAttrCache[index]
-
def GetGubaoLVCount(self):
self.CheckLoadData("GubaoLV")
return self.ipyGubaoLVLen
@@ -7484,13 +7383,6 @@
self.CheckLoadData("WingRefineExp")
return self.ipyWingRefineExpCache[index]
- def GetFamilyTechCount(self):
- self.CheckLoadData("FamilyTech")
- return self.ipyFamilyTechLen
- def GetFamilyTechByIndex(self, index):
- self.CheckLoadData("FamilyTech")
- return self.ipyFamilyTechCache[index]
-
def GetNPCDropItemCount(self):
self.CheckLoadData("NPCDropItem")
return self.ipyNPCDropItemLen
@@ -7539,13 +7431,6 @@
def GetADAwardByIndex(self, index):
self.CheckLoadData("ADAward")
return self.ipyADAwardCache[index]
-
- def GetFBGeneralTrainCount(self):
- self.CheckLoadData("FBGeneralTrain")
- return self.ipyFBGeneralTrainLen
- def GetFBGeneralTrainByIndex(self, index):
- self.CheckLoadData("FBGeneralTrain")
- return self.ipyFBGeneralTrainCache[index]
def GetDailyActionCount(self):
self.CheckLoadData("DailyAction")
@@ -7680,13 +7565,6 @@
self.CheckLoadData("BOSSFirstKill")
return self.ipyBOSSFirstKillCache[index]
- def GetFamilyActivityCount(self):
- self.CheckLoadData("FamilyActivity")
- return self.ipyFamilyActivityLen
- def GetFamilyActivityByIndex(self, index):
- self.CheckLoadData("FamilyActivity")
- return self.ipyFamilyActivityCache[index]
-
def GetFamilyRedPackCount(self):
self.CheckLoadData("FamilyRedPack")
return self.ipyFamilyRedPackLen
@@ -7784,13 +7662,6 @@
def GetLoginDayAwardByIndex(self, index):
self.CheckLoadData("LoginDayAward")
return self.ipyLoginDayAwardCache[index]
-
- def GetOnlineAwardNewCount(self):
- self.CheckLoadData("OnlineAwardNew")
- return self.ipyOnlineAwardNewLen
- def GetOnlineAwardNewByIndex(self, index):
- self.CheckLoadData("OnlineAwardNew")
- return self.ipyOnlineAwardNewCache[index]
def GetSpringSaleCount(self):
self.CheckLoadData("SpringSale")
@@ -8527,6 +8398,13 @@
self.CheckLoadData("FamilyEmblem")
return self.ipyFamilyEmblemCache[index]
+ def GetFamilyDonateCount(self):
+ self.CheckLoadData("FamilyDonate")
+ return self.ipyFamilyDonateLen
+ def GetFamilyDonateByIndex(self, index):
+ self.CheckLoadData("FamilyDonate")
+ return self.ipyFamilyDonateCache[index]
+
def GetFamilyZhenbaogeCutCount(self):
self.CheckLoadData("FamilyZhenbaogeCut")
return self.ipyFamilyZhenbaogeCutLen
--
Gitblit v1.8.0