hxp
2025-10-17 f495a32d55731268db3e8fbd272769e1c6ab1fb3
16 卡牌服务端(删除红包相关;)
17个文件已修改
5个文件已删除
1996 ■■■■■ 已修改文件
PySysDB/PySysDBPY.h 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py 967 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/CreatFamilyRedPack.py 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetRedPacket.py 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/OpenServerCampaign.py 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCrossRealmPK.py 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFB.py 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamilyRedPacket.py 226 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFeastRedPacket.py 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldInvest.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GrabFamilyRedPacketResult.py 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h
@@ -1504,25 +1504,6 @@
    list        PersonFirstKillAward;    // 个人首次击杀奖励 [[物品ID,个数,是否拍品], ...]
};
//仙盟红包表
struct tagFamilyRedPack
{
    WORD        _ID;    //ID
    WORD        GetType;    //获得途径
    WORD        MoneyNum;    //红包额度
    BYTE        MoneyType;    //金钱类型
    BYTE        PacketCnt;    //红包个数
};
//节日红包每日成就表
struct tagActFeastRedPacketSucc
{
    BYTE        _FeastDay;    //节日第几天
    list        FeastSuccIDList;    //节日成就ID列表
};
//NPC秀表
struct tagNPCShow
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
@@ -905,22 +905,6 @@
PacketSubCMD_1=0x2E
PacketCallFunc_1=OnWingJingLian
;仙盟红包
[PlayerFamilyRedPacket]
ScriptName = Player\PlayerFamilyRedPacket.py
Writer = xdh
Releaser = xdh
RegType = 0
RegisterPackCount = 2
PacketCMD_1=0xA6
PacketSubCMD_1=0x08
PacketCallFunc_1=OnSendFamilyRedPacket
PacketCMD_2=0xAB
PacketSubCMD_2=0x12
PacketCallFunc_2=OnGrabFamilyRedPacket
;新定义攻击
[NewAttack]
ScriptName = Skill\SkillShell.py
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -3400,10 +3400,6 @@
Def_PDict_NPCKillCount = "NPCKillCount_%s"   # NPC已击杀次数, 参数(NPCID) CCBBAA, AA存储公共装备次数,BB存储公共ID次数,CC存储私有次数
Def_PDict_NPCAttackCount = "NPCAttackCount_%s"   # NPC已攻击次数, 参数(NPCID)
Def_PDict_RedPacketInviteGet = "RedPacketInviteGet"  # 红包邀请领取
Def_PDict_RedPacketGetState = "RedPacketGetState"  # 红包领取状态
Def_PDict_RedPacketGrabCnt = "RedPacketGrabCnt"  # 抢红包次数
Def_PDict_ItemUseCntToday = "ItemUseCntToday_%s" # 物品今日使用次数, 参数为物品ID
Def_PDict_GodWeaponLV = "GodWeaponLV_%s" # 神器等级, 参数神器索引
@@ -3862,19 +3858,6 @@
Def_PDict_Boss_KillCntItemAddCnt = "Boss_KillCntItemAddCnt_%s" # 物品增加的当日可杀世界boss次数<%s-索引>
Def_PDict_Boss_KillCntBuyCnt = "Boss_KillCntBuyCnt_%s" # 当日可杀世界boss次数的购买次数<%s-索引>
#仙盟红包
Def_PDict_FamilyRedPacketGoldLimit = "FmlRedPacketGoldLimit"  # 仙盟钻石红包已发额度
Def_PDict_FamilyRedPacketCache = "FamilyRedPacketCache%s"  # 仙盟红包待发放记录参数索引
Def_PDict_OSRedPacketGrabMoney = "OSRedPacketGrabMoney"  # 开服红包已抢数量
Def_PDict_OSRedPacketCanGrabCnt = "OSRedPacketCanGrabCnt"  # 开服红包可抢次数
Def_PDict_OSRedPacketStartTime = "OSRedPacketStartTime" #开服红包开始倒计时时间
Def_PDict_ServerRedPacketGrabCnt = "ServerRedPacketGrabCnt"  # 今日已抢全服红包次数
#节日红包
Def_PDict_FeastRedPacketActID = "FeastRedPacketActID"  # 玩家身上的节日红包活动ID,唯一标识,取活动开始日期time值
Def_PDict_FeastRedPacketGrabMoney = "FeastRedPacketGrabMoney"  # 节日红包已抢数量
Def_PDict_FeastRedPacketCanGrabCnt = "FeastRedPacketCanGrabCnt"  # 节日红包可抢次数
#境界
Def_PDict_RealmTaskAwardState = "RealmTaskAwardState" #境界渡劫条件领奖状态,按二进制位存储是否已领取
Def_PDict_RealmTaskValue = "RealmTaskValue_%s" #境界渡劫任务需要记录值,参数(任务ID)
@@ -4321,7 +4304,7 @@
Def_Cost_Transport, # 传送 25
Def_Cost_Treasure, # 寻宝
Def_Cost_FamilyBroadcast, # 家族公告
Def_Cost_FamilyRedPacket, # 发家族钻石红包
Def_Cost_28, # 发家族钻石红包
Def_Cost_EnterFB, # 进入副本
Def_Cost_GameServer, # GameServer 30
Def_Cost_FreeGoods, # 极品白拿
@@ -4366,13 +4349,13 @@
Def_Cost_Reason_SonKey = "reason_name_son" # 消费点原因子类说明key
# 消费返利不处理的消费类型列表
CostRebate_DisableType = [Def_Cost_BourseBuy, Def_Cost_BourseCharge, Def_Cost_FreeGoods, Def_Cost_FamilyRedPacket,
CostRebate_DisableType = [Def_Cost_BourseBuy, Def_Cost_BourseCharge, Def_Cost_FreeGoods,
                          Def_Cost_Unknown, "GMSetMoney", "Warehouse", Def_Cost_AuctionBid]
# 可在跨服中消费的类型列表
MergeServerCanCostType = [Def_Cost_UseSpeaker, Def_Cost_Revive]
#内部仙玉不能用的消费类型列表
UnUseInner_CostType = [Def_Cost_BourseBuy, Def_Cost_FamilyRedPacket, Def_Cost_AuctionBid]
UnUseInner_CostType = [Def_Cost_BourseBuy, Def_Cost_AuctionBid]
# 消费类型对应信息字典{消费类型:[eventName, 中文说明reason_name, 发送给9377的数据是否分消费子类], }
# 由于9377那边数据建议所有消费点总和最好不超过500个,故这里对部分发送给对方的数据进行归组为不分子类,或直接归属于商城分组
#     .使用原价购买的物品统一归属为商城组,消费对应为AutoBuy的也归属于商城分组
@@ -4421,7 +4404,6 @@
Def_Cost_Rename:"Rename",
Def_Cost_SkillLvUp:"SkillLvUp",
Def_Cost_FamilyBroadcast:"FamilyBroadcast",
Def_Cost_FamilyRedPacket:"FamilyRedPacket",
Def_Cost_FreeGoods:"FreeGoods",
Def_Cost_DogzEquipPlus:"DogzEquipPlus",
Def_Cost_RuneHole:"RuneHole",
@@ -4464,7 +4446,7 @@
Def_GiveMoney_Bourse, # 交易所 10
Def_GiveMoney_GoldInvest, # 绑钻投资
Def_GiveMoney_12, # 资源找回
Def_GiveMoney_RedPacket, # 红包
Def_GiveMoney_13, # 红包
Def_GiveMoney_RefineGift, # 炼制奖励
Def_GiveMoney_Mail, # 邮件(补偿) 15
Def_GiveMoney_RuneDecompose, # 符印
@@ -4501,7 +4483,6 @@
Def_GiveMoney_Pickup:"Pickup",
Def_GiveMoney_Bourse:"Bourse",
Def_GiveMoney_GoldInvest:"GoldInvest",
Def_GiveMoney_RedPacket:"RedPacket",
Def_GiveMoney_RefineGift:"RefineGift",
Def_GiveMoney_Mail:"Mail",
Def_GiveMoney_RuneDecompose:"RuneDecompose",
@@ -4767,7 +4748,7 @@
VIPPrivilege_20,    #20 暮光神庙购买次数
VIPPrivilege_21,    #21 仙界秘境 - 副本总表统一处理
VIPPrivilege_22,    #22 宗门试炼购买次数
VIPPrivilege_FamilyGoldPack,    #23 仙盟钻石红包
VIPPrivilege_23,    #23 仙盟钻石红包
VIPPrivilege_BoursePwd,    #24 集市上架使用密码
VIPPrivilege_25,    #25 封魔坛购买次数 - 副本总表统一处理
VIPPrivilege_26,    #26 VIP被动技能孔——VIP4专属被动技能孔
@@ -4997,7 +4978,7 @@
Def_RewardType_CritGodBoxCTG, #暴击神兵奖励 47
Def_RewardType_GameNotice, #玩法前瞻奖励 48
Def_RewardType_EnterGroup, #加群奖励49
Def_RewardType_ShediaoRedpacket, #射雕红包奖励 50
Def_RewardType_50, #射雕红包奖励 50
Def_RewardType_ShediaoEquip, #射雕装备奖励 51
Def_RewardType_CAAllRecharge, #跨服全民充值奖励 52
Def_RewardType_CrossYaomoBossHurt, #跨服妖魔boss伤害奖励 53
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -9208,91 +9208,6 @@
#------------------------------------------------------
# A6 08  发家族红包 #tagCMSendFamilyRedPacket
class  tagCMSendFamilyRedPacket(Structure):
    Head = tagHead()
    RedPacketID = 0    #(DWORD RedPacketID)// 红包ID,没有发0
    PacketCnt = 0    #(WORD PacketCnt)// 红包数量
    MoneyNum = 0    #(WORD MoneyNum)//金钱数量
    Wish = ""    #(char Wish[33])//祝福语
    IsAnonymous = 0    #(BYTE IsAnonymous)//是否匿名
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA6
        self.Head.SubCmd = 0x08
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.RedPacketID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.PacketCnt,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.MoneyNum,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.Wish,_pos = CommFunc.ReadString(_lpData, _pos,33)
        self.IsAnonymous,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA6
        self.Head.SubCmd = 0x08
        self.RedPacketID = 0
        self.PacketCnt = 0
        self.MoneyNum = 0
        self.Wish = ""
        self.IsAnonymous = 0
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 2
        length += 2
        length += 33
        length += 1
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.RedPacketID)
        data = CommFunc.WriteWORD(data, self.PacketCnt)
        data = CommFunc.WriteWORD(data, self.MoneyNum)
        data = CommFunc.WriteString(data, 33, self.Wish)
        data = CommFunc.WriteBYTE(data, self.IsAnonymous)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                RedPacketID:%d,
                                PacketCnt:%d,
                                MoneyNum:%d,
                                Wish:%s,
                                IsAnonymous:%d
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.RedPacketID,
                                self.PacketCnt,
                                self.MoneyNum,
                                self.Wish,
                                self.IsAnonymous
                                )
        return DumpString
m_NAtagCMSendFamilyRedPacket=tagCMSendFamilyRedPacket()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSendFamilyRedPacket.Head.Cmd,m_NAtagCMSendFamilyRedPacket.Head.SubCmd))] = m_NAtagCMSendFamilyRedPacket
#------------------------------------------------------
# A6 20 搜索家族列表 #tagCMViewFamilyPage
class  tagCMViewFamilyPage(Structure):
@@ -11445,62 +11360,6 @@
m_NAtagCMStartLuckyTreasure=tagCMStartLuckyTreasure()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMStartLuckyTreasure.Cmd,m_NAtagCMStartLuckyTreasure.SubCmd))] = m_NAtagCMStartLuckyTreasure
#------------------------------------------------------
# AB 12 抢红包 #tagCMGrabFamilyRedPacket
class  tagCMGrabFamilyRedPacket(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("RedPaketID", c_int),    # 红包ID
                  ("GetWay", c_ubyte),    #获得途径
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAB
        self.SubCmd = 0x12
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xAB
        self.SubCmd = 0x12
        self.RedPaketID = 0
        self.GetWay = 0
        return
    def GetLength(self):
        return sizeof(tagCMGrabFamilyRedPacket)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AB 12 抢红包 //tagCMGrabFamilyRedPacket:
                                Cmd:%s,
                                SubCmd:%s,
                                RedPaketID:%d,
                                GetWay:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.RedPaketID,
                                self.GetWay
                                )
        return DumpString
m_NAtagCMGrabFamilyRedPacket=tagCMGrabFamilyRedPacket()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGrabFamilyRedPacket.Cmd,m_NAtagCMGrabFamilyRedPacket.SubCmd))] = m_NAtagCMGrabFamilyRedPacket
#------------------------------------------------------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -5768,58 +5768,6 @@
#------------------------------------------------------
# A3 B9 通知玩家今日抢红包次数 #tagMCGrabRedPacketCnt
class  tagMCGrabRedPacketCnt(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("Cnt", c_int),
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA3
        self.SubCmd = 0xB9
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xA3
        self.SubCmd = 0xB9
        self.Cnt = 0
        return
    def GetLength(self):
        return sizeof(tagMCGrabRedPacketCnt)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A3 B9 通知玩家今日抢红包次数 //tagMCGrabRedPacketCnt:
                                Cmd:%s,
                                SubCmd:%s,
                                Cnt:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.Cnt
                                )
        return DumpString
m_NAtagMCGrabRedPacketCnt=tagMCGrabRedPacketCnt()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCGrabRedPacketCnt.Cmd,m_NAtagMCGrabRedPacketCnt.SubCmd))] = m_NAtagMCGrabRedPacketCnt
#------------------------------------------------------
# A3 C7 古宝信息 #tagMCGubaoInfo
class  tagMCGubao(Structure):
@@ -10788,374 +10736,6 @@
#------------------------------------------------------
# A4 05 家族红包抢的信息 #tagGCFamilyRedPacketGrabInfo
class  tagFGrabRedPacketInfo(Structure):
    NameLen = 0    #(BYTE NameLen)
    Name = ""    #(String Name)//名字
    PlayeJob = 0    #(BYTE PlayeJob)//玩家职业
    Face = 0    #(DWORD Face)//基本脸型
    FacePic = 0    #(DWORD FacePic)//头像框
    MoneyNum = 0    #(DWORD MoneyNum)//金钱数量
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
        self.PlayeJob,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.MoneyNum,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
        self.NameLen = 0
        self.Name = ""
        self.PlayeJob = 0
        self.Face = 0
        self.FacePic = 0
        self.MoneyNum = 0
        return
    def GetLength(self):
        length = 0
        length += 1
        length += len(self.Name)
        length += 1
        length += 4
        length += 4
        length += 4
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteBYTE(data, self.NameLen)
        data = CommFunc.WriteString(data, self.NameLen, self.Name)
        data = CommFunc.WriteBYTE(data, self.PlayeJob)
        data = CommFunc.WriteDWORD(data, self.Face)
        data = CommFunc.WriteDWORD(data, self.FacePic)
        data = CommFunc.WriteDWORD(data, self.MoneyNum)
        return data
    def OutputString(self):
        DumpString = '''
                                NameLen:%d,
                                Name:%s,
                                PlayeJob:%d,
                                Face:%d,
                                FacePic:%d,
                                MoneyNum:%d
                                '''\
                                %(
                                self.NameLen,
                                self.Name,
                                self.PlayeJob,
                                self.Face,
                                self.FacePic,
                                self.MoneyNum
                                )
        return DumpString
class  tagGCFamilyRedPacketGrabInfo(Structure):
    Head = tagHead()
    RedPacketID = 0    #(DWORD RedPacketID)//红包唯一ID
    Count = 0    #(BYTE Count)//数量
    GrabInfo = list()    #(vector<tagFGrabRedPacketInfo> GrabInfo)//size = Count
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA4
        self.Head.SubCmd = 0x05
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.RedPacketID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            temGrabInfo = tagFGrabRedPacketInfo()
            _pos = temGrabInfo.ReadData(_lpData, _pos)
            self.GrabInfo.append(temGrabInfo)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA4
        self.Head.SubCmd = 0x05
        self.RedPacketID = 0
        self.Count = 0
        self.GrabInfo = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 1
        for i in range(self.Count):
            length += self.GrabInfo[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.RedPacketID)
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteString(data, self.GrabInfo[i].GetLength(), self.GrabInfo[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                RedPacketID:%d,
                                Count:%d,
                                GrabInfo:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.RedPacketID,
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagGCFamilyRedPacketGrabInfo=tagGCFamilyRedPacketGrabInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFamilyRedPacketGrabInfo.Head.Cmd,m_NAtagGCFamilyRedPacketGrabInfo.Head.SubCmd))] = m_NAtagGCFamilyRedPacketGrabInfo
#------------------------------------------------------
# A4 04 家族红包总信息 #tagGCFamilyRedPacketInfo
class  tagFRedPacketInfo(Structure):
    RedPacketID = 0    #(DWORD RedPacketID)//红包唯一ID
    PlayerID = 0    #(DWORD PlayerID)//玩家ID
    NameLen = 0    #(BYTE NameLen)
    Name = ""    #(String Name)//玩家名字
    Time = 0    #(DWORD Time)//时间
    PlayeJob = 0    #(BYTE PlayeJob)//玩家职业
    Face = 0    #(DWORD Face)//基本脸型
    FacePic = 0    #(DWORD FacePic)//头像框
    MoneyType = 0    #(BYTE MoneyType)//金钱类型
    MoneyNum = 0    #(DWORD MoneyNum)//金钱数量
    GetWay = 0    #(BYTE GetWay)//获得途径
    PacketCnt = 0    #(BYTE PacketCnt)//可抢个数
    State = 0    #(BYTE State)//0未发,1未领取,2已领取,3全部领完
    WishLen = 0    #(BYTE WishLen)
    Wish = ""    #(String Wish)//祝福语
    IsAnonymous = 0    #(BYTE IsAnonymous)//是否匿名
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.RedPacketID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Name,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
        self.Time,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.PlayeJob,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.FacePic,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.MoneyType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.MoneyNum,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.GetWay,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.PacketCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.State,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.WishLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Wish,_pos = CommFunc.ReadString(_lpData, _pos,self.WishLen)
        self.IsAnonymous,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        return _pos
    def Clear(self):
        self.RedPacketID = 0
        self.PlayerID = 0
        self.NameLen = 0
        self.Name = ""
        self.Time = 0
        self.PlayeJob = 0
        self.Face = 0
        self.FacePic = 0
        self.MoneyType = 0
        self.MoneyNum = 0
        self.GetWay = 0
        self.PacketCnt = 0
        self.State = 0
        self.WishLen = 0
        self.Wish = ""
        self.IsAnonymous = 0
        return
    def GetLength(self):
        length = 0
        length += 4
        length += 4
        length += 1
        length += len(self.Name)
        length += 4
        length += 1
        length += 4
        length += 4
        length += 1
        length += 4
        length += 1
        length += 1
        length += 1
        length += 1
        length += len(self.Wish)
        length += 1
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteDWORD(data, self.RedPacketID)
        data = CommFunc.WriteDWORD(data, self.PlayerID)
        data = CommFunc.WriteBYTE(data, self.NameLen)
        data = CommFunc.WriteString(data, self.NameLen, self.Name)
        data = CommFunc.WriteDWORD(data, self.Time)
        data = CommFunc.WriteBYTE(data, self.PlayeJob)
        data = CommFunc.WriteDWORD(data, self.Face)
        data = CommFunc.WriteDWORD(data, self.FacePic)
        data = CommFunc.WriteBYTE(data, self.MoneyType)
        data = CommFunc.WriteDWORD(data, self.MoneyNum)
        data = CommFunc.WriteBYTE(data, self.GetWay)
        data = CommFunc.WriteBYTE(data, self.PacketCnt)
        data = CommFunc.WriteBYTE(data, self.State)
        data = CommFunc.WriteBYTE(data, self.WishLen)
        data = CommFunc.WriteString(data, self.WishLen, self.Wish)
        data = CommFunc.WriteBYTE(data, self.IsAnonymous)
        return data
    def OutputString(self):
        DumpString = '''
                                RedPacketID:%d,
                                PlayerID:%d,
                                NameLen:%d,
                                Name:%s,
                                Time:%d,
                                PlayeJob:%d,
                                Face:%d,
                                FacePic:%d,
                                MoneyType:%d,
                                MoneyNum:%d,
                                GetWay:%d,
                                PacketCnt:%d,
                                State:%d,
                                WishLen:%d,
                                Wish:%s,
                                IsAnonymous:%d
                                '''\
                                %(
                                self.RedPacketID,
                                self.PlayerID,
                                self.NameLen,
                                self.Name,
                                self.Time,
                                self.PlayeJob,
                                self.Face,
                                self.FacePic,
                                self.MoneyType,
                                self.MoneyNum,
                                self.GetWay,
                                self.PacketCnt,
                                self.State,
                                self.WishLen,
                                self.Wish,
                                self.IsAnonymous
                                )
        return DumpString
class  tagGCFamilyRedPacketInfo(Structure):
    Head = tagHead()
    IsAll = 0    #(BYTE IsAll)//是否全部红包
    Count = 0    #(BYTE Count)//红包数量
    RedPacketInfo = list()    #(vector<tagFRedPacketInfo> RedPacketInfo)//size = Count
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA4
        self.Head.SubCmd = 0x04
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.IsAll,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.Count):
            temRedPacketInfo = tagFRedPacketInfo()
            _pos = temRedPacketInfo.ReadData(_lpData, _pos)
            self.RedPacketInfo.append(temRedPacketInfo)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA4
        self.Head.SubCmd = 0x04
        self.IsAll = 0
        self.Count = 0
        self.RedPacketInfo = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        length += 1
        for i in range(self.Count):
            length += self.RedPacketInfo[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.IsAll)
        data = CommFunc.WriteBYTE(data, self.Count)
        for i in range(self.Count):
            data = CommFunc.WriteString(data, self.RedPacketInfo[i].GetLength(), self.RedPacketInfo[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                IsAll:%d,
                                Count:%d,
                                RedPacketInfo:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.IsAll,
                                self.Count,
                                "..."
                                )
        return DumpString
m_NAtagGCFamilyRedPacketInfo=tagGCFamilyRedPacketInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFamilyRedPacketInfo.Head.Cmd,m_NAtagGCFamilyRedPacketInfo.Head.SubCmd))] = m_NAtagGCFamilyRedPacketInfo
#------------------------------------------------------
# A4 06 家族仓库物品信息 #tagGCFamilyStoreItemInfo
class  tagGCFamilyStoreItem(Structure):
@@ -12762,62 +12342,6 @@
m_NAtagMCFamilyPrayInfo=tagMCFamilyPrayInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyPrayInfo.Cmd,m_NAtagMCFamilyPrayInfo.SubCmd))] = m_NAtagMCFamilyPrayInfo
#------------------------------------------------------
# A5 05 通知家族钻石红包已用额度 #tagMCFamilyRedPacketGoldLimit
class  tagMCFamilyRedPacketGoldLimit(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("HasSendGold", c_int),    # 已用额度
                  ("ServerGrabCnt", c_int),    # 全服红包已抢次数
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xA5
        self.SubCmd = 0x05
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xA5
        self.SubCmd = 0x05
        self.HasSendGold = 0
        self.ServerGrabCnt = 0
        return
    def GetLength(self):
        return sizeof(tagMCFamilyRedPacketGoldLimit)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// A5 05 通知家族钻石红包已用额度 //tagMCFamilyRedPacketGoldLimit:
                                Cmd:%s,
                                SubCmd:%s,
                                HasSendGold:%d,
                                ServerGrabCnt:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.HasSendGold,
                                self.ServerGrabCnt
                                )
        return DumpString
m_NAtagMCFamilyRedPacketGoldLimit=tagMCFamilyRedPacketGoldLimit()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFamilyRedPacketGoldLimit.Cmd,m_NAtagMCFamilyRedPacketGoldLimit.SubCmd))] = m_NAtagMCFamilyRedPacketGoldLimit
#------------------------------------------------------
@@ -18359,169 +17883,6 @@
m_NAtagGCRealmFBHelpInfo=tagGCRealmFBHelpInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCRealmFBHelpInfo.Head.Cmd,m_NAtagGCRealmFBHelpInfo.Head.SubCmd))] = m_NAtagGCRealmFBHelpInfo
#------------------------------------------------------
# A9 A7 通知可抢的红包信息 #tagGCGrabRedPacketInfo
class  tagGCGrabRedPacketInfo(Structure):
    Head = tagHead()
    RedPacketCnt = 0    #(DWORD RedPacketCnt)//可抢红包个数
    StrLen = 0    #(WORD StrLen)//字符串长度
    OwnerName = ""    #(String OwnerName)//红包主人名字
    RedPacketID = 0    #(DWORD RedPacketID)//可抢红包ID
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0xA7
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.RedPacketCnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.StrLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.OwnerName,_pos = CommFunc.ReadString(_lpData, _pos,self.StrLen)
        self.RedPacketID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0xA7
        self.RedPacketCnt = 0
        self.StrLen = 0
        self.OwnerName = ""
        self.RedPacketID = 0
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 2
        length += len(self.OwnerName)
        length += 4
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.RedPacketCnt)
        data = CommFunc.WriteWORD(data, self.StrLen)
        data = CommFunc.WriteString(data, self.StrLen, self.OwnerName)
        data = CommFunc.WriteDWORD(data, self.RedPacketID)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                RedPacketCnt:%d,
                                StrLen:%d,
                                OwnerName:%s,
                                RedPacketID:%d
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.RedPacketCnt,
                                self.StrLen,
                                self.OwnerName,
                                self.RedPacketID
                                )
        return DumpString
m_NAtagGCGrabRedPacketInfo=tagGCGrabRedPacketInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCGrabRedPacketInfo.Head.Cmd,m_NAtagGCGrabRedPacketInfo.Head.SubCmd))] = m_NAtagGCGrabRedPacketInfo
#------------------------------------------------------
# A9 A6 通知抢红包结果 #tagGCGrabRedPacketResult
class  tagGCGrabRedPacketResult(Structure):
    Head = tagHead()
    StrLen = 0    #(WORD StrLen)//字符串长度
    OwnerName = ""    #(String OwnerName)//红包主人名字
    TotalMoney = 0    #(DWORD TotalMoney)//红包总额
    DataSize = 0    #(DWORD DataSize)
    GrabInfo = ""    #(String GrabInfo)//抢红包具体结果
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0xA6
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.StrLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.OwnerName,_pos = CommFunc.ReadString(_lpData, _pos,self.StrLen)
        self.TotalMoney,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.DataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        self.GrabInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.DataSize)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xA9
        self.Head.SubCmd = 0xA6
        self.StrLen = 0
        self.OwnerName = ""
        self.TotalMoney = 0
        self.DataSize = 0
        self.GrabInfo = ""
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 2
        length += len(self.OwnerName)
        length += 4
        length += 4
        length += len(self.GrabInfo)
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteWORD(data, self.StrLen)
        data = CommFunc.WriteString(data, self.StrLen, self.OwnerName)
        data = CommFunc.WriteDWORD(data, self.TotalMoney)
        data = CommFunc.WriteDWORD(data, self.DataSize)
        data = CommFunc.WriteString(data, self.DataSize, self.GrabInfo)
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                StrLen:%d,
                                OwnerName:%s,
                                TotalMoney:%d,
                                DataSize:%d,
                                GrabInfo:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.StrLen,
                                self.OwnerName,
                                self.TotalMoney,
                                self.DataSize,
                                self.GrabInfo
                                )
        return DumpString
m_NAtagGCGrabRedPacketResult=tagGCGrabRedPacketResult()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCGrabRedPacketResult.Head.Cmd,m_NAtagGCGrabRedPacketResult.Head.SubCmd))] = m_NAtagGCGrabRedPacketResult
#------------------------------------------------------
@@ -32623,62 +31984,6 @@
#------------------------------------------------------
# AB 25 节日红包信息 #tagMCFeastRedPackInfo
class  tagMCFeastRedPackInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("MoneyNum", c_int),    # 累积抢到多少钱
                  ("GrabCnt", c_ushort),    # 已抢红包次数
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAB
        self.SubCmd = 0x25
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xAB
        self.SubCmd = 0x25
        self.MoneyNum = 0
        self.GrabCnt = 0
        return
    def GetLength(self):
        return sizeof(tagMCFeastRedPackInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AB 25 节日红包信息 //tagMCFeastRedPackInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                MoneyNum:%d,
                                GrabCnt:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.MoneyNum,
                                self.GrabCnt
                                )
        return DumpString
m_NAtagMCFeastRedPackInfo=tagMCFeastRedPackInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastRedPackInfo.Cmd,m_NAtagMCFeastRedPackInfo.SubCmd))] = m_NAtagMCFeastRedPackInfo
#------------------------------------------------------
# AB 17 开服活动奖励状态 #tagMCOpenServerCampaignAwardList
class  tagMCOpenServerCampaignAward(Structure):
@@ -32796,66 +32101,6 @@
m_NAtagMCOpenServerCampaignAwardList=tagMCOpenServerCampaignAwardList()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOpenServerCampaignAwardList.Head.Cmd,m_NAtagMCOpenServerCampaignAwardList.Head.SubCmd))] = m_NAtagMCOpenServerCampaignAwardList
#------------------------------------------------------
# AB 24 开服红包信息 #tagMCOpenServerRedPacketInfo
class  tagMCOpenServerRedPacketInfo(Structure):
    _pack_ = 1
    _fields_ = [
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("MoneyNum", c_int),    # 累积抢到多少钱
                  ("GrabCnt", c_ushort),    # 已抢红包次数
                  ("StartTime", c_int),    # 开始倒计时时间
                  ]
    def __init__(self):
        self.Clear()
        self.Cmd = 0xAB
        self.SubCmd = 0x24
        return
    def ReadData(self, stringData, _pos=0, _len=0):
        self.Clear()
        memmove(addressof(self), stringData[_pos:], self.GetLength())
        return _pos + self.GetLength()
    def Clear(self):
        self.Cmd = 0xAB
        self.SubCmd = 0x24
        self.MoneyNum = 0
        self.GrabCnt = 0
        self.StartTime = 0
        return
    def GetLength(self):
        return sizeof(tagMCOpenServerRedPacketInfo)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AB 24 开服红包信息 //tagMCOpenServerRedPacketInfo:
                                Cmd:%s,
                                SubCmd:%s,
                                MoneyNum:%d,
                                GrabCnt:%d,
                                StartTime:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.MoneyNum,
                                self.GrabCnt,
                                self.StartTime
                                )
        return DumpString
m_NAtagMCOpenServerRedPacketInfo=tagMCOpenServerRedPacketInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCOpenServerRedPacketInfo.Cmd,m_NAtagMCOpenServerRedPacketInfo.SubCmd))] = m_NAtagMCOpenServerRedPacketInfo
#------------------------------------------------------
@@ -33269,151 +32514,6 @@
#------------------------------------------------------
# AC 11 节日红包活动信息 #tagGCFeastRedPacketInfo
class  tagGCFeastRedPacketDay(Structure):
    RedPacketCount = 0    #(BYTE RedPacketCount)
    RedPacketIDList = list()    #(vector<WORD> RedPacketIDList)// 当日定时发放的系统红包表ID列表
    data = None
    def __init__(self):
        self.Clear()
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        self.RedPacketCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.RedPacketCount):
            value,_pos=CommFunc.ReadWORD(_lpData,_pos)
            self.RedPacketIDList.append(value)
        return _pos
    def Clear(self):
        self.RedPacketCount = 0
        self.RedPacketIDList = list()
        return
    def GetLength(self):
        length = 0
        length += 1
        length += 2 * self.RedPacketCount
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteBYTE(data, self.RedPacketCount)
        for i in range(self.RedPacketCount):
            data = CommFunc.WriteWORD(data, self.RedPacketIDList[i])
        return data
    def OutputString(self):
        DumpString = '''
                                RedPacketCount:%d,
                                RedPacketIDList:%s
                                '''\
                                %(
                                self.RedPacketCount,
                                "..."
                                )
        return DumpString
class  tagGCFeastRedPacketInfo(Structure):
    Head = tagHead()
    StartDate = ""    #(char StartDate[10])// 开始日期 y-m-d
    EndtDate = ""    #(char EndtDate[10])// 结束日期 y-m-d
    LimitLV = 0    #(WORD LimitLV)// 限制等级
    ResetType = 0    #(BYTE ResetType)// 重置类型 0-0点重置 1-5点重置
    RedPacketDays = 0    #(BYTE RedPacketDays)
    RedPacketDayList = list()    #(vector<tagGCFeastRedPacketDay> RedPacketDayList)// 每日系统红包信息
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAC
        self.Head.SubCmd = 0x11
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
        self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
        self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
        self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        self.RedPacketDays,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.RedPacketDays):
            temRedPacketDayList = tagGCFeastRedPacketDay()
            _pos = temRedPacketDayList.ReadData(_lpData, _pos)
            self.RedPacketDayList.append(temRedPacketDayList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAC
        self.Head.SubCmd = 0x11
        self.StartDate = ""
        self.EndtDate = ""
        self.LimitLV = 0
        self.ResetType = 0
        self.RedPacketDays = 0
        self.RedPacketDayList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 10
        length += 10
        length += 2
        length += 1
        length += 1
        for i in range(self.RedPacketDays):
            length += self.RedPacketDayList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteString(data, 10, self.StartDate)
        data = CommFunc.WriteString(data, 10, self.EndtDate)
        data = CommFunc.WriteWORD(data, self.LimitLV)
        data = CommFunc.WriteBYTE(data, self.ResetType)
        data = CommFunc.WriteBYTE(data, self.RedPacketDays)
        for i in range(self.RedPacketDays):
            data = CommFunc.WriteString(data, self.RedPacketDayList[i].GetLength(), self.RedPacketDayList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                StartDate:%s,
                                EndtDate:%s,
                                LimitLV:%d,
                                ResetType:%d,
                                RedPacketDays:%d,
                                RedPacketDayList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.StartDate,
                                self.EndtDate,
                                self.LimitLV,
                                self.ResetType,
                                self.RedPacketDays,
                                "..."
                                )
        return DumpString
m_NAtagGCFeastRedPacketInfo=tagGCFeastRedPacketInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCFeastRedPacketInfo.Head.Cmd,m_NAtagGCFeastRedPacketInfo.Head.SubCmd))] = m_NAtagGCFeastRedPacketInfo
#------------------------------------------------------
# AC 06 多倍经验活动信息 #tagGCMultiExpRateInfo
class  tagGCMultiExpRateTime(Structure):
@@ -33638,73 +32738,6 @@
m_NAtagGCMultiRealmPointInfo=tagGCMultiRealmPointInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCMultiRealmPointInfo.Head.Cmd,m_NAtagGCMultiRealmPointInfo.Head.SubCmd))] = m_NAtagGCMultiRealmPointInfo
#------------------------------------------------------
# AC 05 红包删除 #tagGCRedPacketDel
class  tagGCRedPacketDel(Structure):
    Head = tagHead()
    Cnt = 0    #(DWORD Cnt)// 个数
    DelRedPacketID = list()    #(vector<DWORD> DelRedPacketID)// 红包ID
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAC
        self.Head.SubCmd = 0x05
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.Cnt,_pos = CommFunc.ReadDWORD(_lpData, _pos)
        for i in range(self.Cnt):
            value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
            self.DelRedPacketID.append(value)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAC
        self.Head.SubCmd = 0x05
        self.Cnt = 0
        self.DelRedPacketID = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 4
        length += 4 * self.Cnt
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteDWORD(data, self.Cnt)
        for i in range(self.Cnt):
            data = CommFunc.WriteDWORD(data, self.DelRedPacketID[i])
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                Cnt:%d,
                                DelRedPacketID:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.Cnt,
                                "..."
                                )
        return DumpString
m_NAtagGCRedPacketDel=tagGCRedPacketDel()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCRedPacketDel.Head.Cmd,m_NAtagGCRedPacketDel.Head.SubCmd))] = m_NAtagGCRedPacketDel
#------------------------------------------------------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/CreatFamilyRedPack.py
File was deleted
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetRedPacket.py
File was deleted
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py
@@ -20,13 +20,10 @@
import GameWorldProcess
import CrossRealmPlayer
import DataRecordPack
import IpyGameDataPY
import PlayerSuccess
import ReadChConfig
import ShareDefine
import PyGameData
import FBCommon
import GameMap
import GameObj
import random
@@ -551,8 +548,6 @@
        
    #注册玩家离开副本时间
    gameFBMgr.SetPlayerLogoffTick(0)
    PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_FeastRedPack_EnterMap, 1, [gameMapID])
    
    if gameFBMgr.HaveFBPlayer(curPlayerID):
        #已经注册了这个玩家, 不清除已注册的玩家的字典信息
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -1230,19 +1230,6 @@
                        ("list", "PersonFirstKillAward", 0),
                        ),
                "FamilyRedPack":(
                        ("WORD", "ID", 1),
                        ("WORD", "GetType", 0),
                        ("WORD", "MoneyNum", 0),
                        ("BYTE", "MoneyType", 0),
                        ("BYTE", "PacketCnt", 0),
                        ),
                "ActFeastRedPacketSucc":(
                        ("BYTE", "FeastDay", 1),
                        ("list", "FeastSuccIDList", 0),
                        ),
                "NPCShow":(
                        ("DWORD", "NPCID", 1),
                        ("DWORD", "MapID", 1),
@@ -4201,29 +4188,6 @@
    def GetPerPlayerMoneyAward(self): return self.attrTuple[1] #  首杀全服玩家奖励灵石额度/人 WORD
    def GetPersonFirstKillAward(self): return self.attrTuple[2] #  个人首次击杀奖励 [[物品ID,个数,是否拍品], ...] list
# 仙盟红包表
class IPY_FamilyRedPack():
    def __init__(self):
        self.attrTuple = None
        return
    def GetID(self): return self.attrTuple[0] # ID WORD
    def GetGetType(self): return self.attrTuple[1] # 获得途径 WORD
    def GetMoneyNum(self): return self.attrTuple[2] # 红包额度 WORD
    def GetMoneyType(self): return self.attrTuple[3] # 金钱类型 BYTE
    def GetPacketCnt(self): return self.attrTuple[4] # 红包个数 BYTE
# 节日红包每日成就表
class IPY_ActFeastRedPacketSucc():
    def __init__(self):
        self.attrTuple = None
        return
    def GetFeastDay(self): return self.attrTuple[0] # 节日第几天 BYTE
    def GetFeastSuccIDList(self): return self.attrTuple[1] # 节日成就ID列表 list
# NPC秀表
class IPY_NPCShow():
    
@@ -6307,8 +6271,6 @@
        self.__LoadFileData("DailyLivenessReward", onlyCheck)
        self.__LoadFileData("BOSSInfo", onlyCheck)
        self.__LoadFileData("BOSSFirstKill", onlyCheck)
        self.__LoadFileData("FamilyRedPack", onlyCheck)
        self.__LoadFileData("ActFeastRedPacketSucc", onlyCheck)
        self.__LoadFileData("NPCShow", onlyCheck)
        self.__LoadFileData("MapRefreshNPC", onlyCheck)
        self.__LoadFileData("RuneCompound", onlyCheck)
@@ -7414,20 +7376,6 @@
    def GetBOSSFirstKillByIndex(self, index):
        self.CheckLoadData("BOSSFirstKill")
        return self.ipyBOSSFirstKillCache[index]
    def GetFamilyRedPackCount(self):
        self.CheckLoadData("FamilyRedPack")
        return self.ipyFamilyRedPackLen
    def GetFamilyRedPackByIndex(self, index):
        self.CheckLoadData("FamilyRedPack")
        return self.ipyFamilyRedPackCache[index]
    def GetActFeastRedPacketSuccCount(self):
        self.CheckLoadData("ActFeastRedPacketSucc")
        return self.ipyActFeastRedPacketSuccLen
    def GetActFeastRedPacketSuccByIndex(self, index):
        self.CheckLoadData("ActFeastRedPacketSucc")
        return self.ipyActFeastRedPacketSuccCache[index]
    def GetNPCShowCount(self):
        self.CheckLoadData("NPCShow")
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
@@ -3133,7 +3133,6 @@
        else:
            if GetNPCLV(curNPC) >= curPlayer.GetLV() - IpyGameDataPY.GetFuncCfg('DailyQuestKillMonster'):
                PlayerActTask.AddActTaskValue(curPlayer, ChConfig.ActTaskType_KillNPC)
            PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_FeastRedPack_KillSpecificNPC, 1, [npcID])
        #PlayerPrestigeSys.AddRealmTaskValue(curPlayer, PlayerPrestigeSys.RealmTaskType_KillNPC, 1)
        
        if ChConfig.IsGameBoss(curNPC):
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -62,7 +62,6 @@
import PlayerActLogin
import PlayerTreasure
import PlayerRune
import PlayerFamilyRedPacket
import IpyGameDataPY
import EventReport
import OpenServerCampaign
@@ -85,7 +84,6 @@
import PlayerSpringSale
import GY_Query_BossFirstKill
import PlayerCrossYaomoBoss
import PlayerFeastRedPacket
import PlayerLuckyCloudBuy
import PlayerLuckyTreasure
import Item_ResetAttrPoint
@@ -624,9 +622,6 @@
    ChItem.Sync_ItemDayUseCnt(curPlayer)
    # 符印登录通知
    PlayerRune.PlayerRuneLogin(curPlayer)
    # 仙盟红包登录通知
    PlayerFamilyRedPacket.OnPlayerLogin(curPlayer)
    PlayerFeastRedPacket.DoPlayerOnLogin(curPlayer)
    # 商店物品购买次数登录通知
    FunctionNPCCommon.ShopItemOnLogin(curPlayer)
    # 通知设置的被动功法
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/OpenServerCampaign.py
@@ -24,7 +24,6 @@
import PlayerControl
import IpyGameDataPY
import PlayerBillboard
import PlayerFamilyRedPacket
import ItemCommon
(
@@ -278,55 +277,6 @@
def DoGiveOSCBillAward(curPlayer, awardResultList):
    ## 给排行奖励
    return
#    campTypeList, isEndMail, queryResultList = awardResultList
#    if len(campTypeList) != len(queryResultList):
#        return
#
#    job = str(curPlayer.GetJob())
#    for i, campaignType in enumerate(campTypeList):
#        billAwardRecord = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSC_BillAwardRecord)
#        if billAwardRecord & pow(2, campaignType):
#            GameWorld.DebugLog("    已经领取过该排行活动奖励, campaignType=%s" % (campaignType), curPlayer.GetPlayerID())
#            continue
#
#        order = queryResultList[i]
#        billAwardInfo = None
#        billRankAwardIpyList = IpyGameDataPY.GetIpyGameDataList("OSCBillRankAward", campaignType)
#        if not billRankAwardIpyList:
#            continue
#        for billRankIpyData in billRankAwardIpyList:
#            if (billRankIpyData.GetRankA() <= order <= billRankIpyData.GetRankB()) \
#                or (not billRankIpyData.GetRankB() and billRankIpyData.GetRankA() == order):
#                billAwardInfo = billRankIpyData.GetRankAward()
#                break
#
#        if not billAwardInfo:
#            GameWorld.DebugLog("    玩家名次没有奖励!campaignType=%s,order=%s" % (campaignType, order), curPlayer.GetPlayerID())
#            continue
#
#        billAwardDict = billAwardInfo
#        if job not in billAwardDict:
#            GameWorld.ErrLog("没有配置该职业对应的开服活动榜单奖励!campaignType=%s,job=%s" % (campaignType, job))
#            continue
#        awardItemList = billAwardDict[job]
#
#        updBillAwardRecord = billAwardRecord|pow(2, campaignType)
#        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSC_BillAwardRecord, updBillAwardRecord)
#        GameWorld.DebugLog("    发放活动榜单奖励,campaignType=%s,order=%s,awardItemList=%s,updBillAwardRecord=%s"
#                           % (campaignType, order, awardItemList, updBillAwardRecord), curPlayer.GetPlayerID())
#
#        drDict = {"CampaignType":campaignType, "Order":order}
#        mailTypeKey = "OSCBillAward%s" % campaignType
#        mailParamList = [order]
#        __DoGiveOSCAwardItem(curPlayer, awardItemList, drDict, isEndMail, mailTypeKey, mailParamList)
#        #红包奖励
#        redPacketIDDict = IpyGameDataPY.GetFuncEvalCfg('OSCRankRedpackAward', 1, {})
#        redPacketID = GameWorld.GetDictValueByRangeKey(redPacketIDDict, order, 0)
#        if redPacketID:
#            PlayerFamilyRedPacket.CreatRedPacketByID(curPlayer, redPacketID)
#        #if not isEndMail:
#        Sync_OpenServerCampaignAward(curPlayer, campaignType)
#    return
def __DoGiveOSCAwardItem(curPlayer, giveItemList, drDict, isEndMail, mailTypeKey, mailParamList):
    ## 给开服活动奖励 [[itemID, itemCount], ...], 默认绑定
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
@@ -50,11 +50,9 @@
import PlayerActManyDayRecharge
import PlayerActSingleRecharge
import PlayerActRechargePrize
import PlayerFamilyRedPacket
import CrossActCTGBillboard
import CrossActAllRecharge
import PlayerActGrowupBuy
import OpenServerCampaign
import PlayerFeastTravel
import PlayerWeekParty
import PlayerGoldInvest
@@ -769,8 +767,6 @@
        #跨服全民充值
        CrossActAllRecharge.AddCTGRMB(curPlayer, orderCoin)
        PlayerActManyDayRecharge.AddManyDayRechargeValue(curPlayer, orderCoin) # 多日连充
        #红包, 需要真实充值
        PlayerFamilyRedPacket.OnPlayerRecharge(curPlayer, orderCoin)
        
    # 只算充仙玉的
    if coinType == ChConfig.CoinType_Gold:
@@ -780,8 +776,6 @@
    PlayerActTotalRecharge.AddTotalRechargeGold(curPlayer, orderCoin, coinType)
    PlayerActSingleRecharge.UpdSingleRechargeValue(curPlayer, orderCoin, coinType) # 单笔累充
    PlayerActTurntable.OnPlayerRecharge(curPlayer, orderCoin, coinType) # 转盘
    #开服活动
    #OpenServerCampaign.AddOpenServerCampaignRecordData(curPlayer, ShareDefine.Def_Campaign_Type_Recharge, orderCoin)
    PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Recharge, addVIPExp)
    PlayerFeastTravel.AddFeastTravelTaskValue(curPlayer, ChConfig.Def_FeastTravel_CTGExp, addVIPExp)
    #投资
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCrossRealmPK.py
@@ -356,7 +356,6 @@
            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CrossPK_TodayWinCount, todayWinCount)
            GameWorld.Log("    增加今日已获胜次数: todayWinCount=%s" % todayWinCount, playerID)
        PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_CrossPK, 1)
        PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_FeastRedPack_CrossPK, 1)
        PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_CrossPK, 1)
        PlayerTongTianLing.AddTongTianTaskValue(curPlayer, ChConfig.TTLTaskType_CrossPK, 1)
    else:
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
@@ -41,8 +41,6 @@
import PlayerGoldInvest
import PlayerCrossRealmPK
import PlayerCrossChampionship
import PlayerPet
import PlayerFamilyRedPacket
import OpenServerCampaign
import PlayerCostRebate
import CrossActCTGBillboard
@@ -76,7 +74,6 @@
import PlayerFlashGiftbag
import PlayerDailyGiftbag
import PlayerOfflineSupport
import PlayerFeastRedPacket
import PlayerLuckyCloudBuy
import PlayerLuckyTreasure
import PlayerTongTianLing
@@ -257,9 +254,6 @@
        #清空每日事件奖励
        curPlayer.SetDayProcessGameEventCount(0)
        
        #重置宠物每天的训练次数
        #PlayerPet.DoLogic_PetInfo_OnDay(curPlayer)
        #OnDay时清除每日签到的信息
        PlayerSignDay.SignDayOnDay(curPlayer)
        # 累计登陆礼包登陆次数刷新
@@ -313,9 +307,6 @@
        
    # 商店物品购买兑换OnDay
    FunctionNPCCommon.ShopItemOnDay(curPlayer, onEventType)
    # 仙盟红包OnDay
    PlayerFamilyRedPacket.RedPacketOnDay(curPlayer, onEventType)
    #许愿池
    PlayerWishingWell.OnDay(curPlayer)
    #通天令
@@ -980,9 +971,6 @@
                
            elif actionName == ShareDefine.OperationActionName_FeastWeekParty:
                PlayerFeastWeekParty.RefreshOperationAction_FeastWeekParty()
            elif actionName == ShareDefine.OperationActionName_FeastRedPacket:
                PlayerFeastRedPacket.RefreshOperationAction_FeastRedPacket()
                
            elif actionName == ShareDefine.OperationActionName_LuckyTreasure:
                PlayerLuckyTreasure.RefreshLuckyTreasureAction()
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFB.py
@@ -88,8 +88,6 @@
        GameWorld.DebugLog("该副本当前无法扫荡!mapID=%s, lineID=%s" % (mapID, lineID))
        return
    
    #PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_FeastRedPack_FBSweep, 1, [mapID])
    #需先扣除门票, 再增加次数, 否则可能导致扣除的数量错误
    #FBCommon.DelFBEnterTicket(curPlayer, mapID, lineID, cnt)
    
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamilyRedPacket.py
File was deleted
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFeastRedPacket.py
File was deleted
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldInvest.py
@@ -20,7 +20,6 @@
import NetPackCommon
import DataRecordPack
import ChPyNetSendPack
import PlayerFamilyRedPacket
import ItemControler
import PlayerControl
import IPY_GameWorld
@@ -173,11 +172,6 @@
    # 登录卡,投资当天可领奖,完成设置为1
    if investType == ChConfig.InvestType_Login:
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_InvestProgress % (investType, 0), 1)
    # 投资红包
    redPacketID = IpyGameDataPY.GetFuncEvalCfg("InvestRedPackAward", 1, {}).get(investType, 0)
    if redPacketID:
        PlayerFamilyRedPacket.CreatRedPacketByID(curPlayer, redPacketID)
        
    # 额外奖励物品
    awardItemDict = IpyGameDataPY.GetFuncEvalCfg("InvestCost", 5, {})
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py
@@ -27,15 +27,12 @@
import IPY_GameWorld
import PlayerControl
import ItemControler
import PlayerFamilyRedPacket
import IpyGameDataPY
import PyGameData
import EventReport
import datetime
import time
import math
import PlayerFeastRedPacket
import DataRecordPack
@@ -458,9 +455,9 @@
def UptateSuccessProgress(curPlayer, successType, newCnt, condition=[]):
    if successType not in ShareDefine.SuccessTypeList:
        return
    if successType in ShareDefine.FeastRedPackSuccessTypeList:
        if not PlayerFeastRedPacket.GetFeastRedPacketState():
            return
    #if successType in ShareDefine.FeastRedPackSuccessTypeList:
    #    if not PlayerFeastRedPacket.GetFeastRedPacketState():
    #        return
    succInfoList = GetSuccDataMng().GetSuccDataByType(successType)
    if not succInfoList:
        GameWorld.DebugLog("    找不到成就数据successType=%s" % successType)
@@ -483,11 +480,11 @@
    succID = succDataObj.succID
    cond = succDataObj.condition
    
    if successType in ShareDefine.FeastRedPackSuccessTypeList:
        todayFeastSuccIDList = PlayerFeastRedPacket.GetTodayFeastSuccIDList()
        if not todayFeastSuccIDList or succID not in todayFeastSuccIDList:
            #GameWorld.DebugLog("    非今日节日红包成就,不增加进度! succID=%s,todayFeastSuccIDList=%s" % (succID, todayFeastSuccIDList))
            return
    #if successType in ShareDefine.FeastRedPackSuccessTypeList:
    #    todayFeastSuccIDList = PlayerFeastRedPacket.GetTodayFeastSuccIDList()
    #    if not todayFeastSuccIDList or succID not in todayFeastSuccIDList:
    #        #GameWorld.DebugLog("    非今日节日红包成就,不增加进度! succID=%s,todayFeastSuccIDList=%s" % (succID, todayFeastSuccIDList))
    #        return
    isUnDownCheck = successType in ShareDefine.UnDownCheckSuccessTypeList
    isContain = successType in ShareDefine.ContainSuccessTypeList
    # 已完成的不再检查
@@ -568,10 +565,10 @@
    if GameWorld.IsCrossServer():
        return
    
    if successType in ShareDefine.FeastRedPackSuccessTypeList:
        if not PlayerFeastRedPacket.GetFeastRedPacketState():
            #GameWorld.DebugLog("非节日红包活动时间,不增加成就!successType=%s" % successType)
            return
    #if successType in ShareDefine.FeastRedPackSuccessTypeList:
    #    if not PlayerFeastRedPacket.GetFeastRedPacketState():
    #        #GameWorld.DebugLog("非节日红包活动时间,不增加成就!successType=%s" % successType)
    #        return
        
    playerID = curPlayer.GetID()
    if delayCalc and successType not in ShareDefine.NeedResetSuccessTypeList:
@@ -933,8 +930,8 @@
    if succData.attrDict:
        RefreshSuccessAttr(curPlayer)
    #发红包
    if succData.redPacketID:
        PlayerFamilyRedPacket.CreatRedPacketByID(curPlayer, succData.redPacketID, PlayerFamilyRedPacket.State_NoGot, succID)
    #if succData.redPacketID:
    #    PlayerFamilyRedPacket.CreatRedPacketByID(curPlayer, succData.redPacketID, PlayerFamilyRedPacket.State_NoGot, succID)
    GameWorld.DebugLog("    OK! awardItemDict=%s moneyDict=%s" % (itemDict, succData.moneyDict))
    ItemControler.NotifyGiveAwardInfo(curPlayer, giveItemList, "SuccessAward", exp=succData.exp, moneyInfo=succData.moneyDict)
    return itemDict
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GrabFamilyRedPacketResult.py
File was deleted
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -274,7 +274,6 @@
Def_Notify_WorldKey_FamilyKillHorsePetRobBossCnt = 'FamilyKillHorsePetRobBossCnt'   # 仙盟击杀骑宠boss数统计
Def_Notify_WorldKey_HorsePetRobBossPlayerCount = 'HorsePetRobBossPlayerCount'   # 骑宠争夺活动有效参考人数
Def_Notify_WorldKey_RedPacketOutput = 'RedPacketOutput'  # 红包产出信息
Def_Notify_WorldKey_HurtLog = 'HurtLog'  # 战斗伤害日志
Def_Notify_WorldKey_AssistBoss = "AssistBoss"  # 协助boss
@@ -304,7 +303,6 @@
OperationActionName_WeekParty = "ActWeekParty" # 周狂欢活动
OperationActionName_LoginAward = "ActLoginAward" # 登录奖励活动
OperationActionName_FeastWeekParty = "ActFeastWeekParty" # 节日巡礼狂欢活动
OperationActionName_FeastRedPacket = "ActFeastRedPacket" # 节日红包活动
OperationActionName_CollectWords = "ActCollectWords" # 集字活动
OperationActionName_LuckyTreasure = "ActLuckyTreasure" # 幸运鉴宝活动
OperationActionName_RechargePrize = "ActRechargePrize" # 充值返利活动(节日活动)
@@ -325,7 +323,7 @@
OperationActionName_Yunshi = "ActYunshi" # 运势活动
OperationActionName_Lunhuidian = "ActLunhuidian" # 轮回殿活动
#节日活动类型列表 - 该类型无视开服天,日期到了就开启
FeastOperationActionNameList = [OperationActionName_FeastWeekParty, OperationActionName_FeastRedPacket,
FeastOperationActionNameList = [OperationActionName_FeastWeekParty,
                                OperationActionName_RechargeRebateGold, OperationActionName_GrowupBuy,
                                OperationActionName_FeastLogin,
                                OperationActionName_FeastWish, OperationActionName_FeastTravel,
@@ -978,7 +976,7 @@
                                Def_UniversalGameRecType_CrossBattleChampionGroup, # 跨服战场冠军赛分组信息 38
                                Def_UniversalGameRecType_CrossYaomoBossHurtInfo, # 跨服妖魔boss伤血信息 39
                                Def_UniversalGameRecType_40,
                                Def_UniversalGameRecType_RedPacketRecord,   # 红包产出结果记录41
                                Def_UniversalGameRecType_41,   # 红包产出结果记录41
                                Def_UniversalGameRecType_42,
                                Def_UniversalGameRecType_43,
                                Def_UniversalGameRecType_44,
@@ -994,15 +992,15 @@
                                Def_UniversalGameRecType_54,
                                Def_UniversalGameRecType_55,
                                Def_UniversalGameRecType_56,
                                Def_UniversalGameRecType_GrabRedAllRecord, # 抢红包总记录57
                                Def_UniversalGameRecType_GrabRedNewRecord, # 抢红包可抢信息记录58
                                Def_UniversalGameRecType_GrabRedOldRecord, # 抢红包已抢完信息记录59
                                Def_UniversalGameRecType_57, # 抢红包总记录57
                                Def_UniversalGameRecType_58, # 抢红包可抢信息记录58
                                Def_UniversalGameRecType_59, # 抢红包已抢完信息记录59
                                Def_UniversalGameRecType_60,
                                Def_UniversalGameRecType_61,
                                Def_UniversalGameRecType_62,
                                Def_UniversalGameRecType_63,
                                Def_UniversalGameRecType_FamilyRedPacketAllRecord, # 仙盟红包总记录64
                                Def_UniversalGameRecType_FamilyRedPacketGrabRecord, # 仙盟红包已抢信息记录65
                                Def_UniversalGameRecType_64, # 仙盟红包总记录64
                                Def_UniversalGameRecType_65, # 仙盟红包已抢信息记录65
                                Def_UniversalGameRecType_DujieHelpAllRecord, # 渡劫副本护法总记录66
                                Def_UniversalGameRecType_DujieHelpRecord, # 渡劫副本护法详细记录67
                                Def_UniversalGameRecType_FamilyWarBattle, # 仙盟联赛对战表68
@@ -1592,15 +1590,15 @@
SuccType_Collect, #采集X物品X次131
SuccType_InlayGatherSoul, #镶嵌X枚X品质聚魂(不包含核心)132
SuccType_GatherSoulLvUp, #累计聚魂总等级XX(不包含核心)133
SuccType_FeastRedPack_TalkWorld, #节日红包 - 世界频道发言 x次 134
SuccType_FeastRedPack_Pray, # 节日红包 - 祈祷x次 135
SuccType_FeastRedPack_KillSpecificNPC, # 节日红包 - 击杀特定NPC x次 136
SuccType_FeastRedPack_KillBoss, # 节日红包 - 指定类型boss x次 137
SuccType_FeastRedPack_EnterMap, # 节日红包 - 进入指定地图 x次  138
SuccType_FeastRedPack_TaskCRun, # 节日红包 - 完成x次日常环任务成就 139
SuccType_FeastRedPack_Dice, # 节日红包 - 天机摇骰子x次  140
SuccType_FeastRedPack_CrossPK, # 节日红包 - 跨服PK x次  141
SuccType_FeastRedPack_FBSweep, # 节日红包 - 副本扫荡 x次  142
SuccType_134, #节日红包 - 世界频道发言 x次 134
SuccType_135, # 节日红包 - 祈祷x次 135
SuccType_136, # 节日红包 - 击杀特定NPC x次 136
SuccType_137, # 节日红包 - 指定类型boss x次 137
SuccType_138, # 节日红包 - 进入指定地图 x次  138
SuccType_139, # 节日红包 - 完成x次日常环任务成就 139
SuccType_140, # 节日红包 - 天机摇骰子x次  140
SuccType_141, # 节日红包 - 跨服PK x次  141
SuccType_142, # 节日红包 - 副本扫荡 x次  142
SuccType_PassSkyTower, #通关天星塔 143
SuccType_Battlefield_Join, # 古神战场 - 参与 x次  144
SuccType_Battlefield_CallOpen, # 古神战场 - 召集开启 x次  145
@@ -1644,9 +1642,6 @@
SuccType_MineAreaRobCnt, #采集他人福地x次数 183
) = range(1, 184)
# 节日红包成就类型
FeastRedPackSuccessTypeList = range(SuccType_FeastRedPack_TalkWorld, SuccType_FeastRedPack_FBSweep + 1)
# 连续天规则的成就类型
ContinueSuccessTypeList = []
@@ -1659,8 +1654,6 @@
                              SuccType_QueenRelics,SuccType_XMZZConWin,
                              SuccType_Collect,SuccType_DogzBattle,
                              SuccType_GetSpecialItem,SuccType_GetMagicWeapon,SuccType_XBXZ,
                              SuccType_FeastRedPack_KillSpecificNPC,SuccType_FeastRedPack_KillBoss,
                              SuccType_FeastRedPack_EnterMap, SuccType_FeastRedPack_FBSweep,
                              ]
# 部分参数不向下适配检查的成就类型,此配置的类型不能在 UnDownCheckSuccessTypeList 里 {类型:[不向下适配的参数索引, ...], ...}
@@ -1780,16 +1773,3 @@
Def_Boss_Func_Home, # BOSS之家
Def_Boss_Func_Dogz, # 神兽功能BOSS
) = range(3)
# 红包类型定义
RedPackType_GoldPacket = 0 # 主动发钻石红包
RedPackType_OpenServer = 5 # 开服红包
RedPackType_FeastSysBig = 31 # 节日系统大红包
RedPackType_FeastSysSmall = 32 # 节日系统小红包
RedPackType_FeastSucc = 33 # 节日成就红包
RedPackType_Server = 36 # 全服红包
# 红包类型分类定义
RedPackWayType_Family = "1" # 仙盟红包
RedPackWayType_Server = "2" # 全服红包
RedPackWayType_Feast = "3" # 节日红包