From d4b309d86b0606f09f922301556b5c811029c60b Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 08 三月 2021 18:06:25 +0800
Subject: [PATCH] 8650 【主干】【BT2】活动规则优化(限时礼包支持多活动编号同时开启);
---
ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py | 6 +-
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py | 4 +
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 50 ++++++++++------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorld.py | 8 ++
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py | 4 +
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py | 2
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 50 ++++++++++------
PySysDB/PySysDBG.h | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py | 6 +-
9 files changed, 86 insertions(+), 46 deletions(-)
diff --git a/PySysDB/PySysDBG.h b/PySysDB/PySysDBG.h
index 72573a5..9e41625 100644
--- a/PySysDB/PySysDBG.h
+++ b/PySysDB/PySysDBG.h
@@ -390,9 +390,9 @@
struct tagActFlashGiftbag
{
DWORD _CfgID; //配置ID
- char ActMark; //活动组标记
list PlatformList; //活动平台列表["平台A", "平台A", ...],配[]代表所有
list ServerGroupIDList; //服务器ID列表
+ BYTE ActNum; //活动分组编号, 活动类型 * 10 + 不同界面编号
char StartDate; //开启日期
char EndDate; //结束日期
list StartTimeList; //开启时间列表, 支持多个时段
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index b6ad441..d9a3161 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -829,7 +829,7 @@
Head = tagHead()
Type = 0 #(BYTE Type)//类型
Count = 0 #(WORD Count)//数量
- UniversalGameRec = list() #(vector<tagUniversalGameRec> UniversalGameRec)///size = Count
+ UniversalGameRec = list() #(vector<tagUniversalGameRec> UniversalGameRec)///size = Count
data = None
def __init__(self):
@@ -1133,7 +1133,7 @@
FamilyID = 0 #(DWORD FamilyID)//家族ID
ActionType = 0 #(BYTE ActionType)//类型
Count = 0 #(WORD Count)//数量
- FamilyActionList = list() #(vector<tagGCFamilyAction> FamilyActionList)//size = Count
+ FamilyActionList = list() #(vector<tagGCFamilyAction> FamilyActionList)//size = Count
data = None
def __init__(self):
@@ -3352,8 +3352,8 @@
IsAlive = 0 #(BYTE IsAlive)// 是否存活
RecordLen = 0 #(WORD RecordLen)// 长度
KillRecord = "" #(String KillRecord)// 最近击杀记录时间玩家名size = RecordLen
- RefreshSecond = 0 #(DWORD RefreshSecond)// 刷新倒计时, 秒
- RefreshCD = 0 #(DWORD RefreshCD)// 刷新总CD时, 秒
+ RefreshSecond = 0 #(DWORD RefreshSecond)// 刷新倒计时, 秒
+ RefreshCD = 0 #(DWORD RefreshCD)// 刷新总CD时, 秒
data = None
def __init__(self):
@@ -4318,7 +4318,7 @@
Count = 0 #(DWORD Count)//数量
IsBind = 0 #(BYTE IsBind)//是否绑定
UserDataLen = 0 #(DWORD UserDataLen)
- UserData = "" #(String UserData)//自定义数据
+ UserData = "" #(String UserData)//自定义数据
data = None
def __init__(self):
@@ -4559,7 +4559,7 @@
Name = "" #(char Name[33])
LV = 0 #(DWORD LV)//等级
Job = 0 #(BYTE Job)
- RealmLV = 0 #(WORD RealmLV)//境界
+ RealmLV = 0 #(WORD RealmLV)//境界
data = None
def __init__(self):
@@ -6650,7 +6650,7 @@
class tagFamilyArrestOverStateInfo(Structure):
Head = tagHead()
Count = 0 #(WORD Count)
- ArrestOverStateInfo = list() #(vector<tagFamilyArrestOverState> ArrestOverStateInfo)///size = Count
+ ArrestOverStateInfo = list() #(vector<tagFamilyArrestOverState> ArrestOverStateInfo)///size = Count
data = None
def __init__(self):
@@ -7717,7 +7717,7 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("PlayerID", c_int),
- ("RefreshType", c_ubyte), #参考CDBPlayerRefresh__
+ ("RefreshType", c_ubyte), #参考CDBPlayerRefresh__
("Value", c_int),
]
@@ -7773,7 +7773,7 @@
class tagGCVoiceChat(Structure):
Head = tagHead()
- ChannelType = 0 #(BYTE ChannelType)// 1 世界 2 仙盟 3 私聊(好友) 4 队伍 5 区域
+ ChannelType = 0 #(BYTE ChannelType)// 1 世界 2 仙盟 3 私聊(好友) 4 队伍 5 区域
SrcNameLen = 0 #(BYTE SrcNameLen)
SrcName = "" #(String SrcName)//size = SrcNameLen
PlayerID = 0 #(DWORD PlayerID)
@@ -9513,7 +9513,7 @@
ItemGUID = "" #(char ItemGUID[40])
AuctionType = 0 #(BYTE AuctionType)//拍品类型,0-全服拍品,1-仙盟拍品
AddTime = "" #(char AddTime[19])//上架时间
- BidderID = 0 #(DWORD BidderID)//最高竞拍玩家ID,也就是当前最高竞价玩家ID
+ BidderID = 0 #(DWORD BidderID)//最高竞拍玩家ID,也就是当前最高竞价玩家ID
BidderPrice = 0 #(DWORD BidderPrice)//最高竞拍价格
BiddingTime = "" #(char BiddingTime[19])//竞价时间 yyyy-MM-dd hh:mm:ss
data = None
@@ -11379,8 +11379,8 @@
class tagGCCrossRealmPKBillboardInfo(Structure):
Head = tagHead()
- ZoneID = 0 #(BYTE ZoneID)// 赛区ID
- SeasonID = 0 #(BYTE SeasonID)// 赛季ID
+ ZoneID = 0 #(BYTE ZoneID)// 赛区ID
+ SeasonID = 0 #(BYTE SeasonID)// 赛季ID
Count = 0 #(WORD Count)
PKBillboardList = list() #(vector<tagGCCrossRealmPKBillboardData> PKBillboardList)
data = None
@@ -12397,7 +12397,7 @@
BackpackLV = 0 #(BYTE BackpackLV)//背包等级
WarehouseLV = 0 #(BYTE WarehouseLV)//仓库等级
TeamID = 0 #(DWORD TeamID)//队伍ID
- UseGoldType = 0 #(BYTE UseGoldType)//默认用金子/金票 类型为MoneyType
+ UseGoldType = 0 #(BYTE UseGoldType)//默认用金子/金票 类型为MoneyType
UseSilverType = 0 #(BYTE UseSilverType)//默认用的银子/银票
AttackMode = 0 #(BYTE AttackMode)//攻击模式
LastWeekOnlineTime = 0 #(DWORD LastWeekOnlineTime)//上周在线时间
@@ -15591,7 +15591,7 @@
class tagMCEquipPartXLAttr(Structure):
- EquipPlace = 0 #(BYTE EquipPlace)// 装备位
+ EquipPlace = 0 #(BYTE EquipPlace)// 装备位
XLAttrLV = 0 #(BYTE XLAttrLV)// 洗练等级
XLAttrCnt = 0 #(BYTE XLAttrCnt)// 属性条数
XLAttrList = list() #(vector<tagMCEquipPartXLAttrValue> XLAttrList)// 属性列表,索引0的代表属性1,依次递增
@@ -18169,7 +18169,7 @@
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("Record", c_ubyte), #0-未领取 1-已领取
+ ("Record", c_ubyte), #0-未领取 1-已领取
]
def __init__(self):
@@ -22810,7 +22810,7 @@
PlayerID = 0 #(DWORD PlayerID)//玩家ID
EquipClassLV = 0 #(BYTE EquipClassLV)
ItemDataSize = 0 #(WORD ItemDataSize)
- ItemData = "" #(String ItemData)//物品记录
+ ItemData = "" #(String ItemData)//物品记录
data = None
def __init__(self):
@@ -23109,7 +23109,7 @@
ItemDataSize = 0 #(DWORD ItemDataSize)
ItemData = "" #(String ItemData)//物品记录
PlusDataSize = 0 #(DWORD PlusDataSize)
- PlusData = "" #(String PlusData)//扩展记录
+ PlusData = "" #(String PlusData)//扩展记录
data = None
def __init__(self):
@@ -23606,7 +23606,7 @@
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("MakeType", c_ubyte), #类型 TMakeItemType
+ ("MakeType", c_ubyte), #类型 TMakeItemType
("Result", c_ubyte), #是否成功
("MakeItemID", c_int), #合成的物品ID
]
@@ -29290,6 +29290,7 @@
class tagMCFlashGiftbagInfo(Structure):
Head = tagHead()
+ ActNum = 0 #(BYTE ActNum)//活动编号
StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
AdvanceMinutes = 0 #(WORD AdvanceMinutes)// 提前显示分钟
@@ -29310,6 +29311,7 @@
def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
_pos = self.Head.ReadData(_lpData, _pos)
+ self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
self.AdvanceMinutes,_pos = CommFunc.ReadWORD(_lpData, _pos)
@@ -29332,6 +29334,7 @@
self.Head.Clear()
self.Head.Cmd = 0xAA
self.Head.SubCmd = 0x12
+ self.ActNum = 0
self.StartDate = ""
self.EndtDate = ""
self.AdvanceMinutes = 0
@@ -29346,6 +29349,7 @@
def GetLength(self):
length = 0
length += self.Head.GetLength()
+ length += 1
length += 10
length += 10
length += 2
@@ -29363,6 +29367,7 @@
def GetBuffer(self):
data = ''
data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.ActNum)
data = CommFunc.WriteString(data, 10, self.StartDate)
data = CommFunc.WriteString(data, 10, self.EndtDate)
data = CommFunc.WriteWORD(data, self.AdvanceMinutes)
@@ -29379,6 +29384,7 @@
def OutputString(self):
DumpString = '''
Head:%s,
+ ActNum:%d,
StartDate:%s,
EndtDate:%s,
AdvanceMinutes:%d,
@@ -29391,6 +29397,7 @@
'''\
%(
self.Head.OutputString(),
+ self.ActNum,
self.StartDate,
self.EndtDate,
self.AdvanceMinutes,
@@ -29452,6 +29459,7 @@
class tagMCFlashGiftbagPlayerInfo(Structure):
Head = tagHead()
+ ActNum = 0 #(BYTE ActNum)//活动编号
Count = 0 #(BYTE Count)
BuyCountList = list() #(vector<tagMCFlashGiftbagBuyCount> BuyCountList)//礼包购买次数信息
data = None
@@ -29465,6 +29473,7 @@
def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
_pos = self.Head.ReadData(_lpData, _pos)
+ self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
for i in range(self.Count):
temBuyCountList = tagMCFlashGiftbagBuyCount()
@@ -29477,6 +29486,7 @@
self.Head.Clear()
self.Head.Cmd = 0xAA
self.Head.SubCmd = 0x13
+ self.ActNum = 0
self.Count = 0
self.BuyCountList = list()
return
@@ -29484,6 +29494,7 @@
def GetLength(self):
length = 0
length += self.Head.GetLength()
+ length += 1
length += 1
for i in range(self.Count):
length += self.BuyCountList[i].GetLength()
@@ -29493,6 +29504,7 @@
def GetBuffer(self):
data = ''
data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.ActNum)
data = CommFunc.WriteBYTE(data, self.Count)
for i in range(self.Count):
data = CommFunc.WriteString(data, self.BuyCountList[i].GetLength(), self.BuyCountList[i].GetBuffer())
@@ -29501,11 +29513,13 @@
def OutputString(self):
DumpString = '''
Head:%s,
+ ActNum:%d,
Count:%d,
BuyCountList:%s
'''\
%(
self.Head.OutputString(),
+ self.ActNum,
self.Count,
"..."
)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py b/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
index c1590b8..0c20f43 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
@@ -330,9 +330,9 @@
"ActFlashGiftbag":(
("DWORD", "CfgID", 1),
- ("char", "ActMark", 0),
("list", "PlatformList", 0),
("list", "ServerGroupIDList", 0),
+ ("BYTE", "ActNum", 0),
("char", "StartDate", 0),
("char", "EndDate", 0),
("list", "StartTimeList", 0),
@@ -1311,9 +1311,9 @@
def __init__(self):
self.CfgID = 0
- self.ActMark = ""
self.PlatformList = []
self.ServerGroupIDList = []
+ self.ActNum = 0
self.StartDate = ""
self.EndDate = ""
self.StartTimeList = []
@@ -1327,9 +1327,9 @@
return
def GetCfgID(self): return self.CfgID # 配置ID
- def GetActMark(self): return self.ActMark # 活动组标记
def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有
def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表
+ def GetActNum(self): return self.ActNum # 活动分组编号, 活动类型 * 10 + 不同界面编号
def GetStartDate(self): return self.StartDate # 开启日期
def GetEndDate(self): return self.EndDate # 结束日期
def GetStartTimeList(self): return self.StartTimeList # 开启时间列表, 支持多个时段
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
index c4ab40c..3e4f103 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -263,7 +263,9 @@
]
#支持多活动分组编号的活动名
-MultiActNumOperationActNameList = [OperationActionName_TotalRecharge, OperationActionName_CollectWords]
+MultiActNumOperationActNameList = [OperationActionName_TotalRecharge, OperationActionName_CollectWords,
+ OperationActionName_FlashGiftbag,
+ ]
#跨服运营活动表名定义
CrossActName_CTGBillboard = "CrossActCTGBillboard" # 充值排行榜
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index c1f67b0..c1d6765 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -3721,9 +3721,9 @@
Def_PDict_SpringSaleMailState = "SpringSaleMailState" # 玩家身上的活动更新提醒邮件状态
#限时礼包活动
-Def_PDict_FlashGiftbagID = "FlashGiftbagID" # 玩家身上的限时礼包活动ID,唯一标识,取活动开始日期time
-Def_PDict_FlashGiftbagBuyCount = "FlashGiftbagBuyCount_%s" # 限时礼包已购买次数,参数(礼包ID)
-Def_PDict_FlashGiftbagMailState = "FlashGiftbagMailState" # 玩家身上的活动更新提醒邮件状态
+Def_PDict_FlashGiftbagID = "FlashGiftbagID_%s" # 玩家身上的限时礼包活动ID,唯一标识,取活动开始日期time,参数(活动编号)
+Def_PDict_FlashGiftbagBuyCount = "FlashGiftbagBuy_%s_%s" # 限时礼包已购买次数,参数(活动编号, 礼包ID)
+Def_PDict_FlashGiftbagMailState = "FlashGiftbagMail_%s" # 玩家身上的活动更新提醒邮件状态,参数(活动编号)
#每日礼包活动
Def_PDict_DailyGiftbagID = "DailyGiftbagID" # 玩家身上的每日礼包活动ID,唯一标识,取活动开始日期time
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index b6ad441..d9a3161 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -829,7 +829,7 @@
Head = tagHead()
Type = 0 #(BYTE Type)//类型
Count = 0 #(WORD Count)//数量
- UniversalGameRec = list() #(vector<tagUniversalGameRec> UniversalGameRec)///size = Count
+ UniversalGameRec = list() #(vector<tagUniversalGameRec> UniversalGameRec)///size = Count
data = None
def __init__(self):
@@ -1133,7 +1133,7 @@
FamilyID = 0 #(DWORD FamilyID)//家族ID
ActionType = 0 #(BYTE ActionType)//类型
Count = 0 #(WORD Count)//数量
- FamilyActionList = list() #(vector<tagGCFamilyAction> FamilyActionList)//size = Count
+ FamilyActionList = list() #(vector<tagGCFamilyAction> FamilyActionList)//size = Count
data = None
def __init__(self):
@@ -3352,8 +3352,8 @@
IsAlive = 0 #(BYTE IsAlive)// 是否存活
RecordLen = 0 #(WORD RecordLen)// 长度
KillRecord = "" #(String KillRecord)// 最近击杀记录时间玩家名size = RecordLen
- RefreshSecond = 0 #(DWORD RefreshSecond)// 刷新倒计时, 秒
- RefreshCD = 0 #(DWORD RefreshCD)// 刷新总CD时, 秒
+ RefreshSecond = 0 #(DWORD RefreshSecond)// 刷新倒计时, 秒
+ RefreshCD = 0 #(DWORD RefreshCD)// 刷新总CD时, 秒
data = None
def __init__(self):
@@ -4318,7 +4318,7 @@
Count = 0 #(DWORD Count)//数量
IsBind = 0 #(BYTE IsBind)//是否绑定
UserDataLen = 0 #(DWORD UserDataLen)
- UserData = "" #(String UserData)//自定义数据
+ UserData = "" #(String UserData)//自定义数据
data = None
def __init__(self):
@@ -4559,7 +4559,7 @@
Name = "" #(char Name[33])
LV = 0 #(DWORD LV)//等级
Job = 0 #(BYTE Job)
- RealmLV = 0 #(WORD RealmLV)//境界
+ RealmLV = 0 #(WORD RealmLV)//境界
data = None
def __init__(self):
@@ -6650,7 +6650,7 @@
class tagFamilyArrestOverStateInfo(Structure):
Head = tagHead()
Count = 0 #(WORD Count)
- ArrestOverStateInfo = list() #(vector<tagFamilyArrestOverState> ArrestOverStateInfo)///size = Count
+ ArrestOverStateInfo = list() #(vector<tagFamilyArrestOverState> ArrestOverStateInfo)///size = Count
data = None
def __init__(self):
@@ -7717,7 +7717,7 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("PlayerID", c_int),
- ("RefreshType", c_ubyte), #参考CDBPlayerRefresh__
+ ("RefreshType", c_ubyte), #参考CDBPlayerRefresh__
("Value", c_int),
]
@@ -7773,7 +7773,7 @@
class tagGCVoiceChat(Structure):
Head = tagHead()
- ChannelType = 0 #(BYTE ChannelType)// 1 世界 2 仙盟 3 私聊(好友) 4 队伍 5 区域
+ ChannelType = 0 #(BYTE ChannelType)// 1 世界 2 仙盟 3 私聊(好友) 4 队伍 5 区域
SrcNameLen = 0 #(BYTE SrcNameLen)
SrcName = "" #(String SrcName)//size = SrcNameLen
PlayerID = 0 #(DWORD PlayerID)
@@ -9513,7 +9513,7 @@
ItemGUID = "" #(char ItemGUID[40])
AuctionType = 0 #(BYTE AuctionType)//拍品类型,0-全服拍品,1-仙盟拍品
AddTime = "" #(char AddTime[19])//上架时间
- BidderID = 0 #(DWORD BidderID)//最高竞拍玩家ID,也就是当前最高竞价玩家ID
+ BidderID = 0 #(DWORD BidderID)//最高竞拍玩家ID,也就是当前最高竞价玩家ID
BidderPrice = 0 #(DWORD BidderPrice)//最高竞拍价格
BiddingTime = "" #(char BiddingTime[19])//竞价时间 yyyy-MM-dd hh:mm:ss
data = None
@@ -11379,8 +11379,8 @@
class tagGCCrossRealmPKBillboardInfo(Structure):
Head = tagHead()
- ZoneID = 0 #(BYTE ZoneID)// 赛区ID
- SeasonID = 0 #(BYTE SeasonID)// 赛季ID
+ ZoneID = 0 #(BYTE ZoneID)// 赛区ID
+ SeasonID = 0 #(BYTE SeasonID)// 赛季ID
Count = 0 #(WORD Count)
PKBillboardList = list() #(vector<tagGCCrossRealmPKBillboardData> PKBillboardList)
data = None
@@ -12397,7 +12397,7 @@
BackpackLV = 0 #(BYTE BackpackLV)//背包等级
WarehouseLV = 0 #(BYTE WarehouseLV)//仓库等级
TeamID = 0 #(DWORD TeamID)//队伍ID
- UseGoldType = 0 #(BYTE UseGoldType)//默认用金子/金票 类型为MoneyType
+ UseGoldType = 0 #(BYTE UseGoldType)//默认用金子/金票 类型为MoneyType
UseSilverType = 0 #(BYTE UseSilverType)//默认用的银子/银票
AttackMode = 0 #(BYTE AttackMode)//攻击模式
LastWeekOnlineTime = 0 #(DWORD LastWeekOnlineTime)//上周在线时间
@@ -15591,7 +15591,7 @@
class tagMCEquipPartXLAttr(Structure):
- EquipPlace = 0 #(BYTE EquipPlace)// 装备位
+ EquipPlace = 0 #(BYTE EquipPlace)// 装备位
XLAttrLV = 0 #(BYTE XLAttrLV)// 洗练等级
XLAttrCnt = 0 #(BYTE XLAttrCnt)// 属性条数
XLAttrList = list() #(vector<tagMCEquipPartXLAttrValue> XLAttrList)// 属性列表,索引0的代表属性1,依次递增
@@ -18169,7 +18169,7 @@
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("Record", c_ubyte), #0-未领取 1-已领取
+ ("Record", c_ubyte), #0-未领取 1-已领取
]
def __init__(self):
@@ -22810,7 +22810,7 @@
PlayerID = 0 #(DWORD PlayerID)//玩家ID
EquipClassLV = 0 #(BYTE EquipClassLV)
ItemDataSize = 0 #(WORD ItemDataSize)
- ItemData = "" #(String ItemData)//物品记录
+ ItemData = "" #(String ItemData)//物品记录
data = None
def __init__(self):
@@ -23109,7 +23109,7 @@
ItemDataSize = 0 #(DWORD ItemDataSize)
ItemData = "" #(String ItemData)//物品记录
PlusDataSize = 0 #(DWORD PlusDataSize)
- PlusData = "" #(String PlusData)//扩展记录
+ PlusData = "" #(String PlusData)//扩展记录
data = None
def __init__(self):
@@ -23606,7 +23606,7 @@
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("MakeType", c_ubyte), #类型 TMakeItemType
+ ("MakeType", c_ubyte), #类型 TMakeItemType
("Result", c_ubyte), #是否成功
("MakeItemID", c_int), #合成的物品ID
]
@@ -29290,6 +29290,7 @@
class tagMCFlashGiftbagInfo(Structure):
Head = tagHead()
+ ActNum = 0 #(BYTE ActNum)//活动编号
StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
AdvanceMinutes = 0 #(WORD AdvanceMinutes)// 提前显示分钟
@@ -29310,6 +29311,7 @@
def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
_pos = self.Head.ReadData(_lpData, _pos)
+ self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
self.AdvanceMinutes,_pos = CommFunc.ReadWORD(_lpData, _pos)
@@ -29332,6 +29334,7 @@
self.Head.Clear()
self.Head.Cmd = 0xAA
self.Head.SubCmd = 0x12
+ self.ActNum = 0
self.StartDate = ""
self.EndtDate = ""
self.AdvanceMinutes = 0
@@ -29346,6 +29349,7 @@
def GetLength(self):
length = 0
length += self.Head.GetLength()
+ length += 1
length += 10
length += 10
length += 2
@@ -29363,6 +29367,7 @@
def GetBuffer(self):
data = ''
data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.ActNum)
data = CommFunc.WriteString(data, 10, self.StartDate)
data = CommFunc.WriteString(data, 10, self.EndtDate)
data = CommFunc.WriteWORD(data, self.AdvanceMinutes)
@@ -29379,6 +29384,7 @@
def OutputString(self):
DumpString = '''
Head:%s,
+ ActNum:%d,
StartDate:%s,
EndtDate:%s,
AdvanceMinutes:%d,
@@ -29391,6 +29397,7 @@
'''\
%(
self.Head.OutputString(),
+ self.ActNum,
self.StartDate,
self.EndtDate,
self.AdvanceMinutes,
@@ -29452,6 +29459,7 @@
class tagMCFlashGiftbagPlayerInfo(Structure):
Head = tagHead()
+ ActNum = 0 #(BYTE ActNum)//活动编号
Count = 0 #(BYTE Count)
BuyCountList = list() #(vector<tagMCFlashGiftbagBuyCount> BuyCountList)//礼包购买次数信息
data = None
@@ -29465,6 +29473,7 @@
def ReadData(self, _lpData, _pos=0, _Len=0):
self.Clear()
_pos = self.Head.ReadData(_lpData, _pos)
+ self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
for i in range(self.Count):
temBuyCountList = tagMCFlashGiftbagBuyCount()
@@ -29477,6 +29486,7 @@
self.Head.Clear()
self.Head.Cmd = 0xAA
self.Head.SubCmd = 0x13
+ self.ActNum = 0
self.Count = 0
self.BuyCountList = list()
return
@@ -29484,6 +29494,7 @@
def GetLength(self):
length = 0
length += self.Head.GetLength()
+ length += 1
length += 1
for i in range(self.Count):
length += self.BuyCountList[i].GetLength()
@@ -29493,6 +29504,7 @@
def GetBuffer(self):
data = ''
data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+ data = CommFunc.WriteBYTE(data, self.ActNum)
data = CommFunc.WriteBYTE(data, self.Count)
for i in range(self.Count):
data = CommFunc.WriteString(data, self.BuyCountList[i].GetLength(), self.BuyCountList[i].GetBuffer())
@@ -29501,11 +29513,13 @@
def OutputString(self):
DumpString = '''
Head:%s,
+ ActNum:%d,
Count:%d,
BuyCountList:%s
'''\
%(
self.Head.OutputString(),
+ self.ActNum,
self.Count,
"..."
)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorld.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorld.py
index 21d0311..aa6a61e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorld.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorld.py
@@ -603,6 +603,14 @@
#---------------------------------------------------------------------
+def GetActInfo(actName, actNum):
+ if actName not in PyGameData.g_operationActionDict:
+ return {}
+ actNumDict = PyGameData.g_operationActionDict[actName]
+ if actNum not in actNumDict:
+ return {}
+ return actNumDict[actNum]
+
def GetOperationActionDateStr(dateInfo, openServerDay):
'''获取运营活动对应日期,存数字代表开服天配置,需要转化为对应的日期
@param dateInfo: 运营活动表配置的日期信息, 如果是纯数字代表开服天
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
index fde98a9..123b871 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
@@ -1364,7 +1364,7 @@
PlayerBossReborn.RefreshOperationAction_BossReborn()
elif actionName == ShareDefine.OperationActionName_FlashGiftbag:
- PlayerFlashGiftbag.RefreshFlashGiftbagActionInfo()
+ PlayerFlashGiftbag.RefreshFlashGiftbagActionInfo(actNum)
elif actionName == ShareDefine.OperationActionName_DailyGiftbag:
PlayerDailyGiftbag.RefreshDailyGiftbagActionInfo()
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index c4ab40c..3e4f103 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -263,7 +263,9 @@
]
#支持多活动分组编号的活动名
-MultiActNumOperationActNameList = [OperationActionName_TotalRecharge, OperationActionName_CollectWords]
+MultiActNumOperationActNameList = [OperationActionName_TotalRecharge, OperationActionName_CollectWords,
+ OperationActionName_FlashGiftbag,
+ ]
#跨服运营活动表名定义
CrossActName_CTGBillboard = "CrossActCTGBillboard" # 充值排行榜
--
Gitblit v1.8.0