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/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetRedPacket.py | 65 +++++++++++++++++++------------- 1 files changed, 38 insertions(+), 27 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetRedPacket.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetRedPacket.py index 144063a..1adeb81 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetRedPacket.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetRedPacket.py @@ -22,6 +22,16 @@ import IpyGameDataPY import PlayerSuccess import ChConfig +import ShareDefine + +def __Help(curPlayer): + GameWorld.DebugAnswer(curPlayer, "---------------------------") + GameWorld.DebugAnswer(curPlayer, "清所有红包:SetRedPacket 0") + GameWorld.DebugAnswer(curPlayer, "清指定红包:SetRedPacket 0 类型A 类型B ...") + GameWorld.DebugAnswer(curPlayer, "发指定红包:SetRedPacket 1 红包编号 个数") + GameWorld.DebugAnswer(curPlayer, "设置抢红包:SetRedPacket 2 红包功能 可抢数 已抢额度") + GameWorld.DebugAnswer(curPlayer, "红包功能:1-开服红包;2-节日红包") + return ## GM命令执行入口 # @param curPlayer 当前玩家 @@ -30,39 +40,44 @@ # @remarks 函数详细说明. def OnExec(curPlayer, paramList): if not paramList: - GameWorld.DebugAnswer(curPlayer, "---------------------------") - GameWorld.DebugAnswer(curPlayer, "清所有红包:SetRedPacket 0") - GameWorld.DebugAnswer(curPlayer, "清指定红包:SetRedPacket 0 类型A 类型B ...") - GameWorld.DebugAnswer(curPlayer, "发全服红包:SetRedPacket 36 红包编号 个数") - GameWorld.DebugAnswer(curPlayer, "类型:36-全服红包;33-节日成就") - GameWorld.DebugAnswer(curPlayer, "全服红包编号:126~130") - GameWorld.DebugAnswer(curPlayer, "设置红包:SetRedPacket 功能 可抢数 已抢额度") - GameWorld.DebugAnswer(curPlayer, "红包功能:1-开服红包;2-节日红包") + __Help(curPlayer) return - sendGameServer = False + isSendGameServer = False paramA = paramList[0] # 重置所有红包数据 if paramA == 0: - sendGameServer = True + isSendGameServer = True __DOResetSuccRedPack(curPlayer) __DoResetRedPackFunc(curPlayer, 1, None, 0) __DoResetRedPackFunc(curPlayer, 2, None, 0) - elif paramA in [1, 2]: - if len(paramList) == 3: - redPackFuncType, grabCount, grabMoney = paramList - __DoResetRedPackFunc(curPlayer, redPackFuncType, grabCount, grabMoney) + # 发指定红包 + elif paramA == 1 and len(paramList) > 1: + redPacketID = paramList[1] + ipyData = IpyGameDataPY.GetIpyGameData('FamilyRedPack', redPacketID) + if not ipyData: + GameWorld.DebugAnswer(curPlayer, "不存在该红包! %s" % redPacketID) return - else: - sendGameServer = True + getType = ipyData.GetGetType() + if not getType: + return + getWayType = PlayerFamilyRedPacket.GetRedPackGetWayType(getType) + if getWayType == ShareDefine.RedPackWayType_Family or getType == ShareDefine.RedPackType_FeastSucc: + if not PlayerFamilyRedPacket.CreatRedPacketByID(curPlayer, redPacketID): + GameWorld.DebugAnswer(curPlayer, "###发送红包失败,详见地图日志! %s" % redPacketID) + return + isSendGameServer = True - if sendGameServer: - paramStr = "" - for param in paramList: - paramStr += " %s" % param - curPlayer.GameServer_GMCmd("SetRedPacket%s" % paramStr) # 发送到GameServer清除红包 - return + # 设置抢红包 + elif paramA == 2 and len(paramList) == 4: + redPackFuncType, grabCount, grabMoney = paramList[1:] + __DoResetRedPackFunc(curPlayer, redPackFuncType, grabCount, grabMoney) + return + else: + return + + return isSendGameServer def __DOResetSuccRedPack(curPlayer): ## 重置红包成就发放记录,不重置进度 @@ -91,11 +106,7 @@ def __DoResetRedPackFunc(curPlayer, redPackFuncType, grabCount, grabMoney): if redPackFuncType == 1: - if not isinstance(grabCount, int): - grabCount = IpyGameDataPY.GetFuncCfg('OpenServerRedPacketCfg', 5) - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSRedPacketCanGrabCnt, grabCount) - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSRedPacketGrabMoney, grabMoney) - PlayerFamilyRedPacket.NotifyOSRedPacket(curPlayer) + pass elif redPackFuncType == 2: if not isinstance(grabCount, int): grabCount = IpyGameDataPY.GetFuncCfg('FeastRedPacket', 1) -- Gitblit v1.8.0