From b6016259ace37e60f374999ccf850bd250553321 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 14 十二月 2021 16:57:13 +0800 Subject: [PATCH] 9391 【主干】【后端】红包主干摘取调整(去除开服红包;去除全服红包次数及权限限制;优化红包系统分类;) --- ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyRedPacket.py | 35 +++++++++++++++++------------------ 1 files changed, 17 insertions(+), 18 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyRedPacket.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyRedPacket.py index 0067b13..d2dca9f 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyRedPacket.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyRedPacket.py @@ -449,6 +449,14 @@ 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-删除已全部抢完的红包 @@ -961,7 +969,8 @@ 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 @@ -987,11 +996,7 @@ 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 @@ -1063,21 +1068,14 @@ #通知 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 @@ -1187,9 +1185,10 @@ 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') -- Gitblit v1.8.0