#!/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, 0, [IPY_GameWorld.rptItem])
|
|
# ¸üÐÂÒÑÁìÈ¡³É¹¦±ê¼Ç
|
__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, 0, [IPY_GameWorld.rptItem])
|
|
# ¸üÐÂÒÑÁìÈ¡³É¹¦±ê¼Ç
|
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, 0, [IPY_GameWorld.rptItem])
|
|
# ¸üÐÂÒÑÁìÈ¡³É¹¦±ê¼Ç
|
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, 0, [IPY_GameWorld.rptItem])
|
|
# ¸üÐÂÒÑÁìÈ¡³É¹¦±ê¼Ç
|
__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, 0, [IPY_GameWorld.rptItem])
|
|
# ¸üÐÂÒÑÁìÈ¡³É¹¦±ê¼Ç
|
__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, 0, [IPY_GameWorld.rptItem])
|
|
# ¸üÐÂÒÑÁìÈ¡³É¹¦±ê¼Ç
|
__SetQQPDictValue(curPlayer, recordKey, 1)
|
|
# ֪ͨ¿Í»§¶Ë
|
Sync_QQAwardGetRecord(curPlayer, awardType)
|
|
addDataDict = {"awardItemList":awardItemList}
|
DataRecordPack.DR_FuncGiveItem(curPlayer, "QzoneDayGift", addDataDict)
|
GameWorld.DebugLog("ÁìÈ¡QQÿÈÕÀñ°ü ³É¹¦" , playerID)
|
return
|
|
|