hxp
1 天以前 cdef1c9f32913b3568ab48dbc64133632dc122ba
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldGift.py
@@ -24,6 +24,7 @@
import ChPyNetSendPack
import NetPackCommon
import IpyGameDataPY
import ShareDefine
import CommFunc
import ObjPool
@@ -81,7 +82,7 @@
    
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FirstChargeTime % firstID, int(time.time()))
    GameWorld.DebugLog("记录首充档位充值时间戳: ctgID=%s" % ctgID)
    Sync_FirstChargeInfo(curPlayer)
    Sync_FirstChargeInfo(curPlayer, firstID)
    return
def GetPlayerFirstCharge(curPlayer, giftDay, firstIDStr):
@@ -115,28 +116,49 @@
        return
    awardList = getattr(ipyData, "GetAwardListDay%s" % giftDay)()
    
    if not ItemControler.CheckPackSpaceEnough(curPlayer, [itemInfo[:2] for itemInfo in awardList]):
        return
    # 更新已领取成功标记
    updGetRecord = getRecord | pow(2, giftDay)
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FirstChargeRecord % firstID, updGetRecord)
    GameWorld.DebugLog("领取首充奖励: firstID=%s,giftDay=%s,getRecord=%s,updGetRecord=%s, %s" % (firstID, giftDay, getRecord, updGetRecord, awardList))
    Sync_FirstChargeInfo(curPlayer, firstID)
    
    ItemControler.GivePlayerItemOrMail(curPlayer, awardList, event=["FirstCharge", False, {}])
    Sync_FirstChargeInfo(curPlayer)
    isAuctionItem = 0
    notifyAwardList = []
    for itemID, itemCount, appointID in awardList:
        setAttrDict = {ShareDefine.Def_CItemKey_AppointID:appointID} if appointID else {}
        if not ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isAuctionItem, event=["FirstCharge", False, {}], setAttrDict=setAttrDict):
            continue
        notifyAwardList.append([itemID, itemCount, isAuctionItem])
    ItemControler.NotifyGiveAwardInfo(curPlayer, notifyAwardList, "FirstCharge")
    return
def Sync_FirstChargeInfo(curPlayer):
def Sync_FirstChargeInfo(curPlayer, firstID=0):
    ## 通知首充信息
    clientPack = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCFirstChargeInfo)
    clientPack.FirstChargeList = []
    ipyDataMgr = IpyGameDataPY.IPY_Data()
    for index in range(ipyDataMgr.GetFirstChargeCount()):
        ipyData = ipyDataMgr.GetFirstChargeByIndex(index)
        firstID = ipyData.GetFirstID()
    if firstID:
        syncIDList = [firstID]
    else:
        syncIDList = []
        ipyDataMgr = IpyGameDataPY.IPY_Data()
        for index in range(ipyDataMgr.GetFirstChargeCount()):
            ipyData = ipyDataMgr.GetFirstChargeByIndex(index)
            syncIDList.append(ipyData.GetFirstID())
    firstChargeList = []
    for firstID in syncIDList:
        firstCharge = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCFirstCharge)
        firstCharge.FirstID = firstID
        firstCharge.ChargeTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FirstChargeTime % firstID)
        firstCharge.AwardRecord = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FirstChargeRecord % firstID)
        clientPack.FirstChargeList.append(firstCharge)
        firstChargeList.append(firstCharge)
    if not firstChargeList:
        return
    clientPack = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCFirstChargeInfo)
    clientPack.FirstChargeList = firstChargeList
    clientPack.Count = len(clientPack.FirstChargeList)
    NetPackCommon.SendFakePack(curPlayer, clientPack)
    return