hch
2018-08-30 085b4bfd72e181f644bca406554b589c0ea680cc
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/FunctionNPCCommon.py
@@ -58,7 +58,7 @@
import ItemCommon
import ShareDefine
import DataRecordPack
import EventSrc
#import EventSrc
import ChItem
import IpyGameDataPY
import PlayerRune
@@ -191,6 +191,7 @@
## 登录
def ShopItemOnLogin(curPlayer):
    SyncShopItemTodayBuyCount(curPlayer)
    SyncSuperGiftInfo(curPlayer)
    return
##商店物品OnDay
@@ -198,6 +199,8 @@
# @return 
def ShopItemOnDay(curPlayer, onEventType):
    if onEventType == ShareDefine.Def_OnEventType:
        UpdataSuperGiftTime(curPlayer, True)
        SyncSuperGiftInfo(curPlayer)
        refreshType = [3]
    elif onEventType == ShareDefine.Def_OnEventTypeEx:
        refreshType = [4]
@@ -484,6 +487,8 @@
    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):
@@ -521,12 +526,16 @@
        if curFamilyLV <= 0:
            curFamilyLV = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilyLV)
        return curFamilyLV < limitValue
    if shopNPCID in [15]: # 限时特惠商店
        playerCreateRoleDays = GameWorld.GetCreateRoleDays(curPlayer)
        return playerCreateRoleDays != limitValue
    if shopNPCID in [15]: # 开服特惠商店
        #playerCreateRoleDays = GameWorld.GetCreateRoleDays(curPlayer)
        openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay)+1
        return openServerDay != limitValue
    #烟花狂欢
    if itemIndex in IpyGameDataPY.GetFuncEvalCfg('CeremonyFireParty', 1, {}).values():
        return not PlayerFairyCeremony.IsCanBuyFireworks(curPlayer, itemIndex)
    if itemIndex in dict(IpyGameDataPY.GetFuncEvalCfg('SuperGiftTimeList')):
        return not CheckSuperGiftBuy(curPlayer, itemIndex)
#    
#    limitPlusDict = {shopItem.GetLimitPlusType1():shopItem.GetLimitPlusValue1(),
#                     shopItem.GetLimitPlusType2():shopItem.GetLimitPlusValue2(),
@@ -553,6 +562,72 @@
    # 默认不限制
    return False
#超值礼包购买时间
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
    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
    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:
        addItemList = IpyGameDataPY.GetFuncEvalCfg('SuperGiftTimeList', 2)
        PlayerControl.SendMailByKey('SellMail2', [curPlayer.GetID()], addItemList)
    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):
        return
    giftID, day = superGiftTimeList[giftIndex-1]
    openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay)+1
    packData = ChPyNetSendPack.tagMCSuperGiftInfo()
    packData.GiftID = giftID
    packData.RemainDay = max(0, day - openServerDay+startDay)
    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):
        return
    curGiftID, day = superGiftTimeList[giftIndex-1]
    if giftID != curGiftID:
        return
    openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay)+1
    if not max(0, day - openServerDay+startDay):
        return
    return True
## 商店npcid
#  @param curPlayer 玩家实例
#  @return