From 2560077959fd4d841ce35cb65e2367e568b3b08b Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 19 一月 2024 17:26:02 +0800
Subject: [PATCH] 10019 【砍树】回合战斗(调整闪避公式计算方式;灵宠及反击必命中;普攻暴击后可触发被动;调整击晕优先级提前到其他被动触发前;NPC新增触发被动方式;) 1. 调整闪避公式计算方式,改为是否闪避,简化公式; 2. 增加灵宠及反击必命中;部分触发类伤害技能可通过技能ExAttr2配置必命中; 3. 普攻暴击后可触发被动; 4. 调整击晕优先级提前到反击和其他被动触发前;不然可能导致被攻击方先触发了反击或某些被动后再被击晕;最大击晕概率配置由6000调整为9000; 5. NPC支持被击、闪避、击晕、暴击、连击、反击前、反击后可触发被动; 6. 回血量增加支持按已损失血量百分比恢复;

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py |   38 +++++++++++++++++++++++++++++++-------
 1 files changed, 31 insertions(+), 7 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py
index 78245d1..2f41f42 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py
@@ -152,13 +152,6 @@
     gameObj.SetDict(ChConfig.Def_PlayerKey_CurState, 0)
     return
 
-def GetPetDamPer(gameObj): return gameObj.GetDictByKey(ChConfig.Def_PlayerKey_AttrPetDamPer)
-def SetPetDamPer(gameObj, value): 
-    gameObj.SetDict(ChConfig.Def_PlayerKey_AttrPetDamPer, value)
-    if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
-        PlayerControl.SendPropertyRefresh(gameObj, ShareDefine.CDBPlayerRefresh_PetDamPer, value)
-    return
-
 def GetLastHurtValue(gameObj):
     ## 最后一击伤害值
     hurt = gameObj.GetDictByKey(ChConfig.Def_PlayerKey_LastHurtValue)
@@ -179,6 +172,37 @@
     gameObj.SetDict(ChConfig.Def_PlayerKey_BloodShiledHurtEx, value / ShareDefine.Def_PerPointValue)
     return
 
+## ---------------------------------------------------------
+def ClearBattleEffect(gameObj):
+    gameObj.ClearBattleEffect()
+    # 其他py层自定义战斗属性,由于EffGetSet中不是所有属性接口均通用,固这里先手动调用
+    SetPetDamPer(gameObj, 0)
+    SetFinalHurtPer(gameObj, 0)
+    SetFinalHurtReducePer(gameObj, 0)
+    SetAtkSpeed(gameObj, 0)
+    SetSuperHitRateReduce(gameObj, 0)
+    SetSuperHitReduce(gameObj, 0)
+    SetFaintRate(gameObj, 0)
+    SetFaintDefRate(gameObj, 0)
+    SetComboRate(gameObj, 0)
+    SetComboDefRate(gameObj, 0)
+    SetComboDamPer(gameObj, 0)
+    SetAtkBackRate(gameObj, 0)
+    SetAtkBackDefRate(gameObj, 0)
+    SetSuckHPPer(gameObj, 0)
+    SetSuckHPDefPer(gameObj, 0)
+    SetAtkBackHP(gameObj, 0)
+    SetCurePer(gameObj, 0)
+    SetCureDefPer(gameObj, 0)
+    return
+
+def GetPetDamPer(gameObj): return gameObj.GetDictByKey(ChConfig.Def_PlayerKey_AttrPetDamPer)
+def SetPetDamPer(gameObj, value): 
+    gameObj.SetDict(ChConfig.Def_PlayerKey_AttrPetDamPer, value)
+    if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
+        PlayerControl.SendPropertyRefresh(gameObj, ShareDefine.CDBPlayerRefresh_PetDamPer, value)
+    return
+
 def GetFinalHurtPer(gameObj): return gameObj.GetDictByKey(ChConfig.Def_PlayerKey_FinalHurtPer)
 def SetFinalHurtPer(gameObj, value):
     ## 最终伤害百分比

--
Gitblit v1.8.0