#!/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
|
|
|