ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetRedPacket.py
@@ -22,6 +22,16 @@
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 当前玩家
@@ -30,39 +40,44 @@
#  @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-节日红包")
        __Help(curPlayer)
        return
    
    sendGameServer = False
    isSendGameServer = False
    paramA = paramList[0]
    # 重置所有红包数据
    if paramA == 0:
        sendGameServer = True
        isSendGameServer = 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)
    # 发指定红包
    elif paramA == 1 and len(paramList) > 1:
        redPacketID = paramList[1]
        ipyData = IpyGameDataPY.GetIpyGameData('FamilyRedPack', redPacketID)
        if not ipyData:
            GameWorld.DebugAnswer(curPlayer, "不存在该红包! %s" % redPacketID)
            return
    else:
        sendGameServer = True
        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
        
    if sendGameServer:
        paramStr = ""
        for param in paramList:
            paramStr += " %s" % param
        curPlayer.GameServer_GMCmd("SetRedPacket%s" % paramStr) # 发送到GameServer清除红包
    return
    # 设置抢红包
    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):
    ## 重置红包成就发放记录,不重置进度
@@ -91,11 +106,7 @@
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)
        pass
    elif redPackFuncType == 2:
        if not isinstance(grabCount, int):
            grabCount = IpyGameDataPY.GetFuncCfg('FeastRedPacket', 1)