|  |  | 
 |  |  |     RandTodayServerSystemRedPacketSendTime()
 | 
 |  |  |     return
 | 
 |  |  | 
 | 
 |  |  | def GetRedPackGetWayType(getWay):
 | 
 |  |  |     ## 获取红包getWay所属红包分类
 | 
 |  |  |     getWayTypeDict = IpyGameDataPY.GetFuncEvalCfg("RedPacketClassify", 1, {})
 | 
 |  |  |     for getWayType, getWayList in getWayTypeDict.items():
 | 
 |  |  |         if getWay in getWayList:
 | 
 |  |  |             return getWayType
 | 
 |  |  |     return ShareDefine.RedPackWayType_Family
 | 
 |  |  | 
 | 
 |  |  | def CheckDelRedpacketData():
 | 
 |  |  |     ## 检查红包删除红包,5分钟一次: 1-删除过期红包,2-删除已全部抢完的红包
 | 
 |  |  |     
 | 
 |  |  | 
 |  |  |         PlayerDBGSEvent.SetDBGSTrig_ByKey(DBKey_RedPacketSend % redPackID, 1)
 | 
 |  |  |         GameWorld.DebugLog("定时发放的红包,设置已发放! redPackID=%s" % redPackID)
 | 
 |  |  |         
 | 
 |  |  |     if getType == ShareDefine.RedPackType_Server:
 | 
 |  |  |     getWayType = GetRedPackGetWayType(getType)
 | 
 |  |  |     if getWayType == ShareDefine.RedPackWayType_Server:
 | 
 |  |  |         isAnonymous = 1
 | 
 |  |  |         
 | 
 |  |  |     job = 0
 | 
 |  |  | 
 |  |  |         family = GameWorld.GetFamilyManager().FindFamily(familyID)
 | 
 |  |  |         if not family:
 | 
 |  |  |             return
 | 
 |  |  |         #packetCnt = min(packetCnt, family.GetCount())
 | 
 |  |  | #    if getType != 0:
 | 
 |  |  | #        commonCntLimit = IpyGameDataPY.GetFuncCfg('FamilyRedPacketCnt')
 | 
 |  |  | #        packetCnt = max(packetCnt, commonCntLimit)
 | 
 |  |  |      | 
 |  |  |          | 
 |  |  |     if outputNum < packetCnt:
 | 
 |  |  |         GameWorld.DebugLog("    生成新仙盟红包 红包额度不能低该红包个数!outputNum=%s,redCnt=%s" % (outputNum, packetCnt))
 | 
 |  |  |         return
 | 
 |  |  | 
 |  |  |     
 | 
 |  |  |     #֪ͨ
 | 
 |  |  |     OnChangeRedPacketState(family, redPacketObj, None)
 | 
 |  |  |     if getType == ShareDefine.RedPackType_OpenServer:
 | 
 |  |  |         if not PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_OSRedPacket):
 | 
 |  |  |             PlayerControl.WorldNotify(0, 'OpenRedBag2', [playerName, data, outputNum])
 | 
 |  |  |             PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_OSRedPacket, 1)
 | 
 |  |  |         elif data in IpyGameDataPY.GetFuncEvalCfg('OSRSuccess'):
 | 
 |  |  |             PlayerControl.WorldNotify(0, 'OpenRedBag3', [playerName, data, outputNum])
 | 
 |  |  |              | 
 |  |  |      | 
 |  |  |     if not familyID:
 | 
 |  |  |         #大于200额度的红包
 | 
 |  |  |         getTypeRainDict = IpyGameDataPY.GetFuncEvalCfg('OpenServerRedPacketRain', 2, {})
 | 
 |  |  |         if str(getType) in getTypeRainDict:
 | 
 |  |  |             PlayerControl.WorldNotify(0, getTypeRainDict[str(getType)])
 | 
 |  |  |         elif outputNum >= IpyGameDataPY.GetFuncCfg('OpenServerRedPacketRain') \
 | 
 |  |  |             and getType not in [ShareDefine.RedPackType_Server]:
 | 
 |  |  |             PlayerControl.WorldNotify(0, 'OSRedpackSfx', [getType])    | 
 |  |  |         elif outputNum >= IpyGameDataPY.GetFuncCfg('OpenServerRedPacketRain'):
 | 
 |  |  |             PlayerControl.WorldNotify(0, 'OSRedpackSfx', [getType])
 | 
 |  |  |             
 | 
 |  |  |     return redPacketObj
 | 
 |  |  | 
 | 
 |  |  | 
 |  |  |         GameWorld.ErrLog("领取的红包类型不一致,无法领取! reqGetWay=%s,getWay=%s" % (reqGetWay, getWay))
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     if getWay in [ShareDefine.RedPackType_OpenServer, ShareDefine.RedPackType_Server]:
 | 
 |  |  |     getWayType = GetRedPackGetWayType(getWay)
 | 
 |  |  |     if getWayType == ShareDefine.RedPackWayType_Server:
 | 
 |  |  |         getNumformula = IpyGameDataPY.GetFuncCompileCfg('OpenRedRacketOutNum')
 | 
 |  |  |     elif getWay in ShareDefine.FeastRedPackType:
 | 
 |  |  |     elif getWayType == ShareDefine.RedPackWayType_Feast:
 | 
 |  |  |         getNumformula = IpyGameDataPY.GetFuncCompileCfg('FeastRedPacket', 2)
 | 
 |  |  |     else:
 | 
 |  |  |         getNumformula = IpyGameDataPY.GetFuncCompileCfg('FamilyRedRacketOutNum')
 |