From ce3255b65c0ab6fb2a93e416d39d547632287b51 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 16 四月 2024 17:08:38 +0800
Subject: [PATCH] 10019 【砍树】回合战斗(增加技能被动效果5015 5016 5017) 1. 增加技能被动效果ID 5015 - 被攻击触发,附加负面状态判断 2. 增加技能被动效果ID 5016 - 灵宠攻击后触发,附加目标负面状态判断 3. 增加技能被动效果ID 5017 - 攻击时提升攻击力,附加当前血量判
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyWar.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1089.py | 4
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_805.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_45.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py | 20 ++++--
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1034.py | 4
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py | 3 +
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_49.py | 4
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py | 13 ++++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1033.py | 6 -
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5015.py | 26 ++++++++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5016.py | 26 ++++++++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5017.py | 39 +++++++++++++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py | 11 ++-
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_38.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_51.py | 2
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py | 3
19 files changed, 143 insertions(+), 30 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 27eb084..65105ee 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
@@ -2068,7 +2068,7 @@
return 0, ChConfig.Def_HurtType_Miss
multiValue = 0 # 伤害倍值
- summonAtkPer = 1 # 召唤继承提高基础攻击力,取表
+ atkPer = ChConfig.Def_MaxRateValue # 提高基础攻击力
summonAtkObj = atkwargs.get('orgAtkObj', None) if atkwargs.get('orgAtkObj', None) else atkObj
if summonAtkObj.GetGameObjType() == IPY_GameWorld.gotNPC and summonAtkObj.GetGameNPCObjType() == IPY_GameWorld.gnotSummon:
summonAtkPerValue = summonAtkObj.GetDictByKey(ChConfig.Def_GameObjKey_InheritOwner)
@@ -2078,8 +2078,8 @@
if not ownerAtkObj:
return 0, ChConfig.Def_HurtType_Miss
- summonAtkPer = summonAtkPerValue*1.0/ChConfig.Def_MaxRateValue
- #GameWorld.DebugLog("召唤兽取主人---------%s-%s-%s-%s"%(ownerAtkObj.GetID(), atkSkillPer, atkSkillValue, summonAtkPer))
+ atkPer = summonAtkPerValue
+ #GameWorld.DebugLog("召唤兽取主人---------%s-%s-%s-%s"%(ownerAtkObj.GetID(), atkSkillPer, atkSkillValue, summonAtkPerValue))
atkObjType = atkObj.GetGameObjType()
defObjType = defObj.GetGameObjType()
@@ -2277,16 +2277,22 @@
rand = random.random() #种子数 0~1
#------- 攻击方
- aMinAtk = atkObj.GetMinAtk() * summonAtkPer # 攻击方最小攻击
- aMaxAtk = atkObj.GetMaxAtk() * summonAtkPer # 攻击方最大攻击
+ aMinAtk = atkObj.GetMinAtk() # 攻击方最小攻击
+ aMaxAtk = atkObj.GetMaxAtk() # 攻击方最大攻击
if petNPCOwner:
petNPCOwner.SetDict("useSkillPetID", atkObj.GetID())
#主人攻击力可能会变化,所以在这里用到时直接取
- aMinAtk = petNPCOwner.GetMinAtk() * summonAtkPer # 攻击方最小攻击
- aMaxAtk = petNPCOwner.GetMaxAtk() * summonAtkPer # 攻击方最大攻击
+ aMinAtk = petNPCOwner.GetMinAtk() # 攻击方最小攻击
+ aMaxAtk = petNPCOwner.GetMaxAtk() # 攻击方最大攻击
#GameWorld.DebugLog("灵宠攻击,直接取主人攻击力: %s ~ %s, 自己: %s ~ %s" % (aMinAtk, aMaxAtk, atkObj.GetMinAtk(), atkObj.GetMaxAtk()))
hurtValueExPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(petNPCOwner, defObj, curSkill, ChConfig.TriggerType_PetAtkHurtExPer)
+ else:
+ atkPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AttackAddAtkPer)
+
+ if atkPer != ChConfig.Def_MaxRateValue:
+ aMinAtk = aMinAtk * float(atkPer)/ChConfig.Def_MaxRateValue
+ aMaxAtk = aMaxAtk * float(atkPer)/ChConfig.Def_MaxRateValue
enemyObj = None
aPetStrengthenPer, dPetWeakenPer = 0, 0 # 强化灵兽, 弱化灵兽
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 58fe02f..1aee811 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
@@ -635,7 +635,7 @@
#执行攻击结果
for obj in resultList:
- SkillCommon.SkillLostHP(obj, curSkill.GetSkillTypeID(), attacker, lostHP, tick, isDoAttackResult=False)
+ SkillCommon.SkillLostHP(obj, curSkill, attacker, lostHP, tick, isDoAttackResult=False)
__DoAreaAttackResult(attacker, defender, curSkill, resultList, attackerHP, tick, isExSkill)
return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index db86242..69631ac 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -5160,7 +5160,8 @@
TriggerType_BeSuperHitHurtExPer, # 被暴击时受到额外伤害百分比 103
TriggerType_PetAtkHurtExPer, # 灵宠攻击时额外伤害百分比 104
TriggerType_BeHurt, # 受伤时触发 105
-) = range(1, 106)
+TriggerType_AttackAddAtkPer, # 攻击时增加攻击力 106
+) = range(1, 107)
#不可以佩戴翅膀的地图
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyWar.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyWar.py
index 03f7aaf..09e97c0 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyWar.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyWar.py
@@ -1298,7 +1298,7 @@
skillTypeID, buffOwner = 0, None
lostValue = int(GameObj.GetMaxHP(curPlayer) * lostHPPer / 100.0) * lostTime
#GameWorld.DebugLog("OnCollecting lostHPPer=%s,lostTime=%s,lostValue=%s" % (lostHPPer, lostTime, lostValue), playerID)
- SkillCommon.SkillLostHP(curPlayer, skillTypeID, buffOwner, lostValue, tick, skillAffect=False)
+ SkillCommon.SkillLostHP(curPlayer, None, buffOwner, lostValue, tick, skillAffect=False)
return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py
index bb61405..3d1f87c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py
@@ -616,7 +616,7 @@
curPlayer.SetDict(ChConfig.Def_PlayerKey_CollectLostHPTick, tick)
lostValue = int(GameObj.GetMaxHP(curPlayer) * lostHPPer / 100.0) * lostTime
skillTypeID, buffOwner = 0, None
- SkillCommon.SkillLostHP(curPlayer, skillTypeID, buffOwner, lostValue, tick, skillAffect=False)
+ SkillCommon.SkillLostHP(curPlayer, None, buffOwner, lostValue, tick, skillAffect=False)
GameWorld.DebugLog("采集掉血: npcID=%s,lostHPPer=%s,lostTime=%s,lostValue=%s" % (collectNPCIpyData.GetNPCID(), lostHPPer, lostTime, lostValue))
return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py
index 1ab2adb..54004e8 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/BuffSkill.py
@@ -1089,6 +1089,19 @@
return DelBuffBySkillID(curObj, skillID, tick)
+def IsInDebuffState(curObj):
+ ## 是否处于减益状态
+ for buffType in [IPY_GameWorld.bfDeBuff, IPY_GameWorld.bfProcessDeBuff, IPY_GameWorld.bfActionBuff]:
+ buffTuple = SkillCommon.GetBuffManagerByBuffType(curObj, buffType)
+ if buffTuple == ():
+ continue
+
+ buffManager = buffTuple[0]
+ if buffManager.GetBuffCount():
+ return True
+
+ return False
+
def PYSync_RefreshBuff(gameObj, curBuff, buffType, notifyAll=True, owner = None, errSkillID=None):
try:
sendPack = ChNetSendPack.tagObjAddBuff()
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1033.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1033.py
index b1f9b17..d29fd1c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1033.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1033.py
@@ -44,11 +44,9 @@
#buff拥有者
buffOwner = SkillCommon.GetBuffOwner(curBuff)
- curBuffSkillID = curBuff.GetSkill().GetSkillTypeID()
-
# SkillLostHP前调用 死亡或者其他情况会取消curBuff
curBuff.SetValue2(max(curBuff.GetValue2() - 1, 0))
- SkillCommon.SkillLostHP(defender, curBuffSkillID, buffOwner, singleDecHP, tick, hurtType=ChConfig.Def_HurtType_Bleed)
+ SkillCommon.SkillLostHP(defender, curBuff.GetSkill(), buffOwner, singleDecHP, tick, hurtType=ChConfig.Def_HurtType_Bleed)
return
@@ -92,7 +90,7 @@
#无剩余
if count > 0:
- SkillCommon.SkillLostHP(defender, curSkill.GetSkillTypeID(), SkillCommon.GetBuffOwner(curBuff),
+ SkillCommon.SkillLostHP(defender, curSkill, SkillCommon.GetBuffOwner(curBuff),
curBuff.GetValue()*count, tick, hurtType=ChConfig.Def_HurtType_Bleed)
#已经死亡不触发
if GameObj.GetHP(defender) <= 0:
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1034.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1034.py
index 7080813..ae810b1 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1034.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1034.py
@@ -48,7 +48,7 @@
# SkillLostHP前调用 死亡或者其他情况会取消curBuff
curBuff.SetValue2(max(curBuff.GetValue2() - 1, 0))
- SkillCommon.SkillLostHP(defender, curBuffSkillID, buffOwner, singleDecHP, tick, hurtType=ChConfig.Def_HurtType_Burn)
+ SkillCommon.SkillLostHP(defender, curBuff.GetSkill(), buffOwner, singleDecHP, tick, hurtType=ChConfig.Def_HurtType_Burn)
if buffOwner and GameObj.GetHP(buffOwner) > 0:
# 此处暂无法用被动效果实现
buffManager = defender.GetProcessDeBuffState()
@@ -98,7 +98,7 @@
addBurnHurtPer = defender.GetDictByKey("addBurnHurtPer") # 灼烧伤害加成
if addBurnHurtPer:
totalDecHP = int(totalDecHP * (1 + addBurnHurtPer/float(ChConfig.Def_MaxRateValue)))
- SkillCommon.SkillLostHP(defender, curSkill.GetSkillTypeID(), SkillCommon.GetBuffOwner(curBuff),
+ SkillCommon.SkillLostHP(defender, curSkill, SkillCommon.GetBuffOwner(curBuff),
totalDecHP, tick, hurtType=ChConfig.Def_HurtType_Burn)
if GameObj.GetHP(defender) <= 0:
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1089.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1089.py
index f5433d2..46f4cac 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1089.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1089.py
@@ -41,7 +41,7 @@
curBuffSkillID = curBuff.GetSkill().GetSkillTypeID()
- SkillCommon.SkillLostHP(defender, curBuffSkillID, buffOwner, singleDecHP, tick, hurtType=ChConfig.Def_HurtType_Bleed)
+ SkillCommon.SkillLostHP(defender, curBuff.GetSkill(), buffOwner, singleDecHP, tick, hurtType=ChConfig.Def_HurtType_Bleed)
if curEffect.GetEffectValue(2) and buffOwner:
SkillCommon.SkillAddHP(buffOwner, curBuffSkillID, singleDecHP)
@@ -89,7 +89,7 @@
buffOwner = SkillCommon.GetBuffOwner(curBuff)
- SkillCommon.SkillLostHP(defender, curSkill.GetSkillTypeID(), buffOwner, buffValue, tick, hurtType=ChConfig.Def_HurtType_Bleed)
+ SkillCommon.SkillLostHP(defender, curSkill, buffOwner, buffValue, tick, hurtType=ChConfig.Def_HurtType_Bleed)
# 执行次数
OnPassiveSkillByHurtCount(defender, curBuff, curEffect, buffOwner)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_805.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_805.py
index 6d5dcad..ee5b855 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_805.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_805.py
@@ -26,7 +26,7 @@
if GameObj.GetHP(curObj) <= 0:
return
- SkillCommon.SkillLostHP(curObj, curBuff.GetBuffID(), SkillCommon.GetBuffOwner(curBuff),
+ SkillCommon.SkillLostHP(curObj, curBuff.GetSkill(), SkillCommon.GetBuffOwner(curBuff),
curBuff.GetValue(), tick, hurtType=curBuff.GetValue1())
return
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 34f2968..f179b2b 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
@@ -1298,11 +1298,12 @@
# hurtType 飘血类型
# skillAffect 默认True 会被各种技能BUFF盾等影响伤血数值
# False代表一些特殊处理纯固定伤害飘字(如采集固定掉1点血)
-def SkillLostHP(curObj, skillTypeID, buffOwner, lostValue, tick, view=True,
+def SkillLostHP(curObj, curSkill, buffOwner, lostValue, tick, view=True,
isDoAttackResult=True, hurtType=ChConfig.Def_HurtType_Normal,
skillAffect=True):
+ skillID = curSkill.GetSkillID() if curSkill else 0
if lostValue <= 0:
- GameWorld.Log('###技能伤害血量异常,数值错误 = %s,技能类型ID = %s' % (lostValue, skillTypeID))
+ GameWorld.Log('###技能伤害血量异常,数值错误 = %s,技能类型ID = %s' % (lostValue, skillID))
return
if not curObj.GetCanAttack():
@@ -1311,7 +1312,7 @@
return
curObjType = curObj.GetGameObjType()
- curSkill = GameWorld.GetGameData().FindSkillByType(skillTypeID, 1)
+ #curSkill = GameWorld.GetGameData().FindSkillByType(skillTypeID, 1)
atkObjType = buffOwner.GetGameObjType() if buffOwner else -1
@@ -1362,7 +1363,7 @@
AttackCommon.WriteHurtLog(buffOwner, curObj, curSkill, lostValue, hurtType, "持续掉血")
if view:
#广播伤血类型
- AttackCommon.ChangeHPView(curObj, buffOwner, skillTypeID, lostValue, hurtType)
+ AttackCommon.ChangeHPView(curObj, buffOwner, skillID, lostValue, hurtType)
if buffOwner:
PassiveBuffEffMng.OnPassiveSkillTrigger(buffOwner, curObj, curSkill, ChConfig.TriggerType_AttackOverPassive, tick)
@@ -1415,7 +1416,7 @@
#统一调用攻击结束动作
if isDoAttackResult:
- BaseAttack.DoLogic_AttackResult(buffOwner, curObj, None, tick)
+ BaseAttack.DoLogic_AttackResult(buffOwner, curObj, curSkill, tick)
return lostHP
## 检查增加淬毒buff
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_38.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_38.py
index 83300e7..727a1a6 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_38.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_38.py
@@ -32,4 +32,4 @@
hurtEnhance = defenderMaxHp*skillPer + skillEnhance
hurtEnhance = min(hurtEnhance, defenderMaxHp)
- return SkillCommon.SkillLostHP(defender, curSkill.GetSkillTypeID(), attacker, int(hurtEnhance), tick, isDoAttackResult=False)
+ return SkillCommon.SkillLostHP(defender, curSkill, attacker, int(hurtEnhance), tick, isDoAttackResult=False)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_45.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_45.py
index 3986ec2..a62994e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_45.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_45.py
@@ -28,4 +28,4 @@
attrValue = EffGetSet.GetValueByEffIndex(attacker, attrIndex)
hurtValue = int(attrValue * skillPer + skillEnhance)
- return SkillCommon.SkillLostHP(defender, curSkill.GetSkillTypeID(), attacker, hurtValue, tick, isDoAttackResult=False)
+ return SkillCommon.SkillLostHP(defender, curSkill, attacker, hurtValue, tick, isDoAttackResult=False)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_49.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_49.py
index dc88b19..ae2b6fe 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_49.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_49.py
@@ -45,7 +45,7 @@
GameWorld.DebugLog(" 换血: atkID=%s,defID=%s,skillID=%s,hurtValue=%s,hpHurtValue=%s,atkHurtValue=%s,curHP=%s,tagHP=%s"
% (attacker.GetID(), defender.GetID(), curSkill.GetSkillID(), hurtValue, hpHurtValue, atkHurtValue, curHP, tagHP))
- lostHP = SkillCommon.SkillLostHP(defender, curSkill.GetSkillTypeID(), attacker, hurtValue, tick, isDoAttackResult=False, skillAffect=False)
+ lostHP = SkillCommon.SkillLostHP(defender, curSkill, attacker, hurtValue, tick, isDoAttackResult=False, skillAffect=False)
if lostHP:
- SkillCommon.SkillLostHP(attacker, curSkill.GetSkillTypeID(), attacker, hurtValue, tick, isDoAttackResult=False, skillAffect=False)
+ SkillCommon.SkillLostHP(attacker, curSkill, attacker, hurtValue, tick, isDoAttackResult=False, skillAffect=False)
return BaseAttack.DoSkillEx_AttackSucess(attacker, defender, curSkill, tick, isEnhanceSkill)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_51.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_51.py
index 8bd6703..eb243c5 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_51.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_51.py
@@ -45,4 +45,4 @@
#GameWorld.DebugLog(" 最高不超过自身属性! selfAttrIndex=%s,selfAttrValue=%s,selfPer=%s,hurtValueMax=%s"
# % (selfAttrIndex, selfAttrValue, selfPer, hurtValueMax))
- return SkillCommon.SkillLostHP(defender, curSkill.GetSkillTypeID(), attacker, hurtValue, tick)
+ return SkillCommon.SkillLostHP(defender, curSkill, attacker, hurtValue, tick)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5015.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5015.py
new file mode 100644
index 0000000..e5f97f3
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5015.py
@@ -0,0 +1,26 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#-------------------------------------------------------------------------------
+#
+##@package Skill.PassiveBuff.PassiveSkill_5015
+#
+# @todo:被攻击触发,附加负面状态判断
+# @author hxp
+# @date 2024-04-16
+# @version 1.0
+#
+# 详细描述: 被攻击触发,附加负面状态判断
+#
+#-------------------------------------------------------------------------------
+#"""Version = 2024-04-16 17:00"""
+#-------------------------------------------------------------------------------
+
+import GameWorld
+import BuffSkill
+
+def CheckCanHappen(attacker, defender, effect, curSkill):
+ checkInDebuff = effect.GetEffectValue(1)
+ if checkInDebuff:
+ if not BuffSkill.IsInDebuffState(attacker):
+ return False
+ return GameWorld.CanHappen(effect.GetEffectValue(0))
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5016.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5016.py
new file mode 100644
index 0000000..19d2c2c
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5016.py
@@ -0,0 +1,26 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#-------------------------------------------------------------------------------
+#
+##@package Skill.PassiveBuff.PassiveSkill_5016
+#
+# @todo:灵宠攻击后触发,附加目标负面状态判断
+# @author hxp
+# @date 2024-04-16
+# @version 1.0
+#
+# 详细描述: 灵宠攻击后触发,附加目标负面状态判断
+#
+#-------------------------------------------------------------------------------
+#"""Version = 2024-04-16 17:00"""
+#-------------------------------------------------------------------------------
+
+import GameWorld
+import BuffSkill
+
+def CheckCanHappen(attacker, defender, effect, curSkill):
+ checkInDebuff = effect.GetEffectValue(1)
+ if checkInDebuff:
+ if not BuffSkill.IsInDebuffState(defender):
+ return False
+ return GameWorld.CanHappen(effect.GetEffectValue(0))
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5017.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5017.py
new file mode 100644
index 0000000..1ca57c0
--- /dev/null
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_5017.py
@@ -0,0 +1,39 @@
+#!/usr/bin/python
+# -*- coding: GBK -*-
+#-------------------------------------------------------------------------------
+#
+##@package Skill.PassiveBuff.PassiveSkill_5017
+#
+# @todo:攻击时提升攻击力,附加当前血量判断
+# @author hxp
+# @date 2024-04-16
+# @version 1.0
+#
+# 详细描述: 攻击时提升攻击力,附加当前血量判断
+#
+#-------------------------------------------------------------------------------
+#"""Version = 2024-04-16 17:00"""
+#-------------------------------------------------------------------------------
+
+import ChConfig
+import GameObj
+
+def CheckCanHappen(attacker, defender, effect, curSkill):
+ checkType = effect.GetEffectValue(2)
+ if checkType:
+ checkHPPer = effect.GetEffectValue(1)
+ nowHPPer = GameObj.GetHP(attacker) * float(ChConfig.Def_MaxRateValue) / GameObj.GetMaxHP(attacker)
+ # 大于
+ if checkType == 1:
+ if nowHPPer <= checkHPPer:
+ return False
+ # 小于
+ elif checkType == 2:
+ if nowHPPer >= checkHPPer:
+ 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 488bdc9..29a15b9 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -452,6 +452,9 @@
5012:ChConfig.TriggerType_BeMissSkill, # 目标闪避后触发技能 101
5013:ChConfig.TriggerType_PetAtkHurtExPer, # 灵宠攻击时额外伤害百分比 104
5014:ChConfig.TriggerType_BeHurt, # 受伤时触发 105
+ 5015:ChConfig.TriggerType_BeAttackOver, # 被攻击后触发 20
+ 5016:ChConfig.TriggerType_AttackOverPet, # 灵宠攻击(对敌技能)后被动技能被触发 97
+ 5017:ChConfig.TriggerType_AttackAddAtkPer, # 攻击时增加攻击力 106
}
return tdict.get(effectID, -1)
#===========================================================================
--
Gitblit v1.8.0