Index: D:/olympus/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/SoulShots.java
===================================================================
--- D:/olympus/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/SoulShots.java (revision 1927)
+++ D:/olympus/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/SoulShots.java (working copy)
@@ -98,7 +98,7 @@
// Send message to client
activeChar.sendPacket(new SystemMessage(SystemMessage.ENABLED_SOULSHOT));
- Broadcast.toSelfAndKnownPlayers(activeChar, new MagicSkillUser(activeChar, activeChar, _skillIds[weaponGrade], 1, 0, 0));
+ Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUser(activeChar, activeChar, _skillIds[weaponGrade], 1, 0, 0),900);
}
public int[] getItemIds()
Index: D:/olympus/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/SpiritShot.java
===================================================================
--- D:/olympus/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/SpiritShot.java (revision 1927)
+++ D:/olympus/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/SpiritShot.java (working copy)
@@ -98,7 +98,7 @@
// Send message to client
activeChar.sendPacket(new SystemMessage(SystemMessage.ENABLED_SPIRITSHOT));
- Broadcast.toSelfAndKnownPlayers(activeChar, new MagicSkillUser(activeChar, activeChar, _skillIds[weaponGrade], 1, 0, 0));
+ Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUser(activeChar, activeChar, _skillIds[weaponGrade], 1, 0, 0),900);
}
public int[] getItemIds()
Index: D:/olympus/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/BlessedSpiritShot.java
===================================================================
--- D:/olympus/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/BlessedSpiritShot.java (revision 1927)
+++ D:/olympus/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/BlessedSpiritShot.java (working copy)
@@ -98,7 +98,7 @@
// Send message to client
activeChar.sendPacket(new SystemMessage(SystemMessage.ENABLED_SPIRITSHOT));
- Broadcast.toSelfAndKnownPlayers(activeChar, new MagicSkillUser(activeChar, activeChar, _skillIds[weaponGrade], 1, 0, 0));
+ Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUser(activeChar, activeChar, _skillIds[weaponGrade], 1, 0, 0),900);
}
public int[] getItemIds()
Index: D:/olympus/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/usercommandhandlers/Escape.java
===================================================================
--- D:/olympus/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/usercommandhandlers/Escape.java (revision 1927)
+++ D:/olympus/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/handler/usercommandhandlers/Escape.java (working copy)
@@ -57,7 +57,7 @@
activeChar.disableAllSkills();
MagicSkillUser msk = new MagicSkillUser(activeChar, 1050, 1, unstuckTimer, 0);
- Broadcast.toSelfAndKnownPlayers(activeChar, msk);
+ Broadcast.toSelfAndKnownPlayersInRadius(activeChar, msk,900);
SetupGauge sg = new SetupGauge(0, unstuckTimer);
activeChar.sendPacket(sg);
//End SoE Animation section
Index: D:/olympus/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/util/Broadcast.java
===================================================================
--- D:/olympus/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/util/Broadcast.java (revision 1927)
+++ D:/olympus/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/util/Broadcast.java (working copy)
@@ -113,7 +113,7 @@
if (player == null)
continue;
- if (character.getDistance(player.getX(), player.getY()) <= radius)
+ if (character.getDistance(player.getX(), player.getY(), player.getZ()) <= radius)
player.sendPacket(mov);
}
}
@@ -134,6 +134,24 @@
toKnownPlayers(character, mov);
}
+ public static void toSelfAndKnownPlayersInRadius(L2Character character, ServerBasePacket mov, int radius)
+ {
+ if (radius < 0)
+ radius = 500;
+
+ if (character instanceof L2PcInstance)
+ character.sendPacket(mov);
+
+ for (L2PcInstance player : character.getKnownList().getKnownPlayers())
+ {
+ if (player == null)
+ continue;
+
+ if (character.getDistance(player.getX(), player.getY()) <= radius)
+ player.sendPacket(mov);
+ }
+ }
+
/**
* Send a packet to all L2PcInstance in the _KnownPlayers of the L2Character and to the specified characters within
* the given radius.
Index: D:/olympus/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- D:/olympus/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 1927)
+++ D:/olympus/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy)
@@ -4029,7 +4029,7 @@
MagicSkillCanceld msc = new MagicSkillCanceld(getObjectId());
// Broadcast the packet to self and known players.
- Broadcast.toSelfAndKnownPlayers(this, msc);
+ Broadcast.toSelfAndKnownPlayersInRadius(this, msc,900);
}
/**
Index: D:/olympus/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/model/L2Character.java
===================================================================
--- D:/olympus/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/model/L2Character.java (revision 1927)
+++ D:/olympus/trunk/L2_Gameserver/java/net/sf/l2j/gameserver/model/L2Character.java (working copy)
@@ -3379,6 +3379,16 @@
return distance;
}
+ public final double getDistance(int x, int y, int z)
+ {
+ long dx = x-getX();
+ long dy = y-getY();
+ long dz = z-getZ();
+ double distance = Math.sqrt(dx*dx + dy*dy + dz*dz);
+
+ return distance;
+ }
+
// /**
// * event that is called when the destination coordinates are reached
// */