Please don't flame or ill remove
Description: Making crystal bow have a drawback and projectiles
Difficulty: 200
Assumed Knowledge: Copy and pasting
Tested Server: Figmentscape
Files Modified: client.java
This is my first tutorial so please comment
Credits at bottom
Ok now add or replace your
Code:
public void ProjectileRang(int offsetX, int offsetY, int attacknpc, int isthisneeded) {
With
Code:
public void ProjectileRang(int offsetX, int offsetY, int attacknpc, int isthisneeded) {
if (playerEquipment[playerArrows] == 882){
createProjectile(absY, absX, offsetX, offsetY, 50, 90, 10, 39, 31, attacknpc+isthisneeded);
}
else if (playerEquipment[playerArrows] == 884) {
createProjectile(absY, absX, offsetX, offsetY, 50, 90, 11, 39, 31, attacknpc+isthisneeded);
}
else if (playerEquipment[playerArrows] == 886) {
createProjectile(absY, absX, offsetX, offsetY, 50, 90, 12, 39, 31, attacknpc+isthisneeded);
}
else if (playerEquipment[playerArrows] == 888) {
createProjectile(absY, absX, offsetX, offsetY, 50, 90, 13, 39, 31, attacknpc+isthisneeded);
}
else if (playerEquipment[playerArrows] == 890) {
createProjectile(absY, absX, offsetX, offsetY, 50, 90, 14, 39, 31, attacknpc+isthisneeded);
}
else if (playerEquipment[playerArrows] == 892) {
createProjectile(absY, absX, offsetX, offsetY, 50, 90, 15, 39, 31, attacknpc+isthisneeded);
}
else if (playerEquipment[playerWeapon] == 4214) {
createProjectile(absY, absX, offsetX, offsetY, 50, 50, 249, 39, 31, attacknpc+isthisneeded);
}
}
Now add this if you don't have it
Code:
public void gfx110(int gfx) {
mask100var1 = gfx;
mask100var2 = 6553600;
mask100update = true;
updateRequired = true;
}
Now search for
Code:
if(playerEquipment[playerWeapon] == 4214)
And it might look like this
Code:
if(playerEquipment[playerWeapon] == 4214)
{
PkingDelay = 7;
wepdelay = 7;
UseBow = true;
Now replace it with this
Code:
if(playerEquipment[playerWeapon] == 4214)
{
PkingDelay = 10;
wepdelay = 10;
UseBow = true;
gfx110(250);
createProjectile(absY, absX, offsetX, offsetY, 50, 90, 249, 39, 31, 0 - AttackingOn);
}
Now replace your
Code:
public void createProjectile(int casterY, int casterX, int offsetY, int offsetX, int angle, int speed, int gfxMoving, int startHeight, int endHeight, int lockon)
With
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 c : server.playerHandler.players)
{
if (c != null)
{
client p = (client) c;
if (p.playerName != null)
{
outStream.createFrame(85);
outStream.writeByteC((casterY-(mapRegionY*8))-2);
outStream.writeByteC((casterX-(mapRegionX*8))-3);
outStream.createFrame(117);
outStream.writeByte(angle);
outStream.writeByte(offsetY);
outStream.writeByte(offsetX);
outStream.writeWord(lockon);
outStream.writeWord(gfxMoving);
outStream.writeByte(startHeight);
outStream.writeByte(endHeight);
outStream.writeWord(32);
outStream.writeWord(speed);
outStream.writeByte(10);
outStream.writeByte(65);
}
}
}
}
Now sometimes the projectile will not come up. i don't know how to fix this since im a noob coder 
Credits
30 % h3y 1ts m3(for drawback)
30 % chani(for the createprojectile void)
30 % BraydenF (for making projectiles shoot more realistic)
10 % to me