| | |
| | | import DataRecordPack
|
| | | import ItemControler
|
| | | import IPY_GameWorld
|
| | | import PlayerWeekParty
|
| | | import ItemCommon
|
| | | import GameWorld
|
| | | import ChConfig
|
| | |
|
| | |
|
| | | def GetGiftbagTypeList(cfgID, dayIndex):
|
| | | def GetGiftbagTypeList(cfgID, dayIndex, woldLV):
|
| | | if cfgID == None or dayIndex == None:
|
| | | return []
|
| | | ipyData = IpyGameDataPY.GetIpyGameData("ActFlashGiftbag", cfgID)
|
| | | if not ipyData:
|
| | | return []
|
| | | giftbagTypeList = ipyData.GetGiftbagTypeList()
|
| | | giftbagTypeList = GameWorld.GetDictValueByRangeKey(ipyData.GetGiftbagTypeList(), woldLV, [])
|
| | | todayGiftbag = giftbagTypeList[-1] if dayIndex >= len(giftbagTypeList) else giftbagTypeList[dayIndex]
|
| | | return todayGiftbag
|
| | |
|
| | |
| | | cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
|
| | |
|
| | | playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashGiftbagID) # 玩家身上的活动ID
|
| | | giftbagTypeList = [] if not cfgID else GetGiftbagTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0))
|
| | | giftbagTypeList = [] if not cfgID else GetGiftbagTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0), actInfo.get(ShareDefine.ActKey_WorldLV, 0))
|
| | | isReset = False
|
| | | if actID != playerActID:
|
| | | isReset = True
|
| | |
| | | DataRecordPack.DR_CTGError(curPlayer, "FlashGiftbag state is 0!", addDRDict)
|
| | | return
|
| | |
|
| | | giftbagTypeList = GetGiftbagTypeList(actInfo.get(ShareDefine.ActKey_CfgID, 0), actInfo.get(ShareDefine.ActKey_DayIndex, 0))
|
| | | giftbagTypeList = GetGiftbagTypeList(actInfo.get(ShareDefine.ActKey_CfgID, 0), actInfo.get(ShareDefine.ActKey_DayIndex, 0), actInfo.get(ShareDefine.ActKey_WorldLV, 0))
|
| | | if not giftbagTypeList:
|
| | | DataRecordPack.DR_CTGError(curPlayer, "FlashGiftbag GiftbagTypeList is null!", addDRDict)
|
| | | return
|
| | |
| | | return
|
| | |
|
| | | giftbagID = giftbagIpyData.GetGiftbagID()
|
| | | giftItemList = giftbagIpyData.GetGiftItemList()
|
| | | giftItemList = __GetJobItemList(giftbagIpyData.GetGiftItemList(), curPlayer.GetJob()) |
| | | addDRDict.update({"giftbagID":giftbagID, "giftItemList":giftItemList})
|
| | | buyCountLimit = giftbagIpyData.GetBuyCountLimit()
|
| | | buyCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashGiftbagBuyCount % giftbagID)
|
| | |
| | | PlayerControl.SendMailByKey("", [curPlayer.GetPlayerID()], giftItemList)
|
| | | else:
|
| | | for itemID, itemCount, isBind in giftItemList:
|
| | | ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem], |
| | | ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, 0, [IPY_GameWorld.rptItem], |
| | | event=[ChConfig.ItemGive_CTG, True, addDRDict])
|
| | |
|
| | | # 取玩家APPID,混服使用
|
| | | appID = GameWorld.GetPlayerPlatform(curPlayer.GetAccID())
|
| | | appID = GameWorld.GetPlayerPlatform(curPlayer)
|
| | | notifyKey = giftbagIpyData.GetNotifyKey()
|
| | | if notifyKey:
|
| | | orderIpyData = GetFlashGiftbagIDOrderInfoIpyData(giftbagID, appID)
|
| | | rmb = 0 if not orderIpyData else int(orderIpyData.GetPayRMBNum())
|
| | | PlayerControl.WorldNotify(0, notifyKey, [curPlayer.GetPlayerName(), rmb, giftbagIpyData.GetMainItemID()])
|
| | | |
| | | |
| | | SyncFlashGiftbagBuyCount(curPlayer, [giftbagID])
|
| | | PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_GiftBag, actGiftbagType, False)
|
| | | return True
|
| | |
|
| | | def __GetJobItemList(itemList, job):
|
| | | jobItemList = []
|
| | | for itemID, itemCnt, isBind in itemList:
|
| | | if type(itemID) == int:
|
| | | jobItemList.append([itemID, itemCnt, isBind])
|
| | | elif job in itemID:
|
| | | jobItemList.append([itemID[job], itemCnt, isBind])
|
| | | return jobItemList
|
| | |
|
| | | def SyncFlashGiftbagBuyCount(curPlayer, syncIDList=[], giftbagTypeList=[]):
|
| | | ## 通知限时礼包玩家活动信息
|
| | |
| | | cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
|
| | | if not cfgID:
|
| | | return
|
| | | giftbagTypeList = GetGiftbagTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0))
|
| | | giftbagTypeList = GetGiftbagTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0), actInfo.get(ShareDefine.ActKey_WorldLV, 0))
|
| | |
|
| | | if not giftbagTypeList:
|
| | | return
|
| | |
| | | return
|
| | |
|
| | | # 取玩家APPID,混服使用
|
| | | appID = GameWorld.GetPlayerPlatform(curPlayer.GetAccID())
|
| | | appID = GameWorld.GetPlayerPlatform(curPlayer)
|
| | |
|
| | | openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1
|
| | | packInfo = ChPyNetSendPack.tagMCFlashGiftbagInfo()
|
| | |
| | | giftBag.RMB = 0 if not orderIpyData else int(orderIpyData.GetPayRMBNum())
|
| | | giftBag.RMBOriginal = giftIpyData.GetOriginalRMB()
|
| | | giftBag.ItemInfo = []
|
| | | for itemID, itemCount, isBind in giftIpyData.GetGiftItemList():
|
| | | for itemID, itemCount, isBind in __GetJobItemList(giftIpyData.GetGiftItemList(), curPlayer.GetJob()):
|
| | | item = ChPyNetSendPack.tagMCFlashGiftbagItem()
|
| | | item.ItemID = itemID
|
| | | item.ItemCount = itemCount
|