From b2c3652b5c42feaaaa0867c44662201db89d9e97 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期一, 03 六月 2019 13:42:20 +0800
Subject: [PATCH] 6969 【2.0】【后端】缥缈仙域先随机再扣活跃
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py | 46 ++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 44 insertions(+), 2 deletions(-)
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 bc90b1e..c2f464a 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
@@ -33,6 +33,7 @@
import ShareDefine
import GameObj
import PassiveBuffEffMng
+import IpyGameDataPY
#---------------------------------------------------------------------
#---------------------------------------------------------------------
@@ -98,6 +99,11 @@
curSkill.SetLastUseTick(tick)
coolDownTime = curSkill.GetCoolDownTime()
remainTime = coolDownTime
+
+ skillTypeID = curSkill.GetSkillTypeID()
+ if atkObj and skillTypeID in IpyGameDataPY.GetFuncEvalCfg("SkillCD", 1):
+ reduceSkillCDPer += PlayerControl.GetTheFBSkillsCD(atkObj)
+
if isPassiveSkill(curSkill):
if curSkill.GetFuncType() == ChConfig.Def_SkillFuncType_GiftSkill:
# 天赋有减CD效果
@@ -1266,7 +1272,12 @@
if curObj.GetGameNPCObjType() == IPY_GameWorld.gnotPet:
PetControl.SetPetHP(curObj, remainHP)
else:
- GameObj.SetHP(curObj, remainHP)
+ timeLostHPIpyData = IpyGameDataPY.GetIpyGameDataNotLog("NPCTimeLostHP", curObj.GetNPCID())
+ if timeLostHPIpyData:
+ AttackCommon.UpdateTimeMonsterHP(curObj, timeLostHPIpyData, tick)
+ else:
+ GameObj.SetHP(curObj, remainHP)
+
if not view : # 已广播的不重复
curObj.Notify_HPEx()
@@ -1276,10 +1287,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:
@@ -1747,6 +1759,35 @@
return returnInfo
+
+def FindBuffByOwner(gameObj, skillTypeID, ownerID, ownerType):
+ findSkill = GameWorld.GetGameData().GetSkillBySkillID(skillTypeID)
+ buffType = GetBuffType(findSkill)
+ buffTuple = GetBuffManagerByBuffType(gameObj, buffType)
+ if buffTuple == ():
+ return None
+
+ buffManager = buffTuple[0]
+ for i in range(0, buffManager.GetBuffCount()):
+ curBuff = buffManager.GetBuff(i)
+ if not curBuff:
+ continue
+
+ #判断是否拥有同一类型的技能
+ if curBuff.GetSkill().GetSkillTypeID() != skillTypeID:
+ continue
+
+ #判断是否拥有同一类型的技能
+ if curBuff.GetOwnerID() != ownerID:
+ continue
+
+ if curBuff.GetOwnerType() != ownerType:
+ continue
+
+ return curBuff
+
+ return None
+
#---------------------------------------------------------------------
## 执行清空命令 参数:玩家, 保留技能类型列表
# @param curPlayer 玩家
@@ -2091,6 +2132,7 @@
#技能附加
skillValue = curSkill.GetEffect(0).GetEffectValue(1)
+ skillPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(userObj, None, curSkill, ChConfig.TriggerType_AddHP)/float(ChConfig.Def_MaxRateValue)
#公式计算治疗值
cureHP = int((cureBaseValue * skillPer + skillValue + addExValue) * curePercent)
--
Gitblit v1.8.0