From 6d0f54c5c8a2ee3f52aedaf941e0f2d55ee692bb Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期六, 22 十二月 2018 10:52:26 +0800
Subject: [PATCH] 5368 【后端】【1.4】聚魂功能开发(改公式)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGatherSoul.py |   37 ++++++++++++++++++++++++++++++++-----
 1 files changed, 32 insertions(+), 5 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGatherSoul.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGatherSoul.py
index bb09766..69cf4e5 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGatherSoul.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGatherSoul.py
@@ -27,6 +27,7 @@
 import IpyGameDataPY
 import FormulaControl
 import DataRecordPack
+import PlayerSuccess
 
 g_GatherSoulLVExpDict = {}  #经验缓存
 g_gatherSoulLVAttrDict = {}  #属性缓存
@@ -67,9 +68,9 @@
             exp = eval(IpyGameDataPY.GetFuncCompileCfg('GatherSoulLevelUp'))
             g_GatherSoulLVExpDict[lv] = exp
             
-        qualityPerDict = IpyGameDataPY.GetFuncEvalCfg('GatherSoulLevelUp', 2, {})
-        if itemColor in qualityPerDict:
-            exp *= float(qualityPerDict[itemColor])
+        qualityPerDict = IpyGameDataPY.GetFuncEvalCfg('GatherSoulLevelUp', 2, {}).get(str(itemData.GetType()), {})
+        if str(itemColor) in qualityPerDict:
+            exp *= float(qualityPerDict[str(itemColor)])
             
         attrTypeCnt = len(ipyData.GetAttrType())
         specialPer = IpyGameDataPY.GetFuncEvalCfg('GatherSoulLevelUp', 3, {}).get(attrTypeCnt, 1)
@@ -221,6 +222,7 @@
     RefreshGatherSoulAttr(curPlayer)
     PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
     Sync_GatherSoulHoleInfo(curPlayer)
+    DoGatherSoulSuccessLogic(curPlayer)
     return True
 
 
@@ -280,7 +282,7 @@
         RefreshGatherSoulAttr(curPlayer)
         PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
         Sync_GatherSoulHoleInfo(curPlayer)
-        
+        DoGatherSoulSuccessLogic(curPlayer)
     GameWorld.DebugLog("聚魂升级!placeType=%s,placeIndex=%s,GatherSoulData=%s,updGatherSoulData=%s" 
                        % (placeType, placeIndex, GatherSoulData, updGatherSoulData), playerID)
     return
@@ -372,8 +374,9 @@
     return
 
 
-def __GetGatherSoulSplitMaterial(gathersoulID, soulidList=[], soulSplinters=0, soulCore=0):
+def __GetGatherSoulSplitMaterial(gathersoulID):
     ##拆解多属性聚魂 返回单属性聚魂ID,材料
+    soulidList, soulSplinters, soulCore= [], 0, 0
     compoundIpyData = IpyGameDataPY.GetIpyGameDataNotLog('GatherSoulCompound', gathersoulID)
     if compoundIpyData:
         materialList = compoundIpyData.GetNeedItem()
@@ -498,6 +501,30 @@
     return
 
 
+def DoGatherSoulSuccessLogic(curPlayer):
+    #聚魂成就处理
+    #清掉#镶嵌X枚X品质聚魂的成就信息
+    PlayerSuccess.ResetSuccessByType(curPlayer, ShareDefine.SuccType_InlayGatherSoul)
+    totalLV = 0
+    GatherSoulUnlockDict = IpyGameDataPY.GetFuncEvalCfg("GatherSoulHole", 1, {})
+    maxGatherSoulHole = len(GatherSoulUnlockDict)
+    for holeNum in xrange(maxGatherSoulHole):
+        GatherSoulData = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GatherSoulHoleData % holeNum, 0)
+        if not GatherSoulData:
+            continue
+        GatherSoulItemID = ItemControler.GetGatherSoulItemID(GatherSoulData)
+        itemData = GameWorld.GetGameData().GetItemByTypeID(GatherSoulItemID)
+        if not itemData:
+            continue
+        if itemData.GetType() == ChConfig.Def_ItemType_GatherSoulCore:
+            continue
+        itemColor = itemData.GetItemColor()
+        GatherSoulItemPlusLV = ItemControler.GetGatherSoulItemPlusLV(GatherSoulData) + 1 #客户端1开始
+        totalLV += GatherSoulItemPlusLV
+        PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_InlayGatherSoul, 1, [itemColor])
+    PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_GatherSoulLvUp, totalLV)
+    return
+
 def RefreshGatherSoulAttr(curPlayer):
     allAttrList = [{} for _ in range(4)]
     GatherSoulUnlockDict = IpyGameDataPY.GetFuncEvalCfg("GatherSoulHole", 1, {})

--
Gitblit v1.8.0