| #!/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 PlayerFamilyRedPacket  | 
| import ShareDefine  | 
| import GameWorld  | 
| import IpyGameDataPY  | 
| import PlayerDBGSEvent  | 
|   | 
|   | 
| ## GMÃüÁîÖ´ÐÐÈë¿Ú  | 
| #  @param curPlayer µ±Ç°Íæ¼Ò  | 
| #  @param paramList ²ÎÊýÁÐ±í  | 
| #  @return None or True  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.  | 
| def OnExec(curPlayer, paramList):  | 
|     if not paramList:  | 
|         return  | 
|       | 
| #    GameWorld.DebugAnswer(curPlayer, "ÖØÖÃËùÓкì°üÁìÈ¡:SetRedPacket 0")  | 
| #    GameWorld.DebugAnswer(curPlayer, "Çå³ýËùÓÐÀàÐͺì°ü:SetRedPacket 0 0")  | 
| #    GameWorld.DebugAnswer(curPlayer, "Çå³ýÖ¸¶¨ÀàÐͺì°ü:SetRedPacket 0 ÀàÐÍA ÀàÐÍB ...")  | 
|       | 
|     paramA = paramList[0]  | 
|     paramB = paramList[1] if len(paramList) > 1 else None  | 
|     # ÖØÖÃËùÓкì°üÊý¾Ý  | 
|     if paramA == 0:  | 
|         PlayerFamilyRedPacket.g_allRecordDict = {}  | 
|         PlayerFamilyRedPacket.g_grabDataDict = {}  | 
|         PlayerFamilyRedPacket.g_redPackCountDict = {}  | 
|           | 
|         universalRecMgr = GameWorld.GetUniversalRecMgr()  | 
|         # Çå³ýËùÓÐÀàÐͺì°ü  | 
|         if paramB == 0:  | 
|             universalRecMgr.Delete(ShareDefine.Def_UniversalGameRecType_FamilyRedPacketAllRecord)  | 
|             __ResetSendState([])  | 
|             GameWorld.DebugAnswer(curPlayer, "Çå³ýËùÓÐÀàÐͺì°üOK!")  | 
|               | 
|         # Çå³ýÖ¸¶¨ÀàÐͺì°ü  | 
|         elif paramB:  | 
|             delTypeList = paramList[1:]  | 
|             allRecordList = universalRecMgr.GetTypeList(ShareDefine.Def_UniversalGameRecType_FamilyRedPacketAllRecord)  | 
|             delCount = 0  | 
|             for index in xrange(allRecordList.Count()):  | 
|                 universalRecData = allRecordList.At(index - delCount)  | 
|                 strValue1 = universalRecData.GetStrValue1()  | 
|                 strValue1List = strValue1.split('|')  | 
|                 getWay = int(strValue1List[3])  | 
|                 if getWay not in delTypeList:  | 
|                     continue  | 
|                 allRecordList.Delete(index)  | 
|                 delCount += 1  | 
|             __ResetSendState(delTypeList)  | 
|             GameWorld.DebugAnswer(curPlayer, "Çå³ýÖ¸¶¨ÀàÐͺì°üOK!%s,ÌõÊý:%s" % (delTypeList, delCount))  | 
|               | 
|         # Çå³ýÇÀµÄ¼Ç¼  | 
|         universalRecMgr.Delete(ShareDefine.Def_UniversalGameRecType_FamilyRedPacketGrabRecord)  | 
|         PlayerFamilyRedPacket.NotifyRedPacketInfo(curPlayer)  | 
|         GameWorld.DebugAnswer(curPlayer, "Çå³ýËùÓкì°üÁìÈ¡¼Ç¼OK!")  | 
|         return  | 
|       | 
|       | 
|     return  | 
|   | 
| def __ResetSendState(delTypeList):  | 
|     ipyDataMgr = IpyGameDataPY.IPY_Data()  | 
|     for index in xrange(ipyDataMgr.GetFamilyRedPackCount()):  | 
|         ipyData = ipyDataMgr.GetFamilyRedPackByIndex(index)  | 
|         if delTypeList and ipyData.GetGetType() not in delTypeList:  | 
|             continue  | 
|         redPackID = ipyData.GetID()  | 
|         if PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerFamilyRedPacket.DBKey_RedPacketSend % redPackID):  | 
|             PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerFamilyRedPacket.DBKey_RedPacketSend % redPackID, 0)  | 
|     return  | 
|   | 
|   | 
|   |