#!/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 ChConfig  
 | 
import PlayerFamilyRedPacket  
 | 
import PlayerFeastRedPacket  
 | 
import IpyGameDataPY  
 | 
import PlayerSuccess  
 | 
  
 | 
## GMÃüÁîÖ´ÐÐÈë¿Ú  
 | 
#  @param curPlayer µ±Ç°Íæ¼Ò  
 | 
#  @param paramList ²ÎÊýÁÐ±í  
 | 
#  @return None or True  
 | 
#  @remarks º¯ÊýÏêϸ˵Ã÷.  
 | 
def OnExec(curPlayer, paramList):  
 | 
    if not paramList:  
 | 
        GameWorld.DebugAnswer(curPlayer, "ÖØÖÃËùÓкì°üÁìÈ¡:SetRedPacket 0")  
 | 
        GameWorld.DebugAnswer(curPlayer, "Çå³ýËùÓÐÀàÐͺì°ü:SetRedPacket 0 0")  
 | 
        GameWorld.DebugAnswer(curPlayer, "Çå³ýÖ¸¶¨ÀàÐͺì°ü:SetRedPacket 0 ÀàÐÍA ÀàÐÍB ...")  
 | 
        GameWorld.DebugAnswer(curPlayer, "ÉèÖù¦Äܺì°üÊý¾Ý:SetRedPacket ºì°ü¹¦ÄÜ  ¿ÉÇÀ¸öÊý ÒÑÇÀ¶î¶È")  
 | 
        GameWorld.DebugAnswer(curPlayer, "ºì°ü¹¦ÄÜ: 1-¿ª·þºì°ü£»2-½ÚÈÕºì°ü")  
 | 
        return  
 | 
      
 | 
    paramA = paramList[0]  
 | 
    # ÖØÖÃËùÓкì°üÊý¾Ý  
 | 
    if paramA == 0:  
 | 
        __DOResetSuccRedPack(curPlayer)  
 | 
        __DoResetRedPackFunc(curPlayer, 1, None, 0)  
 | 
        __DoResetRedPackFunc(curPlayer, 2, None, 0)  
 | 
        paramStr = ""  
 | 
        for param in paramList:  
 | 
            paramStr += " %s" % param  
 | 
        curPlayer.GameServer_GMCmd("SetRedPacket%s" % paramStr) # ·¢Ë͵½GameServerÇå³ýºì°ü  
 | 
        return  
 | 
      
 | 
    if len(paramList) == 3:  
 | 
        redPackFuncType, grabCount, grabMoney = paramList  
 | 
        __DoResetRedPackFunc(curPlayer, redPackFuncType, grabCount, grabMoney)  
 | 
        return  
 | 
      
 | 
    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  
 | 
  
 | 
  
 |