From 11471969c8b6ecec34e8a39f9e19cedc320e8bb8 Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期四, 16 五月 2019 17:54:50 +0800 Subject: [PATCH] 6820 【2.0】【后端】普通炼丹定制产出数量 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRefineStove.py | 33 ++++++++++++++++++++++++--------- 1 files changed, 24 insertions(+), 9 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRefineStove.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRefineStove.py index 6d240f4..91de900 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRefineStove.py +++ b/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) -- Gitblit v1.8.0