|  |  |  | 
|---|
|  |  |  | import GameWorld | 
|---|
|  |  |  | import ChConfig | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetShopTypeList(cfgID, dayIndex): | 
|---|
|  |  |  | def GetShopTypeList(cfgID, dayIndex, woldLV): | 
|---|
|  |  |  | if cfgID == None or dayIndex == None: | 
|---|
|  |  |  | return [] | 
|---|
|  |  |  | ipyData = IpyGameDataPY.GetIpyGameData("ActSpringSale", cfgID) | 
|---|
|  |  |  | if not ipyData: | 
|---|
|  |  |  | return [] | 
|---|
|  |  |  | shopTypeList = ipyData.GetShopTypeList() | 
|---|
|  |  |  | shopTypeList = GameWorld.GetDictValueByRangeKey(ipyData.GetShopTypeList(), woldLV, []) | 
|---|
|  |  |  | todayShopType = shopTypeList[-1] if dayIndex >= len(shopTypeList) else shopTypeList[dayIndex] | 
|---|
|  |  |  | return todayShopType | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | actID = actInfo.get(ShareDefine.ActKey_ID, 0) | 
|---|
|  |  |  | state = actInfo.get(ShareDefine.ActKey_State, 0) | 
|---|
|  |  |  | cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | woldLV = actInfo.get(ShareDefine.ActKey_WorldLV, 0) | 
|---|
|  |  |  | playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SpringSaleID) # 玩家身上的活动ID | 
|---|
|  |  |  | isReset = False | 
|---|
|  |  |  | if actID != playerActID: | 
|---|
|  |  |  | isReset = True | 
|---|
|  |  |  | shopTypeList = GetShopTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0)) | 
|---|
|  |  |  | shopTypeList = GetShopTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0), woldLV) | 
|---|
|  |  |  | FunctionNPCCommon.ResetShopItemBuyCountByShopType(curPlayer, shopTypeList) | 
|---|
|  |  |  | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SpringSaleID, actID) | 
|---|
|  |  |  | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SpringSaleMailState, 0) | 
|---|
|  |  |  | 
|---|
|  |  |  | cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0) | 
|---|
|  |  |  | if not cfgID: | 
|---|
|  |  |  | return | 
|---|
|  |  |  | shopTypeList = GetShopTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0)) | 
|---|
|  |  |  | shopTypeList = GetShopTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0), actInfo.get(ShareDefine.ActKey_WorldLV, 0)) | 
|---|
|  |  |  | if not shopTypeList: | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | if len(startTimeList) != len(endTimeList): | 
|---|
|  |  |  | GameWorld.ErrLog("限时特惠开关时间时分配置错误!cfgID=%s" % cfgID) | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | job = curPlayer.GetJob() | 
|---|
|  |  |  | openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1 | 
|---|
|  |  |  | packInfo = ChPyNetSendPack.tagMCSpringSaleInfo() | 
|---|
|  |  |  | packInfo.StartDate = GameWorld.GetOperationActionDateStr(springSaleIpyData.GetStartDate(), openServerDay) | 
|---|
|  |  |  | 
|---|
|  |  |  | giftBag.ItemInfo = [] | 
|---|
|  |  |  | itemList = [[itemIpyData.GetItemID(), itemIpyData.GetItemCnt(), itemIpyData.GetIsBind()]] | 
|---|
|  |  |  | itemList += itemIpyData.GetItemListEx() | 
|---|
|  |  |  | jobItemList = itemIpyData.GetJobItem() | 
|---|
|  |  |  | for itemID, itemCount, isBind in itemList: | 
|---|
|  |  |  | item = ChPyNetSendPack.tagMCSpringSaleItem() | 
|---|
|  |  |  | item.ItemID = itemID | 
|---|
|  |  |  | jobItemID = FunctionNPCCommon.GetShopJobItem(job, itemID, jobItemList) | 
|---|
|  |  |  | item.ItemID = jobItemID | 
|---|
|  |  |  | item.ItemCount = itemCount | 
|---|
|  |  |  | item.IsBind = isBind | 
|---|
|  |  |  | item.IsMainItem = int(itemID == itemIpyData.GetMainItemID()) | 
|---|
|  |  |  | item.IsMainItem = int(itemID == FunctionNPCCommon.GetShopJobItem(job, itemIpyData.GetMainItemID(), jobItemList)) | 
|---|
|  |  |  | giftBag.ItemInfo.append(item) | 
|---|
|  |  |  | giftBag.GiftItemCount = len(giftBag.ItemInfo) | 
|---|
|  |  |  | shop.GiftbagInfo.append(giftBag) | 
|---|