| | |
| | |
|
| | | ## 登录
|
| | | def ShopItemOnLogin(curPlayer):
|
| | | if not GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_SuperGift):
|
| | | GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_SuperGift, 1)
|
| | | isGet = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GoldGiftFirstRecord)
|
| | | if isGet:#首充奖励已领取则代表超值礼包已开启过,
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SuperGiftHasOpen, 1)
|
| | | |
| | | |
| | | SyncMysticalShopInfo(curPlayer)
|
| | | SyncShopItemTodayBuyCount(curPlayer)
|
| | | SyncSuperGiftInfo(curPlayer)
|
| | | return
|
| | |
| | | __ResetShopItemBuyCount(curPlayer, [refreshType])
|
| | | return
|
| | |
|
| | | def ShopItemOnCrossPKSeasonChange(curPlayer):
|
| | | ## 按跨服PK赛季重置
|
| | | refreshType = 8
|
| | | __ResetShopItemBuyCount(curPlayer, [refreshType])
|
| | | return
|
| | |
|
| | | def __ResetShopItemBuyCount(curPlayer, onEventTypeList):
|
| | | #重置商店物品购买次数 1:周一0点刷新 2:周一5点刷新 3:每日0点刷新 4:每日5点刷新 5每月0点 6每月5点
|
| | | #重置商店物品购买次数 1:周一0点刷新 2:周一5点刷新 3:每日0点刷新 4:每日5点刷新 5每月0点 6每月5点 7每3天5点 8每赛季
|
| | | syncIndexList = []
|
| | | ipyDataMgr = IpyGameDataPY.IPY_Data()
|
| | | for i in xrange(ipyDataMgr.GetStoreCount()):
|
| | |
| | | syncIndexList.append(shopItem.GetID())
|
| | | if syncIndexList:
|
| | | SyncShopItemTodayBuyCount(curPlayer, syncIndexList, True)
|
| | | return
|
| | |
|
| | | def MysticalShopOpen(curPlayer, befLV, aftLV):
|
| | | ##神秘限购开启
|
| | | ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition('Store', {'ShopType':16}, True)
|
| | | if not ipyDataList:
|
| | | return
|
| | | curTime = int(time.time())
|
| | | syncGoodsList = []
|
| | | for ipyData in ipyDataList:
|
| | | limitLV = ipyData.GetLimitLV()
|
| | | if befLV < limitLV and aftLV >= limitLV:
|
| | | goodsID = ipyData.GetID()
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ShopItemStartTime % goodsID, curTime)
|
| | | syncGoodsList.append(goodsID)
|
| | | GameWorld.DebugLog('神秘限购商品%s 开卖'%goodsID, curPlayer.GetID())
|
| | | if syncGoodsList:
|
| | | SyncMysticalShopInfo(curPlayer)
|
| | | return
|
| | |
|
| | | def SyncMysticalShopInfo(curPlayer):
|
| | | ##神秘限购通知
|
| | | packData = ChPyNetSendPack.tagMCMysticalShopTimeInfo()
|
| | | packData.ShopTimeList = []
|
| | | ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition('Store', {'ShopType':16}, True)
|
| | | curTime = int(time.time())
|
| | | for ipyData in ipyDataList:
|
| | | goodsID = ipyData.GetID()
|
| | | startTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ShopItemStartTime % goodsID)
|
| | | if not startTime:
|
| | | continue
|
| | | if curTime - startTime >= ipyData.GetLimitValue():
|
| | | #超时的重置
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ShopItemStartTime % goodsID, 0)
|
| | | else:
|
| | | goodsTime = ChPyNetSendPack.tagMCMysticalShopTime()
|
| | | goodsTime.GoodsID = goodsID
|
| | | goodsTime.StartTime = startTime
|
| | | packData.ShopTimeList.append(goodsTime)
|
| | | if not packData.ShopTimeList:
|
| | | return
|
| | | packData.Count = len(packData.ShopTimeList)
|
| | | NetPackCommon.SendFakePack(curPlayer, packData)
|
| | | return
|
| | |
|
| | | ## 回购物品
|
| | |
| | | # @param tick 时间戳
|
| | | # @return 返回值真, 逻辑运行成功
|
| | | def BuyItem(curPlayer, tick):
|
| | |
|
| | | |
| | | if GameWorld.IsCrossServer():
|
| | | return
|
| | | |
| | | buyItemList = IPY_GameWorld.IPY_CBuyItemList()
|
| | | itemIndex = buyItemList.GetBuyItemIndex()
|
| | | if itemIndex < 0:
|
| | |
| | | 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):
|
| | |
| | | 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)
|
| | | # if itemIndex in dict(IpyGameDataPY.GetFuncEvalCfg('SuperGiftTimeList')):
|
| | | # return not CheckSuperGiftBuy(curPlayer, itemIndex)
|
| | | if shopNPCID == 16:#神秘限购
|
| | | startTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ShopItemStartTime % itemIndex)
|
| | | curTime = int(time.time())
|
| | | return not startTime or curTime - startTime >= limitValue
|
| | | |
| | | #
|
| | | # limitPlusDict = {shopItem.GetLimitPlusType1():shopItem.GetLimitPlusValue1(),
|
| | | # shopItem.GetLimitPlusType2():shopItem.GetLimitPlusValue2(),
|
| | |
| | | #活动结束 重置
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SuperGiftStartTime, 0)
|
| | | else:
|
| | | if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SuperGiftHasOpen):
|
| | | #老号已开启过超值礼包则不再开启
|
| | | return
|
| | | |
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SuperGiftStartTime, curTime)
|
| | | addItemList = IpyGameDataPY.GetFuncEvalCfg('SuperGiftTimeList', 2)
|
| | | PlayerControl.SendMailByKey('SellMail2', [curPlayer.GetID()], addItemList)
|