From 3b154355f5bc547d0649355d785b3ed0abdb5e46 Mon Sep 17 00:00:00 2001
From: Nos <NosBit@users.noreply.github.com>
Date: Sun, 15 Sep 2013 10:05:15 +0000
Subject: [PATCH] BETA: Renamed ''`NpcKill`'' effect to ''`Unsummon`''.     *
 Implemented retail like chance checks for ''`Unsummon`'' effect.     *
 Reviewed By: Zoey76, !UnAfraid

---
 .../scripts/handlers/EffectMasterHandler.java |  2 +-
 .../{NpcKill.java => Unsummon.java}           | 30 +++++++++++++++----
 .../game/data/stats/skills/01300-01399.xml    |  4 ++-
 3 files changed, 29 insertions(+), 7 deletions(-)
 rename L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/{NpcKill.java => Unsummon.java} (68%)

diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java
index 3f8fc05893..0738a5e719 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -123,7 +123,7 @@ public final class EffectMasterHandler
 		MpConsumePerLevel.class,
 		Mute.class,
 		NoblesseBless.class,
-		NpcKill.class,
+		Unsummon.class,
 		OpenCommonRecipeBook.class,
 		OpenDwarfRecipeBook.class,
 		Paralyze.class,
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/NpcKill.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Unsummon.java
similarity index 68%
rename from L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/NpcKill.java
rename to L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Unsummon.java
index 734c5d194a..d807651835 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/NpcKill.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Unsummon.java
@@ -20,22 +20,26 @@ package handlers.effecthandlers;
 
 import com.l2jserver.gameserver.model.actor.L2Summon;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.actor.instance.L2SiegeSummonInstance;
 import com.l2jserver.gameserver.model.effects.EffectTemplate;
 import com.l2jserver.gameserver.model.effects.L2Effect;
 import com.l2jserver.gameserver.model.effects.L2EffectType;
 import com.l2jserver.gameserver.model.stats.Env;
+import com.l2jserver.gameserver.model.stats.Formulas;
 import com.l2jserver.gameserver.network.SystemMessageId;
+import com.l2jserver.util.Rnd;
 
 /**
- * Npc Kill effect implementation.
+ * Unsummon effect implementation.
  * @author Adry_85
  */
-public class NpcKill extends L2Effect
+public class Unsummon extends L2Effect
 {
-	public NpcKill(Env env, EffectTemplate template)
+	private final int _chance;
+	
+	public Unsummon(Env env, EffectTemplate template)
 	{
 		super(env, template);
+		_chance = template.hasParameters() ? template.getParameters().getInt("chance", 100) : 100;
 	}
 	
 	@Override
@@ -50,10 +54,26 @@ public class NpcKill extends L2Effect
 		return true;
 	}
 	
+	@Override
+	public boolean calcSuccess()
+	{
+		int magicLevel = getSkill().getMagicLevel();
+		if ((magicLevel <= 0) || ((getEffected().getLevel() - 9) <= magicLevel))
+		{
+			double chance = _chance * Formulas.calcAttributeBonus(getEffector(), getEffected(), getSkill()) * Formulas.calcGeneralTraitBonus(getEffector(), getEffected(), getSkill().getTraitType(), false);
+			if (chance > (Rnd.nextDouble() * 100))
+			{
+				return true;
+			}
+		}
+		
+		return false;
+	}
+	
 	@Override
 	public boolean onStart()
 	{
-		if ((getEffected() instanceof L2SiegeSummonInstance))
+		if (!getEffected().isSummon())
 		{
 			return false;
 		}
diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/01300-01399.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/01300-01399.xml
index 0e525c6bf9..8fd0d5310a 100644
--- a/L2J_DataPack_BETA/dist/game/data/stats/skills/01300-01399.xml
+++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/01300-01399.xml
@@ -3175,7 +3175,9 @@
 		<enchant1 name="mpConsume" val="#ench1MpConsume" />
 		<enchant1 name="mpInitialConsume" val="#ench1mpInitialConsume" />
 		<for>
-			<effect name="NpcKill" val="0" />
+			<effect name="Unsummon" val="0">
+				<param chance="80" />
+			</effect>
 		</for>
 	</skill>
 	<skill id="1396" levels="10" name="Magical Backfire" enchantGroup1="1" enchantGroup2="1" enchantGroup3="1">
-- 
GitLab