|  |  |  | 
|---|
|  |  |  | 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') | 
|---|