#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
#-------------------------------------------------------------------------------
|
#
|
##@package PlayerStore
|
#
|
# @todo:É̳Ç
|
# @author xdh
|
# @date 2018-10-09
|
# @version 1.0
|
#
|
#
|
# ÏêϸÃèÊö: É̳ÇÈ«·þÏÞ¹º´¦Àí
|
#
|
#---------------------------------------------------------------------
|
"""Version = 2018-10-09 17:00"""
|
|
import GameWorld
|
import PlayerUniversalGameRec
|
import ShareDefine
|
import PlayerControl
|
import IpyGameDataPY
|
|
RecType = ShareDefine.Def_UniversalGameRecType_StoreServerCntRecord
|
|
## Íæ¼ÒµÇ¼
|
# @param None
|
# @return None
|
def OnPlayerLogin(curPlayer):
|
PlayerUniversalGameRec.SendUniversalGameRecInfo(curPlayer, RecType)
|
return
|
|
|
## É̳ÇÈ«·þÏÞ¹º²éѯ½á¹û
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param msgList ÐÅÏ¢Áбí
|
# @return awardID
|
def DoStoreServerBuyQueryResult(curPlayer, msgList):
|
goodsID = msgList[0]
|
serverLimitCnt = msgList[1]
|
buyCount = msgList[2]
|
|
curGotCnt = 0
|
|
universalRecMgr = GameWorld.GetUniversalRecMgr()
|
recTypeListData = universalRecMgr.GetTypeList(RecType)
|
findRecData = None
|
for index in range(recTypeListData.Count()):
|
recData = recTypeListData.At(index)
|
curGoodsID = recData.GetValue1()
|
if goodsID == curGoodsID:
|
findRecData = recData
|
curGotCnt = recData.GetValue2()
|
break
|
|
if curGotCnt + buyCount > serverLimitCnt:
|
GameWorld.Log(' ¹ºÂòÉÌÆ· È«·þ¹ºÂò´ÎÊý²»¹» goodsID=%s,curGotCnt=%s,buyCount=%s,serverLimitCnt=%s'%(goodsID, curGotCnt, buyCount, serverLimitCnt))
|
return
|
if not findRecData:
|
findRecData = recTypeListData.AddRec()
|
findRecData.SetValue1(goodsID)
|
findRecData.SetValue2(curGotCnt+buyCount)
|
#֪ͨ
|
playerManager = GameWorld.GetPlayerManager()
|
for i in xrange(playerManager.GetActivePlayerCount()):
|
curPlayer = playerManager.GetActivePlayerAt(i)
|
if curPlayer == None or not curPlayer.GetInitOK():
|
continue
|
if PlayerControl.GetIsTJG(curPlayer):
|
continue
|
PlayerUniversalGameRec.SendUniversalGameRecSingle(curPlayer, findRecData)
|
|
return msgList
|
|
def DoResetStoreServerBuyCnt(shopTypeList):
|
'''¸ù¾ÝÉ̵êÀàÐÍÖØÖÃÈ«·þ¹ºÂò´ÎÊý'''
|
universalRecMgr = GameWorld.GetUniversalRecMgr()
|
recTypeListData = universalRecMgr.GetTypeList(RecType)
|
|
delCnt = 0
|
for index in xrange(recTypeListData.Count()):
|
dataIndex = index - delCnt
|
recData = recTypeListData.At(dataIndex)
|
curGoodsID = recData.GetValue1()
|
ipyData = IpyGameDataPY.GetIpyGameData("Store", curGoodsID)
|
if not ipyData:
|
continue
|
if ipyData.GetShopType() not in shopTypeList:
|
continue
|
recTypeListData.Delete(dataIndex)
|
delCnt +=1
|
GameWorld.DebugLog(' ¸ù¾ÝÉ̵êÀàÐÍÖØÖÃÈ«·þ¹ºÂò´ÎÊý shopTypeList=%s'%shopTypeList)
|
if delCnt:
|
PlayerUniversalGameRec.SendUniversalGameRecInfo(None, RecType)
|
return
|
|
|
def ResetFlashSaleBuyCnt(ipyData, dayIndex, state):
|
#ÖØÖÃÏÞʱÇÀ¹ºÉ̵êÈ«·þ¹ºÂò´ÎÊý
|
if state == 0:
|
return
|
shopTypeList = ipyData.GetShopTypeList()
|
dayShopList = shopTypeList[dayIndex] if dayIndex < len(shopTypeList) else shopTypeList[-1]
|
shopType = dayShopList[state-1] if state-1 < len(dayShopList) else dayShopList[-1]
|
DoResetStoreServerBuyCnt([shopType])
|
return
|