소스 검색

New Bluff effect. http://www.l2jserver.com/forum/viewtopic.php?f=69&t=11013
DP update required. Tnx to House for packets format.

_DS_ 16 년 전
부모
커밋
1e0fa02b05

+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/ai/AbstractAI.java

@@ -736,7 +736,7 @@ abstract class AbstractAI implements Ctrl
 			if (pos != null)
 			{
 				// Send a Server->Client packet StopRotation to the actor and all L2PcInstance in its _knownPlayers
-				StopRotation sr = new StopRotation(_actor, pos.heading);
+				StopRotation sr = new StopRotation(_actor.getObjectId(), pos.heading, 0);
 				_actor.sendPacket(sr);
 				_actor.broadcastPacket(sr);
 			}

+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/FinishRotating.java

@@ -41,7 +41,7 @@ public final class FinishRotating extends L2GameClientPacket
 	{
 		if (getClient().getActiveChar() == null)
 		    return;
-		StopRotation sr = new StopRotation(getClient().getActiveChar(), _degree);
+		StopRotation sr = new StopRotation(getClient().getActiveChar().getObjectId(), _degree, 0);
 		getClient().getActiveChar().broadcastPacket(sr);
 	}
 

+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/StartRotating.java

@@ -41,7 +41,7 @@ public final class StartRotating extends L2GameClientPacket
 	{
 		if (getClient().getActiveChar() == null)
 		    return;
-		StartRotation br = new StartRotation(getClient().getActiveChar(), _degree, _side);
+		StartRotation br = new StartRotation(getClient().getActiveChar().getObjectId(), _degree, _side, 0);
 		getClient().getActiveChar().broadcastPacket(br);
 	}
 

+ 5 - 7
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/StartRotation.java

@@ -14,20 +14,17 @@
  */
 package net.sf.l2j.gameserver.network.serverpackets;
 
-import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
-
 public final class StartRotation extends L2GameServerPacket
 {
 	private static final String _S__77_BEGINROTATION = "[S] 7a BeginRotation";
-	private int _charObjId;
-	private int _degree;
-	private int _side;
+	private int _charObjId, _degree, _side, _speed;
 
-	public StartRotation(L2PcInstance player, int degree, int side)
+	public StartRotation(int objectId, int degree, int side, int speed)
 	{
-		_charObjId = player.getObjectId();
+		_charObjId = objectId;
 		_degree = degree;
 		_side = side;
+		_speed = speed;
 	}
 
 	@Override
@@ -37,6 +34,7 @@ public final class StartRotation extends L2GameServerPacket
 		writeD(_charObjId);
 		writeD(_degree);
 		writeD(_side);
+		writeD(_speed);
 	}
 
 	/* (non-Javadoc)

+ 6 - 6
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/StopRotation.java

@@ -14,8 +14,6 @@
  */
 package net.sf.l2j.gameserver.network.serverpackets;
 
-import net.sf.l2j.gameserver.model.actor.L2Character;
-
 /**
  * This class ...
  *
@@ -24,13 +22,13 @@ import net.sf.l2j.gameserver.model.actor.L2Character;
 public class StopRotation extends L2GameServerPacket
 {
 	private static final String _S__78_STOPROTATION = "[S] 61 StopRotation";
-	private int _charObjId;
-	private int _degree;
+	private int _charObjId, _degree, _speed;
 
-	public StopRotation(L2Character player, int degree)
+	public StopRotation(int objectId, int degree, int speed)
 	{
-		_charObjId = player.getObjectId();
+		_charObjId = objectId;
 		_degree = degree;
+		_speed = speed;
 	}
 
 	@Override
@@ -39,6 +37,8 @@ public class StopRotation extends L2GameServerPacket
 		writeC(0x61);
 		writeD(_charObjId);
 		writeD(_degree);
+		writeD(_speed);
+		writeC(0); // ?
 	}
 
 	/* (non-Javadoc)

+ 6 - 31
L2_GameServer/java/net/sf/l2j/gameserver/skills/effects/EffectBluff.java

@@ -14,13 +14,12 @@
  */
 package net.sf.l2j.gameserver.skills.effects;
 
-import net.sf.l2j.gameserver.ai.CtrlIntention;
-import net.sf.l2j.gameserver.model.L2CharPosition;
 import net.sf.l2j.gameserver.model.L2Effect;
 import net.sf.l2j.gameserver.model.actor.L2Npc;
 import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance;
-import net.sf.l2j.gameserver.model.actor.instance.L2PetInstance;
 import net.sf.l2j.gameserver.model.actor.instance.L2SiegeSummonInstance;
+import net.sf.l2j.gameserver.network.serverpackets.StartRotation;
+import net.sf.l2j.gameserver.network.serverpackets.StopRotation;
 import net.sf.l2j.gameserver.skills.Env;
 import net.sf.l2j.gameserver.templates.effects.EffectTemplate;
 import net.sf.l2j.gameserver.templates.skills.L2EffectType;
@@ -55,7 +54,6 @@ public class EffectBluff extends L2Effect
 	@Override
 	public boolean onStart()
 	{
-		getEffected().startFear();
 		if (getEffected() instanceof L2NpcInstance)
 			return false;
 		
@@ -63,37 +61,14 @@ public class EffectBluff extends L2Effect
 			return false;
 		
 		if (getEffected() instanceof L2SiegeSummonInstance)
-		{
 			return false;
-		}
-		int posX = getEffected().getX();
-		int posY = getEffected().getY();
-		int posZ = getEffected().getZ();
-		int signx = -1;
-		int signy = -1;
-		if (getEffected().getX() > getEffector().getX())
-			signx = 1;
-		if (getEffected().getY() > getEffector().getY())
-			signy = 1;
-		if (!(getEffected() instanceof L2PetInstance))
-			getEffected().setRunning();
-		getEffected().getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new L2CharPosition(posX + (signx * 40), posY + (signy * 40), posZ, 0));
-		getEffected().sendMessage("You can feel Bluff's effect");
-		getEffected().setTarget(null);
+
+		getEffected().broadcastPacket(new StartRotation(getEffected().getObjectId(), getEffected().getHeading(), 1, 65535));
+		getEffected().broadcastPacket(new StopRotation(getEffected().getObjectId(), getEffector().getHeading(), 65535));
+		getEffected().setHeading(getEffector().getHeading());
 		return true;
 	}
 	
-	/**
-	 * 
-	 * @see net.sf.l2j.gameserver.model.L2Effect#onExit()
-	 */
-	@Override
-	public void onExit()
-	{
-		getEffected().stopFear(this);
-		
-	}
-	
 	/**
 	 * 
 	 * @see net.sf.l2j.gameserver.model.L2Effect#onActionTime()