From 8b176b2f1af997f16531f0ee82f8ceeb7ba3ca07 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期一, 19 十一月 2018 21:44:41 +0800
Subject: [PATCH] 4885 【1.3】【后端】潜力技能支持某个字段增加生命值配置

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py  |   18 +++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py |   54 ++++++++++++++-------------
 2 files changed, 46 insertions(+), 26 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
index 21abbde..a0f2583 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
@@ -1551,32 +1551,34 @@
 #  @return None
 #  @remarks 设置玩家属性消耗,如魔法,XP点,HP
 def SetSkillLostAttr(curPlayer, curSkill, tick):
-    #-----------扣魔法
-    lostMPValue = curSkill.GetMP()
-    curPlayerMP = curPlayer.GetMP()
-    
-    if curPlayerMP < lostMPValue:
-        GameWorld.ErrLog('释放技能 = %s异常, 魔法 = %s不足 = %s' % (
-                            curSkill.GetSkillTypeID(), curPlayerMP, lostMPValue))
-    
-    if lostMPValue > 0:
-        curPlayer.SetMP(curPlayer.GetMP() - lostMPValue)
-        #自动回魔
-        PlayerControl.PlayerAutoRestoreMP(curPlayer, tick)
-    
-    #----------扣XP点
-    lostXPValue = curSkill.GetXP()
-    curPlayerXP = curPlayer.GetXP()
-    
-    if curPlayerXP < lostXPValue:
-        GameWorld.ErrLog('释放技能 = %s异常, XP点 = %s不足 = %s' % (
-                            curSkill.GetSkillTypeID(), curPlayerXP, lostXPValue))
-    
-    if lostXPValue > 0:
-        remain = curPlayer.GetXP() - lostXPValue
-        remain = max(0, remain)
-        curPlayer.SetDict(ChConfig.Def_PlayerKey_RecordXPValue, remain)
-        curPlayer.SetXP(remain)
+    #===========================================================================
+    # #-----------扣魔法
+    # lostMPValue = curSkill.GetMP()
+    # curPlayerMP = curPlayer.GetMP()
+    # 
+    # if curPlayerMP < lostMPValue:
+    #    GameWorld.ErrLog('释放技能 = %s异常, 魔法 = %s不足 = %s' % (
+    #                        curSkill.GetSkillTypeID(), curPlayerMP, lostMPValue))
+    # 
+    # if lostMPValue > 0:
+    #    curPlayer.SetMP(curPlayer.GetMP() - lostMPValue)
+    #    #自动回魔
+    #    PlayerControl.PlayerAutoRestoreMP(curPlayer, tick)
+    # 
+    # #----------扣XP点
+    # lostXPValue = curSkill.GetXP()
+    # curPlayerXP = curPlayer.GetXP()
+    # 
+    # if curPlayerXP < lostXPValue:
+    #    GameWorld.ErrLog('释放技能 = %s异常, XP点 = %s不足 = %s' % (
+    #                        curSkill.GetSkillTypeID(), curPlayerXP, lostXPValue))
+    # 
+    # if lostXPValue > 0:
+    #    remain = curPlayer.GetXP() - lostXPValue
+    #    remain = max(0, remain)
+    #    curPlayer.SetDict(ChConfig.Def_PlayerKey_RecordXPValue, remain)
+    #    curPlayer.SetXP(remain)
+    #===========================================================================
 
     #----------扣HP点
     lostHPValue = curSkill.GetHP()
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
index 775ab34..c504d6d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
@@ -2654,6 +2654,20 @@
         OperControlManager.SetObjActState(curObj, buffSkill)
 
 
+# 非属性技能算属性 特殊处理
+# 法宝SP技能 如1-4级为增加属性,第5级为伤害效果,第6-10级就要包含属性和伤害效果
+def CalcFabaoSPSkillAttr(curPlayer, curPlayerSkill, allAttrList):
+    if curPlayerSkill.GetFuncType() != ChConfig.Def_SkillFuncType_FbSPSkill:
+        return
+    
+    value = GetMaxHPAttrValue(curPlayerSkill)
+    if value == 0:
+        return
+    
+    PlayerControl.CalcAttrDict_Type(ShareDefine.Def_Effect_MaxHP, value, allAttrList)
+    return
+
+
 # 计算属性类技能的属性,同buff层不算战力
 def CalcPassiveAttr_Effect(curPlayer, allAttrList):
     skillManager = curPlayer.GetSkillManager()
@@ -2662,6 +2676,7 @@
         if curPlayerSkill == None:
             continue
         
+        CalcFabaoSPSkillAttr(curPlayer, curPlayerSkill, allAttrList)
         if not SkillCommon.isPassiveAttr(curPlayerSkill):
             continue
         
@@ -3394,6 +3409,9 @@
 def GetUpLVCostItemNum(curSkill):
     return curSkill.GetExAttr5()
 
+# 技能特殊增加属性配置,目前只支持生命,潜力技能专用
+def GetMaxHPAttrValue(curSkill):
+    return curSkill.GetMP()
 
 ##获得当前技能升级消耗的真气值
 # @param curSkill 当前技能技能

--
Gitblit v1.8.0