From 88650853f1898815f4612280dd2ffc85af9ddd80 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期四, 25 四月 2019 16:57:33 +0800
Subject: [PATCH] 6607 【2.0】【后端】技能升级功能改版
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py | 49 ++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 38 insertions(+), 11 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 4edf89d..fc48a11 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
@@ -22,7 +22,6 @@
import PlayerControl
import NPCCommon
import ChConfig
-import ChEquip
import SkillCommon
import AttackLogic
import ItemControler
@@ -36,7 +35,6 @@
import OperControlManager
import DataRecordPack
import ChItem
-import ReadChConfig
import GameObj
import ChPyNetSendPack
import ChNetSendPack
@@ -79,7 +77,7 @@
# global hurtTypeIndance
# hurtTypeIndance = indance
#
-### 获得本次攻击是否是致命一击
+### 获得本次攻击是否是暴击
## @param 无参数
## @return True or False
## @remarks 函数详细说明.
@@ -916,12 +914,19 @@
if attacker.GetGameObjType() != IPY_GameWorld.gotPlayer:
return None
- useSkillTagID = attacker.GetUseSkillTagID()
- useSkillTagType = attacker.GetUseSkillTagType()
-
- curTag = GameWorld.GetObj(useSkillTagID, useSkillTagType)
+ curTag = None
+ if attacker.GetAttackMode() == IPY_GameWorld.amContest:
+ # 单一目标锁定模式
+ curTag = GameWorld.GetObj(attacker.SetDict(ChConfig.Def_PlayerKey_SelectObjID),
+ attacker.SetDict(ChConfig.Def_PlayerKey_SelectObjType))
+
if not curTag:
- return None
+ useSkillTagID = attacker.GetUseSkillTagID()
+ useSkillTagType = attacker.GetUseSkillTagType()
+
+ curTag = GameWorld.GetObj(useSkillTagID, useSkillTagType)
+ if not curTag:
+ return None
if SkillShell.GetSkillAffectTag(curSkill) == ChConfig.Def_UseSkillTag_CanAttackNPC:
if NPCCommon.GetNpcObjOwnerIsPlayer(curTag):
@@ -1499,9 +1504,10 @@
curPlayerSkill = curPlayer.GetSkillManager().FindSkillBySkillTypeID(skillTypeID)
if curPlayerSkill:
-
- #设置玩家所学技能冷却CD
- SkillCommon.SetSkillRemainTime(curPlayerSkill, PlayerControl.GetReduceSkillCDPer(curPlayer), tick, curPlayer)
+
+ if not IsSkipSkillCD:
+ #设置玩家所学技能冷却CD
+ SkillCommon.SetSkillRemainTime(curPlayerSkill, PlayerControl.GetReduceSkillCDPer(curPlayer), tick, curPlayer)
#调用任务触发器
#EventShell.EventRespons_UseSkillOK(curPlayer, skillTypeID)
#执行连环被动技能处理
@@ -1516,6 +1522,27 @@
# 普攻和对敌技能
UseSkillOver(curPlayer, target, curSkill, tick)
return True
+
+# 无冷却状态
+def IsSkipSkillCD(curPlayer, target, curSkill, tick):
+ # 暴击情况下
+ isSuperHit = False
+ for i in xrange(g_skillHurtList.GetHurtCount()):
+ hurtObj = g_skillHurtList.GetHurtAt(i)
+ if not hurtObj:
+ continue
+
+ if hurtObj.GetAttackType() == ChConfig.Def_HurtType_SuperHit:
+ isSuperHit = True
+ break
+
+ if isSuperHit:
+ if PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(curPlayer, None, curSkill, ChConfig.TriggerType_SuperHitSkipCD):
+ return True
+ if PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(curPlayer, None, curSkill, ChConfig.TriggerType_SuperHitSkipCD):
+ return True
+ return False
+
# 根据伤血类型触发技能,群攻只触发一次,放在伤血列表被清之前
def OnHurtTypeTriggerSkill(attacker, target, curSkill, tick):
--
Gitblit v1.8.0