Просмотр исходного кода

Core support for skills triggered when evaded a hit.
DP can use "ON_EVADED_HIT" on XML Skill containers

DrHouse 16 лет назад
Родитель
Сommit
831f4ab7f0

+ 4 - 1
L2_GameServer/java/net/sf/l2j/gameserver/model/ChanceCondition.java

@@ -36,6 +36,7 @@ public final class ChanceCondition
 	public static final int EVT_HIT_BY_SKILL = 1024;
 	public static final int EVT_HIT_BY_OFFENSIVE_SKILL = 2048;
 	public static final int EVT_HIT_BY_GOOD_MAGIC = 4096;
+	public static final int EVT_EVADED_HIT = 8192;
 
 	public static enum TriggerType
 	{
@@ -64,7 +65,9 @@ public final class ChanceCondition
 		// An evil skill was casted on you
 		ON_HIT_BY_OFFENSIVE_SKILL(2048),
 		// A good skill was casted on you
-		ON_HIT_BY_GOOD_MAGIC(4096);
+		ON_HIT_BY_GOOD_MAGIC(4096),
+		// Evading melee attack
+		ON_EVADED_HIT(8192);
 
 		private int _mask;
 

+ 5 - 0
L2_GameServer/java/net/sf/l2j/gameserver/model/ChanceSkillList.java

@@ -65,6 +65,11 @@ public class ChanceSkillList extends FastMap<L2Skill, ChanceCondition>
 
 		onEvent(event, target);
 	}
+	
+	public void onEvadedHit(L2Character attacker)
+	{
+		onEvent(ChanceCondition.EVT_EVADED_HIT, attacker);
+	}
 
 	public void onSkillHit(L2Character target, boolean ownerWasHit, boolean wasMagic, boolean wasOffensive)
 	{

+ 4 - 0
L2_GameServer/java/net/sf/l2j/gameserver/model/L2Character.java

@@ -4933,6 +4933,10 @@ public abstract class L2Character extends L2Object
 
         if (miss)
         {
+        	// Custom ON_EVADED_HIT 
+         	if (target.getChanceSkills() != null) 
+         		target.getChanceSkills().onEvadedHit(this); 
+         	
             if (target instanceof L2PcInstance)
             {
                 SystemMessage sm = new SystemMessage(SystemMessageId.AVOIDED_S1S_ATTACK);