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/GM/Commands/SetRedPacket.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 46 insertions(+), 4 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/SetRedPacket.py b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/SetRedPacket.py index 91c1464..9a5ae44 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/SetRedPacket.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/SetRedPacket.py @@ -18,6 +18,8 @@ import PlayerFamilyRedPacket import ShareDefine import GameWorld +import IpyGameDataPY +import PlayerDBGSEvent ## GM命令执行入口 @@ -29,21 +31,61 @@ if not paramList: return +# GameWorld.DebugAnswer(curPlayer, "重置所有红包领取:SetRedPacket 0") +# GameWorld.DebugAnswer(curPlayer, "清除所有类型红包:SetRedPacket 0 0") +# GameWorld.DebugAnswer(curPlayer, "清除指定类型红包:SetRedPacket 0 类型A 类型B ...") + + paramA = paramList[0] + paramB = paramList[1] if len(paramList) > 1 else None # 重置所有红包数据 - if len(paramList) == 1 and paramList[0] == 0: - GameWorld.DebugAnswer(curPlayer, "清除所有红包领取记录") + if paramA == 0: PlayerFamilyRedPacket.g_allRecordDict = {} PlayerFamilyRedPacket.g_grabDataDict = {} PlayerFamilyRedPacket.g_redPackCountDict = {} - recordType = ShareDefine.Def_UniversalGameRecType_FamilyRedPacketGrabRecord universalRecMgr = GameWorld.GetUniversalRecMgr() - universalRecMgr.Delete(recordType) + # 清除所有类型红包 + if paramB == 0: + universalRecMgr.Delete(ShareDefine.Def_UniversalGameRecType_FamilyRedPacketAllRecord) + __ResetSendState([]) + GameWorld.DebugAnswer(curPlayer, "清除所有类型红包OK!") + + # 清除指定类型红包 + elif paramB: + delTypeList = paramList[1:] + allRecordList = universalRecMgr.GetTypeList(ShareDefine.Def_UniversalGameRecType_FamilyRedPacketAllRecord) + delCount = 0 + for index in xrange(allRecordList.Count()): + universalRecData = allRecordList.At(index - delCount) + strValue1 = universalRecData.GetStrValue1() + strValue1List = strValue1.split('|') + getWay = int(strValue1List[3]) + if getWay not in delTypeList: + continue + allRecordList.Delete(index) + delCount += 1 + __ResetSendState(delTypeList) + GameWorld.DebugAnswer(curPlayer, "清除指定类型红包OK!%s,条数:%s" % (delTypeList, delCount)) + + # 清除抢的记录 + universalRecMgr.Delete(ShareDefine.Def_UniversalGameRecType_FamilyRedPacketGrabRecord) PlayerFamilyRedPacket.NotifyRedPacketInfo(curPlayer) + GameWorld.DebugAnswer(curPlayer, "清除所有红包领取记录OK!") return return +def __ResetSendState(delTypeList): + ipyDataMgr = IpyGameDataPY.IPY_Data() + for index in xrange(ipyDataMgr.GetFamilyRedPackCount()): + ipyData = ipyDataMgr.GetFamilyRedPackByIndex(index) + if delTypeList and ipyData.GetGetType() not in delTypeList: + continue + redPackID = ipyData.GetID() + if PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerFamilyRedPacket.DBKey_RedPacketSend % redPackID): + PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerFamilyRedPacket.DBKey_RedPacketSend % redPackID, 0) + return + -- Gitblit v1.8.0