#!/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 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 µ±Ç°Íæ¼Ò # @param paramList ²ÎÊýÁбí # @return None or True # @remarks º¯ÊýÏêϸ˵Ã÷. def OnExec(curPlayer, paramList): if not paramList: __Help(curPlayer) return isSendGameServer = False paramA = paramList[0] # ÖØÖÃËùÓкì°üÊý¾Ý if paramA == 0: isSendGameServer = True __DOResetSuccRedPack(curPlayer) __DoResetRedPackFunc(curPlayer, 1, None, 0) __DoResetRedPackFunc(curPlayer, 2, None, 0) # ·¢Ö¸¶¨ºì°ü 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: return return isSendGameServer 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: pass 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