#!/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
|
|
## GMÃüÁîÖ´ÐÐÈë¿Ú
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param paramList ²ÎÊýÁбí
|
# @return None or True
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnExec(curPlayer, paramList):
|
if not paramList:
|
GameWorld.DebugAnswer(curPlayer, "---------------------------")
|
GameWorld.DebugAnswer(curPlayer, "ÇåËùÓкì°ü:SetRedPacket 0")
|
GameWorld.DebugAnswer(curPlayer, "ÇåÖ¸¶¨ºì°ü:SetRedPacket 0 ÀàÐÍA ÀàÐÍB ...")
|
GameWorld.DebugAnswer(curPlayer, "·¢È«·þºì°ü:SetRedPacket 36 ºì°ü±àºÅ ¸öÊý")
|
GameWorld.DebugAnswer(curPlayer, "ÀàÐÍ:36-È«·þºì°ü;33-½ÚÈճɾÍ")
|
GameWorld.DebugAnswer(curPlayer, "È«·þºì°ü±àºÅ:126~130")
|
GameWorld.DebugAnswer(curPlayer, "ÉèÖúì°ü:SetRedPacket ¹¦ÄÜ ¿ÉÇÀÊý ÒÑÇÀ¶î¶È")
|
GameWorld.DebugAnswer(curPlayer, "ºì°ü¹¦ÄÜ:1-¿ª·þºì°ü;2-½ÚÈÕºì°ü")
|
return
|
|
sendGameServer = False
|
paramA = paramList[0]
|
# ÖØÖÃËùÓкì°üÊý¾Ý
|
if paramA == 0:
|
sendGameServer = True
|
__DOResetSuccRedPack(curPlayer)
|
__DoResetRedPackFunc(curPlayer, 1, None, 0)
|
__DoResetRedPackFunc(curPlayer, 2, None, 0)
|
|
elif paramA in [1, 2]:
|
if len(paramList) == 3:
|
redPackFuncType, grabCount, grabMoney = paramList
|
__DoResetRedPackFunc(curPlayer, redPackFuncType, grabCount, grabMoney)
|
return
|
else:
|
sendGameServer = True
|
|
if sendGameServer:
|
paramStr = ""
|
for param in paramList:
|
paramStr += " %s" % param
|
curPlayer.GameServer_GMCmd("SetRedPacket%s" % paramStr) # ·¢Ë͵½GameServerÇå³ýºì°ü
|
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
|
|
|