what we are going to do: make ring of RECOIL work 
difficulty: meh, i done it so you can 
procidure:
open client.JAVA and search:
Code:
if(nonWild() || AttackingOn2.nonWild()) {
it will look like this:
Code:
if(nonWild() || AttackingOn2.nonWild()) {
sendMessage("This player is in a safe zone and cannot be attacked");
} else if(wildyIsOff() || AttackingOn2.wildyIsOff()) {
sendMessage("Pking is currently turned off");
} else if(!wildyIsOff() && !nonWild() && !AttackingOn2.nonWild() && !AttackingOn2.wildyIsOff()){
if (GoodDistance(EnemyX, EnemyY, absX, absY, 1) == true || playerEquipment[playerWeapon] == 859 || playerEquipment[playerWeapon] == 861 || playerEquipment[playerWeapon] == 4214 || playerEquipment[playerWeapon] == 839 || playerEquipment[playerWeapon] == 841 || playerEquipment[playerWeapon] == 843 || playerEquipment[playerWeapon] == 845 || playerEquipment[playerWeapon] == 847 || playerEquipment[playerWeapon] == 849 || playerEquipment[playerWeapon] == 851 || playerEquipment[playerWeapon] == 853 || playerEquipment[playerWeapon] == 855 || playerEquipment[playerWeapon] == 857) {
if (LoopAttDelay <= 1) {
if (!wildyIsOff() && !AttackingOn2.wildyIsOff() && !nonWild() && !AttackingOn2.nonWild()) {
if (RingOfLife == true && EnemyHP <= (int)((double)((double)getLevelForXP(EnemyHPExp) / 10.0) + 0.5)) {
PlayerHandler.players[AttackingOn].SafeMyLife = true;
} else {
if (PlayerHandler.players[AttackingOn].IsDead == true) {
ResetAttack();
} else if(!UseBow){
//actionAmount++;
//setAnimation(playerSEA);
PlayerHandler.players[AttackingOn].hitUpdateRequired = true;
PlayerHandler.players[AttackingOn].updateRequired = true;
PlayerHandler.players[AttackingOn].appearanceUpdateRequired = true;
if(playerEquipment[playerWeapon] == 5698) {
AttackingOn2.PoisonPlayer();
hitDiff = misc.random(playerMaxHit);
PlayerHandler.players[AttackingOn].hitUpdateRequired = true;
PlayerHandler.players[AttackingOn].updateRequired = true;
PlayerHandler.players[AttackingOn].appearanceUpdateRequired = true;
}
AttackingOn2.KillerId = playerId;
AttackingOn2.inCombat();
setAnimation(GetWepAnim());
if(playerEquipment[playerWeapon] == 4726)
{
stillgfx(398, absY, absX);
}
AttackingOn2.setAnimation(GetBlockAnim(AttackingOn2.playerEquipment[playerWeapon]));
LoopAttDelay = PkingDelay+10;
if ((EnemyHP - hitDiff) < 0) {
hitDiff = EnemyHP;
}
addSkillXP(hitDiff, 3);
PlayerHandler.players[AttackingOn].hitDiff = hitDiff;
//PkingDelay = wepdelay;
}
else if(UseBow){
if(!HasArrows){
sendMessage("There's no arrows left in your quiver");
ResetAttack();
}
else if(HasArrows){
//actionAmount++;
//setAnimation(playerSEA);
DeleteArrow();
if(playerEquipment[playerWeapon] != 4214 && playerEquipmentN[playerArrows] != 0)
ItemHandler.addItem(playerEquipment[playerArrows], EnemyX, EnemyY, 1, playerId, false);
setAnimation(426);
PlayerHandler.players[AttackingOn].hitUpdateRequired = true;
PlayerHandler.players[AttackingOn].updateRequired = true;
PlayerHandler.players[AttackingOn].appearanceUpdateRequired = true;
AttackingOn2.KillerId = playerId+10;
AttackingOn2.inCombat();
inCombat();
teleportToX = absX;
teleportToY = absY;
AttackingOn2.setAnimation(GetBlockAnim(AttackingOn2.playerEquipment[playerWeapon]));
LoopAttDelay = PkingDelay;
if ((EnemyHP - hitDiff) < 0) {
hitDiff = EnemyHP;
}
addSkillXP(hitDiff, 3);
PlayerHandler.players[AttackingOn].hitDiff = hitDiff;
//PkingDelay = wepdelay;
}
}
}
return true;
}
} else {
sendMessage("This player is in a safe zone and cannot be attacked");
ResetAttack();
}
}
}}
return false;
}
replace it with this xD:
Code:
if(nonWild() || AttackingOn2.nonWild()) {
sendMessage("This player is in a safe zone and cannot be attacked");
} else if(wildyIsOff() || AttackingOn2.wildyIsOff()) {
sendMessage("Pking is currently turned off");
} else if(!wildyIsOff() && !nonWild() && !AttackingOn2.nonWild() && !AttackingOn2.wildyIsOff()){
if (GoodDistance(EnemyX, EnemyY, absX, absY, 1) == true || playerEquipment[playerWeapon] == 859 || playerEquipment[playerWeapon] == 861 || playerEquipment[playerWeapon] == 4214 || playerEquipment[playerWeapon] == 839 || playerEquipment[playerWeapon] == 841 || playerEquipment[playerWeapon] == 843 || playerEquipment[playerWeapon] == 845 || playerEquipment[playerWeapon] == 847 || playerEquipment[playerWeapon] == 849 || playerEquipment[playerWeapon] == 851 || playerEquipment[playerWeapon] == 853 || playerEquipment[playerWeapon] == 855 || playerEquipment[playerWeapon] == 857) {
if (LoopAttDelay <= 1) {
if (!wildyIsOff() && !AttackingOn2.wildyIsOff() && !nonWild() && !AttackingOn2.nonWild()) {
if (RingOfLife == true && EnemyHP <= (int)((double)((double)getLevelForXP(EnemyHPExp) / 10.0) + 0.5)) {
PlayerHandler.players[AttackingOn].SafeMyLife = true;
} else {
if (PlayerHandler.players[AttackingOn].IsDead == true) {
ResetAttack();
} else if(!UseBow){
if (PlayerHandler.players[AttackingOn].playerEquipment[playerRing] == 2550) {
//actionAmount++;
//setAnimation(playerSEA);
PlayerHandler.players[AttackingOn].hitUpdateRequired = true;
PlayerHandler.players[AttackingOn].updateRequired = true;
PlayerHandler.players[AttackingOn].appearanceUpdateRequired = true;
NewHP -= 5;
updateRequired = true;
hitUpdateRequired = true;
if(playerEquipment[playerWeapon] == 5698) {
AttackingOn2.PoisonPlayer();
hitDiff = misc.random(playerMaxHit);
PlayerHandler.players[AttackingOn].hitUpdateRequired = true;
PlayerHandler.players[AttackingOn].updateRequired = true;
PlayerHandler.players[AttackingOn].appearanceUpdateRequired = true;
}
AttackingOn2.KillerId = playerId;
AttackingOn2.inCombat();
setAnimation(GetWepAnim());
if(playerEquipment[playerWeapon] == 4726)
{
stillgfx(398, absY, absX);
}
AttackingOn2.setAnimation(GetBlockAnim(AttackingOn2.playerEquipment[playerWeapon]));
LoopAttDelay = PkingDelay+10;
if ((EnemyHP - hitDiff) < 0) {
hitDiff = EnemyHP;
}
addSkillXP(hitDiff, 3);
PlayerHandler.players[AttackingOn].hitDiff = hitDiff;
//PkingDelay = wepdelay;
}
else if(PlayerHandler.players[AttackingOn].playerEquipment[playerRing] != 2550) {
//actionAmount++;
//setAnimation(playerSEA);
PlayerHandler.players[AttackingOn].hitUpdateRequired = true;
PlayerHandler.players[AttackingOn].updateRequired = true;
PlayerHandler.players[AttackingOn].appearanceUpdateRequired = true;
NewHP -= 5;
if(playerEquipment[playerWeapon] == 5698) {
AttackingOn2.PoisonPlayer();
hitDiff = misc.random(playerMaxHit);
PlayerHandler.players[AttackingOn].hitUpdateRequired = true;
PlayerHandler.players[AttackingOn].updateRequired = true;
PlayerHandler.players[AttackingOn].appearanceUpdateRequired = true;
}
AttackingOn2.KillerId = playerId;
AttackingOn2.inCombat();
setAnimation(GetWepAnim());
if(playerEquipment[playerWeapon] == 4726)
{
stillgfx(398, absY, absX);
}
AttackingOn2.setAnimation(GetBlockAnim(AttackingOn2.playerEquipment[playerWeapon]));
LoopAttDelay = PkingDelay+10;
if ((EnemyHP - hitDiff) < 0) {
hitDiff = EnemyHP;
}
addSkillXP(hitDiff, 3);
PlayerHandler.players[AttackingOn].hitDiff = hitDiff;
//PkingDelay = wepdelay;
}
else if(UseBow){
if(!HasArrows){
sendMessage("There's no arrows left in your quiver");
ResetAttack();
}
else if(HasArrows){
//actionAmount++;
//setAnimation(playerSEA);
DeleteArrow();
if(playerEquipment[playerWeapon] != 4214 && playerEquipmentN[playerArrows] != 0)
ItemHandler.addItem(playerEquipment[playerArrows], EnemyX, EnemyY, 1, playerId, false);
setAnimation(426);
PlayerHandler.players[AttackingOn].hitUpdateRequired = true;
PlayerHandler.players[AttackingOn].updateRequired = true;
PlayerHandler.players[AttackingOn].appearanceUpdateRequired = true;
AttackingOn2.KillerId = playerId+10;
AttackingOn2.inCombat();
inCombat();
teleportToX = absX;
teleportToY = absY;
AttackingOn2.setAnimation(GetBlockAnim(AttackingOn2.playerEquipment[playerWeapon]));
LoopAttDelay = PkingDelay;
if ((EnemyHP - hitDiff) < 0) {
hitDiff = EnemyHP;
}
addSkillXP(hitDiff, 3);
PlayerHandler.players[AttackingOn].hitDiff = hitDiff;
//PkingDelay = wepdelay;
}
}
}
return true;
}
} else {
sendMessage("This player is in a safe zone and cannot be attacked");
ResetAttack();
}
}
}}
return false;
}
go in game spawn item '2550' and put it on, again when attacked it will take 5 every hit, to change this change the bit to this:
to this:
Code:
hitDiff = 10 + misc.random(60);
NewHP -= hitDiff;
that means it is always going to hit over 10 but add a random number under 60