From f495a32d55731268db3e8fbd272769e1c6ab1fb3 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 17 十月 2025 14:32:11 +0800
Subject: [PATCH] 16 卡牌服务端(删除红包相关;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFB.py           |    2 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py    |    5 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py               |   52 -
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py               |  141 -----
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py           |  967 --------------------------------------
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldInvest.py   |    6 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCrossRealmPK.py |    1 
 /dev/null                                                                                        |   61 --
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini                       |   16 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py             |   52 --
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py           |    5 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py         |    6 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py             |    1 
 PySysDB/PySysDBPY.h                                                                              |   19 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py      |   31 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/OpenServerCampaign.py |   50 --
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py |   12 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py                  |   31 -
 18 files changed, 36 insertions(+), 1,422 deletions(-)

diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index eb7fbde..27eddeb 100644
--- a/PySysDB/PySysDBPY.h
+++ b/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
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
index 226c70d..3d786ba 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/PyNetPack.ini
+++ b/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
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 0b78227..fbfad28 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/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
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
index 0d42cf8..fb1039e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
+++ b/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
 
 
 #------------------------------------------------------
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index bb7adba..09fa5f6 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/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
 
 
 #------------------------------------------------------
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/CreatFamilyRedPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/CreatFamilyRedPack.py
deleted file mode 100644
index 29eee8e..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/CreatFamilyRedPack.py
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#---------------------------------------------------------------------
-#
-#---------------------------------------------------------------------
-##@package CreatFamilyRedPack
-# @todo: 生成仙盟红包
-#
-# @author: xdh
-# @date 2017-09-01 17:30
-# @version 1.0
-#
-# @note: 
-# 
-#---------------------------------------------------------------------
-"""Version = 2017-09-01 17:30"""
-#---------------------------------------------------------------------
-import GameWorld
-import PlayerFamilyRedPacket
-#---------------------------------------------------------------------
-#逻辑实现
-## GM命令执行入口
-#  @param curPlayer 当前玩家
-#  @param msgList 参数列表
-#  @return None
-#  @remarks 函数详细说明.
-def OnExec(curPlayer, msgList):
-    GameWorld.DebugAnswer(curPlayer, "CreatFamilyRedPack 红包ID 状态(选) 数据(选)")
-    
-    if len(msgList) < 1:
-        return
-    redpacketID = msgList[0]
-    state = msgList[1] if len(msgList)>1 else 0
-    data = msgList[2] if len(msgList)>2 else 0
-    PlayerFamilyRedPacket.CreatRedPacketByID(curPlayer, redpacketID, state, data)
-    return
\ No newline at end of file
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetRedPacket.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetRedPacket.py
deleted file mode 100644
index 1adeb81..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetRedPacket.py
+++ /dev/null
@@ -1,118 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#-------------------------------------------------------------------------------
-#
-##@package GM.Commands.SetRedPacket
-#
-# @todo:设置红包
-# @author hxp
-# @date 2019-01-29
-# @version 1.0
-#
-# 详细描述: 设置红包
-#
-#-------------------------------------------------------------------------------
-#"""Version = 2019-01-29 16:00"""
-#-------------------------------------------------------------------------------
-
-import GameWorld
-import PlayerControl
-import PlayerFamilyRedPacket
-import PlayerFeastRedPacket
-import IpyGameDataPY
-import PlayerSuccess
-import ChConfig
-import ShareDefine
-
-def __Help(curPlayer):
-    GameWorld.DebugAnswer(curPlayer, "---------------------------")
-    GameWorld.DebugAnswer(curPlayer, "清所有红包:SetRedPacket 0")
-    GameWorld.DebugAnswer(curPlayer, "清指定红包:SetRedPacket 0 类型A 类型B ...")
-    GameWorld.DebugAnswer(curPlayer, "发指定红包:SetRedPacket 1 红包编号 个数")
-    GameWorld.DebugAnswer(curPlayer, "设置抢红包:SetRedPacket 2 红包功能  可抢数 已抢额度")
-    GameWorld.DebugAnswer(curPlayer, "红包功能:1-开服红包;2-节日红包")
-    return
-
-## GM命令执行入口
-#  @param curPlayer 当前玩家
-#  @param paramList 参数列表
-#  @return None or True
-#  @remarks 函数详细说明.
-def OnExec(curPlayer, paramList):
-    if not paramList:
-        __Help(curPlayer)
-        return
-    
-    isSendGameServer = False
-    paramA = paramList[0]
-    # 重置所有红包数据
-    if paramA == 0:
-        isSendGameServer = True
-        __DOResetSuccRedPack(curPlayer)
-        __DoResetRedPackFunc(curPlayer, 1, None, 0)
-        __DoResetRedPackFunc(curPlayer, 2, None, 0)
-        
-    # 发指定红包
-    elif paramA == 1 and len(paramList) > 1:
-        redPacketID = paramList[1]
-        ipyData = IpyGameDataPY.GetIpyGameData('FamilyRedPack', redPacketID)
-        if not ipyData:
-            GameWorld.DebugAnswer(curPlayer, "不存在该红包! %s" % redPacketID)
-            return
-        getType = ipyData.GetGetType()
-        if not getType:
-            return
-        getWayType = PlayerFamilyRedPacket.GetRedPackGetWayType(getType)
-        if getWayType == ShareDefine.RedPackWayType_Family or getType == ShareDefine.RedPackType_FeastSucc:
-            if not PlayerFamilyRedPacket.CreatRedPacketByID(curPlayer, redPacketID):
-                GameWorld.DebugAnswer(curPlayer, "###发送红包失败,详见地图日志! %s" % redPacketID)
-            return
-        isSendGameServer = True
-        
-    # 设置抢红包
-    elif paramA == 2 and len(paramList) == 4:
-        redPackFuncType, grabCount, grabMoney = paramList[1:]
-        __DoResetRedPackFunc(curPlayer, redPackFuncType, grabCount, grabMoney)
-        return
-    else:
-        return
-    
-    return isSendGameServer
-
-def __DOResetSuccRedPack(curPlayer):
-    ## 重置红包成就发放记录,不重置进度
-    resetList = []
-    ipyDataMgr = IpyGameDataPY.IPY_Data()
-    for index in xrange(ipyDataMgr.GetSuccessCount()):
-        succData = ipyDataMgr.GetSuccessByIndex(index)
-        succID = succData.ID
-        succType = succData.Type
-        condition = succData.Condition
-        if not succData.RedPacketID:
-            continue
-        if not PlayerSuccess.GetSuccFinishValue(curPlayer, succType, condition):
-            continue
-        #SetSuccFinishValue(curPlayer, succType, condition, 0)
-        if PlayerSuccess.GetSuccHasGot(curPlayer, succID):
-            PlayerSuccess.SetSuccFinish(curPlayer, succID, True)
-            PlayerSuccess.SetSuccHasGot(curPlayer, succID, False)
-            resetList.append(succID)
-            
-    if resetList:
-        PlayerSuccess.Sync_SuccTypeIndexAwardRecord(curPlayer, resetList, True)
-        PlayerSuccess.Sync_SuccessInfo(curPlayer, resetList, True)
-        
-    return
-
-def __DoResetRedPackFunc(curPlayer, redPackFuncType, grabCount, grabMoney):
-    if redPackFuncType == 1:
-        pass
-    elif redPackFuncType == 2:
-        if not isinstance(grabCount, int):
-            grabCount = IpyGameDataPY.GetFuncCfg('FeastRedPacket', 1)
-        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FeastRedPacketCanGrabCnt, grabCount)
-        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FeastRedPacketGrabMoney, grabMoney)
-        PlayerFeastRedPacket.Sync_FeastRedPackInfo(curPlayer)
-    return
-
-
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py
index f967a59..88f0916 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py
+++ b/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):
         #已经注册了这个玩家, 不清除已注册的玩家的字典信息
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index 06e009f..4c15083 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/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")
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
index 31aeca5..5329d24 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
+++ b/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):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
index 461d7a6..c89ca11 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/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)
     # 通知设置的被动功法
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/OpenServerCampaign.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/OpenServerCampaign.py
index eb370c8..24b514f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/OpenServerCampaign.py
+++ b/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], ...], 默认绑定
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
index 64e705e..5be3bc0 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
+++ b/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)
     #投资
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCrossRealmPK.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCrossRealmPK.py
index a093c36..9dbea3d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCrossRealmPK.py
+++ b/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:
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
index 599f138..27a98e3 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
+++ b/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()
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFB.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFB.py
index 71ebe8c..1a9ca69 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFB.py
+++ b/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)
     
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamilyRedPacket.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamilyRedPacket.py
deleted file mode 100644
index 1ea4c2b..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamilyRedPacket.py
+++ /dev/null
@@ -1,226 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#---------------------------------------------------------------------
-#
-#---------------------------------------------------------------------
-##@package PlayerFamilyRedPacket
-# @todo: 玩家家族红包
-#
-# @author: xdh
-# @date 2017-08-31
-# @version 1.0
-#
-#---------------------------------------------------------------------
-#"""Version = 2017-08-31 16:00"""
-#---------------------------------------------------------------------
-import GameWorld
-import PlayerControl
-import ChConfig
-import IpyGameDataPY
-import IPY_GameWorld
-import ChPyNetSendPack
-import PlayerFeastRedPacket
-import NetPackCommon
-import ShareDefine
-import CommFunc
-
-#---------------------------------------------------------------------
-
-(
-State_NoSend, #未发
-State_NoGot, #未领取
-State_HasGot, #已领取
-State_HasAllGot, #全部领完
-) = range(4)
-
-
-## 玩家登录
-def OnPlayerLogin(curPlayer):
-    __NotifyGoldLimt(curPlayer)
-    return
-
-## OnDay处理
-#  @param curPlayer
-#  @return None
-def RedPacketOnDay(curPlayer, onEventType):
-    if onEventType == ShareDefine.Def_OnEventType:
-        #发钻石红包额度重置
-        if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FamilyRedPacketGoldLimit):
-            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FamilyRedPacketGoldLimit, 0)
-            __NotifyGoldLimt(curPlayer)
-            
-    elif onEventType == ShareDefine.Def_OnEventTypeEx:
-        pass
-    
-    return
-
-def GetRedPackGetWayType(getWay):
-    ## 获取红包getWay所属红包分类
-    getWayTypeDict = IpyGameDataPY.GetFuncEvalCfg("RedPacketClassify", 1, {})
-    for getWayType, getWayList in getWayTypeDict.items():
-        if getWay in getWayList:
-            return getWayType
-    return ShareDefine.RedPackWayType_Family
-
-def OnPlayerRecharge(curPlayer, orderCoin):
-    ## 玩家充值
-    
-    todayCoin = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TodayCTGCoinTotal)
-    # 每日首充红包
-    if todayCoin - orderCoin == 0:
-        dayFirstRedPacketID = IpyGameDataPY.GetFuncCfg("RechargeRedPacket", 1)
-        GameWorld.DebugLog("每日首充红包: dayFirstRedPacketID=%s" % dayFirstRedPacketID)
-        if dayFirstRedPacketID:
-            CreatRedPacketByID(curPlayer, dayFirstRedPacketID)
-    #else:
-    #    GameWorld.DebugLog("非每日首充: todayCoin=%s" % todayCoin)
-        
-    # 单笔充值红包
-    rmbRedPacketID = 0
-    rmbRedPackIDDict = IpyGameDataPY.GetFuncEvalCfg("RechargeRedPacket", 2, {})
-    rmbList = rmbRedPackIDDict.keys()
-    rmbList.sort()
-    for rmb in rmbList:
-        if orderCoin <= CommFunc.RMBToCoin(rmb):
-            rmbRedPacketID = rmbRedPackIDDict[rmb]
-            break
-        
-    if rmbRedPacketID:
-        GameWorld.DebugLog("单笔充值红包: orderRMB=%s,rmbRedPacketID=%s" % (orderCoin, rmbRedPacketID))
-        CreatRedPacketByID(curPlayer, rmbRedPacketID)
-    return
-
-def CreatCacheRedPacktet(curPlayer):
-    #加入仙盟后,发放待发的红包
-    ipyMgr = IpyGameDataPY.IPY_Data()
-    for i in xrange(ipyMgr.GetFamilyRedPackCount()):
-        ipyData = ipyMgr.GetFamilyRedPackByIndex(i)
-        redPacketID = ipyData.GetID()
-        if GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_PDict_FamilyRedPacketCache, redPacketID):
-            CreatRedPacketByID(curPlayer, redPacketID)
-            GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_FamilyRedPacketCache, redPacketID, 0)
-    return
-
-
-def CreatRedPacketByID(curPlayer, redPacketID, state=State_NoSend, data=0, wishInfo=""):
-    '''根据红包ID生成红包 - 外部功能调用接口
-    '''
-    if IpyGameDataPY.GetFuncCfg("RedPacketClassify", 2):
-        GameWorld.DebugLog("未开放红包发放! redPacketID=%s" % redPacketID, curPlayer.GetPlayerID())
-        return
-    ipyData = IpyGameDataPY.GetIpyGameData('FamilyRedPack', redPacketID)
-    if not ipyData:
-        return
-    getType = ipyData.GetGetType()
-    if not getType:
-        return
-    isFamilyRedPacket = False
-    getWayType = GetRedPackGetWayType(getType)
-    if getWayType == ShareDefine.RedPackWayType_Feast:
-        if not PlayerFeastRedPacket.GetFeastRedPacketState():
-            GameWorld.DebugLog('    非节日红包活动中,不可发送!')
-            return
-    elif getWayType == ShareDefine.RedPackWayType_Server:
-        pass
-    else:
-        if not curPlayer.GetFamilyID():
-            #没家族 先存起来,等进仙盟时再补发
-            GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_FamilyRedPacketCache, redPacketID, 1)
-            return
-        isFamilyRedPacket = True
-        
-    return __DoCreatRedPacket(curPlayer, getType, ipyData.GetMoneyType(), ipyData.GetMoneyNum(), ipyData.GetPacketCnt(), state, wishInfo, data, isFamilyRedPacket)
-
-## 生成红包,注意外部不可直接调用该函数
-def __DoCreatRedPacket(curPlayer, getType, moneyType=2, awardNum=100, packetCnt=10, state=State_NoSend, wishInfo='', data=0, isFamilyRedPacket=True):
-    playerID = curPlayer.GetPlayerID()
-    packetCnt = min(packetCnt, awardNum)
-    
-    if isFamilyRedPacket and not curPlayer.GetFamilyID():
-        GameWorld.DebugLog("玩家无仙盟,无法发放归属仙盟的红包!getType=%s" % (getType), playerID)
-        return
-    
-    if getType == ShareDefine.RedPackType_GoldPacket:
-        goldLimit = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FamilyRedPacketGoldLimit, 0)
-        familyRedPacketGoldLimit = IpyGameDataPY.GetFuncCfg('FamilyRedPacketGoldLimit')
-        if awardNum + goldLimit > familyRedPacketGoldLimit:
-            GameWorld.DebugLog('    主动发仙盟钻石红包,额度已超%s,不可发送!' % familyRedPacketGoldLimit, playerID)
-            return
-        if not PlayerControl.HaveMoney(curPlayer, ShareDefine.TYPE_Price_BourseMoney, awardNum):
-            curBourseMoney = PlayerControl.GetMoney(curPlayer, ShareDefine.TYPE_Price_BourseMoney)
-            GameWorld.Log(" 不能发钻石红包 no enough bourse money! priceCount=%s,curBourseMoney=%s" 
-                              % (awardNum, curBourseMoney), playerID)
-            return
-        if not PlayerControl.PayMoney(curPlayer, moneyType, awardNum, ChConfig.Def_Cost_FamilyRedPacket):
-            return
-        
-        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FamilyRedPacketGoldLimit, goldLimit + awardNum)
-        #通知
-        __NotifyGoldLimt(curPlayer)
-        
-    #通知Gameserver生成红包
-    msg = str([playerID, getType, packetCnt, moneyType, awardNum, wishInfo, state, data, isFamilyRedPacket])
-    GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(curPlayer.GetID(), 0, 0, "MapServer_CreatRedPacket", msg, len(msg))
-    GameWorld.DebugLog('    通知Gameserver生成红包 msg=%s' % msg)
-    return True
-
-#// A6 08  发家族红包 #tagCMSendFamilyRedPacket
-#
-#struct     tagCMSendFamilyRedPacket
-#{
-#    tagHead        Head;
-#    DWORD        RedPacketID;    // 红包ID,没有发0
-#    WORD        PacketCnt;    // 红包数量
-#    WORD        MoneyNum;    //金钱数量
-#    char        Wish[33];        //祝福语
-#    BYTE        IsAnonymous;    //是否匿名
-#};
-## 发家族红包
-def OnSendFamilyRedPacket(index, clientData, tick):
-    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-    redPacketID = clientData.RedPacketID
-    packetCnt = clientData.PacketCnt
-    moneyNum = clientData.MoneyNum
-    wishInfo = clientData.Wish
-    isAnonymous = clientData.IsAnonymous
-    if not redPacketID:
-        __DoCreatRedPacket(curPlayer, ShareDefine.RedPackType_GoldPacket, IPY_GameWorld.TYPE_Price_Gold_Money, moneyNum, packetCnt, State_NoGot, wishInfo)
-    else:
-        # 注意:该函数发放的是已创建的红包,该操作只是把该红包开放给玩家可抢
-        msg = str([curPlayer.GetPlayerID(), redPacketID, packetCnt, isAnonymous])
-        GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(curPlayer.GetID(), 0, 0, "SendFamilyRedPacket", msg, len(msg))
-    return
-
-## 通知抢红包钻石额度
-def __NotifyGoldLimt(curPlayer):
-    packData = ChPyNetSendPack.tagMCFamilyRedPacketGoldLimit()
-    packData.Clear()
-    packData.HasSendGold = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FamilyRedPacketGoldLimit, 0)
-    packData.ServerGrabCnt = 0
-    NetPackCommon.SendFakePack(curPlayer, packData)
-    return
-
-#// AB 12 抢红包 #tagCMGrabFamilyRedPacket
-#
-#struct    tagCMGrabFamilyRedPacket
-#{
-#    tagHead        Head;
-#    DWORD        RedPaketID;         // 红包ID
-#    BYTE        GetWay;            //获得途径
-#};
-def OnGrabFamilyRedPacket(index, clientData, tick):
-    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-    redPacketID = clientData.RedPaketID
-    reqGetWay = clientData.GetWay
-    if reqGetWay == ShareDefine.RedPackType_FeastSucc:
-        canGrabCnt = PlayerFeastRedPacket.GetFeastSuccRedPacketCanGrabCnt(curPlayer)
-    else:
-        canGrabCnt = -1
-    msg = str([redPacketID, reqGetWay, canGrabCnt])
-    GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(curPlayer.GetID(), 0, 0, "GrabFamilyRedPacket", msg, len(msg))
-    GameWorld.DebugLog('    抢红包 redPacketID=%s,getWay=%s,canGrabCnt=%s' % (redPacketID, reqGetWay, canGrabCnt))
-    return
-
-def GrabServerRedPacketResult(curPlayer, moneyNum, isSelf):
-    ##抢全服红包结果
-    return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFeastRedPacket.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFeastRedPacket.py
deleted file mode 100644
index c9568dc..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFeastRedPacket.py
+++ /dev/null
@@ -1,158 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#-------------------------------------------------------------------------------
-#
-##@package Player.PlayerFeastRedPacket
-#
-# @todo:节日红包
-# @author hxp
-# @date 2019-01-29
-# @version 1.0
-#
-# 详细描述: 节日红包
-#
-#-------------------------------------------------------------------------------
-#"""Version = 2019-01-29 16:00"""
-#-------------------------------------------------------------------------------
-
-import GameWorld
-import PyGameData
-import PlayerControl
-import IpyGameDataPY
-import PlayerSuccess
-import ChPyNetSendPack
-import NetPackCommon
-import ShareDefine
-import ChConfig
-
-def DoPlayerOnLogin(curPlayer):
-    if not GetFeastRedPacketState():
-        return
-    isReset = __CheckPlayerFeastRedPacketAction(curPlayer)
-    if not isReset:
-        Sync_FeastRedPackInfo(curPlayer)
-    return
-
-def RefreshOperationAction_FeastRedPacket():
-    __UpdTodayFeastSuccIDList()
-    
-    playerManager = GameWorld.GetPlayerManager()
-    for i in xrange(playerManager.OnlineCount()):
-        curPlayer = playerManager.OnlineAt(i)
-        if not GameWorld.IsNormalPlayer(curPlayer):
-            continue
-        __CheckPlayerFeastRedPacketAction(curPlayer)
-        
-    return
-
-def __UpdTodayFeastSuccIDList():
-    feastRedPacketInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_FeastRedPacket, {})
-    state = feastRedPacketInfo.get(ShareDefine.ActKey_State, 0)
-    dayIndex = feastRedPacketInfo.get(ShareDefine.ActKey_DayIndex, 0)
-    if not state:
-        return
-    
-    feastDay = dayIndex + 1
-    feastIpyDataList = IpyGameDataPY.GetIpyGameDataList("ActFeastRedPacketSucc", feastDay)
-    if not feastIpyDataList:
-        return
-    
-    succIDList = []
-    for feastIpyData in feastIpyDataList:
-        succIDList += list(feastIpyData.GetFeastSuccIDList())
-        
-    GameWorld.DebugLog("    更新今日节日红包成就ID列表: %s" % succIDList)
-    IpyGameDataPY.SetConfigEx("TodayFeastSuccIDList", succIDList)
-    return
-def GetTodayFeastSuccIDList(): return IpyGameDataPY.GetConfigEx("TodayFeastSuccIDList")
-
-def __CheckPlayerFeastRedPacketAction(curPlayer):
-    ## 检查玩家节日红包活动数据信息
-    
-    playerID = curPlayer.GetPlayerID()
-    
-    feastRedPacketInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_FeastRedPacket, {})
-    curActID = feastRedPacketInfo.get(ShareDefine.ActKey_ID, 0)
-    state = feastRedPacketInfo.get(ShareDefine.ActKey_State, 0)
-    dayIndex = feastRedPacketInfo.get(ShareDefine.ActKey_DayIndex, 0)
-    
-    playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FeastRedPacketActID) # 玩家身上的活动ID
-    
-    # 活动ID 相同的话不处理
-    if curActID == playerActID:
-        GameWorld.DebugLog("红包节日活动ID不变,不处理!", playerID)
-        return
-    GameWorld.DebugLog("重置玩家红包节日活动! curActID=%s,playerActID=%s,state=%s,dayIndex=%s" % (curActID, playerActID, state, dayIndex), playerID)
-    
-    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FeastRedPacketActID, curActID)
-    dayCanGrabCount = IpyGameDataPY.GetFuncCfg('FeastRedPacket', 1)
-    # 非第一天只重置每日次数,且次数可以累加
-    if dayIndex == 0:
-        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FeastRedPacketGrabMoney, 0)
-        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FeastRedPacketCanGrabCnt, dayCanGrabCount)
-        GameWorld.DebugLog("    首日重置次数及金额!", playerID)
-    else:
-        canAddRemainCnt = IpyGameDataPY.GetFuncCfg('FeastRedPacket', 4)
-        remainGrabCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FeastRedPacketCanGrabCnt)
-        setTotalCanGrabCnt = (remainGrabCnt + dayCanGrabCount) if canAddRemainCnt else dayCanGrabCount
-        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FeastRedPacketCanGrabCnt, setTotalCanGrabCnt)
-        GameWorld.DebugLog("    非首日重置次数! canAddRemainCnt=%s,remainGrabCnt=%s,setTotalCanGrabCnt=%s" % (canAddRemainCnt, remainGrabCnt, setTotalCanGrabCnt), playerID)
-        
-    # 重置相关成就
-    resetSuccIDList = []
-    ipyDataMgr = IpyGameDataPY.IPY_Data()
-    for index in xrange(ipyDataMgr.GetActFeastRedPacketSuccCount()):
-        ipyData = ipyDataMgr.GetActFeastRedPacketSuccByIndex(index)
-        feastDay = ipyData.GetFeastDay()
-        feastDayIndex = feastDay - 1
-        if dayIndex == 0 or feastDayIndex == dayIndex:
-            for succID in ipyData.GetFeastSuccIDList():
-                if succID not in resetSuccIDList:
-                    resetSuccIDList.append(succID)
-    PlayerSuccess.DoResetSuccessIDList(curPlayer, resetSuccIDList)
-    
-    Sync_FeastRedPackInfo(curPlayer)
-    return True
-
-def GetFeastRedPacketState():
-    ## 节日红包活动状态
-    feastRedPacketInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_FeastRedPacket, {})
-    return feastRedPacketInfo.get(ShareDefine.ActKey_State, 0)
-
-def GetFeastSuccRedPacketCanGrabCnt(curPlayer):
-    ## 节日成就红包可领取次数
-    return curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FeastRedPacketCanGrabCnt)
-
-def GrabFeastRedPacketResult(curPlayer, moneyNum, getWay, isSelf):
-    ##抢节日红包结果
-    grabNum = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FeastRedPacketGrabMoney)
-    newGrabNum = grabNum + moneyNum
-    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FeastRedPacketGrabMoney, newGrabNum)
-    
-    #广播
-    needSysOSRAllMoneyList = IpyGameDataPY.GetFuncEvalCfg('FeastRedPacket', 3)
-    lastIndex = -1
-    newIndex = -1
-    for i, num in enumerate(needSysOSRAllMoneyList):
-        if grabNum >= num:
-            lastIndex = i
-        if newGrabNum >= num:
-            newIndex = i
-    if newIndex != -1 and newIndex > lastIndex:
-        PlayerControl.WorldNotify(0, 'ActivityOpenRedBag1', [curPlayer.GetName(), newGrabNum])
-        
-    if not isSelf and getWay == ShareDefine.RedPackType_FeastSucc: #抢自己的红包不扣次数
-        grabCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FeastRedPacketCanGrabCnt)
-        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FeastRedPacketCanGrabCnt, max(0, grabCnt - 1))
-        
-    Sync_FeastRedPackInfo(curPlayer)
-    return
-
-def Sync_FeastRedPackInfo(curPlayer):
-    #// AB 25 节日红包信息 #tagMCFeastRedPackInfo
-    pack = ChPyNetSendPack.tagMCFeastRedPackInfo()
-    pack.MoneyNum = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FeastRedPacketGrabMoney)
-    pack.GrabCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FeastRedPacketCanGrabCnt)
-    NetPackCommon.SendFakePack(curPlayer, pack)
-    return
-
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldInvest.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldInvest.py
index bf12033..09d6dec 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldInvest.py
+++ b/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, {})
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py
index 55a741d..9791202 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py
+++ b/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
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GrabFamilyRedPacketResult.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GrabFamilyRedPacketResult.py
deleted file mode 100644
index c8857c9..0000000
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GrabFamilyRedPacketResult.py
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/usr/bin/python
-# -*- coding: GBK -*-
-#-------------------------------------------------------------------------------
-#
-##@package Player.RemoteQuery.GY_Query_GrabFamilyRedPacketResult
-#
-# @todo:抢仙盟红包结果
-# @author xdh
-# @date 2017-09-05
-# @version 1.0
-#
-# 详细描述: 抢仙盟红包结果
-#
-#-------------------------------------------------------------------------------
-#"""Version = 2017-09-05 17:30"""
-#-------------------------------------------------------------------------------
-
-import ChConfig
-import PlayerControl
-import PlayerFamilyRedPacket
-import PlayerFeastRedPacket
-import ShareDefine
-import GameWorld
-#---------------------------------------------------------------------
-
-
-#---------------------------------------------------------------------
-#逻辑实现
-## 请求逻辑
-#  @param query_Type 请求类型
-#  @param query_ID 请求的玩家ID
-#  @param packCMDList 发包命令 [ ]
-#  @param tick 当前时间
-#  @return "True" or "False" or ""
-#  @remarks 函数详细说明.
-def DoLogic(query_Type, query_ID, packCMDList, tick):
-    return ""
-
-#---------------------------------------------------------------------
-#执行结果
-## 执行结果
-#  @param curPlayer 发出请求的玩家
-#  @param callFunName 功能名称
-#  @param funResult 查询的结果
-#  @param tick 当前时间
-#  @return None
-#  @remarks 函数详细说明.
-def DoResult(curPlayer, callFunName, funResult, tick):
-    moneyType, moneyNum, getWay, isSelf = eval(funResult)
-    #GameWorld.DebugLog("GY_Query_GrabFamilyRedPacketResult moneyType=%s, moneyNum=%s, getWay=%s, isSelf=%s" % (moneyType, moneyNum, getWay, isSelf))
-    if moneyNum:
-        PlayerControl.GiveMoney(curPlayer, moneyType, moneyNum, ChConfig.Def_GiveMoney_RedPacket)
-        getWayType = PlayerFamilyRedPacket.GetRedPackGetWayType(getWay)
-        if getWayType == ShareDefine.RedPackWayType_Feast:
-            PlayerFeastRedPacket.GrabFeastRedPacketResult(curPlayer, moneyNum, getWay, isSelf)
-        elif getWayType == ShareDefine.RedPackWayType_Server:
-            PlayerFamilyRedPacket.GrabServerRedPacketResult(curPlayer, moneyNum, isSelf)
-            
-    return
-
-
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index bd52d76..19dedc4 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/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" # 节日红包

--
Gitblit v1.8.0