From e852ca15d3d08743c816d14d0959f274c5015573 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期六, 22 六月 2019 16:07:46 +0800
Subject: [PATCH] 6603 【后端】【2.0】增加新版的sp和被动技能 - 修复追神摄魂计算命中个数问题

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py             |    2 ++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_1304.py           |    7 +++++--
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py                   |    8 ++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_1304.py |   37 +++++++++++++++++++++++++++++++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py                            |    3 ++-
 5 files changed, 54 insertions(+), 3 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 e2db5dc..f705570 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
@@ -205,6 +205,11 @@
     return callFunc(attacker, defender, skill, tick)
 
 
+def GetSkillHurtList():
+    global g_skillHurtList
+    return g_skillHurtList
+
+
 def GetFirstHurtObj():
     global g_skillHurtList
     if g_skillHurtList.GetHurtCount():
@@ -1591,6 +1596,9 @@
         
         skillHurtLists.append([hurtObj.GetObjID(), hurtObj.GetObjType(), hurtObj.GetAttackType()])
     
+    #命中个数记录特殊处理
+    PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(attacker, target, curSkill, ChConfig.TriggerType_HitValue)
+    
     # #持续攻击类BUFF 类剑刃风暴是先给自身一个持续性buff,这一次不算伤害不可触发
     if curSkill and ChConfig.Def_SkillType_LstPlsBuffAtk != curSkill.GetSkillType():
         #只对第一目标造成某伤害类型时触发技能, 需先存储 skillHurtLists
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 15f1530..2631cf6 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -4481,7 +4481,8 @@
 TriggerType_SuperHitPer,  # 暴击伤害百分比 86
 TriggerType_SkillSuccessExpend, # 使用技能成功后不触发技能 处理消耗等问题用 87
 TriggerType_ThumpSkillValue, # 重击增加技能固定值伤害 88
-) = range(1, 89)
+TriggerType_HitValue, # 记录命中个数 89
+) = range(1, 90)
 
 
 #不可以佩戴翅膀的地图
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_1304.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_1304.py
index b8d101d..c90c74b 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_1304.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_1304.py
@@ -15,7 +15,7 @@
 
 import GameWorld
 import ChConfig
-
+import BaseAttack
 
 
 ## buff线性增加属性
@@ -40,5 +40,8 @@
 
 
 def CalcBuffValue(attacker, defender, curSkill, changeBuffValueDict):
-    return [GameWorld.GetGameWorld().GetTick()]
+    # 被动1304赋值
+    cnt = attacker.GetDictByKey("1304HitCnt")
+    attacker.SetDict("1304HitCnt", 0)
+    return [cnt]
 
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_1304.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_1304.py
new file mode 100644
index 0000000..034809f
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_1304.py
@@ -0,0 +1,37 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#
+##@package
+#
+# @todo: 记录命中个数
+#
+# @author: Alee
+# @date 2019-6-22 下午03:43:33
+# @version 1.0
+#
+# @note: 
+#
+#---------------------------------------------------------------------
+
+import BaseAttack
+import ChConfig
+import GameWorld
+
+def CheckCanHappen(attacker, defender, effect, curSkill):
+    skillHurtList = BaseAttack.GetSkillHurtList()
+    cnt = 0
+    for i in xrange(skillHurtList.GetHurtCount()):
+        hurtObj = skillHurtList.GetHurtAt(i)
+        if not hurtObj:
+            continue
+        if hurtObj.GetAttackType() in [ChConfig.Def_HurtType_Miss, ChConfig.Def_HurtType_Immune]:
+            continue
+        cnt += 1
+        
+    attacker.SetDict("1304HitCnt", cnt)
+    GameWorld.DebugLog("1304HitCnt---%s"%cnt)
+    return False
+    
+
+def GetValue(attacker, defender, effect):
+    return 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 d0ce334..51ee15f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -290,6 +290,8 @@
 def GetTriggerTypeByEffectID(effectID):
     # 临时配置
     tdict = {
+             1304:ChConfig.TriggerType_HitValue,    # 命中记录 89
+             
              2102:ChConfig.TriggerType_BeAttackOver,   # 被攻击后触发 20
              2104:ChConfig.TriggerType_LockHP, # 锁血触发技能 63
              2105:ChConfig.TriggerType_BeLuckyHit, # 被会心一击触发技能 64

--
Gitblit v1.8.0