#!/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 PlayerFeastRedPacket 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 0 0") GameWorld.DebugAnswer(curPlayer, "Çå³ýÖ¸¶¨ÀàÐͺì°ü:SetRedPacket 0 ÀàÐÍA ÀàÐÍB ...") GameWorld.DebugAnswer(curPlayer, "ÉèÖù¦Äܺì°üÊý¾Ý:SetRedPacket ºì°ü¹¦ÄÜ ¿ÉÇÀ¸öÊý ÒÑÇÀ¶î¶È") GameWorld.DebugAnswer(curPlayer, "ºì°ü¹¦ÄÜ: 1-¿ª·þºì°ü£»2-½ÚÈÕºì°ü") return paramA = paramList[0] # ÖØÖÃËùÓкì°üÊý¾Ý if paramA == 0: __DOResetSuccRedPack(curPlayer) __DoResetRedPackFunc(curPlayer, 1, None, 0) __DoResetRedPackFunc(curPlayer, 2, None, 0) paramStr = "" for param in paramList: paramStr += " %s" % param curPlayer.GameServer_GMCmd("SetRedPacket%s" % paramStr) # ·¢Ë͵½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_FeastRedPacketCanGrabCnt, grabCount) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FeastRedPacketGrabMoney, grabMoney) PlayerFeastRedPacket.Sync_FeastRedPackInfo(curPlayer) return