Ok So First Open Up Client.java And Replace Your CreateProjectile Down To Static Animation Void (Or Add If You Don't Have) With This
Code:
public void createProjectile(int casterY, int casterX, int offsetY, int offsetX, int angle, int speed, int gfxMoving, int startHeight, int endHeight, int lockon)
{
for (Player p : server.playerHandler.players)
{
if(p != null)
{
client person = (client)p;
if((person.playerName != null || person.playerName != "null"))
{
if(person.distanceToPoint(casterX, casterY) <= 10)
{
person.createProjectile3(casterY, casterX, offsetY, offsetX, angle, speed, gfxMoving, startHeight, endHeight, lockon);
}
}
}
}
}
public void createProjectile3(int casterY, int casterX, int offsetY, int offsetX, int angle, int speed, int gfxMoving, int startHeight, int endHeight, int lockon) {
outStream.createFrame(85);
outStream.writeByteC((casterY - (mapRegionY * 8)) - 2);
outStream.writeByteC((casterX - (mapRegionX * 8)) - 3);
outStream.createFrame(117);
outStream.writeByte(angle); //Starting place of the projectile
outStream.writeByte(offsetY); //Distance between caster and enemy Y
outStream.writeByte(offsetX); //Distance between caster and enemy X
outStream.writeWord(lockon); //The NPC the missle is locked on to
outStream.writeWord(gfxMoving); //The moving graphic ID
outStream.writeByte(startHeight); //The starting height
outStream.writeByte(endHeight); //Destination height
outStream.writeWord(51); //Time the missle is created
outStream.writeWord(speed); //Speed minus the distance making it set
outStream.writeByte(16); //Initial slope
outStream.writeByte(64); //Initial distance from source (in the direction of the missile) //64
}
public void staticAnimation(int graphicID, int playerX, int playerY, int heightLevel)
{
for (Player p : server.playerHandler.players)
{
if(p != null)
{
client person = (client)p;
if((person.playerName != null || person.playerName != "null"))
{
if(person.distanceToPoint(playerX, playerY) <= 10)
{
person.staticAnimation2(graphicID, playerX, playerY, heightLevel);
}
}
}
}
}
public void staticAnimation2(int graphicID, int playerX, int playerY, int heightLevel) { /*Used from phates old stuff*/
outStream.createFrame(85);
outStream.writeByteC(playerY - (mapRegionY * 8));
outStream.writeByteC(playerX - (mapRegionX * 8));
outStream.createFrame(4);
outStream.writeByte(0);
outStream.writeWord(graphicID); // Graphic ID
outStream.writeByte(heightLevel); // Height above gorund
outStream.writeWord(0); // Pause before casting
}
Now Search For
Code:
sendMessage("There's no arrows left in your quiver");
And Under The DeleteArrows() In All Of Them Add
Code:
createProjectile(absY, absX, offsetX, offsetY, 50, 80, arrowgfx(), 43, 31, 0 - AttackingOn);
Now Add This Int
Code:
public int arrowgfx()
{
if(playerEquipment[playerWeapon] != 4214)
{
return 15;
}
if(playerEquipment[playerWeapon] != 6522)
{
return 442;
}
else
{
return 471;
}
Compile & Run 
}
[