xdh
2019-05-16 11471969c8b6ecec34e8a39f9e19cedc320e8bb8
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRefineStove.py
@@ -154,14 +154,21 @@
        if passTime < alchemyIpyData.GetNeedTime():
            GameWorld.DebugLog('开炉丹药,时间未到  passTime=%s' % passTime)
            return
        alchemyCommonCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_AlchemyCommonCnt)
        alchemyQuality = alchemyIpyData.GetAlchemyQuality()
        #成功率
        if alchemType == DefStoveType2:
            successRate = ShareDefine.Def_MaxRateValue  #仙丹必定成功
        else:
        elif alchemType == DefStoveType1:
            #灵丹成功率公式 参数 curLuckValue:慧根  alchemyLV:炼丹等级 alchemyQuality:丹药等级  qualityNeedLuck:要求慧根
            qualityNeedLuck = IpyGameDataPY.GetFuncEvalCfg('alchemySuccess', 2, {}).get(str(alchemyQuality), 0)
            successRate = eval(IpyGameDataPY.GetFuncCompileCfg('alchemySuccess'))
            alchemyCustomizedDict = IpyGameDataPY.GetFuncEvalCfg('alchemyCustomized', 1, {})
            if alchemyCommonCnt + 1 in alchemyCustomizedDict:
                successRate = alchemyCustomizedDict[alchemyCommonCnt + 1][1]
            else:
                qualityNeedLuck = IpyGameDataPY.GetFuncEvalCfg('alchemySuccess', 2, {}).get(str(alchemyQuality), 0)
                successRate = eval(IpyGameDataPY.GetFuncCompileCfg('alchemySuccess'))
        else:
            return
        isSuccess = GameWorld.CanHappen(successRate)
        resultCnt = 0  #丹药数量 0代表失败
        if isSuccess:
@@ -172,12 +179,15 @@
                return
            if alchemType == DefStoveType2:
                resultCnt = 1 #仙丹必定为1
            else:
                ipyData = IpyGameDataPY.InterpolationSearch('AlchemyResult', 'LuckValue', curLuckValue, {'AlchemyQuality':alchemyIpyData.GetAlchemyQuality()})
                if not ipyData:
                    GameWorld.ErrLog('AlchemyResult 配置错误 未找到该丹方数量 alchemyItemID=%s' % alchemyItemID, playerID)
                    return
                resultCnt = GameWorld.GetResultByRandomList(ipyData.GetCntRateList())
            elif alchemType == DefStoveType1:
                if alchemyCommonCnt + 1 in alchemyCustomizedDict:
                    resultCnt = alchemyCustomizedDict[alchemyCommonCnt + 1][0]
                else:
                    ipyData = IpyGameDataPY.InterpolationSearch('AlchemyResult', 'LuckValue', curLuckValue, {'AlchemyQuality':alchemyIpyData.GetAlchemyQuality()})
                    if not ipyData:
                        GameWorld.ErrLog('AlchemyResult 配置错误 未找到该丹方数量 alchemyItemID=%s' % alchemyItemID, playerID)
                        return
                    resultCnt = GameWorld.GetResultByRandomList(ipyData.GetCntRateList())
            if not resultCnt:
                GameWorld.ErrLog('AlchemyResult 配置错误 未随机出该丹方数量alchemyItemID=%s' % alchemyItemID, playerID)
                return
@@ -201,6 +211,11 @@
        #加经验
        addExp = alchemyIpyData.GetAlchemyExp()
        AddRefineExp(curPlayer, addExp, alchemyLV)
        #加次数
        if alchemType == DefStoveType1:
            maxCnt = max(alchemyCustomizedDict)
            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_AlchemyCommonCnt, min(alchemyCommonCnt + 1, maxCnt))
        GameWorld.DebugLog('炼丹结果 alchemyItemID=%s,successRate=%s,isSuccess=%s,resultCnt=%s' % (alchemyItemID, successRate, isSuccess, resultCnt), playerID)
    
        Sycn_AlchemyMsg(curPlayer, alchemyID, False, alchemyItemID, resultCnt)