This happens when u attack anything.
Here is CreateProjectile void:
Code:
public void createProjectile(int casterY, int casterX, int offsetY,
int offsetX, int angle, int speed, int gfxMoving, int startHeight,
int endHeight, int MageAttackIndex) {
try {
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(MageAttackIndex); // 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
} catch (Exception e) {
server.logError(e.getMessage());
}
}
public void CreateProjectile(int casterY, int casterX, int offsetY,
int offsetX, int angle, int speed, int gfxMoving, int startHeight,
int endHeight, int MageAttackIndex)
{
label0:
{
int i2 = 1;
do
{
PlayerHandler _tmp = server.playerHandler;
if(i2 >= 650)
break label0;
PlayerHandler _tmp1 = server.playerHandler;
if(PlayerHandler.players[i2] != null)
{
PlayerHandler _tmp2 = server.playerHandler;
client client1 = (client)PlayerHandler.players[i2];
if(client1.WithinDistance(absX, absY, client1.absX, client1.absY, 60) && client1.heightLevel == heightLevel)
{
PlayerHandler _tmp3 = server.playerHandler;
if(PlayerHandler.players[i2] != null)
{
PlayerHandler _tmp4 = server.playerHandler;
if(!PlayerHandler.players[i2].disconnected)
{
client1.outStream.createFrame(85);
client1.outStream.writeByteC(casterY - client1.mapRegionY * 8 - 2);
client1.outStream.writeByteC(casterX - client1.mapRegionX * 8 - 3);
client1.outStream.createFrame(117);
client1.outStream.writeByte(angle);
client1.outStream.writeByte(offsetY);
client1.outStream.writeByte(offsetX);
client1.outStream.writeWord(MageAttackIndex);
client1.outStream.writeWord(gfxMoving);
client1.outStream.writeByte(startHeight);
client1.outStream.writeByte(endHeight);
client1.outStream.writeWord(51);
client1.outStream.writeWord(speed);
client1.outStream.writeByte(16);
client1.outStream.writeByte(64);
}
}
}
}
i2++;
} while(true);
}
}
public void CreateProjectile2(int i, int j, int k, int l, int i1, int j1, int k1,
int l1)
{
label0:
{
int i2 = 1;
do
{
PlayerHandler _tmp = server.playerHandler;
if(i2 >= 275)
break label0;
PlayerHandler _tmp1 = server.playerHandler;
if(PlayerHandler.players[i2] != null)
{
PlayerHandler _tmp2 = server.playerHandler;
client client1 = (client)PlayerHandler.players[i2];
if(client1.WithinDistance(absX, absY, client1.absX, client1.absY, 60) && client1.heightLevel == heightLevel)
{
PlayerHandler _tmp3 = server.playerHandler;
if(PlayerHandler.players[i2] != null)
{
PlayerHandler _tmp4 = server.playerHandler;
if(!PlayerHandler.players[i2].disconnected)
{
client1.outStream.createFrame(85);
client1.outStream.writeByteC(i - client1.mapRegionY * 8 - 2);
client1.outStream.writeByteC(j - client1.mapRegionX * 8 - 3);
client1.outStream.createFrame(117);
client1.outStream.writeByte(50);
client1.outStream.writeByte(k);
client1.outStream.writeByte(l);
client1.outStream.writeWord(l1);
client1.outStream.writeWord(i1);
client1.outStream.writeByte(j1);
client1.outStream.writeByte(31);
client1.outStream.writeWord(51);
client1.outStream.writeWord(k1);
client1.outStream.writeByte(16);
client1.outStream.writeByte(64);
}
}
}
}
i2++;
} while(true);
}
}
Here is my rangeGFX void for NPC and players:
Code:
public void rangeGFX(int speed, int arrow){
int EnemyX = 0;
int EnemyY = 0;
client AttackingOn2 = (client) server.playerHandler.players[AttackingOn];
if(AttackingOn2 != null){
EnemyX = PlayerHandler.players[AttackingOn].absX;
EnemyY = PlayerHandler.players[AttackingOn].absY;
}
int offsetX = (absY - EnemyY) * -1;
int offsetY = (absX - EnemyX) * -1;
CreateProjectile(absY, absX, offsetY, offsetX, 50, speed, arrow, 43, 31, -AttackingOn-1);
}
public void rangeGFXNPC(int speed, int arrow){
int EnemyX = server.npcHandler.npcs[attacknpc].absX;
int EnemyY = server.npcHandler.npcs[attacknpc].absY;
int offsetX = (absY - EnemyY) * -1;
int offsetY = (absX - EnemyX) * -1;