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