| #!/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  | 
|   | 
|   |