|  |  |  | 
|---|
|  |  |  | 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 当前玩家 | 
|---|
|  |  |  | 
|---|
|  |  |  | #  @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 | 
|---|
|  |  |  | # 发指定红包 | 
|---|
|  |  |  | elif paramA == 1 and len(paramList) > 1: | 
|---|
|  |  |  | redPacketID = paramList[1] | 
|---|
|  |  |  | ipyData = IpyGameDataPY.GetIpyGameData('FamilyRedPack', redPacketID) | 
|---|
|  |  |  | if not ipyData: | 
|---|
|  |  |  | GameWorld.DebugAnswer(curPlayer, "不存在该红包! %s" % redPacketID) | 
|---|
|  |  |  | return | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 设置抢红包 | 
|---|
|  |  |  | elif paramA == 2 and len(paramList) == 4: | 
|---|
|  |  |  | redPackFuncType, grabCount, grabMoney = paramList[1:] | 
|---|
|  |  |  | __DoResetRedPackFunc(curPlayer, redPackFuncType, grabCount, grabMoney) | 
|---|
|  |  |  | return | 
|---|
|  |  |  | else: | 
|---|
|  |  |  | sendGameServer = True | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if sendGameServer: | 
|---|
|  |  |  | paramStr = "" | 
|---|
|  |  |  | for param in paramList: | 
|---|
|  |  |  | paramStr += " %s" % param | 
|---|
|  |  |  | curPlayer.GameServer_GMCmd("SetRedPacket%s" % paramStr) # 发送到GameServer清除红包 | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return isSendGameServer | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def __DOResetSuccRedPack(curPlayer): | 
|---|
|  |  |  | ## 重置红包成就发放记录,不重置进度 | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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) | 
|---|