| | |
| | | import PlayerControl
|
| | | import PlayerSuccess
|
| | | import IPY_GameWorld
|
| | | import DataRecordPack
|
| | | import ShareDefine
|
| | | import ItemCommon
|
| | | import ChConfig
|
| | |
| | |
|
| | | def GetEquipWashMaxLV(curPlayer, equipPlace):
|
| | | # @return: 0-未开放; >=1-该装备位最大可洗练等级
|
| | | maxLVDict = IpyGameDataPY.GetFuncEvalCfg("EquipWashMaxLV", 1)
|
| | | washType = GetEquipWashType(equipPlace)
|
| | | if not washType:
|
| | | return 0
|
| | | maxLVDict = IpyGameDataPY.GetFuncEvalCfg("EquipWashGroup%s" % washType, 2)
|
| | | if not maxLVDict:
|
| | | return 0
|
| | | equipPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip)
|
| | |
| | | % (costItemID, costItemCount, bindCnt, unBindCnt), playerID)
|
| | | return
|
| | |
|
| | | goldWashCostList = washData.GetGoldWashCostList()
|
| | | if not goldWashCostList or len(goldWashCostList) != Def_EquipWashMaxAttrCount:
|
| | | goldWashCostItemCountList = washData.GetGoldWashCostList() # 洗练必增条数消耗必增道具个数
|
| | | if not goldWashCostItemCountList or len(goldWashCostItemCountList) != Def_EquipWashMaxAttrCount:
|
| | | return
|
| | |
|
| | | randAttrDict = {} # 随机变更值字典 {属性编号:随机值, ...}
|
| | |
| | | fixMaxValueDict[attrNum] = randValueMax
|
| | |
|
| | | checkUseGoldCnt = len(useGoldAttrNumList)
|
| | | needGold = 0 if checkUseGoldCnt <= 0 else goldWashCostList[checkUseGoldCnt - 1]
|
| | | needGold = 0
|
| | | needMustID = IpyGameDataPY.GetFuncCfg("EquipWashMustID", 1)
|
| | | needMustIDCount = 0 if checkUseGoldCnt <= 0 else goldWashCostItemCountList[checkUseGoldCnt - 1]
|
| | | delMustIDCount = needMustIDCount
|
| | | mustItemIndexList, mustBindCnt, mustUnBindCnt = [], 0, 0
|
| | | if needMustIDCount:
|
| | | mustItemIndexList, mustBindCnt, mustUnBindCnt = ItemCommon.GetPackItemBindStateIndexInfo(curPlayer, needMustID, needMustIDCount)
|
| | | mustItemLackCount = max(0, needMustIDCount - (mustBindCnt + mustUnBindCnt))
|
| | | if mustItemLackCount > 0:
|
| | | needGold = ItemCommon.GetAutoBuyItemNeedGold({needMustID:mustItemLackCount})
|
| | | if needGold <= 0:
|
| | | GameWorld.ErrLog("自动购买必增道具所需仙玉异常!needMustID=%s,mustItemLackCount=%s,needGold=%s" |
| | | % (needMustID, mustItemLackCount, needGold), playerID)
|
| | | return
|
| | | delMustIDCount = needMustIDCount - mustItemLackCount
|
| | | |
| | | if needGold and not PlayerControl.HaveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, needGold):
|
| | | GameWorld.DebugLog("仙玉不足,无法洗练!checkUseGoldCnt=%s,needGold=%s" % (checkUseGoldCnt, needGold), playerID)
|
| | | return
|
| | |
| | |
|
| | | # 扣除消耗
|
| | | ItemCommon.DelCostItemByBind(curPlayer, costItemIndexList, bindCnt, unBindCnt, costItemCount, "EquipWash")
|
| | | if delMustIDCount:
|
| | | ItemCommon.DelCostItemByBind(curPlayer, mustItemIndexList, mustBindCnt, mustUnBindCnt, delMustIDCount, "EquipWash")
|
| | | |
| | | if needGold:
|
| | | infoDict = {"EquipPlace":equipPlace, "WashType":washType, "WashLV":washLV, "CheckUseGoldCnt":checkUseGoldCnt}
|
| | | PlayerControl.PayMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, needGold, ChConfig.Def_Cost_EquipWash, infoDict)
|
| | |
| | | if attrNum in useGoldAttrNumList:
|
| | | isRefreshAttr = True
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipWashValue % (equipPlace, attrNum), tempValue)
|
| | | dataDict = {'equipPlace':equipPlace,'attrNum':attrNum,'oldValue':washValue,'newValue':tempValue}
|
| | | DataRecordPack.Cache_FightPowerChangeInfo(curPlayer, ChConfig.PowerDownType_EquipWash, dataDict)
|
| | | GameWorld.DebugLog(" 勾选洗练,直接更新数值: %s" % tempValue, playerID)
|
| | | else:
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipWashValueTemp % (equipPlace, attrNum), tempValue)
|
| | |
| | |
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipWashValueTemp % (equipPlace, attrNum), 0)
|
| | | if isSave == 1:
|
| | | oldValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_EquipWashValue % (equipPlace, attrNum))
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipWashValue % (equipPlace, attrNum), tempValue)
|
| | | dataDict = {'equipPlace':equipPlace,'attrNum':attrNum,'oldValue':oldValue,'newValue':tempValue}
|
| | | DataRecordPack.Cache_FightPowerChangeInfo(curPlayer, ChConfig.PowerDownType_EquipWash, dataDict)
|
| | | GameWorld.DebugLog("保存洗练数据: equipPlace=%s,attrNum=%s,tempValue=%s" % (equipPlace, attrNum, tempValue), playerID)
|
| | |
|
| | | if isSave == 1:
|