#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package GM.Commands.SetRedPacket # # @todo:ÉèÖúì°ü # @author hxp # @date 2019-01-29 # @version 1.0 # # ÏêϸÃèÊö: ÉèÖúì°ü # #------------------------------------------------------------------------------- #"""Version = 2019-01-29 16:00""" #------------------------------------------------------------------------------- import GameWorld import PlayerControl import PlayerFamilyRedPacket import PlayerFeastRedPacket import IpyGameDataPY import PlayerSuccess import ChConfig ## GMÃüÁîÖ´ÐÐÈë¿Ú # @param curPlayer µ±Ç°Íæ¼Ò # @param paramList ²ÎÊýÁбí # @return None or True # @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-½ÚÈÕºì°ü") return sendGameServer = False paramA = paramList[0] # ÖØÖÃËùÓкì°üÊý¾Ý if paramA == 0: sendGameServer = 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) return else: sendGameServer = True if sendGameServer: paramStr = "" for param in paramList: paramStr += " %s" % param curPlayer.GameServer_GMCmd("SetRedPacket%s" % paramStr) # ·¢Ë͵½GameServerÇå³ýºì°ü return def __DOResetSuccRedPack(curPlayer): ## ÖØÖúì°ü³É¾Í·¢·Å¼Ç¼£¬²»ÖØÖýø¶È resetList = [] ipyDataMgr = IpyGameDataPY.IPY_Data() for index in xrange(ipyDataMgr.GetSuccessCount()): succData = ipyDataMgr.GetSuccessByIndex(index) succID = succData.ID succType = succData.Type condition = succData.Condition if not succData.RedPacketID: continue if not PlayerSuccess.GetSuccFinishValue(curPlayer, succType, condition): continue #SetSuccFinishValue(curPlayer, succType, condition, 0) if PlayerSuccess.GetSuccHasGot(curPlayer, succID): PlayerSuccess.SetSuccFinish(curPlayer, succID, True) PlayerSuccess.SetSuccHasGot(curPlayer, succID, False) resetList.append(succID) if resetList: PlayerSuccess.Sync_SuccTypeIndexAwardRecord(curPlayer, resetList, True) PlayerSuccess.Sync_SuccessInfo(curPlayer, resetList, True) return 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) elif redPackFuncType == 2: if not isinstance(grabCount, int): grabCount = IpyGameDataPY.GetFuncCfg('FeastRedPacket', 1) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FeastRedPacketCanGrabCnt, grabCount) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FeastRedPacketGrabMoney, grabMoney) PlayerFeastRedPacket.Sync_FeastRedPackInfo(curPlayer) return