From c9cc12b521d6542564cb2682fa19961850f02447 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 30 八月 2018 15:38:28 +0800 Subject: [PATCH] Merge remote-tracking branch 'remotes/origin/master' --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/FunctionNPCCommon.py | 76 +++++++++++++++++++++++++++++++++++++ 1 files changed, 75 insertions(+), 1 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/FunctionNPCCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/FunctionNPCCommon.py index a786ace..7a7355b 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/FunctionNPCCommon.py +++ b/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): @@ -528,6 +533,9 @@ #烟花狂欢 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(), @@ -554,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 -- Gitblit v1.8.0