hch
2019-06-01 40e191811bd44f1476f3d99ed5932605c4416e48
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipWash.py
@@ -36,9 +36,9 @@
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-该装备位最大可洗练等级
@@ -178,6 +178,14 @@
                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
@@ -300,6 +308,11 @@
    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)
@@ -321,7 +334,7 @@
        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)
@@ -350,7 +363,7 @@
    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):
@@ -359,13 +372,32 @@
        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