| #!/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  | 
|   | 
| ## GMÃüÁîÖ´ÐÐÈë¿Ú  | 
| #  @param curPlayer µ±Ç°Íæ¼Ò  | 
| #  @param paramList ²ÎÊýÁÐ±í  | 
| #  @return None or True  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.  | 
| def OnExec(curPlayer, paramList):  | 
|     if not paramList:  | 
|         GameWorld.DebugAnswer(curPlayer, "---------------------------")  | 
|         GameWorld.DebugAnswer(curPlayer, "ÇåËùÓкì°ü:SetRedPacket 0")  | 
|         GameWorld.DebugAnswer(curPlayer, "ÇåÖ¸¶¨ºì°ü:SetRedPacket 0 ÀàÐÍA ÀàÐÍB ...")  | 
|         GameWorld.DebugAnswer(curPlayer, "·¢È«·þºì°ü:SetRedPacket 36 ºì°ü±àºÅ ¸öÊý")  | 
|         GameWorld.DebugAnswer(curPlayer, "ÀàÐÍ:36-È«·þºì°ü;33-½ÚÈճɾÍ")  | 
|         GameWorld.DebugAnswer(curPlayer, "È«·þºì°ü±àºÅ:126~130")  | 
|         GameWorld.DebugAnswer(curPlayer, "ÉèÖúì°ü:SetRedPacket ¹¦ÄÜ  ¿ÉÇÀÊý ÒÑÇÀ¶î¶È")  | 
|         GameWorld.DebugAnswer(curPlayer, "ºì°ü¹¦ÄÜ:1-¿ª·þºì°ü;2-½ÚÈÕºì°ü")  | 
|         return  | 
|       | 
|     sendGameServer = False  | 
|     paramA = paramList[0]  | 
|     # ÖØÖÃËùÓкì°üÊý¾Ý  | 
|     if paramA == 0:  | 
|         sendGameServer = True  | 
|         __DOResetSuccRedPack(curPlayer)  | 
|         __DoResetRedPackFunc(curPlayer, 1, None, 0)  | 
|         __DoResetRedPackFunc(curPlayer, 2, None, 0)  | 
|           | 
|     elif paramA in [1, 2]:  | 
|         if len(paramList) == 3:  | 
|             redPackFuncType, grabCount, grabMoney = paramList  | 
|             __DoResetRedPackFunc(curPlayer, redPackFuncType, grabCount, grabMoney)  | 
|             return  | 
|     else:  | 
|         sendGameServer = True  | 
|           | 
|     if sendGameServer:  | 
|         paramStr = ""  | 
|         for param in paramList:  | 
|             paramStr += " %s" % param  | 
|         curPlayer.GameServer_GMCmd("SetRedPacket%s" % paramStr) # ·¢Ë͵½GameServerÇå³ýºì°ü  | 
|     return  | 
|   | 
| 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:  | 
|         if not isinstance(grabCount, int):  | 
|             grabCount = IpyGameDataPY.GetFuncCfg('OpenServerRedPacketCfg', 5)  | 
|         PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSRedPacketCanGrabCnt, grabCount)  | 
|         PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSRedPacketGrabMoney, grabMoney)  | 
|         PlayerFamilyRedPacket.NotifyOSRedPacket(curPlayer)  | 
|     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  | 
|   | 
|   |