From f6b1972e51bb85ede4dcf4fbc3daf9f660c67cf4 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 30 一月 2019 15:40:47 +0800 Subject: [PATCH] 6087 【后端】【1.5.200】春节红包雨活动(广播红包雨;新增红包GM命令 SetRedPacket) --- ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyRedPacket.py | 65 +++++++++++++++++--------------- 1 files changed, 34 insertions(+), 31 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyRedPacket.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyRedPacket.py index 88e6adb..7264f0b 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyRedPacket.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyRedPacket.py @@ -87,19 +87,23 @@ ##---------------------------------------- 节日红包 ----------------------------------------------- -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(): @@ -221,12 +225,9 @@ 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 ## 生成新红包 @@ -254,22 +255,7 @@ job = curPlayer.GetJob() jobRank = PlayerControl.GetJobRank(curPlayer) 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', [getType]) + __SaveNewRedRecord(family, playerID, playerName, job, jobRank, getType, moneyType, outputNum, packetCnt, state, wishStr, data=data) return def CreatNewFamilyRedPacket(family, playerID, redPackID): @@ -293,13 +279,11 @@ 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 @@ -314,6 +298,7 @@ GameWorld.DebugLog("当前红包数: g_redPackCountDict=%s" % g_redPackCountDict) break + familyID = family.GetID() if family else 0 recData = recordList.AddRec() @@ -337,6 +322,24 @@ 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 -- Gitblit v1.8.0