From 9f14215cf6689f4f332f0b625805fa076e7b86bb Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期二, 22 一月 2019 15:12:12 +0800
Subject: [PATCH] 382 诛仙一击客户端攻击公式修改
---
Utility/EnumHelper.cs | 16 ++++++++++++----
Core/GameEngine/Model/Player/PlayerDatas.cs | 4 ++++
Fight/Actor/Skill/AttackHandler.cs | 29 +++++++++++++++++++++++------
Core/GameEngine/Model/Player/Character/PlayerExtersionData.cs | 2 ++
4 files changed, 41 insertions(+), 10 deletions(-)
diff --git a/Core/GameEngine/Model/Player/Character/PlayerExtersionData.cs b/Core/GameEngine/Model/Player/Character/PlayerExtersionData.cs
index 4d898eb..9277c82 100644
--- a/Core/GameEngine/Model/Player/Character/PlayerExtersionData.cs
+++ b/Core/GameEngine/Model/Player/Character/PlayerExtersionData.cs
@@ -73,4 +73,6 @@
public uint soulSplinters;//鑱氶瓊-纰庣墖 197
public uint soulCore;//鑱氶瓊-鏍稿績鐜� 198
public int honorValue; //鑽h獕鍊� 199
+ public int zhuxianRate;// 璇涗粰涓�鍑绘鐜�
+ public int zhuxianHurtPer;// 璇涗粰涓�鍑讳激瀹冲��
}
diff --git a/Core/GameEngine/Model/Player/PlayerDatas.cs b/Core/GameEngine/Model/Player/PlayerDatas.cs
index 0c3b68a..7ad75ec 100644
--- a/Core/GameEngine/Model/Player/PlayerDatas.cs
+++ b/Core/GameEngine/Model/Player/PlayerDatas.cs
@@ -926,6 +926,10 @@
case PlayerDataRefresh.CDBPlayerRefresh_Honor:
extersion.honorValue = (int)value;
break;
+ case PlayerDataRefresh.CDBPlayerRefresh_ZhuxianRate:
+ break;
+ case PlayerDataRefresh.CDBPlayerRefresh_ZhuxianHurtPer:
+ break;
}
}
diff --git a/Fight/Actor/Skill/AttackHandler.cs b/Fight/Actor/Skill/AttackHandler.cs
index 0236029..1018111 100644
--- a/Fight/Actor/Skill/AttackHandler.cs
+++ b/Fight/Actor/Skill/AttackHandler.cs
@@ -269,16 +269,19 @@
int _missRate = 0;
int _aSuperHitRate = 0;
- int _aLuckyHitRage = 0;
+ int _aLuckyHitRate = 0;
+ int _aZhuXianHitRate = 0;
bool _isMiss = false;
bool _isCrit = false;
bool _isLucky = false;
+ bool _isZhuxianHit = false;
SkillHelper.EffectValue _effectValue;
float _aAtkSkillPer = 0;
int _atkSkillValue = 0;
+ int _aZhuxianHurtPer = 0;
int _aLuckyHit = 0;// 浼氬績涓�鍑讳激瀹冲姞鎴� 涓囧垎鐜�, 榛樿0, 浼氬績涓�鍑绘椂鏈夊��
float _aSuperHit = 0;// 鏆村嚮浼ゅ 鍥哄畾鍊�, 榛樿0, 鏆村嚮鏃舵湁鍊�
int _aMinAtk = 1;// 鏈�灏忔敾鍑� 鍥哄畾鍊�
@@ -364,7 +367,6 @@
_missRate = _npcBase.NpcConfig.MissRate;
_dDef = _npcBase.NpcConfig.Def;
-
}
else if (target.ActorType == GameObjType.gotPlayer)
{
@@ -376,7 +378,9 @@
{
_hitRate = PlayerDatas.Instance.extersion.HIT;
_aSuperHitRate = PlayerDatas.Instance.extersion.SuperHitRate;
- _aLuckyHitRage = PlayerDatas.Instance.extersion.luckHitRate;
+ _aLuckyHitRate = PlayerDatas.Instance.extersion.luckHitRate;
+ _aZhuxianHurtPer = PlayerDatas.Instance.extersion.zhuxianHurtPer;
+ _aZhuXianHitRate = PlayerDatas.Instance.extersion.zhuxianRate;
_aMaxAtk = PlayerDatas.Instance.extersion.MAXATK;
_aMinAtk = PlayerDatas.Instance.extersion.MINATK;
_aIgnoreDefRate = PlayerDatas.Instance.extersion.IgnoreDefRate;
@@ -408,7 +412,8 @@
_isMiss = IsMiss(_hitRate, _missRate);
_isCrit = IsCrit(_aSuperHitRate);
- _isLucky = IsLucky(_aLuckyHitRage);
+ _isLucky = IsLucky(_aLuckyHitRate);
+ _isZhuxianHit = IsZhuXianHit(_aZhuXianHitRate);
// 4014 蹇呭畾瑙﹀彂 鎸変綅閰嶇疆 1涓哄繀鍛戒腑锛�2涓哄繀鏆村嚮锛�4涓哄繀浼氬績涓�鍑�
if (skill.skillInfo.effectValue.TryGetValue(4014, out _effectValue))
@@ -458,6 +463,7 @@
_aLuckyHit = _isLucky ? _luckyHit : 0;
_aSuperHit = _isCrit ? _superHit : 0;
+
// 4051 褰撳彂鐢熶細蹇冧激瀹虫椂, 澧炲姞浼氬績涓�鍑讳激瀹�
if (_isLucky
&& skill.skillInfo.effectValue.TryGetValue(4051, out _effectValue))
@@ -495,7 +501,13 @@
if (attacker.ActorType == GameObjType.gotPlayer
&& target.ActorType == GameObjType.gotNPC)
{
- //"PVE_1" :"int(max((((max((aMaxAtk if isLuckyHit else (aMinAtk + (aMaxAtk - aMinAtk)*rand))-dDef*max(1-aIgnoreDefRate/10000.0,0),1))*(1+(aLuckyHit/10000.0 if isLuckyHit else 0))+(aSuperHit if isSuperHit else 0)+ max(aIceAtkSuperHit*aIceAtk - dIceDef, 0))*(atkSkillPer+aSkillAtkRate/10000.0)*(1+aDamagePer/10000.0)+max(aFinalHurt+aOnlyFinalHurt-dFinalHurtReduce, 0)+atkSkillValue)*max(1+aFinalHurtPer/10000.0,1)+aNPCHurtAddPer/10000.0*(aMinAtk+aMaxAtk)/2.0,(aMinAtk+aMaxAtk)/2*0.05 + (aMinAtk+aMaxAtk)/2*0.1*rand))"
+ //"PVE_1" :"int(max((((max((aMaxAtk if isLuckyHit else (aMinAtk + (aMaxAtk - aMinAtk)*rand))
+ // -dDef*max(1-aIgnoreDefRate/10000.0,0),1))*(1+(aLuckyHit/10000.0 if isLuckyHit else 0))
+ // +(aSuperHit if isSuperHit else 0)+ max(aIceAtkSuperHit*aIceAtk - dIceDef, 0))
+ // *(atkSkillPer+(aZhuxianHurtPer/10000.0 if isZhuxianHit else 0)+aSkillAtkRate/10000.0)
+ // *(1+aDamagePer/10000.0)+max(aFinalHurt+aOnlyFinalHurt-dFinalHurtReduce, 0)
+ // +atkSkillValue)*(1+dBeHurtPer/10000.0)*max(1+aFinalHurtPer/10000.0,1)
+ // +aNPCHurtAddPer/10000.0*(aMinAtk+aMaxAtk)/2.0,(aMinAtk+aMaxAtk)/2*0.05 + (aMinAtk+aMaxAtk)/2*0.1*rand))"
float _random = Random.Range(0f, 1f);
_value1 = _aMinAtk + (_aMaxAtk - _aMinAtk) * _random;
@@ -576,7 +588,7 @@
}
#endif
- _value1 = (_aAtkSkillPer + _aSkillAtkRate * Constants.F_DELTA) * (1 + _aDamagePer * Constants.F_DELTA);
+ _value1 = (_aAtkSkillPer + (_isZhuxianHit ? _aZhuxianHurtPer * Constants.F_DELTA : 0) + _aSkillAtkRate * Constants.F_DELTA) * (1 + _aDamagePer * Constants.F_DELTA);
#if UNITY_EDITOR
if (RuntimeLogUtility.s_HurtValueLog)
@@ -678,6 +690,11 @@
return Random.Range(0, 10000) < luckHitRate;
}
+ private static bool IsZhuXianHit(int zxHitRate)
+ {
+ return Random.Range(0, 10000) < zxHitRate;
+ }
+
private static float HpPer(GActor actor)
{
return actor.ActorInfo.RealHp * 1f / actor.ActorInfo.RealMaxHp;
diff --git a/Utility/EnumHelper.cs b/Utility/EnumHelper.cs
index 050f4b9..8f02f11 100644
--- a/Utility/EnumHelper.cs
+++ b/Utility/EnumHelper.cs
@@ -599,6 +599,10 @@
CDBPlayerRefresh_SoulSplinters = 197,//鑱氶瓊-纰庣墖
CDBPlayerRefresh_SoulCore = 198,//鑱氶瓊-鏍稿績鐜�
CDBPlayerRefresh_Honor = 199, //# 鑽h獕鍊�
+ CDBPlayerRefresh_ZhuxianRate = 200, //# 鑽h獕鍊�
+ CDBPlayerRefresh_ZhuxianHurtPer = 201, //# 鑽h獕鍊�
+
+
};
/** 鐗╁搧鍔犳垚绫诲瀷 */
@@ -927,7 +931,7 @@
Dogz = 138, //绁炲吔
AddPoint = 145,//鍔犵偣
CrossServer = 157, //璺ㄦ湇澶╂璧�
- CrossServerBoss=162,
+ CrossServerBoss = 162,
}
//灞炴�х被鍨�
public enum AttrEnum
@@ -1227,9 +1231,9 @@
Def_RewardType_WishingWell = 16,// 璁告効姹犲鍔�16
Def_RewardType_OpenFunc = 17,//鍔熻兘棰勫憡濂栧姳
Def_RewardType_TotalRecharge = 18,//绱鍏呭�煎鍔�
- Def_RewardType_IceLodeStar=19, //鍐版櫠鐭胯剦鏄熺骇濂栧姳19
- Def_RewardType_WeekPartyAct=20, //棰嗗彇鍛ㄧ媯娆㈡椿鍔ㄥ鍔�20
- Def_RewardType_WeekPartyPoint=21,// 棰嗗彇鍛ㄧ媯娆㈢Н鍒嗗鍔�21
+ Def_RewardType_IceLodeStar = 19, //鍐版櫠鐭胯剦鏄熺骇濂栧姳19
+ Def_RewardType_WeekPartyAct = 20, //棰嗗彇鍛ㄧ媯娆㈡椿鍔ㄥ鍔�20
+ Def_RewardType_WeekPartyPoint = 21,// 棰嗗彇鍛ㄧ媯娆㈢Н鍒嗗鍔�21
}
@@ -1390,6 +1394,10 @@
Suppress,
/**鏂╂潃**/
ZhanSha,
+ /** 璇涗粰涓�鍑� */
+ ZhuXianAtk,
+ /** 缁堟瀬鏂╂潃 */
+ FinalKill,
}
public enum E_PlayerState
--
Gitblit v1.8.0