|  |  | 
 |  |  | 
 | 
 |  |  | ##---------------------------------------- 节日红包 -----------------------------------------------
 | 
 |  |  | 
 | 
 |  |  | def OnResetFeastRedPacket(ipyData):
 | 
 |  |  | def OnResetFeastRedPacket(ipyData, dayIndex):
 | 
 |  |  |     ## 重置节日红包状态
 | 
 |  |  |     
 | 
 |  |  |     if not ipyData:
 | 
 |  |  |         return
 | 
 |  |  |     
 | 
 |  |  |     dayRedPackIDList = ipyData.GetRedPacketIDList()
 | 
 |  |  |     GameWorld.DebugLog("重置红包发放状态: dayRedPackIDList=%s" % dayRedPackIDList)
 | 
 |  |  |     for redPackIDList in dayRedPackIDList:
 | 
 |  |  |         for redPackID in redPackIDList:
 | 
 |  |  |             if PlayerDBGSEvent.GetDBGSTrig_ByKey(DBKey_RedPacketSend % redPackID):
 | 
 |  |  |                 PlayerDBGSEvent.SetDBGSTrig_ByKey(DBKey_RedPacketSend % redPackID, 0)
 | 
 |  |  |                  | 
 |  |  |     GameWorld.Log("重置节日红包发放状态: dayRedPackIDList=%s, dayIndex=%s" % (dayRedPackIDList, dayIndex))
 | 
 |  |  |     if dayIndex < 0 or dayIndex >= len(dayRedPackIDList):
 | 
 |  |  |         GameWorld.ErrLog("当前节日天索引没有配配置系统红包ID! dayRedPackIDList=%s, dayIndex=%s" % (dayRedPackIDList, dayIndex))
 | 
 |  |  |         return
 | 
 |  |  |      | 
 |  |  |     for redPackID in dayRedPackIDList[dayIndex]:
 | 
 |  |  |         GameWorld.Log("    重置节日红包发放状态: redPackID=%s" % redPackID)
 | 
 |  |  |         if PlayerDBGSEvent.GetDBGSTrig_ByKey(DBKey_RedPacketSend % redPackID):
 | 
 |  |  |             PlayerDBGSEvent.SetDBGSTrig_ByKey(DBKey_RedPacketSend % redPackID, 0)
 | 
 |  |  |              | 
 |  |  |     return
 | 
 |  |  | 
 | 
 |  |  | def __GetTodayRedPacketByTimeList():
 | 
 |  |  | 
 |  |  |     jobRank = 0
 | 
 |  |  |     playerName = ""
 | 
 |  |  |     playerID = 0
 | 
 |  |  |     familyID = 0
 | 
 |  |  |     family = None
 | 
 |  |  |     
 | 
 |  |  |     redPacketRecData = __SaveNewRedRecord(familyID, playerID, playerName, job, jobRank, getType, moneyType, outputNum, packetCnt, state, sysCreateTime=sysCreateTime)
 | 
 |  |  |     #֪ͨ
 | 
 |  |  |     __NotifyFamilyRedPacketInfo(family, redPacketRecData, [])
 | 
 |  |  |     __SaveNewRedRecord(family, playerID, playerName, job, jobRank, getType, moneyType, outputNum, packetCnt, state, sysCreateTime=sysCreateTime)
 | 
 |  |  |     return
 | 
 |  |  | 
 | 
 |  |  | ## 生成新红包
 | 
 |  |  | 
 |  |  |         GameWorld.DebugLog("    生成新仙盟红包 红包额度不能低于红包个数!outputNum=%s,redCnt=%s" % (outputNum, packetCnt))
 | 
 |  |  |         return
 | 
 |  |  |     job = curPlayer.GetJob()
 | 
 |  |  |     jobRank = PlayerControl.GetJobRank(curPlayer)
 | 
 |  |  |     jobRank = 0
 | 
 |  |  |     playerName = curPlayer.GetName()
 | 
 |  |  |     redPacketRecData = __SaveNewRedRecord(familyID, playerID, playerName, job, jobRank, getType, moneyType, outputNum, packetCnt, state, wishStr)
 | 
 |  |  |     #֪ͨ
 | 
 |  |  |     if redPacketRecData:
 | 
 |  |  |         __NotifyFamilyRedPacketInfo(family, redPacketRecData, [])
 | 
 |  |  |         if not familyID:
 | 
 |  |  |             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])
 | 
 |  |  |             #大于200额度的红包
 | 
 |  |  |             getTypeRainDict = IpyGameDataPY.GetFuncEvalCfg('OpenServerRedPacketRain', 2, {})
 | 
 |  |  |             if str(getType) in getTypeRainDict:
 | 
 |  |  |                 PlayerControl.WorldNotify(0, getTypeRainDict[str(getType)])   | 
 |  |  |             elif outputNum >= IpyGameDataPY.GetFuncCfg('OpenServerRedPacketRain'):
 | 
 |  |  |                 PlayerControl.WorldNotify(0, 'OSRedpackSfx')
 | 
 |  |  |     __SaveNewRedRecord(family, playerID, playerName, job, jobRank, getType, moneyType, outputNum, packetCnt, state, wishStr, data=data)
 | 
 |  |  |     return
 | 
 |  |  | 
 | 
 |  |  | def CreatNewFamilyRedPacket(family, playerID, redPackID):
 | 
 |  |  | 
 |  |  |     jobRank = 0
 | 
 |  |  |     playerName = member.GetName()
 | 
 |  |  |     
 | 
 |  |  |     redPacketRecData = __SaveNewRedRecord(familyID, playerID, playerName, job, jobRank, getType, moneyType, outputNum, 0)
 | 
 |  |  |     #֪ͨ
 | 
 |  |  |     __NotifyFamilyRedPacketInfo(family, redPacketRecData, [])
 | 
 |  |  |     __SaveNewRedRecord(family, playerID, playerName, job, jobRank, getType, moneyType, outputNum, 0)
 | 
 |  |  |     return
 | 
 |  |  | 
 | 
 |  |  | ## 记录新红包数据
 | 
 |  |  | def __SaveNewRedRecord(familyID, ownerid, playerName, job, jobRank, getType, moneyType, outputNum, packetCnt,state=State_NoSend, wishStr='', sysCreateTime=None):
 | 
 |  |  | def __SaveNewRedRecord(family, ownerid, playerName, job, jobRank, getType, moneyType, outputNum, packetCnt,state=State_NoSend, wishStr='', sysCreateTime=None, data=0):
 | 
 |  |  |     global g_allRecordDict
 | 
 |  |  |     global g_redPackCountDict
 | 
 |  |  |     job = job + jobRank * 10   #个位是job 十位百位是jobrank
 | 
 |  |  |     recordType = ShareDefine.Def_UniversalGameRecType_FamilyRedPacketAllRecord
 | 
 |  |  |     universalRecMgr = GameWorld.GetUniversalRecMgr()
 | 
 |  |  |     recordList = universalRecMgr.GetTypeList(recordType)
 | 
 |  |  | 
 |  |  |             GameWorld.DebugLog("当前红包数: g_redPackCountDict=%s" % g_redPackCountDict)
 | 
 |  |  |             break
 | 
 |  |  |         
 | 
 |  |  |     familyID = family.GetID() if family else 0
 | 
 |  |  |     recData = recordList.AddRec()
 | 
 |  |  |     
 | 
 |  |  |     
 | 
 |  |  | 
 |  |  |     recData.SetStrValue3(wishStr)#祝福语
 | 
 |  |  |     g_allRecordDict[redPacketID] = recData
 | 
 |  |  |     GameWorld.Log("生成新的红包: familyID=%s,redPacketID=%s,ownerid=%s,ownername=%s,getType=%s,moneyType=%s,outputNum=%s,packetCnt=%s" % (familyID, redPacketID, ownerid, playerName, getType, moneyType, outputNum, packetCnt))
 | 
 |  |  |      | 
 |  |  |     #֪ͨ
 | 
 |  |  |     __NotifyFamilyRedPacketInfo(family, recData, [])
 | 
 |  |  |     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'):
 | 
 |  |  |             PlayerControl.WorldNotify(0, 'OSRedpackSfx', [getType])    | 
 |  |  |              | 
 |  |  |     return recData
 | 
 |  |  | 
 | 
 |  |  | 
 | 
 |  |  | 
 |  |  |     
 | 
 |  |  |     playerID= curPlayer.GetPlayerID()
 | 
 |  |  |     job = curPlayer.GetJob()
 | 
 |  |  |     jobRank = PlayerControl.GetJobRank(curPlayer)
 | 
 |  |  |     job = jobRank * 10 + job
 | 
 |  |  |     playerName = curPlayer.GetName()
 | 
 |  |  |     
 | 
 |  |  |     
 | 
 |  |  | 
 |  |  |             strValue1 = universalRecData.GetStrValue1()
 | 
 |  |  |             strValue1List = strValue1.split('|')
 | 
 |  |  |             playerID = strValue1List[0]
 | 
 |  |  |             if playerID:
 | 
 |  |  |             getWay = int(strValue1List[3])
 | 
 |  |  |             if playerID and getWay is ShareDefine.RedPackType_GoldPacket:
 | 
 |  |  |                 playerID = int(playerID)
 | 
 |  |  |                 grabRecordDict = __GetGrabRecord(redPacketID)
 | 
 |  |  |                 outNum = sum([a[0] for a in grabRecordDict.values()]) #已被抢的钱
 |