From 6fcf3513ccde191e067c8dfd8279cccedf95eb77 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 17 五月 2019 19:22:25 +0800
Subject: [PATCH] 6603 【后端】【2.0】增加新版的sp和被动技能 - 新版

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py             |    5 +
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4074.py |   28 +++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4002.py |   19 ++++--
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4075.py |   29 +++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py                    |    8 +-
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4102.py |   29 +++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4103.py |   26 ++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py        |    3 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4015.py |    9 +-
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py     |    4 +
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py                            |    3 
 11 files changed, 147 insertions(+), 16 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
index 5f54338..deef577 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
@@ -2120,7 +2120,8 @@
         elif curSkill.GetFuncType() in [ChConfig.Def_SkillFuncType_FbSkill, ChConfig.Def_SkillFuncType_FbPassiveSkill]:
             atkSkillPer += PlayerControl.GetFabaoHurtPer(atkObj)
             atkSkillValue += PlayerControl.GetFabaoHurt(atkObj)
-            
+          
+    atkSkillValue += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_SkillValue)
     #  atkSkillPer 包含普攻,所以不是用技能增强处理
     atkSkillPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AttackAddSkillPer)
     atkSkillPer += PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AttackAddSkillPer)
@@ -2291,6 +2292,7 @@
         hurtFormula = hurtDist[atkwargs.get('hurtFormulaKey', None)]
     else:
         hurtFormula = hurtDist[hurtFormulaKey]
+        
     hurtValue = int(eval(FormulaControl.GetCompileFormula(hurtFormulaKey, hurtFormula)))
 
     if hurtType == ChConfig.Def_HurtType_Normal and SuppressValueRealmRate > 10000:
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 1dc3759..c10294f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -4485,7 +4485,8 @@
 TriggerType_SuperHitSuckBloodPer,   # 暴击百分比吸血, 79
 TriggerType_BurnPer,    # 灼烧伤害百分比 80
 TriggerType_BurnDisappear,    # 灼烧消失触发 81
-) = range(1, 82)
+TriggerType_SkillValue,    # 增加技能伤害固定值 82
+) = range(1, 83)
 
 
 #不可以佩戴翅膀的地图
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
index 6bdb52f..641d32c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
@@ -1282,10 +1282,11 @@
         GameObj.SetHP(curObj, remainHP, not view)
     
     AttackCommon.WriteHurtLog(buffOwner, curObj, curSkill, lostValue, hurtType, "持续掉血")
-    
     if view:
         #广播伤血类型
         AttackCommon.ChangeHPView(curObj, buffOwner, skillTypeID, notifyLostValue, hurtType)
+        if buffOwner:
+            PassiveBuffEffMng.OnPassiveSkillTrigger(buffOwner, curObj, curSkill, ChConfig.TriggerType_AttackOverPassive, tick)
         
     # 濒死状态触发技能
     if GameObj.GetHP(curObj) == 0:
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4002.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4002.py
index 83d6e3a..0223162 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4002.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4002.py
@@ -1,30 +1,37 @@
 #!/usr/bin/python
 # -*- coding: GBK -*-
 #
-# @todo: 目标血量低于XX百分比提高伤害xx
+##@package
+#
+# @todo: 目标处于XX状态提高技能伤害固定值
 #
 # @author: Alee
-# @date 2018-1-9 下午09:39:37
+# @date 2019-5-17 下午05:01:22
 # @version 1.0
 #
 # @note: 
 #
 #---------------------------------------------------------------------
 
+
 import ChConfig
 import GameWorld
 import GameObj
 
-# 血量低于XX
 def CheckCanHappen(attacker, defender, effect, curSkill):
     if not defender:
         return False
     
-    if GameObj.GetHP(defender)*ChConfig.Def_MaxRateValue/GameObj.GetMaxHP(defender) >= effect.GetEffectValue(1):
-        return False
+    ownerID, ownerType = 0, 0
+    if effect.GetEffectValue(2):
+        ownerID, ownerType = attacker.GetID(), attacker.GetGameObjType()
+        
+    if effect.GetEffectValue(1):
+        if not GameObj.GetPyPlayerState(defender, effect.GetEffectValue(1), ownerID, ownerType):#ChConfig.Def_PlayerState_Stun):
+            #GameWorld.DebugLog("状态触发----%s"%effect.GetEffectValue(1))
+            return False
     
     return True
-    
 
 def GetValue(attacker, defender, effect):
     return effect.GetEffectValue(0)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4015.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4015.py
index 77da405..f5438bd 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4015.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4015.py
@@ -25,11 +25,12 @@
     if effect.GetEffectValue(2):
         ownerID, ownerType = attacker.GetID(), attacker.GetGameObjType()
         
-    if GameObj.GetPyPlayerState(defender, effect.GetEffectValue(1), ownerID, ownerType):#ChConfig.Def_PlayerState_Stun):
-        #GameWorld.DebugLog("状态触发----%s"%effect.GetEffectValue(1))
-        return True
+    if effect.GetEffectValue(1):
+        if not GameObj.GetPyPlayerState(defender, effect.GetEffectValue(1), ownerID, ownerType):#ChConfig.Def_PlayerState_Stun):
+            #GameWorld.DebugLog("状态触发----%s"%effect.GetEffectValue(1))
+            return False
     
-    return False
+    return True
     
 
 def GetValue(attacker, defender, effect):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4074.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4074.py
new file mode 100644
index 0000000..8e3543f
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4074.py
@@ -0,0 +1,28 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#
+##@package
+#
+# @todo: 自身每存在1个增益buff,增加XX%技能伤害,上限增加200%
+#
+# @author: Alee
+# @date 2019-5-17 下午05:25:38
+# @version 1.0
+#
+# @note: 
+#
+#---------------------------------------------------------------------
+
+import ChConfig
+import IPY_GameWorld
+import AttackCommon
+def CheckCanHappen(attacker, defender, effect, curSkill):
+    if effect.GetEffectValue(2):
+        # 只针对第一目标
+        if AttackCommon.GetFirstDefenderID(attacker) != defender.GetID():
+            return False
+    return True
+
+def GetValue(attacker, defender, effect):
+    
+    return min(effect.GetEffectValue(0)*attacker.GetBuffState().GetBuffCount(), effect.GetEffectValue(1))
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4075.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4075.py
new file mode 100644
index 0000000..f6040eb
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4075.py
@@ -0,0 +1,29 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#
+##@package
+#
+# @todo: 重击造成每点(攻速-100)*1%重击伤害
+#
+# @author: Alee
+# @date 2019-5-17 下午03:19:44
+# @version 1.0
+#
+# @note: 
+#
+#---------------------------------------------------------------------
+
+import PlayerControl
+import AttackCommon
+
+def CheckCanHappen(attacker, defender, effect, curSkill):
+    if effect.GetEffectValue(1):
+        # 只针对第一目标
+        if AttackCommon.GetFirstDefenderID(attacker) != defender.GetID():
+            return False
+    return True
+    
+
+def GetValue(attacker, defender, effect):
+    return max(PlayerControl.GetAtkSpeed(attacker) - 100, 0)*effect.GetEffectValue(0)
+
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4102.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4102.py
new file mode 100644
index 0000000..08035ea
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4102.py
@@ -0,0 +1,29 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#
+##@package
+#
+# @todo: 消耗固定印记数量增加技能伤害固定值
+#
+# @author: Alee
+# @date 2019-4-26 下午07:46:07
+# @version 1.0
+#
+# @note: 
+#
+#---------------------------------------------------------------------
+import ChConfig
+import PlayerControl
+
+
+def CheckCanHappen(attacker, defender, effect, curSkill):
+    if PlayerControl.GetYinjiCnt(attacker) < effect.GetEffectValue(1):
+        return False
+    
+    # 4092 处理消耗
+    #PlayerYinji.SubYinji(attacker, effect.GetEffectValue(1))
+    return True
+    
+
+def GetValue(attacker, defender, effect):
+    return effect.GetEffectValue(0)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4103.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4103.py
new file mode 100644
index 0000000..e89c1ea
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4103.py
@@ -0,0 +1,26 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#
+##@package
+#
+# @todo: 重击回血
+#
+# @author: Alee
+# @date 2019-5-17 下午03:27:34
+# @version 1.0
+#
+# @note: 
+#
+#---------------------------------------------------------------------
+import AttackCommon
+
+def CheckCanHappen(attacker, defender, effect, curSkill):   
+    if effect.GetEffectValue(1):
+        # 只针对第一目标
+        if AttackCommon.GetFirstDefenderID(attacker) != defender.GetID():
+            return False
+    return True
+    
+
+def GetValue(attacker, defender, effect):
+    return effect.GetEffectValue(0)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
index b39b849..f0142e9 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -289,6 +289,7 @@
              
              4000:ChConfig.TriggerType_BuffState,   # 进入4012的某个状态触发技能 2
              4001:ChConfig.TriggerType_TagBuffState,   # 目标进入4012的某个状态触发技能 2
+             4002:ChConfig.TriggerType_SkillValue,  # 增加技能伤害固定值 82
              4003:ChConfig.TriggerType_AttackOver,  # 攻击(对敌技能)后被动技能被触发 4
              4004:ChConfig.TriggerType_AttackOver,  # 攻击(对敌技能)后被动技能被触发 4
              4005:ChConfig.TriggerType_AttackAddSkillPer,  # 所有攻击伤害(SkillPer)增加,含普攻,计算时 5
@@ -358,6 +359,8 @@
              4071:ChConfig.TriggerType_Buff_SuckBloodPer,   # 攻击 百分比吸血
              4072:ChConfig.TriggerType_SuperHitSkipCD, # 暴击无冷却 68
              4073:ChConfig.TriggerType_BuffHurtCnt, # 当持续buff伤害第X次时触发技能 69
+             4074:ChConfig.TriggerType_AttackAddSkillPer,  # 所有攻击伤害(SkillPer)增加,含普攻,计算时 5
+             4075:ChConfig.TriggerType_AddThumpHitPer, # 增加重击伤害百分比
              4076:ChConfig.TriggerType_dFinalHurtReducePer, # 防守方的最终伤害减少百分比 71 
              4077:ChConfig.TriggerType_AttackAddFinalPer, # 增加最终伤害百分比 59
              4078:ChConfig.TriggerType_AttackOver,  # 攻击(对敌技能)后被动技能被触发 4
@@ -384,6 +387,8 @@
              4099:ChConfig.TriggerType_WillDead,   # 进入濒死状态时触发技能 25
              4100:ChConfig.TriggerType_AttackOver,  # 攻击(对敌技能)后被动技能被触发 4
              4101:ChConfig.TriggerType_AttackAddSkillPer,  # 所有攻击伤害(SkillPer)增加,含普攻,计算时 5
+             4102:ChConfig.TriggerType_SkillValue,  # 增加技能伤害固定值 82
+             4103:ChConfig.TriggerType_Buff_SuckBloodPer,   # 攻击 百分比吸血
              }
     return tdict.get(effectID, -1) 
     #===========================================================================
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 0fe4931..e28c623 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
@@ -126,9 +126,11 @@
     
     #技能攻击最大数量
     hurtCount = SkillCommon.GetSkillArea_Atk_Count(curPlayer, curSkill)
-    if len(hurtList) > hurtCount:
-        # 客户端目标过多
-        return False
+    #===========================================================================
+    # if len(hurtList) > hurtCount:
+    #    # 客户端目标过多
+    #    return False
+    #===========================================================================
     
 #    mapType = GameWorld.GetMap().GetMapFBType()
     # 野外小怪或者其他指定的怪为了更及时的打击感,由客户端计算

--
Gitblit v1.8.0