#!/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 ChConfig import PlayerFamilyRedPacket import IpyGameDataPY import PlayerSuccess ## GMÃüÁîÖ´ÐÐÈë¿Ú # @param curPlayer µ±Ç°Íæ¼Ò # @param paramList ²ÎÊýÁбí # @return None or True # @remarks º¯ÊýÏêϸ˵Ã÷. def OnExec(curPlayer, paramList): if not paramList: GameWorld.DebugAnswer(curPlayer, "ÖØÖúì°ü:SetRedPacket 0") GameWorld.DebugAnswer(curPlayer, "SetRedPacket ºì°ü¹¦ÄÜ ¿ÉÇÀ¸öÊý ÒÑÇÀ¶î¶È") GameWorld.DebugAnswer(curPlayer, "ºì°ü¹¦ÄÜ: 1-¿ª·þºì°ü£»2-½ÚÈÕºì°ü") return # ÖØÖÃËùÓкì°üÊý¾Ý if len(paramList) == 1 and paramList[0] == 0: __DOResetSuccRedPack(curPlayer) __DoResetRedPackFunc(curPlayer, 1, None, 0) __DoResetRedPackFunc(curPlayer, 2, None, 0) curPlayer.GameServer_GMCmd("SetRedPacket 0") # ·¢Ë͵½GameServerÇå³ýºì°ü return if len(paramList) == 3: redPackFuncType, grabCount, grabMoney = paramList __DoResetRedPackFunc(curPlayer, redPackFuncType, grabCount, grabMoney) return 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_OSRedPacketCanGrabCnt, grabCount) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSRedPacketGrabMoney, grabMoney) return