Bläddra i källkod

BETA: Skill fixes:

	* Added support for affect limit parameter (only for TARGET_AREA_FRIENDLY)
	* Removed COMBATPOINTHEAL and CHAIN_HEAL SkillTypes
	* Added TARGET_AREA_FRIENDLY TargetType
	
	Reviewed by: lion, MELERIX, UnAfraid, Zoey76
Adry_85 12 år sedan
förälder
incheckning
356ded9754

+ 0 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2AttackableAI.java

@@ -1854,7 +1854,6 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 					// _actor.setTarget(targets);
 					return true;
 				}
-				
 			}
 				break;
 		}

+ 3 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Character.java

@@ -1685,9 +1685,11 @@ public abstract class L2Character extends L2Object implements ISkillsHolder
 				{
 					case BUFF:
 					case HEAL:
-					case COMBATPOINTHEAL:
 						doit = true;
 						break;
+					case DUMMY:
+						doit = skill.hasEffectType(L2EffectType.CPHEAL);
+						break;
 				}
 				
 				if (doit)

+ 1 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java

@@ -4543,12 +4543,7 @@ public final class L2PcInstance extends L2Playable
 	@Override
 	public final boolean isAlikeDead()
 	{
-		if (super.isAlikeDead())
-		{
-			return true;
-		}
-		
-		return isFakeDeath();
+		return super.isAlikeDead() || isFakeDeath();
 	}
 	
 	/**

+ 21 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/model/skills/L2Skill.java

@@ -167,6 +167,7 @@ public abstract class L2Skill implements IChanceSkillTrigger
 	// The radius center varies according to the _targetType:
 	// "caster" if targetType = AURA/PARTY/CLAN or "target" if targetType = AREA
 	private final int _affectRange;
+	private final int[] _affectLimit = new int[2];
 	
 	private final L2SkillType _skillType;
 	private final L2SkillType _effectType; // additional effect has a type
@@ -368,6 +369,21 @@ public abstract class L2Skill implements IChanceSkillTrigger
 		
 		_affectRange = set.getInteger("affectRange", 0);
 		
+		final String affectLimit = set.getString("affectLimit", null);
+		if (affectLimit != null)
+		{
+			try
+			{
+				String[] valuesSplit = affectLimit.split("-");
+				_affectLimit[0] = Integer.parseInt(valuesSplit[0]);
+				_affectLimit[1] = Integer.parseInt(valuesSplit[1]);
+			}
+			catch (Exception e)
+			{
+				throw new IllegalArgumentException("SkillId: " + _id + " invalid affectLimit value: " + affectLimit + ", \"percent-percent\" required");
+			}
+		}
+		
 		_targetType = set.getEnum("target", L2TargetType.class);
 		_power = set.getFloat("power", 0.f);
 		_pvpPower = set.getFloat("pvpPower", (float) getPower());
@@ -958,6 +974,11 @@ public abstract class L2Skill implements IChanceSkillTrigger
 		return _affectRange;
 	}
 	
+	public final int[] getAffectLimit()
+	{
+		return _affectLimit;
+	}
+	
 	public final boolean isActive()
 	{
 		return (_operateType != null) && _operateType.isActive();

+ 0 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/skills/L2SkillType.java

@@ -68,10 +68,8 @@ public enum L2SkillType
 	// hp, mp, cp
 	HEAL,
 	HEAL_PERCENT,
-	COMBATPOINTHEAL,
 	MANAHEAL_BY_LEVEL,
 	MANAHEAL_PERCENT,
-	CHAIN_HEAL,
 	// reco
 	GIVE_RECO,
 	// vitality

+ 1 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/model/skills/targets/L2TargetType.java

@@ -26,6 +26,7 @@ public enum L2TargetType
 	TARGET_ALLY,
 	TARGET_AREA,
 	TARGET_AREA_CORPSE_MOB,
+	TARGET_AREA_FRIENDLY,
 	TARGET_AREA_SUMMON,
 	TARGET_AREA_UNDEAD,
 	TARGET_AURA,