瀏覽代碼

BETA: Retail like summoning trap skills:
* Oblivion Trap (836)
* Bomb Installation (574)
* Binding Trap (518)
* Flash Trap (517)
* Slow Trap (516)
* Poison Trap (515)
* Fire Trap (514)
* Test - Basic Trap (7072)
* Implemented Summon Trap effect.

Zoey76 12 年之前
父節點
當前提交
df92b6babf

+ 1 - 0
L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java

@@ -135,6 +135,7 @@ public final class EffectMasterHandler
 		SummonAgathion.class,
 		SummonNpc.class,
 		SummonPet.class,
+		SummonTrap.class,
 		Sweeper.class,
 		TargetMe.class,
 		ThrowUp.class,

+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/handlers/actionhandlers/L2TrapAction.java

@@ -43,6 +43,6 @@ public class L2TrapAction implements IActionHandler
 	@Override
 	public InstanceType getInstanceType()
 	{
-		return InstanceType.L2Trap;
+		return InstanceType.L2TrapInstance;
 	}
 }

+ 94 - 0
L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/SummonTrap.java

@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2004-2013 L2J DataPack
+ * 
+ * This file is part of L2J DataPack.
+ * 
+ * L2J DataPack is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * L2J DataPack is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package handlers.effecthandlers;
+
+import com.l2jserver.gameserver.datatables.NpcTable;
+import com.l2jserver.gameserver.idfactory.IdFactory;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.actor.instance.L2TrapInstance;
+import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
+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;
+
+/**
+ * Summon Trap effect implementation.
+ * @author Zoey76
+ */
+public class SummonTrap extends L2Effect
+{
+	private final int _despawnTime;
+	private final int _npcId;
+	
+	public SummonTrap(Env env, EffectTemplate template)
+	{
+		super(env, template);
+		_despawnTime = template.getParameters().getInteger("despawnTime", 0);
+		_npcId = template.getParameters().getInteger("npcId", 0);
+	}
+	
+	@Override
+	public L2EffectType getEffectType()
+	{
+		return L2EffectType.NONE;
+	}
+	
+	@Override
+	public boolean onStart()
+	{
+		if ((getEffected() == null) || !getEffected().isPlayer() || getEffected().isAlikeDead() || getEffected().getActingPlayer().inObserverMode())
+		{
+			return false;
+		}
+		
+		if (_npcId <= 0)
+		{
+			_log.warning(SummonTrap.class.getSimpleName() + ": Invalid NPC Id:" + _npcId + " in skill Id: " + getSkill().getId());
+			return false;
+		}
+		
+		final L2PcInstance player = getEffected().getActingPlayer();
+		if (player.inObserverMode() || player.isMounted())
+		{
+			return false;
+		}
+		// Unsummon previous trap
+		if (player.getTrap() != null)
+		{
+			player.getTrap().unSummon();
+		}
+		
+		final L2NpcTemplate npcTemplate = NpcTable.getInstance().getTemplate(_npcId);
+		if (npcTemplate == null)
+		{
+			_log.warning(SummonTrap.class.getSimpleName() + ": Spawn of the non-existing Trap Id: " + _npcId + " in skill Id:" + getSkill().getId());
+			return false;
+		}
+		
+		final L2TrapInstance trap = new L2TrapInstance(IdFactory.getInstance().getNextId(), npcTemplate, player, _despawnTime);
+		trap.setCurrentHp(trap.getMaxHp());
+		trap.setCurrentMp(trap.getMaxMp());
+		trap.setIsInvul(true);
+		trap.setHeading(player.getHeading());
+		trap.spawnMe(player.getX(), player.getY(), player.getZ());
+		player.setTrap(trap);
+		return true;
+	}
+}

+ 4 - 6
L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Trap.java

@@ -21,7 +21,7 @@ package handlers.skillhandlers;
 import com.l2jserver.gameserver.handler.ISkillHandler;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.L2Trap;
+import com.l2jserver.gameserver.model.actor.instance.L2TrapInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.Quest.TrapAction;
 import com.l2jserver.gameserver.model.skills.L2Skill;
@@ -60,8 +60,7 @@ public class Trap implements ISkillHandler
 						continue;
 					}
 					
-					final L2Trap trap = (L2Trap) target;
-					
+					final L2TrapInstance trap = (L2TrapInstance) target;
 					if (trap.getLevel() <= skill.getPower())
 					{
 						trap.setDetected(activeChar);
@@ -83,9 +82,8 @@ public class Trap implements ISkillHandler
 						continue;
 					}
 					
-					final L2Trap trap = (L2Trap) target;
-					
-					if (!trap.canSee(activeChar))
+					final L2TrapInstance trap = (L2TrapInstance) target;
+					if (!trap.canBeSeen(activeChar))
 					{
 						if (activeChar.isPlayer())
 						{

+ 2 - 2
L2J_DataPack_BETA/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java

@@ -38,10 +38,10 @@ import com.l2jserver.gameserver.model.actor.L2Attackable;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.L2Summon;
-import com.l2jserver.gameserver.model.actor.L2Trap;
 import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.actor.instance.L2TrapInstance;
 import com.l2jserver.gameserver.model.entity.Instance;
 import com.l2jserver.gameserver.model.instancezone.InstanceWorld;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
@@ -2910,7 +2910,7 @@ public class CrystalCaverns extends Quest
 	}
 	
 	@Override
-	public String onTrapAction(L2Trap trap, L2Character trigger, TrapAction action)
+	public String onTrapAction(L2TrapInstance trap, L2Character trigger, TrapAction action)
 	{
 		InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(trap.getInstanceId());
 		if (tmpworld instanceof CCWorld)

+ 2 - 2
L2J_DataPack_BETA/dist/game/data/scripts/instances/SeedOfDestruction/Stage1.java

@@ -51,10 +51,10 @@ import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Attackable;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.L2Trap;
 import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.actor.instance.L2TrapInstance;
 import com.l2jserver.gameserver.model.holders.SkillHolder;
 import com.l2jserver.gameserver.model.instancezone.InstanceWorld;
 import com.l2jserver.gameserver.model.quest.Quest;
@@ -1017,7 +1017,7 @@ public class Stage1 extends Quest
 	}
 	
 	@Override
-	public String onTrapAction(L2Trap trap, L2Character trigger, TrapAction action)
+	public String onTrapAction(L2TrapInstance trap, L2Character trigger, TrapAction action)
 	{
 		InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(trap.getInstanceId());
 		if (tmpworld instanceof SOD1World)

+ 1 - 1
L2J_DataPack_BETA/dist/game/data/stats/skills/00400-00499.xml

@@ -2209,7 +2209,7 @@
 		<set name="skillType" val="REMOVE_TRAP" />
 		<set name="targetType" val="ONE" />
 		<cond msgId="109">
-			<target npcType="L2Trap" />
+			<target npcType="L2TrapInstance" />
 		</cond>
 	</skill>
 	<skill id="472" levels="45" name="Ancient Sword Mastery" enchantGroup1="1" enchantGroup2="1">

+ 120 - 51
L2J_DataPack_BETA/dist/game/data/stats/skills/00500-00599.xml

@@ -541,132 +541,202 @@
 	<skill id="514" levels="9" name="Fire Trap" enchantGroup1="2" enchantGroup2="2">
 		<!-- Confirmed CT2.5 and Updated to H5 -->
 		<table name="#magicLvl"> 28 36 43 49 55 60 64 68 72 </table>
-		<table name="#triggerSkillLvl"> 1 2 3 4 5 6 7 8 9 </table>
-		<table name="#ench1trigger"> 10 10 10 11 11 11 12 12 12 13 13 13 14 14 14 15 15 15 16 16 16 17 17 17 18 18 18 19 19 20 </table>
+		<table name="#npcId"> 13037 13038 13039 13040 13041 13042 13043 13044 13045 </table>
+		<table name="#ench1npcId"> 13202 13202 13202 13203 13203 13203 13204 13204 13204 13205 13205 13205 13206 13206 13206 13207 13207 13207 13208 13208 13208 13209 13209 13209 13210 13210 13210 13211 13211 13212 </table>
 		<table name="#ench2reuse"> 44000 42000 42000 41000 40000 39000 38000 37000 36000 35000 34000 33000 32000 31000 30000 29000 28000 27000 26000 25000 24000 22000 22000 21000 20000 19000 18000 17000 16000 15000 </table>
 		<table name="#enchMagicLvl"> 76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 </table>
-		<set name="affectRange" val="150" />
 		<set name="hitTime" val="1500" />
 		<set name="magicLvl" val="#magicLvl" />
 		<set name="mpConsume" val="40" />
 		<set name="mpInitialConsume" val="10" />
-		<set name="npcId" val="13037" />
 		<set name="operateType" val="A1" />
 		<set name="reuseDelay" val="45000" />
-		<set name="skillType" val="SUMMON_TRAP" />
 		<set name="staticReuse" val="true" />
-		<set name="summonTotalLifeTime" val="30000" />
 		<set name="targetType" val="SELF" />
-		<set name="triggerSkillId" val="5267" />
-		<set name="triggerSkillLvl" val="#triggerSkillLvl" />
 		<enchant1 name="magicLvl" val="#enchMagicLvl" />
-		<enchant1 name="triggerSkillLvl" val="#ench1trigger" />
 		<enchant2 name="magicLvl" val="#enchMagicLvl" />
 		<enchant2 name="reuseDelay" val="#ench2reuse" />
+		<cond msgId="113" addName="1">
+			<player npcIdRadius="#npcId,150,false" />
+		</cond>
+		<enchant1cond msgId="113" addName="1">
+			<player npcIdRadius="#ench1npcId,150,false" />
+		</enchant1cond>
+		<for>
+			<effect name="SummonTrap" noicon="1" val="0">
+				<param npcId="#npcId" />
+			</effect>
+		</for>
+		<enchant1for>
+			<effect name="SummonTrap" noicon="1" val="0">
+				<param npcId="#ench1npcId" />
+			</effect>
+		</enchant1for>
+		<enchant2for>
+			<effect name="SummonTrap" noicon="1" val="0">
+				<param npcId="13045" />
+			</effect>
+		</enchant2for>
 	</skill>
 	<skill id="515" levels="6" name="Poison Trap" enchantGroup1="2" enchantGroup2="2">
 		<!-- Confirmed CT2.5 and Updated to H5 -->
 		<table name="#magicLvl"> 49 55 60 64 68 72 </table>
-		<table name="#triggerSkillLvl"> 1 2 3 4 5 6 </table>
-		<table name="#ench1trigger"> 7 7 7 8 8 8 9 9 9 10 10 10 11 11 11 12 12 12 13 13 13 14 14 14 15 15 15 16 16 17 </table>
+		<table name="#npcId"> 13046 13047 13048 13049 13050 13051 </table>
+		<table name="#ench1npcId"> 13213 13213 13213 13214 13214 13214 13215 13215 13215 13216 13216 13216 13217 13217 13217 13218 13218 13218 13219 13219 13219 13220 13220 13220 13221 13221 13221 13222 13222 13223 </table>
 		<table name="#ench2reuse"> 44000 42000 42000 41000 40000 39000 38000 37000 36000 35000 34000 33000 32000 31000 30000 29000 28000 27000 26000 25000 24000 22000 22000 21000 20000 19000 18000 17000 16000 15000 </table>
 		<table name="#enchMagicLvl"> 76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 </table>
-		<set name="affectRange" val="150" />
 		<set name="hitTime" val="1500" />
 		<set name="magicLvl" val="#magicLvl" />
 		<set name="mpConsume" val="40" />
 		<set name="mpInitialConsume" val="10" />
-		<set name="npcId" val="13037" />
 		<set name="operateType" val="A1" />
 		<set name="reuseDelay" val="45000" />
-		<set name="skillType" val="SUMMON_TRAP" />
 		<set name="staticReuse" val="true" />
-		<set name="summonTotalLifeTime" val="30000" />
 		<set name="targetType" val="SELF" />
-		<set name="triggerSkillId" val="5268" />
-		<set name="triggerSkillLvl" val="#triggerSkillLvl" />
 		<enchant1 name="magicLvl" val="#enchMagicLvl" />
-		<enchant1 name="triggerSkillLvl" val="#ench1trigger" />
 		<enchant2 name="magicLvl" val="#enchMagicLvl" />
 		<enchant2 name="reuseDelay" val="#ench2reuse" />
+		<cond msgId="113" addName="1">
+			<player npcIdRadius="#npcId,150,false" />
+		</cond>
+		<enchant1cond msgId="113" addName="1">
+			<player npcIdRadius="#ench1npcId,150,false" />
+		</enchant1cond>
+		<for>
+			<effect name="SummonTrap" noicon="1" val="0">
+				<param npcId="#npcId" />
+			</effect>
+		</for>
+		<enchant1for>
+			<effect name="SummonTrap" noicon="1" val="0">
+				<param npcId="#ench1npcId" />
+			</effect>
+		</enchant1for>
+		<enchant2for>
+			<effect name="SummonTrap" noicon="1" val="0">
+				<param npcId="13051" />
+			</effect>
+		</enchant2for>
 	</skill>
 	<skill id="516" levels="6" name="Slow Trap" enchantGroup1="2" enchantGroup2="2">
 		<!-- Confirmed CT2.5 and Updated to H5 -->
 		<table name="#magicLvl"> 52 58 62 66 70 74 </table>
-		<table name="#triggerSkillLvl"> 1 2 3 4 5 6 </table>
-		<table name="#ench1trigger"> 7 7 7 8 8 8 9 9 9 10 10 10 11 11 11 12 12 12 13 13 13 14 14 14 15 15 15 16 16 17 </table>
+		<table name="#npcId"> 13065 13066 13067 13068 13069 13070 </table>
+		<table name="#ench1npcId"> 13224 13224 13224 13225 13225 13225 13226 13226 13226 13227 13227 13227 13228 13228 13228 13229 13229 13229 13230 13230 13230 13231 13231 13231 13232 13232 13232 13233 13233 13234 </table>
 		<table name="#ench2reuse"> 44000 42000 42000 41000 40000 39000 38000 37000 36000 35000 34000 33000 32000 31000 30000 29000 28000 27000 26000 25000 24000 22000 22000 21000 20000 19000 18000 17000 16000 15000 </table>
 		<table name="#enchMagicLvl"> 76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 </table>
-		<set name="affectRange" val="150" />
 		<set name="hitTime" val="1500" />
 		<set name="magicLvl" val="#magicLvl" />
 		<set name="mpConsume" val="40" />
 		<set name="mpInitialConsume" val="10" />
-		<set name="npcId" val="13037" />
 		<set name="operateType" val="A1" />
 		<set name="reuseDelay" val="45000" />
-		<set name="skillType" val="SUMMON_TRAP" />
 		<set name="staticReuse" val="true" />
-		<set name="summonTotalLifeTime" val="30000" />
 		<set name="targetType" val="SELF" />
-		<set name="triggerSkillId" val="5269" />
-		<set name="triggerSkillLvl" val="#triggerSkillLvl" />
 		<enchant1 name="magicLvl" val="#enchMagicLvl" />
-		<enchant1 name="triggerSkillLvl" val="#ench1trigger" />
 		<enchant2 name="magicLvl" val="#enchMagicLvl" />
 		<enchant2 name="reuseDelay" val="#ench2reuse" />
+		<cond msgId="113" addName="1">
+			<player npcIdRadius="#npcId,150,false" />
+		</cond>
+		<enchant1cond msgId="113" addName="1">
+			<player npcIdRadius="#ench1npcId,150,false" />
+		</enchant1cond>
+		<for>
+			<effect name="SummonTrap" noicon="1" val="0">
+				<param npcId="#npcId" />
+			</effect>
+		</for>
+		<enchant1for>
+			<effect name="SummonTrap" noicon="1" val="0">
+				<param npcId="#ench1npcId" />
+			</effect>
+		</enchant1for>
+		<enchant2for>
+			<effect name="SummonTrap" noicon="1" val="0">
+				<param npcId="13070" />
+			</effect>
+		</enchant2for>
 	</skill>
 	<skill id="517" levels="5" name="Flash Trap" enchantGroup1="2" enchantGroup2="2">
 		<!-- Confirmed CT2.5 and Updated to H5 -->
 		<table name="#magicLvl"> 55 60 64 68 72 </table>
-		<table name="#triggerSkillLvl"> 1 2 3 4 5 </table>
-		<table name="#ench1trigger"> 6 6 6 7 7 7 8 8 8 9 9 9 10 10 10 11 11 11 12 12 12 13 13 13 14 14 14 15 15 16 </table>
+		<table name="#npcId"> 13052 13053 13054 13055 13056 </table>
+		<table name="#ench1npcId"> 13235 13235 13235 13236 13236 13236 13237 13237 13237 13238 13238 13238 13239 13239 13239 13240 13240 13240 13241 13241 13241 13242 13242 13242 13243 13243 13243 13244 13244 13245 </table>
 		<table name="#ench2reuse"> 44000 42000 42000 41000 40000 39000 38000 37000 36000 35000 34000 33000 32000 31000 30000 29000 28000 27000 26000 25000 24000 22000 22000 21000 20000 19000 18000 17000 16000 15000 </table>
 		<table name="#enchMagicLvl"> 76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 </table>
-		<set name="affectRange" val="150" />
 		<set name="hitTime" val="1500" />
 		<set name="magicLvl" val="#magicLvl" />
 		<set name="mpConsume" val="40" />
 		<set name="mpInitialConsume" val="10" />
-		<set name="npcId" val="13037" />
 		<set name="operateType" val="A1" />
 		<set name="reuseDelay" val="45000" />
-		<set name="skillType" val="SUMMON_TRAP" />
 		<set name="staticReuse" val="true" />
-		<set name="summonTotalLifeTime" val="30000" />
 		<set name="targetType" val="SELF" />
-		<set name="triggerSkillId" val="5270" />
-		<set name="triggerSkillLvl" val="#triggerSkillLvl" />
 		<enchant1 name="magicLvl" val="#enchMagicLvl" />
-		<enchant1 name="triggerSkillLvl" val="#ench1trigger" />
 		<enchant2 name="magicLvl" val="#enchMagicLvl" />
 		<enchant2 name="reuseDelay" val="#ench2reuse" />
+		<cond msgId="113" addName="1">
+			<player npcIdRadius="#npcId,150,false" />
+		</cond>
+		<enchant1cond msgId="113" addName="1">
+			<player npcIdRadius="#ench1npcId,150,false" />
+		</enchant1cond>
+		<for>
+			<effect name="SummonTrap" noicon="1" val="0">
+				<param npcId="#npcId" />
+			</effect>
+		</for>
+		<enchant1for>
+			<effect name="SummonTrap" noicon="1" val="0">
+				<param npcId="#ench1npcId" />
+			</effect>
+		</enchant1for>
+		<enchant2for>
+			<effect name="SummonTrap" noicon="1" val="0">
+				<param npcId="13056" />
+			</effect>
+		</enchant2for>
 	</skill>
 	<skill id="518" levels="8" name="Binding Trap" enchantGroup1="2" enchantGroup2="2">
 		<!-- Confirmed CT2.5 and Updated to H5 -->
 		<table name="#magicLvl"> 40 46 52 58 62 66 70 74 </table>
-		<table name="#triggerSkillLvl"> 1 2 3 4 5 6 7 8 </table>
-		<table name="#ench1trigger"> 9 9 9 10 10 10 11 11 11 12 12 12 13 13 13 14 14 14 15 15 15 16 16 16 17 17 17 18 18 19 </table>
+		<table name="#npcId"> 13057 13058 13059 13060 13061 13062 13063 13064 </table>
+		<table name="#ench1npcId"> 13246 13246 13246 13247 13247 13247 13248 13248 13248 13249 13249 13249 13250 13250 13250 13251 13251 13251 13252 13252 13252 13253 13253 13253 13254 13254 13254 13255 13255 13256 </table>
 		<table name="#ench2reuse"> 44000 42000 42000 41000 40000 39000 38000 37000 36000 35000 34000 33000 32000 31000 30000 29000 28000 27000 26000 25000 24000 22000 22000 21000 20000 19000 18000 17000 16000 15000 </table>
 		<table name="#enchMagicLvl"> 76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 </table>
-		<set name="affectRange" val="150" />
 		<set name="hitTime" val="1500" />
 		<set name="magicLvl" val="#magicLvl" />
 		<set name="mpConsume" val="40" />
 		<set name="mpInitialConsume" val="10" />
-		<set name="npcId" val="13037" />
 		<set name="operateType" val="A1" />
 		<set name="reuseDelay" val="45000" />
-		<set name="skillType" val="SUMMON_TRAP" />
 		<set name="staticReuse" val="true" />
-		<set name="summonTotalLifeTime" val="30000" />
 		<set name="targetType" val="SELF" />
-		<set name="triggerSkillId" val="5271" />
-		<set name="triggerSkillLvl" val="#triggerSkillLvl" />
 		<enchant1 name="magicLvl" val="#enchMagicLvl" />
-		<enchant1 name="triggerSkillLvl" val="#ench1trigger" />
 		<enchant2 name="magicLvl" val="#enchMagicLvl" />
 		<enchant2 name="reuseDelay" val="#ench2reuse" />
+		<cond msgId="113" addName="1">
+			<player npcIdRadius="#npcId,150,false" />
+		</cond>
+		<enchant1cond msgId="113" addName="1">
+			<player npcIdRadius="#ench1npcId,150,false" />
+		</enchant1cond>
+		<for>
+			<effect name="SummonTrap" noicon="1" val="0">
+				<param npcId="#npcId" />
+			</effect>
+		</for>
+		<enchant1for>
+			<effect name="SummonTrap" noicon="1" val="0">
+				<param npcId="#ench1npcId" />
+			</effect>
+		</enchant1for>
+		<enchant2for>
+			<effect name="SummonTrap" noicon="1" val="0">
+				<param npcId="13056" />
+			</effect>
+		</enchant2for>
 	</skill>
 	<skill id="519" levels="1" name="Quiver of Bolts: A-Grade">
 		<!-- Confirmed CT2.5 -->
@@ -2132,19 +2202,18 @@
 		<!-- Confirmed CT2.5 -->
 		<table name="#magicLvl"> 60 63 66 69 </table>
 		<table name="#npcId"> 13040 13041 13042 13043 </table>
-		<table name="#triggerSkillLvl"> 4 5 6 7 </table>
 		<set name="hitTime" val="3000" />
 		<set name="magicLvl" val="#magicLvl" />
 		<set name="mpConsume" val="40" />
 		<set name="mpInitialConsume" val="10" />
-		<set name="npcId" val="#npcId" />
 		<set name="operateType" val="A1" />
 		<set name="reuseDelay" val="30000" />
-		<set name="skillType" val="SUMMON_TRAP" />
-		<set name="summonTotalLifeTime" val="30000" />
 		<set name="targetType" val="SELF" />
-		<set name="triggerSkillId" val="5267" />
-		<set name="triggerSkillLvl" val="#triggerSkillLvl" />
+		<for>
+			<effect name="SummonTrap" noicon="1" val="0">
+				<param npcId="#npcId" />
+			</effect>
+		</for>
 	</skill>
 	<skill id="575" levels="4" name="Steel Cutter">
 		<!-- Confirmed CT2.5 -->

+ 1 - 1
L2J_DataPack_BETA/dist/game/data/stats/skills/00600-00699.xml

@@ -336,7 +336,7 @@
 		<set name="skillType" val="REMOVE_TRAP" />
 		<set name="targetType" val="ONE" />
 		<cond msgId="109">
-			<target npcType="L2Trap" />
+			<target npcType="L2TrapInstance" />
 		</cond>
 	</skill>
 	<skill id="625" levels="1" name="Soul Gathering" enchantGroup1="1" enchantGroup2="1">

+ 11 - 9
L2J_DataPack_BETA/dist/game/data/stats/skills/00800-00899.xml

@@ -697,20 +697,22 @@
 		</for>
 	</skill>
 	<skill id="836" levels="3" name="Oblivion Trap">
-		<!-- CT2.2 retail confirmed -->
-		<table name="#triggerSkillLvl"> 1 2 3 </table>
-		<set name="affectRange" val="350" />
+		<!-- Confirmed CT2.5 -->
+		<table name="#magicLvl"> 64 68 72 </table>
+		<table name="#npcId"> 13125 13126 13127 </table>
 		<set name="hitTime" val="3000" />
-		<set name="mpConsume" val="50" />
-		<set name="npcId" val="13037" />
+		<set name="magicLvl" val="#magicLvl" />
+		<set name="mpConsume" val="40" />
+		<set name="mpInitialConsume" val="10" />
 		<set name="operateType" val="A1" />
 		<set name="reuseDelay" val="45000" />
-		<set name="skillType" val="SUMMON_TRAP" />
 		<set name="staticReuse" val="true" />
-		<set name="summonTotalLifeTime" val="30000" />
 		<set name="targetType" val="SELF" />
-		<set name="triggerSkillId" val="5679" />
-		<set name="triggerSkillLvl" val="#triggerSkillLvl" />
+		<for>
+			<effect name="SummonTrap" noicon="1" val="0">
+				<param npcId="#npcId" />
+			</effect>
+		</for>
 	</skill>
 	<skill id="837" levels="1" name="Painkiller">
 		<!-- CT2.2 retail confirmed -->

+ 2 - 2
L2J_DataPack_BETA/dist/game/data/stats/skills/02600-02699.xml

@@ -153,8 +153,8 @@
 				<player weight="80" />
 			</and>
 		</cond>
-		<cond msgId="113">
-			<player npcIdRadius="32529,300" />
+		<cond msgId="113" addName="1">
+			<player npcIdRadius="32529,300,true" />
 		</cond>
 		<for>
 			<effect name="Restoration" noicon="1" val="0">

+ 10 - 2
L2J_DataPack_BETA/dist/game/data/stats/skills/07000-07099.xml

@@ -959,11 +959,19 @@
 		<set name="targetType" val="NONE" />
 	</skill>
 	<skill id="7072" levels="1" name="Test - Basic Trap">
+		<!-- Confirmed CT2.5 -->
 		<set name="hitTime" val="3000" />
+		<set name="magicLvl" val="20" />
+		<set name="mpConsume" val="40" />
+		<set name="mpInitialConsume" val="10" />
 		<set name="operateType" val="A1" />
 		<set name="reuseDelay" val="30000" />
-		<set name="skillType" val="NOTDONE" />
-		<set name="targetType" val="NONE" />
+		<set name="targetType" val="SELF" />
+		<for>
+			<effect name="SummonTrap" noicon="1" val="0">
+				<param npcId="30048" />
+			</effect>
+		</for>
 	</skill>
 	<skill id="7073" levels="1" name="Test - Find Trap">
 		<set name="hitTime" val="1000" />