Эх сурвалжийг харах

BETA: Skill Rework:
* Added new effect '''!TeleportToTarget''' and removed the old skillType.
* Added new condition '''!TargetMyPartyExceptMe''' for '''!CallPc''' effects.
* Fixed skill '''Spirit of the Lake'''.
Reviewed by: Zoey76

Adry_85 12 жил өмнө
parent
commit
0def1f56d4

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

@@ -153,6 +153,7 @@ public final class EffectMasterHandler
 		Sweeper.class,
 		TargetMe.class,
 		Teleport.class,
+		TeleportToTarget.class,
 		ThrowUp.class,
 		TransferDamage.class,
 		Transformation.class,

+ 0 - 2
L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java

@@ -214,7 +214,6 @@ import handlers.skillhandlers.Fishing;
 import handlers.skillhandlers.FishingSkill;
 import handlers.skillhandlers.GetPlayer;
 import handlers.skillhandlers.GiveReco;
-import handlers.skillhandlers.InstantJump;
 import handlers.skillhandlers.NornilsPower;
 import handlers.skillhandlers.RefuelAirShip;
 import handlers.skillhandlers.Resurrect;
@@ -512,7 +511,6 @@ public class MasterHandler
 			FishingSkill.class,
 			GetPlayer.class,
 			GiveReco.class,
-			InstantJump.class,
 			NornilsPower.class,
 			RefuelAirShip.class,
 			Resurrect.class,

+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Confusion.java

@@ -52,7 +52,7 @@ public class Confusion extends L2Effect
 	@Override
 	public L2EffectType getEffectType()
 	{
-		return L2EffectType.CONFUSION;
+		return L2EffectType.NONE;
 	}
 	
 	@Override

+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Disarm.java

@@ -44,7 +44,7 @@ public class Disarm extends L2Effect
 	@Override
 	public L2EffectType getEffectType()
 	{
-		return L2EffectType.DISARM;
+		return L2EffectType.NONE;
 	}
 	
 	@Override

+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/RemoveTarget.java

@@ -38,7 +38,7 @@ public class RemoveTarget extends L2Effect
 	@Override
 	public L2EffectType getEffectType()
 	{
-		return L2EffectType.REMOVE_TARGET;
+		return L2EffectType.NONE;
 	}
 	
 	@Override

+ 35 - 44
L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/InstantJump.java → L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/TeleportToTarget.java

@@ -16,63 +16,76 @@
  * 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.skillhandlers;
+package handlers.effecthandlers;
 
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.GeoData;
 import com.l2jserver.gameserver.ai.CtrlIntention;
-import com.l2jserver.gameserver.handler.ISkillHandler;
-import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.skills.L2Skill;
-import com.l2jserver.gameserver.model.skills.L2SkillType;
-import com.l2jserver.gameserver.model.stats.Formulas;
+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.network.serverpackets.FlyToLocation;
 import com.l2jserver.gameserver.network.serverpackets.FlyToLocation.FlyType;
 import com.l2jserver.gameserver.network.serverpackets.ValidateLocation;
 import com.l2jserver.gameserver.util.Util;
 
 /**
- * Some parts taken from EffectWarp, which cannot be used for this case.
- * @author Didldak
+ * Teleport To Target effect implementation.
+ * @author Didldak, Adry_85
  */
-public class InstantJump implements ISkillHandler
+public class TeleportToTarget extends L2Effect
 {
-	private static final L2SkillType[] SKILL_IDS =
+	public TeleportToTarget(Env env, EffectTemplate template)
 	{
-		L2SkillType.INSTANT_JUMP
-	};
+		super(env, template);
+	}
 	
 	@Override
-	public void useSkill(L2Character activeChar, L2Skill skill, L2Object[] targets)
+	public boolean calcSuccess()
 	{
-		L2Character target = (L2Character) targets[0];
-		
-		if (Formulas.calcPhysicalSkillEvasion(activeChar, target, skill))
+		return true;
+	}
+	
+	@Override
+	public L2EffectType getEffectType()
+	{
+		return L2EffectType.TELEPORT_TO_TARGET;
+	}
+	
+	@Override
+	public boolean isInstant()
+	{
+		return true;
+	}
+	
+	@Override
+	public boolean onStart()
+	{
+		L2Character activeChar = getEffector();
+		L2Character target = getEffected();
+		if (getEffected() == null)
 		{
-			return;
+			return false;
 		}
 		
 		int x = 0, y = 0, z = 0;
-		
 		int px = target.getX();
 		int py = target.getY();
 		double ph = Util.convertHeadingToDegree(target.getHeading());
 		
 		ph += 180;
-		
 		if (ph > 360)
 		{
 			ph -= 360;
 		}
 		
 		ph = (Math.PI * ph) / 180;
-		
 		x = (int) (px + (25 * Math.cos(ph)));
 		y = (int) (py + (25 * Math.sin(ph)));
 		z = target.getZ();
-		
 		Location loc = new Location(x, y, z);
 		
 		if (Config.GEODATA > 0)
@@ -84,30 +97,8 @@ public class InstantJump implements ISkillHandler
 		activeChar.broadcastPacket(new FlyToLocation(activeChar, loc.getX(), loc.getY(), loc.getZ(), FlyType.DUMMY));
 		activeChar.abortAttack();
 		activeChar.abortCast();
-		
 		activeChar.setXYZ(loc.getX(), loc.getY(), loc.getZ());
 		activeChar.broadcastPacket(new ValidateLocation(activeChar));
-		
-		if (skill.hasEffects())
-		{
-			if (Formulas.calcBuffDebuffReflection(target, skill))
-			{
-				activeChar.stopSkillEffects(false, skill.getId());
-				skill.getEffects(target, activeChar);
-			}
-			else
-			{
-				// activate attacked effects, if any
-				target.stopSkillEffects(false, skill.getId());
-				skill.getEffects(activeChar, target);
-			}
-		}
-		
-	}
-	
-	@Override
-	public L2SkillType[] getSkillIds()
-	{
-		return SKILL_IDS;
+		return true;
 	}
 }

+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ThrowUp.java

@@ -51,7 +51,7 @@ public class ThrowUp extends L2Effect
 	@Override
 	public L2EffectType getEffectType()
 	{
-		return L2EffectType.THROW_UP;
+		return L2EffectType.NONE;
 	}
 	
 	@Override

+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Warp.java

@@ -58,7 +58,7 @@ public class Warp extends L2Effect
 	@Override
 	public L2EffectType getEffectType()
 	{
-		return L2EffectType.WARP;
+		return L2EffectType.NONE;
 	}
 	
 	@Override

+ 2 - 1
L2J_DataPack_BETA/dist/game/data/stats/skills/00800-00899.xml

@@ -383,6 +383,7 @@
 		</for>
 	</skill>
 	<skill id="821" levels="1" name="Shadow Step">
+		<!-- Confirmed CT2.5 -->
 		<set name="castRange" val="600" />
 		<set name="coolTime" val="200" />
 		<set name="effectRange" val="1100" />
@@ -393,9 +394,9 @@
 		<set name="offensive" val="true" />
 		<set name="operateType" val="A1" />
 		<set name="reuseDelay" val="75000" />
-		<set name="skillType" val="INSTANT_JUMP" />
 		<set name="targetType" val="ONE" />
 		<for>
+			<effect name="TeleportToTarget" noicon="1" val="0" />
 			<effect name="RemoveTarget" effectPower="100" noicon="1" val="0" />
 		</for>
 	</skill>

+ 10 - 4
L2J_DataPack_BETA/dist/game/data/stats/skills/01400-01499.xml

@@ -162,9 +162,12 @@
 		<set name="mpInitialConsume" val="144" />
 		<set name="operateType" val="A1" />
 		<set name="reuseDelay" val="150000" />
-		<set name="targetType" val="PARTY_MEMBER" />
+		<set name="targetType" val="ONE" />
 		<cond>
-			<player callPc="true" />
+			<and>
+				<target myPartyExceptMe="true" />
+				<player callPc="true" />
+			</and>
 		</cond>
 		<cond msgId="113" addName="1">
 			<not>
@@ -192,9 +195,12 @@
 		<set name="mpInitialConsume" val="256" />
 		<set name="operateType" val="A1" />
 		<set name="reuseDelay" val="900000" />
-		<set name="targetType" val="PARTY_MEMBER" />
+		<set name="targetType" val="ONE" />
 		<cond>
-			<player callPc="true" />
+			<and>
+				<target myPartyExceptMe="true" />
+				<player callPc="true" />
+			</and>
 		</cond>
 		<cond msgId="113" addName="1">
 			<not>

+ 3 - 4
L2J_DataPack_BETA/dist/game/data/stats/skills/02300-02399.xml

@@ -1130,17 +1130,16 @@
 		</cond>
 	</skill>
 	<skill id="2368" levels="1" name="Spirit of the Lake">
+		<!-- Confirmed CT2.5 -->
 		<set name="castRange" val="600" />
-		<set name="effectRange" val="900" />
+		<set name="effectRange" val="1100" />
 		<set name="hitTime" val="8000" />
 		<set name="isMagic" val="1" /> <!-- Magic Skill -->
 		<set name="itemConsumeCount" val="1" />
 		<set name="magicLvl" val="1" />
 		<set name="offensive" val="true" />
 		<set name="operateType" val="A1" />
-		<set name="power" val="10000" />
-		<set name="reuseDelay" val="1000" />
-		<set name="skillType" val="AGGREDUCE" />
+		<set name="reuseDelay" val="1500" />
 		<set name="targetType" val="ONE" />
 		<cond msgId="113" addName="1">
 			<target npcId="18482" />

+ 1 - 1
L2J_DataPack_BETA/dist/game/data/stats/skills/04600-04699.xml

@@ -1681,9 +1681,9 @@
 		<set name="magicLvl" val="40" />
 		<set name="offensive" val="true" />
 		<set name="operateType" val="A1" />
-		<set name="skillType" val="INSTANT_JUMP" />
 		<set name="targetType" val="ONE" />
 		<for>
+			<effect name="TeleportToTarget" noicon="1" val="0" />
 			<effect name="TargetMe" val="0" />
 		</for>
 	</skill>