8650 【主干】【BT2】活动规则优化(限时礼包支持多活动编号同时开启);

# Conflicts:
# ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashGiftbag.py
9个文件已修改
132 ■■■■■ 已修改文件
PySysDB/PySysDBG.h 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorld.py 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;    //开启时间列表, 支持多个时段
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,
                                "..."
                                )
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 # 开启时间列表, 支持多个时段
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" # 充值排行榜
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
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,
                                "..."
                                )
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: 运营活动表配置的日期信息, 如果是纯数字代表开服天
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()
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" # 充值排行榜