#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # #------------------------------------------------------------------------------- # ##@package PlayerQQ # # @todo:QQ½±Àø # @author zqx # @date 2014-12-03 # @version 1.3 # # ÏêϸÃèÊö: # @change: "2016-09-13 15:00" hxp ´úÂëµ÷Õû # @change: "2016-09-14 03:50" xdh qzone½±Àø # @change: "2016-09-23 21:00" hxp ƽ̨ͳһΪtencent£¬¹¦Äܽ±ÀøÍ¨¹ýpfʶ±ð # #--------------------------------------------------------------------- #"""Version = 2016-09-23 21:00""" #--------------------------------------------------------------------- import ChConfig import GameWorld import ShareDefine import ReadChConfig import ItemControler import DataRecordPack import IPY_GameWorld import PlayerControl import ItemCommon import ChPlayer # ½±ÀøÀàÐͶÔÓ¦¼Ç¼key AwardType_KeyDict = { # ShareDefine.Def_RewardType_QQUpYellow:ChConfig.Def_PDict_QQUpYellowAwardRecord, # ShareDefine.Def_RewardType_QQUpBlue:ChConfig.Def_PDict_QQUpBlueAwardRecord, # ShareDefine.Def_RewardType_QQNewMan:ChConfig.Def_PDict_QQNewManAwardRecord, # ShareDefine.Def_RewardType_QQDayGift:ChConfig.Def_PDict_QQDayGiftAwardRecord, # ShareDefine.Def_RewardType_QzoneUp:ChConfig.Def_PDict_QzoneUpAwardRecord, # ShareDefine.Def_RewardType_QzoneNewMan:ChConfig.Def_PDict_QzoneNewManAwardRecord, # ShareDefine.Def_RewardType_QzoneDayGift:ChConfig.Def_PDict_QzoneDayAwardRecord, } # ¶¨Òå½±ÀøÐÅÏ¢Ë÷Òý QQDayAwardIndexList = ( Def_QQDayAward_YELLOW, # »Æ×ê Def_QQDayAward_BLUE, # À¶×ê Def_QQDayAward_YEAR_YELLOW, # Äê·Ñ»Æ×ê Def_QQDayAward_YEAR_BLUE, # Äê·ÑÀ¶×ê ) = range(4) QQGropUpRewardDict = { # ShareDefine.Def_QQPlatVIP_Yellow:ShareDefine.Def_RewardType_QQUpYellow, # ShareDefine.Def_QQPlatVIP_Blue:ShareDefine.Def_RewardType_QQUpBlue, } def GetTencentPF(curPlayer): ''' »ñÈ¡ÌÚѶƽ̨À´Ô´pf ''' pfValue = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_TencentPF) if pfValue <= 0: return "" if pfValue > len(ChConfig.Def_Tencent_PF_List): return "" return ChConfig.Def_Tencent_PF_List[pfValue - 1] ##»ñÈ¡Æ½Ì¨ÌØÈ¨VIPÀàÐÍ # @param # @return 1-»Æ×꣬2-À¶×ê def GetQQPlatVIPType(curPlayer): if GameWorld.GetPlatform() != "tencent": return 0 pf = GetTencentPF(curPlayer) QQLVTypeInfo = ReadChConfig.GetEvalChConfig("PlayerQQLVTypeDict") for platFormList, LVType in QQLVTypeInfo.items(): if pf in platFormList: return LVType return 0 ##ÊÇ·ñƽ̨×êʯVIP(µÚ1λ±íʾ) # @param vipDataInfo: ƽ̨VIPÊý¾ÝÐÅÏ¢ # @return: 0-²»ÊÇ£» 1-ÊÇ def IsPlatVIP(vipDataInfo): return GameWorld.GetDataByDigitPlace(vipDataInfo, 0) ##ÊÇ·ñÄê·Ñ×êʯVIP(µÚ2λ±íʾ) # @param vipDataInfo: ƽ̨VIPÊý¾ÝÐÅÏ¢ # @return: 0-²»ÊÇ£» 1-ÊÇ def IsYearPlatVIP(vipDataInfo): return GameWorld.GetDataByDigitPlace(vipDataInfo, 1) ##ÊÇ·ñºÀ»ª°æ×êʯVIP(µÚ3λ±íʾ) # @param vipDataInfo: ƽ̨VIPÊý¾ÝÐÅÏ¢ # @return: 0-²»ÊÇ£» 1-ÊÇ def IsHighPlatVIP(vipDataInfo): return GameWorld.GetDataByDigitPlace(vipDataInfo, 2) ##ƽ̨×êʯVIPµÈ¼¶(µÚ4~5λ±íʾ) # @param vipDataInfo: ƽ̨VIPÊý¾ÝÐÅÏ¢ # @return def GetPlatVIPLevel(vipDataInfo): return (vipDataInfo / pow(10, 3)) % 100 ## ֪ͨ½±ÀøÁìÈ¡¼Ç¼ÐÅÏ¢ # @param curPlayer # @param awardType # @return None def Sync_QQAwardGetRecord(curPlayer, awardType): recordKey = AwardType_KeyDict.get(awardType) if not recordKey: GameWorld.DebugLog("Sync_QQAwardGetRecord() awardType(%s) not found" % awardType) return record = __GetQQPDictValue(curPlayer, recordKey) ChPlayer.Sync_RewardGetRecordInfo(curPlayer, awardType, record) return ## ÖØÖý±ÀøÁìÈ¡¼Ç¼ # @param curPlayer # @param awardType ½±ÀøÀàÐÍ # @return None def Sync_ResetQQAwardGetRecord(curPlayer, awardType): recordKey = AwardType_KeyDict.get(awardType) if not recordKey: GameWorld.DebugLog("Sync_ResetQQAwardGetRecord() awardType(%s) not found" % awardType) return __SetQQPDictValue(curPlayer, recordKey, 0) record = __GetQQPDictValue(curPlayer, recordKey) ChPlayer.Sync_RewardGetRecordInfo(curPlayer, awardType, record) return ## ÉèÖÃQQÍæ¼Ò×ÖµäÖµ # @param curPlayer # @param key: ×Öµäkey # @param value: ×Öµävalue # @return None def __SetQQPDictValue(curPlayer, key, value): PlayerControl.NomalDictSetProperty(curPlayer, key, value, ChConfig.Def_PDictType_QQ) return ## »ñÈ¡QQÍæ¼Ò×Öµä¶ÔÓ¦Öµ # @param curPlayer # @param key: ×Öµäkey # @return Öµ def __GetQQPDictValue(curPlayer, key): return curPlayer.NomalDictGetProperty(key, 0, ChConfig.Def_PDictType_QQ) ##ÉèÖÃÁì½±¼Ç¼ # @param curPlayer: µ±Ç°Íæ¼ÒʵÀý # @param recordKey: ¼Ç¼ÀàÐÍ # @param getIndex: ½±Àø¶ÔÓ¦µÄ¼Ç¼λ # @return def __SetAwardRecord(curPlayer, recordKey, getIndex): recordValue = __GetQQPDictValue(curPlayer, recordKey) recordState = recordValue | pow(2, getIndex) __SetQQPDictValue(curPlayer, recordKey, recordState) return ## OnDay # @param curPlayer Íæ¼ÒʵÀý # @return def OnDay(curPlayer): #QQÿÈÕÀñ°üÖØÖà #Sync_ResetQQAwardGetRecord(curPlayer, ShareDefine.Def_RewardType_QQDayGift) #Sync_ResetQQAwardGetRecord(curPlayer, ShareDefine.Def_RewardType_QzoneDayGift) return ## ͬ²½QQËùÓн±Àø¼Ç¼ # @param curPlayer # @return None def Sync_QQAllAwardRecord(curPlayer): for key in AwardType_KeyDict.keys(): GameWorld.DebugLog("Sync_QQAllAwardRecord() RewardType(%s)" % (key)) Sync_QQAwardGetRecord(curPlayer, key) return ##¼ì²éÊÇ·ñÒÑÁìÈ¡ # @param curPlayer: µ±Ç°Íæ¼ÒʵÀý # @param recordKey: ¼Ç¼ÀàÐÍ # @param getIndex: ½±Àø¶ÔÓ¦µÄ¼Ç¼λ # @return True-ÒÑÁìÈ¡, False-δÁìÈ¡ def __CheckIsGetAward(curPlayer, recordKey, getIndex): recordValue = __GetQQPDictValue(curPlayer, recordKey) recordState = recordValue & pow(2, getIndex) if recordState > 0: GameWorld.DebugLog(" recordKey=%s ÒÑÁìÈ¡!recordValue=%s,getIndex=%s,recordState=%s" % (recordKey, recordValue, getIndex, recordState)) return True return False ##¼ì²é¿É·ñÁìÈ¡ # @param curPlayer: µ±Ç°Íæ¼ÒʵÀý # @param recordKey: ¼Ç¼ÀàÐÍ # @param qqLVType: ×êʯÀàÐÍ # @param getLV: ÁìÈ¡µÈ¼¶ # @return (½±ÀøÁбí, µÈ¼¶¶ÔÓ¦Ë÷Òýλ) def __CheckCanGetLVAward(curPlayer, recordKey, qqLVType, getLV): qqRewardDict = ReadChConfig.GetEvalChConfig("PlayerQQUpReward") if qqLVType not in qqRewardDict.keys(): # ûÓиÃ×êʯÀàÐͽ±Àø GameWorld.DebugLog("¼ì²é¿É·ñÁìÈ¡QQ³É³¤Àñ°ü QQLVType = %s, not have reward" % (qqLVType)) return [], 0 # ¸ù¾ÝÖ°Òµ»ñÈ¡½±Àø qqLVRewardDict = __GetAwardByJob(curPlayer, qqRewardDict[qqLVType]) getLVIndex = __GetLVRecordIndex(getLV, qqLVRewardDict) if getLVIndex < 0: # ûÓиõȼ¶ÀàÐͽ±Àø GameWorld.DebugLog("¼ì²é¿É·ñÁìÈ¡QQ³É³¤Àñ°ü GetLV = %s, not have reward" % (getLV)) return [], 0 heroLV = curPlayer.GetLV() if heroLV < getLV: # µÈ¼¶²»×ã GameWorld.DebugLog("¼ì²é¿É·ñÁìÈ¡QQ³É³¤Àñ°ü heroLV = %s, lv not enough" % (heroLV)) return [], 0 if __CheckIsGetAward(curPlayer, recordKey, getLVIndex): return [], 0 return qqLVRewardDict[getLV], getLVIndex ## ¸ù¾ÝÖ°Òµ»ñÈ¡½±Àø # @param curPlayer£ºÍæ¼ÒʵÀý # @param qqRewardDict£º½±ÀøÎïÆ·ÅäÖÃ×Öµä # @return None def __GetAwardByJob(curPlayer, qqRewardDict): infoKey = () # ĬÈÏkey job = curPlayer.GetJob() for key in qqRewardDict.keys(): # Èç¹ûÍæ¼ÒÖ°ÒµÔÚÅäÖõÄkeyÀÔòȡָ¶¨µÄkeyÐÅÏ¢ if job in key: infoKey = key break return qqRewardDict[infoKey] ##»ñÈ¡µÈ¼¶½±Àø¶ÔÓ¦µÄ¼Ç¼λ # @param getLV: ÁìÈ¡µÈ¼¶ # @param lvRewardDict: µÈ¼¶½±Àø×Öµä # @return :µÈ¼¶½±Àø¶ÔÓ¦µÄ¼Ç¼λ def __GetLVRecordIndex(getLV, lvRewardDict): lvList = lvRewardDict.keys() lvList.sort() for i in range(len(lvList)): if getLV == lvList[i]: return i return -1 ##»ñÈ¡QQ³É³¤½±Àø # @param curPlayer: µ±Ç°Íæ¼ÒʵÀý # @param rewardType: ½±ÀøÀàÐÍ # @param dataEx: ÁìÈ¡µÈ¼¶ # @return def GetQQUpReward(curPlayer, rewardType, dataEx): getLV = dataEx getVIPType = GetQQPlatVIPType(curPlayer) if getVIPType not in QQGropUpRewardDict or QQGropUpRewardDict[getVIPType] != rewardType: GameWorld.DebugLog("»ñÈ¡QQ³É³¤½±ÀøµÄ½±ÀøÀàÐͲ»¶Ô") return # ²»ÊÇÆ½Ì¨VIP vipDataInfo = curPlayer.GetOperateInfo() if IsPlatVIP(vipDataInfo) <= 0: return recordKey = AwardType_KeyDict.get(rewardType) # ¼ì²é¿É·ñÁìÈ¡ itemInfoList, getLVIndex = __CheckCanGetLVAward(curPlayer, recordKey, getVIPType, getLV) if not itemInfoList: GameWorld.DebugLog("can not Get QQUp LV Award!!!") return # ¼ì²é±³°ü packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem) if len(itemInfoList) > packSpace: PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371") return # ¸øÎïÆ· for itemID, itemCount, isBind in itemInfoList: ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem], True, showSysInfo=True) # ¸üÐÂÒÑÁìÈ¡³É¹¦±ê¼Ç __SetAwardRecord(curPlayer, recordKey, getLVIndex) # ֪ͨ¿Í»§¶Ë Sync_QQAwardGetRecord(curPlayer, rewardType) addDataDict = {"getVIPType":getVIPType, "getLV":getLV, "getLVIndex":getLVIndex, "itemInfoList":itemInfoList} DataRecordPack.DR_FuncGiveItem(curPlayer, "QQUpReward", addDataDict) GameWorld.DebugLog("ÁìÈ¡QQ³É³¤Àñ°ü: getVIPType=%s,getLV=%s,getLVIndex=%s,recordKey=%s" % (getVIPType, getLV, getLVIndex, recordKey)) return def GetQQNewManAward(curPlayer, awardType, dataEx): # ÁìÈ¡QQÐÂÊÖÀñ°ü GameWorld.DebugLog("GetQQNewManAward()") playerID = curPlayer.GetPlayerID() platVIPType = GetQQPlatVIPType(curPlayer) getVIPType = dataEx if platVIPType != getVIPType: GameWorld.ErrLog("ÁìÈ¡QQÐÂÊÖÀñ°ü platVIPType(%s) != getVIPType(%s)" % (platVIPType, getVIPType), playerID) return vipDataInfo = curPlayer.GetOperateInfo() if not IsPlatVIP(vipDataInfo): GameWorld.DebugLog("ÁìÈ¡QQÐÂÊÖÀñ°ü δ¿ªÍ¨»áÔ± platVIPType = %s, OperateInfo=%s" % (platVIPType, vipDataInfo), playerID) return # ÊÇ·ñÒÑÁìÈ¡ recordValue = __GetQQPDictValue(curPlayer, ChConfig.Def_PDict_QQNewManAwardRecord) if recordValue & pow(2, getVIPType): GameWorld.DebugLog("ÁìÈ¡QQÐÂÊÖÀñ°ü ÒÑÁìÈ¡! recordValue=%s,getVIPType=%s" % (recordValue, getVIPType), playerID) return awardItemDict = ReadChConfig.GetEvalChConfig("PlayerQQNewMan") awardItemList = awardItemDict.get(getVIPType) # ¼ì²é±³°ü packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem) if len(awardItemList) > packSpace: PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371") return # ¸øÎïÆ· for itemID, itemCount, isBind in awardItemList: ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem], True, showSysInfo=True) # ¸üÐÂÒÑÁìÈ¡³É¹¦±ê¼Ç updRecord = recordValue | pow(2, getVIPType) __SetQQPDictValue(curPlayer, ChConfig.Def_PDict_QQNewManAwardRecord, updRecord) # ֪ͨ¿Í»§¶Ë Sync_QQAwardGetRecord(curPlayer, awardType) addDataDict = {"recordValue":recordValue, "updRecord":updRecord, "getVIPType":getVIPType, "awardItemList":awardItemList} DataRecordPack.DR_FuncGiveItem(curPlayer, "QQNewManAward", addDataDict) GameWorld.DebugLog("ÁìÈ¡QQÐÂÊÖÀñ°ü getVIPType=%s,recordValue=%s,updRecord=%s" % (getVIPType, recordValue, updRecord), playerID) return ## ÁìÈ¡QQÿÈÕÀñ°ü # @param curPlayer: Íæ¼ÒʵÀý # @param awardType: Áì½±ÀàÐÍ # @param dataEx: Ô¤Áô²ÎÊý # @return def GetQQDayGift(curPlayer, awardType, dataEx): awardIndex = dataEx playerID = curPlayer.GetPlayerID() if awardIndex not in QQDayAwardIndexList: return getVIPType = GetQQPlatVIPType(curPlayer) if getVIPType < 0: GameWorld.DebugLog("ÁìÈ¡QQÿÈÕÀñ°ü ·ÇQQƽ̨ ") return vipDataInfo = curPlayer.GetOperateInfo() if not IsPlatVIP(vipDataInfo): GameWorld.DebugLog("ÁìÈ¡QQÿÈÕÀñ°ü δ¿ªÍ¨»áÔ± getVIPType = %s" % getVIPType) return if awardIndex in [Def_QQDayAward_YEAR_YELLOW, Def_QQDayAward_YEAR_BLUE]: if not IsYearPlatVIP(vipDataInfo): GameWorld.DebugLog("ÁìÈ¡QQÿÈÕÀñ°ü ·ÇÄê·Ñ!") return # ÊÇ·ñÒÑÁìÈ¡ recordValue = __GetQQPDictValue(curPlayer, ChConfig.Def_PDict_QQDayGiftAwardRecord) if recordValue & pow(2, awardIndex): GameWorld.DebugLog("ÁìÈ¡QQÿÈÕÀñ°ü ÒÑÁìÈ¡! recordValue=%s,getVIPType=%s" % (recordValue, awardIndex), playerID) return awardItemDict = ReadChConfig.GetEvalChConfig("PlayerQQDayGift") awardItemList = awardItemDict.get(awardIndex) if awardIndex in [Def_QQDayAward_YELLOW, Def_QQDayAward_BLUE]: QQlv = GetPlatVIPLevel(vipDataInfo) awardItemList = awardItemList.get(QQlv, []) if not awardItemList: GameWorld.ErrLog("ÁìÈ¡QQÿÈÕÀñ°ü ÕÒ²»µ½½±ÀøÎïÆ·! awardIndex=%s" % (awardIndex), playerID) return # ¼ì²é±³°ü packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem) if len(awardItemList) > packSpace: PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371") return GameWorld.DebugLog("awardItemList=%s" % awardItemList) # ¸øÎïÆ· for itemID, itemCount, isBind in awardItemList: ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem], True, showSysInfo=True) # ¸üÐÂÒÑÁìÈ¡³É¹¦±ê¼Ç updRecord = recordValue | pow(2, awardIndex) __SetQQPDictValue(curPlayer, ChConfig.Def_PDict_QQDayGiftAwardRecord, updRecord) # ֪ͨ¿Í»§¶Ë Sync_QQAwardGetRecord(curPlayer, awardType) addDataDict = {"recordValue":recordValue, "updRecord":updRecord, "getVIPType":getVIPType, "awardIndex":awardIndex, "awardItemList":awardItemList} DataRecordPack.DR_FuncGiveItem(curPlayer, "QQDayGift", addDataDict) GameWorld.DebugLog("ÁìÈ¡QQÿÈÕÀñ°ü getVIPType=%s,awardIndex=%s,recordValue=%s,updRecord=%s" % (getVIPType, awardIndex, recordValue, updRecord), playerID) return ######################### ## ÊÇ·ñQQ¿Õ¼äƽ̨ def IsQzonePlatForm(curPlayer): return GetTencentPF(curPlayer) == 'qzone' ##»ñÈ¡Qzone³É³¤½±Àø # @param curPlayer: µ±Ç°Íæ¼ÒʵÀý # @param rewardType: ½±ÀøÀàÐÍ # @param dataEx: ÁìÈ¡µÈ¼¶ # @return def GetQzoneUpReward(curPlayer, rewardType, dataEx): if not IsQzonePlatForm(curPlayer): GameWorld.DebugLog("²»ÊÇqzoneƽ̨") return awardIndex = dataEx QzoneLVAwardList = ReadChConfig.GetEvalChConfig("QzoneLVAward") if awardIndex < 0 or awardIndex >=len(QzoneLVAwardList): GameWorld.DebugLog("GetQzoneUpReward() ¼ì²éQzoneLVAward.txt awardIndex=%s"%awardIndex) return needLV, itemList = QzoneLVAwardList[awardIndex] # ¼ì²é¿É·ñÁìÈ¡ if curPlayer.GetLV() < needLV: GameWorld.DebugLog("GetQzoneUpReward() µÈ¼¶²»×ã%s"%needLV) return # ¼ì²éÊÇ·ñÒÑÁìÈ¡ recordKey = AwardType_KeyDict.get(rewardType) if __CheckIsGetAward(curPlayer, recordKey, awardIndex): return # ¼ì²é±³°ü packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem) if len(itemList) > packSpace: PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371") return # ¸øÎïÆ· for itemID, itemCount, isBind in itemList: ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem], True, showSysInfo=True) # ¸üÐÂÒÑÁìÈ¡³É¹¦±ê¼Ç __SetAwardRecord(curPlayer, recordKey, awardIndex) # ֪ͨ¿Í»§¶Ë Sync_QQAwardGetRecord(curPlayer, rewardType) addDataDict = {"getLV":needLV, "getLVIndex":awardIndex, "itemList":itemList} DataRecordPack.DR_FuncGiveItem(curPlayer, "QzoneUpReward", addDataDict) GameWorld.DebugLog("Qzone³É³¤½±Àø:getLV=%s,getLVIndex=%s,recordKey=%s" % (needLV, awardIndex, recordKey)) return ## »ñÈ¡QzoneÐÂÊÖ½±Àø def GetQzoneNewManAward(curPlayer, awardType, dataEx): if not IsQzonePlatForm(curPlayer): GameWorld.DebugLog("²»ÊÇqzoneƽ̨") return # ÁìÈ¡QzoneÐÂÊÖÀñ°ü GameWorld.DebugLog("GetQzoneNewManAward()") playerID = curPlayer.GetPlayerID() # ÊÇ·ñÒÑÁìÈ¡ recordKey = AwardType_KeyDict.get(awardType) recordValue = __GetQQPDictValue(curPlayer, recordKey) if recordValue: GameWorld.DebugLog("GetQzoneNewManAward() ÒÑÁìÈ¡!", playerID) return awardItemList = ReadChConfig.GetEvalChConfig("QzoneNewManAward") # ¼ì²é±³°ü packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem) if len(awardItemList) > packSpace: PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371") return # ¸øÎïÆ· for itemID, itemCount, isBind in awardItemList: ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem], True, showSysInfo=True) # ¸üÐÂÒÑÁìÈ¡³É¹¦±ê¼Ç __SetQQPDictValue(curPlayer, recordKey, 1) # ֪ͨ¿Í»§¶Ë Sync_QQAwardGetRecord(curPlayer, awardType) addDataDict = {"awardItemList":awardItemList} DataRecordPack.DR_FuncGiveItem(curPlayer, "QzoneNewManAward", addDataDict) GameWorld.DebugLog("GetQzoneNewManAward() ÁìÈ¡³É¹¦", playerID) return ## ÁìÈ¡QzoneÿÈÕÀñ°ü # @param curPlayer: Íæ¼ÒʵÀý # @param awardType: Áì½±ÀàÐÍ # @param dataEx: Ô¤Áô²ÎÊý # @return def GetQzoneDayGift(curPlayer, awardType, dataEx): if not IsQzonePlatForm(curPlayer): GameWorld.DebugLog("²»ÊÇqzoneƽ̨") return playerID = curPlayer.GetPlayerID() # ÊÇ·ñÒÑÁìÈ¡ recordKey = AwardType_KeyDict.get(awardType) recordValue = __GetQQPDictValue(curPlayer, recordKey) if recordValue: GameWorld.DebugLog("ÁìÈ¡QQÿÈÕÀñ°ü ÒÑÁìÈ¡!" , playerID) return awardItemList = ReadChConfig.GetEvalChConfig("QzoneDayAward") # ¼ì²é±³°ü packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem) if len(awardItemList) > packSpace: PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371") return # ¸øÎïÆ· for itemID, itemCount, isBind in awardItemList: ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem], True, showSysInfo=True) # ¸üÐÂÒÑÁìÈ¡³É¹¦±ê¼Ç __SetQQPDictValue(curPlayer, recordKey, 1) # ֪ͨ¿Í»§¶Ë Sync_QQAwardGetRecord(curPlayer, awardType) addDataDict = {"awardItemList":awardItemList} DataRecordPack.DR_FuncGiveItem(curPlayer, "QzoneDayGift", addDataDict) GameWorld.DebugLog("ÁìÈ¡QQÿÈÕÀñ°ü ³É¹¦" , playerID) return