xdh
2018-10-29 a984223d7a68ebd6596251e43f97903e6bfd395f
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/FunctionNPCCommon.py
@@ -69,6 +69,7 @@
import random
import math
import time
#---------------------------------------------------------------------
##开始交易
# @param curPlayer 玩家实例
@@ -201,7 +202,6 @@
def ShopItemOnDay(curPlayer, onEventType):
    if onEventType == ShareDefine.Def_OnEventType:
        UpdataSuperGiftTime(curPlayer, True)
        SyncSuperGiftInfo(curPlayer)
        OSSaleOpenMail(curPlayer)
        refreshType = [3]
    elif onEventType == ShareDefine.Def_OnEventTypeEx:
@@ -541,8 +541,6 @@
    SyncShoppingResult(curPlayer, itemIndex, clientBuyCount)
    if itemIndex in IpyGameDataPY.GetFuncEvalCfg('CeremonyFireParty', 1, {}).values():
        PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_Fireworks, clientBuyCount)
    if itemIndex in dict(IpyGameDataPY.GetFuncEvalCfg('SuperGiftTimeList')):
        UpdataSuperGiftTime(curPlayer)
    return
def __GetShopJobItem(job, itemID, jobItemList):
@@ -629,67 +627,44 @@
#超值礼包购买时间
def UpdataSuperGiftTime(curPlayer, isOnday=False):
    superGiftData = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SuperGiftData)
    giftIndex, startDay = superGiftData%10, superGiftData/10
    superGiftTimeList = IpyGameDataPY.GetFuncEvalCfg('SuperGiftTimeList')
    if giftIndex >= len(superGiftTimeList):
        return
    if isOnday and not giftIndex:
        return
    openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay)+1
    newIndex = giftIndex
    curTime = int(time.time())
    if isOnday:
        lastDays = 0
        pastDay = openServerDay - startDay
        for i in xrange(giftIndex-1, len(superGiftTimeList)):
            lastDays += superGiftTimeList[i][1]
            if pastDay < lastDays:
                break
            if pastDay >= lastDays:
                newIndex = i+2
        startTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SuperGiftStartTime)
        if not startTime:
            return
        superGiftTimeList = IpyGameDataPY.GetFuncEvalCfg('SuperGiftTimeList')
        maxDay = max([info[1] for info in superGiftTimeList])
        if curTime - startTime >= maxDay * 86400:
            #活动结束 重置
            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SuperGiftStartTime, 0)
    else:
        newIndex = min(len(superGiftTimeList), giftIndex+1)
    if newIndex == giftIndex:
        return
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SuperGiftData, openServerDay*10+newIndex)
    #֪ͨ
    if not isOnday:
        SyncSuperGiftInfo(curPlayer)
    if newIndex == 1:
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SuperGiftStartTime, curTime)
        addItemList = IpyGameDataPY.GetFuncEvalCfg('SuperGiftTimeList', 2)
        PlayerControl.SendMailByKey('SellMail2', [curPlayer.GetID()], addItemList)
        SyncSuperGiftInfo(curPlayer)
    return True
def SyncSuperGiftInfo(curPlayer):
    superGiftData = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SuperGiftData)
    giftIndex, startDay = superGiftData%10, superGiftData/10
    superGiftTimeList = IpyGameDataPY.GetFuncEvalCfg('SuperGiftTimeList')
    if giftIndex == 0 or giftIndex > len(superGiftTimeList):
    startTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SuperGiftStartTime)
    if not startTime:
        return
    giftID, day = superGiftTimeList[giftIndex-1]
    openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay)+1
    remainDay = max(0, day - openServerDay+startDay)-1
    packData = ChPyNetSendPack.tagMCSuperGiftInfo()
    packData.GiftID = giftID
    packData.EndtDate = str(GameWorld.GetDatetimeByDiffDays(remainDay))[:10]
    packData.StartTime = startTime
    NetPackCommon.SendFakePack(curPlayer, packData)
    return
def CheckSuperGiftBuy(curPlayer, giftID):
    #超值礼包是否可购买
    superGiftData = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SuperGiftData)
    giftIndex, startDay = superGiftData%10, superGiftData/10
    superGiftTimeList = IpyGameDataPY.GetFuncEvalCfg('SuperGiftTimeList')
    if giftIndex == 0 or giftIndex > len(superGiftTimeList):
    startTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SuperGiftStartTime)
    if not startTime:
        return
    curGiftID, day = superGiftTimeList[giftIndex-1]
    if giftID != curGiftID:
    superGiftTimeDict = dict(IpyGameDataPY.GetFuncEvalCfg('SuperGiftTimeList'))
    totalDay = superGiftTimeDict.get(giftID, 0)
    if not totalDay:
        return
    openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay)+1
    if not max(0, day - openServerDay+startDay):
    curTime = int(time.time())
    if (curTime - startTime)/86400 >= totalDay:
        #已结束
        return
    return True