xdh
2018-11-23 189296ec109a4bb64a54d9b9a8b9ca4b26a4e18c
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipWash.py
@@ -26,6 +26,7 @@
import ItemCommon
import ChConfig
import ChEquip
import EventShell
import random
@@ -39,7 +40,10 @@
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)
@@ -153,8 +157,8 @@
                           % (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 = {} # 随机变更值字典 {属性编号:随机值, ...}
@@ -189,7 +193,22 @@
        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
@@ -203,6 +222,9 @@
        
    # 扣除消耗
    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)
@@ -357,6 +379,7 @@
            washSpecLVIpyData = IpyGameDataPY.GetIpyGameDataNotLog("EquipWashSpec", washType, washLV)
            if washSpecLVIpyData:
                PlayerControl.WorldNotify(0, "WashMasterCongratulation", [curPlayer.GetPlayerName(), curPlayer.GetPlayerID(), washType, washLV])
        EventShell.EventRespons_EquipWash(curPlayer, washType, washLV)
        break
    return True