| | |
| | | Def_EquipWashMaxAttrCount = 3 # 装备洗练最大洗练属性条数
|
| | | g_allIndexList = [] #可洗炼的部位缓存
|
| | |
|
| | | def OnEquipWashLogin(curPlayer):
|
| | | Sycn_EquipWashInfo(curPlayer, isLogin=True)
|
| | | return
|
| | | #def OnEquipWashLogin(curPlayer):
|
| | | # Sycn_EquipWashInfo(curPlayer, isLogin=True)
|
| | | # return
|
| | |
|
| | | def GetEquipWashMaxLV(curPlayer, equipPackindex, equipPlace):
|
| | | # @return: 0-未开放; >=1-该装备位最大可洗练等级
|
| | |
| | | return
|
| | | GameWorld.DebugLog("随机范围属性%s, washValue=%s, %s~%s" % (attrNum, washValue, randValueMin, randValueMax))
|
| | | randValue = random.randint(randValueMin, randValueMax)
|
| | | for _ in xrange(50):
|
| | | if randValue != 0:
|
| | | break
|
| | | randValue = random.randint(randValueMin, randValueMax)
|
| | | #GameWorld.DebugLog("随机值0,重新随机!")
|
| | | if randValue == 0:
|
| | | randValue = 1
|
| | | #GameWorld.DebugLog("随机值还是0,强制设置为1!")
|
| | | randAttrDict[attrNum] = randValue
|
| | | if randValue <= 0:
|
| | | negativeValueCnt += 1
|
| | |
| | | ipyData = IpyGameDataPY.GetIpyGameDataByCondition('EquipPlaceIndexMap', {'GridIndex':equipPackindex})
|
| | | if not ipyData:
|
| | | return
|
| | | curPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip)
|
| | | curEquip = curPack.GetAt(equipPackindex)
|
| | | if not curEquip or curEquip.IsEmpty():
|
| | | GameWorld.DebugLog("OnEquipWashAttrChangeOK() equip is empty")
|
| | | return
|
| | | equipPlace = ipyData.GetEquipPlace()
|
| | | classLV = ipyData.GetClassLV()
|
| | | washLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_EquipWashLV % equipPackindex)
|
| | |
| | | if washLV >= maxWashLV:
|
| | | GameWorld.DebugLog("已达到最大洗练等级,不可升级!", playerID)
|
| | | return
|
| | | if CheckEquipWashLVUp(curPlayer, equipPackindex, classLV, equipPlace, washLV, washData):
|
| | | if CheckEquipWashLVUp(curPlayer, curEquip, equipPackindex, washLV, washData):
|
| | | RefreshEquipWashAttr(curPlayer, classLV)
|
| | | Sycn_EquipWashInfo(curPlayer, equipPackindex)
|
| | | EquipWashSuccess(curPlayer)
|
| | |
| | | Sycn_EquipWashInfo(curPlayer, equipPackindex)
|
| | | return
|
| | |
|
| | | def CheckEquipWashLVUp(curPlayer, equipPackindex, classLV, equipPlace, washLV, washData):
|
| | | def CheckEquipWashLVUp(curPlayer, curEquip, equipPackindex, washLV, washData):
|
| | | # 检查洗练类型升级
|
| | |
|
| | | for attrNum in range(1, Def_EquipWashMaxAttrCount + 1):
|
| | |
| | | if tempValue < getattr(washData, "GetAttrMax%s" % attrNum)():
|
| | | return
|
| | | washLV += 1
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipWashLV % (equipPackindex), washLV)
|
| | | GameWorld.DebugLog("装备洗练等级升级: equipPackindex=%s,washLV=%s" % (equipPackindex, washLV), curPlayer.GetPlayerID())
|
| | | SetEquipWashLV(curPlayer, equipPackindex, washLV)
|
| | |
|
| | | # 洗练广播
|
| | | PlayerControl.WorldNotify(0, "WashCongratulation", [curPlayer.GetPlayerName(), curPlayer.GetPlayerID(), classLV, equipPlace, washLV])
|
| | | itemID = curEquip.GetItemTypeID()
|
| | | userData = curEquip.GetUserData()
|
| | | guid = ItemCommon.CacheNotifyEquipDetailInfo(curPlayer, curEquip)
|
| | | msgParamList = [curPlayer.GetPlayerName(), itemID, userData, guid, washLV]
|
| | | PlayerControl.WorldNotify(0, "WashCongratulation", msgParamList)
|
| | | return True
|
| | |
|
| | | def SetEquipWashLV(curPlayer, index, setWashLV):
|
| | | befWashLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_EquipWashLV % index)
|
| | | if befWashLV == setWashLV:
|
| | | return
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipWashLV % (index), setWashLV)
|
| | | |
| | | # 同步更新洗练总等级
|
| | | befTotalWashLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TotalEquipWashLV)
|
| | | updTotalWashLV = max(0, befTotalWashLV + setWashLV - befWashLV)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TotalEquipWashLV, updTotalWashLV)
|
| | | GameWorld.DebugLog("设置洗练等级: index=%s,befWashLV=%s,setWashLV=%s,befTotalWashLV=%s,updTotalWashLV=%s" |
| | | % (index, befWashLV, setWashLV, befTotalWashLV, updTotalWashLV))
|
| | | return
|
| | |
|
| | | ## 全身洗练总等级
|
| | | def GetTotalEquipWashLV(curPlayer): return curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TotalEquipWashLV)
|
| | |
|
| | | def Sycn_EquipWashInfo(curPlayer, equipPackindex=-1, isLogin=False):
|
| | | hasValue = False
|