Some more minor clean up (#215)

* General clean up

- Reduced woodcutting code by alot, reverted the array to an enum
- Moved the login player method to the packet sender
- Deleted some dead code/cleaned up

* More random cleanup/refractoring

- Moved combat constants to combatconstants.java
- Moved dialogue options to dialogueoptions.java
- Deleted more dead code

* Replaced some poorly written methods

- refreshSkill, levelUp, and getTotalLevel all used way too much code for such a simple function so cleaned it up
- deleted a few other bits of dead code

* Fight caves

- Should fix fight caves npcs nulling out in the middle of your waves if they are too far away
- Also removed some unneeded scynchronization in itemassistant.java

* Gates

- Started cleaning up gate system, still can be improved a lot more
This commit is contained in:
Mr Extremez
2019-11-28 10:47:06 -06:00
committed by Daniel Ginovker
parent 20303071de
commit 68256e41d8
32 changed files with 1668 additions and 2126 deletions
@@ -61,7 +61,7 @@ public class CombatAssistant {
NpcHandler.npcs[i].animUpdateRequired = true;
NpcHandler.npcs[i].updateRequired = true;
}
if (GameConstants.COMBAT_SOUNDS && NpcHandler.npcs[i].npcType < 3177 && NpcHandler.npcs[i].npcType > 3180) {
if (CombatConstants.COMBAT_SOUNDS && NpcHandler.npcs[i].npcType < 3177 && NpcHandler.npcs[i].npcType > 3180) {
c.getPacketSender().sendSound(CombatSounds.getNpcBlockSound(NpcHandler.npcs[c.oldNpcIndex].npcType), 100, 0);
}
NpcHandler.npcs[i].facePlayer(c.playerId);
@@ -139,15 +139,15 @@ public class CombatAssistant {
c.globalDamageDealt += damage2;
}
if (c.fightMode == 3) {//range shared
c.getPlayerAssistant().addSkillXP(damage * GameConstants.RANGE_EXP_RATE / 3, 4);
c.getPlayerAssistant().addSkillXP(damage * CombatConstants.RANGE_EXP_RATE / 3, 4);
c.getPlayerAssistant().addSkillXP(damage / 3, 1);
c.getPlayerAssistant().addSkillXP(damage / 3, 3);
c.getPlayerAssistant().refreshSkill(1);
c.getPlayerAssistant().refreshSkill(3);
c.getPlayerAssistant().refreshSkill(4);
} else {
c.getPlayerAssistant().addSkillXP(damage * GameConstants.RANGE_EXP_RATE, 4);
c.getPlayerAssistant().addSkillXP(damage * GameConstants.RANGE_EXP_RATE /3, 3);
c.getPlayerAssistant().addSkillXP(damage * CombatConstants.RANGE_EXP_RATE, 4);
c.getPlayerAssistant().addSkillXP(damage * CombatConstants.RANGE_EXP_RATE /3, 3);
c.getPlayerAssistant().refreshSkill(3);
c.getPlayerAssistant().refreshSkill(4);
}
@@ -196,7 +196,7 @@ public class CombatAssistant {
int damage = Misc
.random(MagicData.MAGIC_SPELLS[c.oldSpellId][6]);
if (MagicSpells.godSpells(c)) {
if (System.currentTimeMillis() - c.godSpellDelay < GameConstants.GOD_SPELL_CHARGE) {
if (System.currentTimeMillis() - c.godSpellDelay < CombatConstants.GOD_SPELL_CHARGE) {
damage += Misc.random(10);
}
}
@@ -223,10 +223,10 @@ public class CombatAssistant {
damage = NpcHandler.npcs[i].HP;
}
//magic
c.getPlayerAssistant().addSkillXP(MagicData.MAGIC_SPELLS[c.oldSpellId][7] + damage * GameConstants.MAGIC_EXP_RATE, 6);
c.getPlayerAssistant().addSkillXP(MagicData.MAGIC_SPELLS[c.oldSpellId][7] + damage * CombatConstants.MAGIC_EXP_RATE, 6);
c.totalDamageDealt += damage;
if (MagicData.MAGIC_SPELLS[c.oldSpellId][0] != 1161 && MagicData.MAGIC_SPELLS[c.oldSpellId][0] != 1153 && MagicData.MAGIC_SPELLS[c.oldSpellId][0] != 1157 && MagicData.MAGIC_SPELLS[c.oldSpellId][0] != 1542 && MagicData.MAGIC_SPELLS[c.oldSpellId][0] != 1543 && MagicData.MAGIC_SPELLS[c.oldSpellId][0] != 1562) {
c.getPlayerAssistant().addSkillXP(damage * GameConstants.MAGIC_EXP_RATE / 3, 3);
c.getPlayerAssistant().addSkillXP(damage * CombatConstants.MAGIC_EXP_RATE / 3, 3);
}
c.getPlayerAssistant().refreshSkill(3);
c.getPlayerAssistant().refreshSkill(6);
@@ -336,18 +336,18 @@ public class CombatAssistant {
}
}
if (c.fightMode == 3 && NpcHandler.npcs[i].npcType != 2459 && NpcHandler.npcs[i].npcType != 2460 && NpcHandler.npcs[i].npcType != 2461 && NpcHandler.npcs[i].npcType != 2462) {
c.getPlayerAssistant().addSkillXP(damage * GameConstants.MELEE_EXP_RATE / 3, 0);
c.getPlayerAssistant().addSkillXP(damage * GameConstants.MELEE_EXP_RATE / 3, 1);
c.getPlayerAssistant().addSkillXP(damage * GameConstants.MELEE_EXP_RATE / 3, 2);
c.getPlayerAssistant().addSkillXP(damage * GameConstants.MELEE_EXP_RATE / 3, 3);
c.getPlayerAssistant().addSkillXP(damage * CombatConstants.MELEE_EXP_RATE / 3, 0);
c.getPlayerAssistant().addSkillXP(damage * CombatConstants.MELEE_EXP_RATE / 3, 1);
c.getPlayerAssistant().addSkillXP(damage * CombatConstants.MELEE_EXP_RATE / 3, 2);
c.getPlayerAssistant().addSkillXP(damage * CombatConstants.MELEE_EXP_RATE / 3, 3);
c.getPlayerAssistant().refreshSkill(0);
c.getPlayerAssistant().refreshSkill(1);
c.getPlayerAssistant().refreshSkill(2);
c.getPlayerAssistant().refreshSkill(3);
} else {
if (NpcHandler.npcs[i].npcType != 2459 && NpcHandler.npcs[i].npcType != 2460 && NpcHandler.npcs[i].npcType != 2461 && NpcHandler.npcs[i].npcType != 2462) {
c.getPlayerAssistant().addSkillXP(damage * GameConstants.MELEE_EXP_RATE, c.fightMode);
c.getPlayerAssistant().addSkillXP(damage * GameConstants.MELEE_EXP_RATE / 3, 3);
c.getPlayerAssistant().addSkillXP(damage * CombatConstants.MELEE_EXP_RATE, c.fightMode);
c.getPlayerAssistant().addSkillXP(damage * CombatConstants.MELEE_EXP_RATE / 3, 3);
c.getPlayerAssistant().refreshSkill(c.fightMode);
c.getPlayerAssistant().refreshSkill(3);
}
@@ -644,7 +644,7 @@ public class CombatAssistant {
return;
}
if (c.usingRangeWeapon || c.usingBow
&& GameConstants.COMBAT_SOUNDS
&& CombatConstants.COMBAT_SOUNDS
&& NpcHandler.npcs[i].npcType < 3177
&& NpcHandler.npcs[i].npcType > 3180) {
c.getPacketSender().sendSound(SoundList.SHOOT_ARROW,
@@ -677,7 +677,7 @@ public class CombatAssistant {
return;
}
if (RangeData.correctBowAndArrows(c) < c.playerEquipment[c.playerArrows]
&& GameConstants.CORRECT_ARROWS && c.usingBow
&& CombatConstants.CORRECT_ARROWS && c.usingBow
&& !RangeData.usingCrystalBow(c)
&& c.playerEquipment[c.playerWeapon] != 9185) {
c.getItemAssistant();
@@ -737,7 +737,7 @@ public class CombatAssistant {
"You don't have the required special energy to use this attack.");
c.usingSpecial = false;
c.getItemAssistant().updateSpecialBar();
if (GameConstants.COMBAT_SOUNDS) {
if (CombatConstants.COMBAT_SOUNDS) {
c.getPacketSender()
.sendSound(
CombatSounds
@@ -750,13 +750,13 @@ public class CombatAssistant {
}
c.specMaxHitIncrease = 0;
if (!c.usingMagic) {
if (GameConstants.COMBAT_SOUNDS) {
if (CombatConstants.COMBAT_SOUNDS) {
c.getPacketSender().sendSound(
CombatSounds.getWeaponSounds(c), 100, 0);
}
c.startAnimation(getWepAnim());
} else {
if (GameConstants.COMBAT_SOUNDS) {
if (CombatConstants.COMBAT_SOUNDS) {
c.getPacketSender().sendSound(
CombatSounds.getMagicSound(c, c.spellId), 100,
0);
@@ -849,7 +849,7 @@ public class CombatAssistant {
}
}
if (c.usingBow && GameConstants.CRYSTAL_BOW_DEGRADES) { // crystal
if (c.usingBow && CombatConstants.CRYSTAL_BOW_DEGRADES) { // crystal
// bow
// degrading
if (c.playerEquipment[c.playerWeapon] == 4212) { // new
@@ -1097,7 +1097,7 @@ public class CombatAssistant {
return;
}
if (RangeData.correctBowAndArrows(c) < c.playerEquipment[c.playerArrows]
&& GameConstants.CORRECT_ARROWS && c.usingBow
&& CombatConstants.CORRECT_ARROWS && c.usingBow
&& !RangeData.usingCrystalBow(c)
&& c.playerEquipment[c.playerWeapon] != 9185
&& !c.usingMagic) {
@@ -1146,7 +1146,7 @@ public class CombatAssistant {
.contains(c.playerId)) {
c.attackedPlayers.add(c.playerIndex);
c.isSkulled = true;
c.skullTimer = GameConstants.SKULL_TIMER;
c.skullTimer = CombatConstants.SKULL_TIMER;
c.headIconPk = 0;
c.getPlayerAssistant().requestUpdates();
}
@@ -1161,7 +1161,7 @@ public class CombatAssistant {
"Special attacks have been disabled during this duel!");
c.usingSpecial = false;
c.getItemAssistant().updateSpecialBar();
if (GameConstants.COMBAT_SOUNDS) {
if (CombatConstants.COMBAT_SOUNDS) {
c.getPacketSender()
.sendSound(
CombatSounds
@@ -1183,7 +1183,7 @@ public class CombatAssistant {
"You don't have the required special energy to use this attack.");
c.usingSpecial = false;
c.getItemAssistant().updateSpecialBar();
if (GameConstants.COMBAT_SOUNDS) {
if (CombatConstants.COMBAT_SOUNDS) {
c.getPacketSender()
.sendSound(
CombatSounds
@@ -1196,7 +1196,7 @@ public class CombatAssistant {
}
if (!c.usingMagic) {
if (GameConstants.COMBAT_SOUNDS) {
if (CombatConstants.COMBAT_SOUNDS) {
c.getPacketSender().sendSound(
CombatSounds.getWeaponSounds(c), 100, 0);
}
@@ -1204,7 +1204,7 @@ public class CombatAssistant {
c.mageFollow = false;
} else {
c.startAnimation(MagicData.MAGIC_SPELLS[c.spellId][2]);
if (GameConstants.COMBAT_SOUNDS) {
if (CombatConstants.COMBAT_SOUNDS) {
c.getPacketSender().sendSound(
CombatSounds.getMagicSound(c, c.spellId), 100,
0);
@@ -1336,7 +1336,7 @@ public class CombatAssistant {
}
}
if (c.usingBow && GameConstants.CRYSTAL_BOW_DEGRADES) { // crystal
if (c.usingBow && CombatConstants.CRYSTAL_BOW_DEGRADES) { // crystal
// bow
// degrading
if (c.playerEquipment[c.playerWeapon] == 4212) { // new
@@ -1379,28 +1379,6 @@ public class CombatAssistant {
}
}
public void appendVengeance(int otherPlayer, int damage) {
if (damage <= 0) {
return;
}
Player o = PlayerHandler.players[otherPlayer];
o.forcedText = "Taste Vengeance!";
o.forcedChatUpdateRequired = true;
o.updateRequired = true;
o.vengOn = false;
if (o.playerLevel[3] - damage > 0) {
damage = (int) (damage * 0.75);
if (damage > c.playerLevel[3]) {
damage = c.playerLevel[3];
}
c.setHitDiff2(damage);
c.setHitUpdateRequired2(true);
c.playerLevel[3] -= damage;
c.getPlayerAssistant().refreshSkill(3);
}
c.updateRequired = true;
}
public void playerDelayedHit(int i) {
if (PlayerHandler.players[i] != null) {
if (PlayerHandler.players[i].isDead || c.isDead
@@ -1424,7 +1402,7 @@ public class CombatAssistant {
if (o.attackTimer <= 3 || o.attackTimer == 0 && o.playerIndex == 0
&& !c.castingMagic) { // block animation
o.startAnimation(o.getCombatAssistant().getBlockEmote());
if (GameConstants.COMBAT_SOUNDS) {
if (CombatConstants.COMBAT_SOUNDS) {
o.getPacketSender().sendSound(
CombatSounds.getPlayerBlockSounds(o), 100, 0);
}
@@ -1513,10 +1491,6 @@ public class CombatAssistant {
if (damage2 < 0 && damage2 != -1) {
damage2 = 0;
}
if (o.vengOn) {
appendVengeance(i, damage);
appendVengeance(i, damage2);
}
if (damage > 0) {
applyRecoil(c, damage, i);
}
@@ -1524,14 +1498,14 @@ public class CombatAssistant {
applyRecoil(c, damage2, i);
}
if (c.fightMode == 3) {
c.getPlayerAssistant().addSkillXP(damage * GameConstants.RANGE_EXP_RATE / 3, 4);
c.getPlayerAssistant().addSkillXP(damage * CombatConstants.RANGE_EXP_RATE / 3, 4);
c.getPlayerAssistant().addSkillXP(damage / 3, 1);
c.getPlayerAssistant().addSkillXP(damage / 3, 3);
c.getPlayerAssistant().refreshSkill(1);
c.getPlayerAssistant().refreshSkill(3);
c.getPlayerAssistant().refreshSkill(4);
} else {
c.getPlayerAssistant().addSkillXP(damage * GameConstants.RANGE_EXP_RATE, 4);
c.getPlayerAssistant().addSkillXP(damage * CombatConstants.RANGE_EXP_RATE, 4);
c.getPlayerAssistant().addSkillXP(damage / 3, 3);
c.getPlayerAssistant().refreshSkill(3);
c.getPlayerAssistant().refreshSkill(4);
@@ -1578,7 +1552,7 @@ public class CombatAssistant {
int damage = Misc
.random(MagicData.MAGIC_SPELLS[c.oldSpellId][6]);
if (MagicSpells.godSpells(c)) {
if (System.currentTimeMillis() - c.godSpellDelay < GameConstants.GOD_SPELL_CHARGE) {
if (System.currentTimeMillis() - c.godSpellDelay < CombatConstants.GOD_SPELL_CHARGE) {
damage += 10;
}
}
@@ -1600,13 +1574,10 @@ public class CombatAssistant {
if (PlayerHandler.players[i].playerLevel[3] - damage < 0) {
damage = PlayerHandler.players[i].playerLevel[3];
}
if (o.vengOn) {
appendVengeance(i, damage);
}
if (damage > 0) {
applyRecoil(c, damage, i);
}
c.getPlayerAssistant().addSkillXP(MagicData.MAGIC_SPELLS[c.oldSpellId][7] + damage * GameConstants.MAGIC_EXP_RATE, 6);
c.getPlayerAssistant().addSkillXP(MagicData.MAGIC_SPELLS[c.oldSpellId][7] + damage * CombatConstants.MAGIC_EXP_RATE, 6);
if (MagicData.MAGIC_SPELLS[c.oldSpellId][0] != 1161 && MagicData.MAGIC_SPELLS[c.oldSpellId][0] != 1153 && MagicData.MAGIC_SPELLS[c.oldSpellId][0] != 1157 && MagicData.MAGIC_SPELLS[c.oldSpellId][0] != 1542 && MagicData.MAGIC_SPELLS[c.oldSpellId][0] != 1543 && MagicData.MAGIC_SPELLS[c.oldSpellId][0] != 1562) {
c.getPlayerAssistant().addSkillXP(MagicData.MAGIC_SPELLS[c.oldSpellId][7] + damage / 3, 3);
}
@@ -1843,9 +1814,6 @@ public class CombatAssistant {
&& !veracsEffect) { // if prayer active reduce damage by 40%
damage = damage * 60 / 100;
}
if (c.maxNextHit) {
damage = meleeMaxHit();
}
if (damage > 0 && guthansEffect) {
c.playerLevel[3] += damage;
if (c.playerLevel[3] > c.getLevelForXP(c.playerXP[3])) {
@@ -1854,16 +1822,9 @@ public class CombatAssistant {
c.getPlayerAssistant().refreshSkill(3);
o.gfx0(398);
}
if (c.ssSpec && damageMask == 2) {
damage = 5 + Misc.random(11);
c.ssSpec = false;
}
if (PlayerHandler.players[i].playerLevel[3] - damage < 0) {
damage = PlayerHandler.players[i].playerLevel[3];
}
if (o.vengOn && damage > 0) {
appendVengeance(i, damage);
}
if (damage > 0) {
applyRecoil(c, damage, i);
}
@@ -1928,17 +1889,17 @@ public class CombatAssistant {
}
c.specEffect = 0;
if (c.fightMode == 3) {//melee shared
c.getPlayerAssistant().addSkillXP(damage * GameConstants.MELEE_EXP_RATE / 3, 0);
c.getPlayerAssistant().addSkillXP(damage * GameConstants.MELEE_EXP_RATE / 3, 1);
c.getPlayerAssistant().addSkillXP(damage * GameConstants.MELEE_EXP_RATE / 3, 2);
c.getPlayerAssistant().addSkillXP(damage * CombatConstants.MELEE_EXP_RATE / 3, 0);
c.getPlayerAssistant().addSkillXP(damage * CombatConstants.MELEE_EXP_RATE / 3, 1);
c.getPlayerAssistant().addSkillXP(damage * CombatConstants.MELEE_EXP_RATE / 3, 2);
c.getPlayerAssistant().addSkillXP(damage / 3, 3);
c.getPlayerAssistant().refreshSkill(0);
c.getPlayerAssistant().refreshSkill(1);
c.getPlayerAssistant().refreshSkill(2);
c.getPlayerAssistant().refreshSkill(3);
} else {
c.getPlayerAssistant().addSkillXP(damage * GameConstants.MELEE_EXP_RATE, c.fightMode);
c.getPlayerAssistant().addSkillXP(damage * GameConstants.MELEE_EXP_RATE/3, 3);
c.getPlayerAssistant().addSkillXP(damage * CombatConstants.MELEE_EXP_RATE, c.fightMode);
c.getPlayerAssistant().addSkillXP(damage * CombatConstants.MELEE_EXP_RATE/3, 3);
c.getPlayerAssistant().refreshSkill(c.fightMode);
c.getPlayerAssistant().refreshSkill(3);
}
@@ -2097,7 +2058,7 @@ public class CombatAssistant {
resetPlayerAttack();
return false;
}
if (GameConstants.COMBAT_LEVEL_DIFFERENCE && !c.inCw()) {
if (CombatConstants.COMBAT_LEVEL_DIFFERENCE && !c.inCw()) {
int combatDif1 = getCombatDifference(c.combatLevel,
PlayerHandler.players[c.playerIndex].combatLevel);
if (combatDif1 > c.wildLevel
@@ -2111,7 +2072,7 @@ public class CombatAssistant {
}
}
if (GameConstants.SINGLE_AND_MULTI_ZONES) {
if (CombatConstants.SINGLE_AND_MULTI_ZONES) {
if (!PlayerHandler.players[c.playerIndex].inMulti()) { // single
// combat
// zones
@@ -0,0 +1,35 @@
package com.rebotted.game.content.combat;
/**
* CombatConstants
* @author Andrew (Mr Extremez)
*/
public class CombatConstants {
public final static int MELEE_EXP_RATE = 4;
public final static int RANGE_EXP_RATE = 4;
public final static int MAGIC_EXP_RATE = 4;
public final static int INCREASE_SPECIAL_AMOUNT = 17500;
public final static int GOD_SPELL_CHARGE = 300000;
public final static boolean CORRECT_ARROWS = true;
public final static boolean CRYSTAL_BOW_DEGRADES = true;
public final static int SKULL_TIMER = 1200;
public final static int TELEBLOCK_DELAY = 20000;
public final static boolean SINGLE_AND_MULTI_ZONES = true;
public final static boolean COMBAT_LEVEL_DIFFERENCE = true;
public final static boolean COMBAT_SOUNDS = true;
}
@@ -1,8 +1,6 @@
package com.rebotted.game.content.combat;
import java.util.HashMap;
import com.rebotted.GameConstants;
import com.rebotted.game.content.combat.range.RangeData;
import com.rebotted.game.content.music.sound.CombatSounds;
import com.rebotted.game.npcs.NpcHandler;
@@ -24,26 +22,26 @@ public class Specials {
// ItemName(ItemId, SpecDamage, SpecAccuracy, SpecAmount, Anim, GFX0,
// GFX100, DoubleHit, SsSpec, SpecEffect)
ABYSSAL_WHIP(4151, 1, 1.25, 5, 1658, 341, -1, false, false, 0),
DRAGON_DAGGER(1215, 1.15, 1.25, 2.5, 1062, -1, 252, true, false, 0),
DRAGON_DAGGER_P(1231, 1.15, 1.25, 2.5, 1062, -1, 252, true, false, 0),
DRAGON_DAGGER_PP(5698, 1.15, 1.25, 2.5, 1062, -1, 252, true, false, 0),
DRAGON_DAGGER_PPP(5680, 1.15, 1.25, 2.5, 1062, -1, 252, true, false, 0),
DRAGON_LONG(1305, 1.20, 1.10, 2.5, 1058, -1, 248, false, false, 0),
DRAGON_MACE(1434, 1.55, 1.25, 2.5, 1060, -1, 251, false, false, 0),
DRAGON_SCIMITAR(4587, 1, 1.25, 5.5, 1872, -1, 347, false, false, 1),
DRAGON_HALBERD(3204, 1.25, .85, 3, 1203, -1, 282, true, false, 0),
GRANITE_MAUL(4153, 1.10, .85, 5, 1667, -1, 337, false, false, 0),
MAGIC_SHORTBOW(861, 1.05, .95, 5.5, 1074, -1, -1, true, false, 0),
MAGIC_LONGBOW(859, 1.20, 1.05, 5.5, 426, -1, -1, false, false, 0);
ABYSSAL_WHIP(4151, 1, 1.25, 5, 1658, 341, -1, false, 0),
DRAGON_DAGGER(1215, 1.15, 1.25, 2.5, 1062, -1, 252, true, 0),
DRAGON_DAGGER_P(1231, 1.15, 1.25, 2.5, 1062, -1, 252, true, 0),
DRAGON_DAGGER_PP(5698, 1.15, 1.25, 2.5, 1062, -1, 252, true, 0),
DRAGON_DAGGER_PPP(5680, 1.15, 1.25, 2.5, 1062, -1, 252, true, 0),
DRAGON_LONG(1305, 1.20, 1.10, 2.5, 1058, -1, 248, false, 0),
DRAGON_MACE(1434, 1.55, 1.25, 2.5, 1060, -1, 251, false, 0),
DRAGON_SCIMITAR(4587, 1, 1.25, 5.5, 1872, -1, 347, false, 1),
DRAGON_HALBERD(3204, 1.25, .85, 3, 1203, -1, 282, true, 0),
GRANITE_MAUL(4153, 1.10, .85, 5, 1667, -1, 337, false, 0),
MAGIC_SHORTBOW(861, 1.05, .95, 5.5, 1074, -1, -1, true, 0),
MAGIC_LONGBOW(859, 1.20, 1.05, 5.5, 426, -1, -1, false, 0);
private int weapon, anim, gfx1, gfx2, specEffect;
private double specDamage, specAccuracy, specAmount;
private boolean doubleHit, ssSpec;
private boolean doubleHit;
private specialAttack(int weapon, double specDamage,
double specAccuracy, double specAmount, int anim, int gfx1,
int gfx2, boolean doubleHit, boolean ssSpec, int specEffect) {
int gfx2, boolean doubleHit, int specEffect) {
this.weapon = weapon;
this.specDamage = specDamage;
this.specAccuracy = specAccuracy;
@@ -52,7 +50,6 @@ public class Specials {
this.gfx1 = gfx1;
this.gfx2 = gfx2;
this.doubleHit = doubleHit;
this.ssSpec = ssSpec;
this.specEffect = specEffect;
}
@@ -88,9 +85,6 @@ public class Specials {
return doubleHit;
}
private boolean getSsSpec() {
return ssSpec;
}
@SuppressWarnings("unused")
private int getSpecEffect() {
@@ -113,9 +107,7 @@ public class Specials {
public void activateSpecial(int weapon, int i) {
int equippedWeapon = player.playerEquipment[player.playerWeapon];
if (NpcHandler.npcs[i] == null && player.npcIndex > 0
|| PlayerHandler.players[player.playerIndex] == null
&& player.playerIndex > 0) {
if (NpcHandler.npcs[i] == null && player.npcIndex > 0 || PlayerHandler.players[player.playerIndex] == null && player.playerIndex > 0) {
return;
}
player.doubleHit = false;
@@ -128,8 +120,7 @@ public class Specials {
player.oldPlayerIndex = i;
PlayerHandler.players[i].underAttackBy = player.playerId;
PlayerHandler.players[i].logoutDelay = System.currentTimeMillis();
PlayerHandler.players[i].singleCombatDelay = System
.currentTimeMillis();
PlayerHandler.players[i].singleCombatDelay = System.currentTimeMillis();
PlayerHandler.players[i].killerId = player.playerId;
}
player.specEffect = 0;
@@ -226,7 +217,6 @@ public class Specials {
player.specAccuracy = SA.getSpecAccuracy();
player.hitDelay = player.getCombatAssistant().getHitDelay();
player.doubleHit = SA.getDoubleHit();
player.ssSpec = SA.getSsSpec();
} else {
player.gfx0(SA.getGfx1());
player.startAnimation(SA.getAnim());
@@ -234,36 +224,26 @@ public class Specials {
player.specAccuracy = SA.getSpecAccuracy();
player.hitDelay = player.getCombatAssistant().getHitDelay();
player.doubleHit = SA.getDoubleHit();
player.ssSpec = SA.getSsSpec();
}
}
player.delayedDamage = Misc.random(player.getCombatAssistant().meleeMaxHit());
player.delayedDamage2 = Misc
.random(player.getCombatAssistant().meleeMaxHit());
player.delayedDamage2 = Misc.random(player.getCombatAssistant().meleeMaxHit());
player.usingSpecial = false;
player.getItemAssistant().updateSpecialBar();
if (GameConstants.COMBAT_SOUNDS) {
player.getPacketSender()
.sendSound(
CombatSounds
.specialSounds(player.playerEquipment[player.playerWeapon]),
100, 0);
if (CombatConstants.COMBAT_SOUNDS) {
player.getPacketSender().sendSound(CombatSounds.specialSounds(player.playerEquipment[player.playerWeapon]), 100, 0);
}
}
}
public void handleGmaul() {
if (player.npcIndex > 0 && NpcHandler.npcs[player.npcIndex] != null) {
if (player.goodDistance(player.getX(), player.getY(), NpcHandler.npcs[player.npcIndex]
.getX(), NpcHandler.npcs[player.npcIndex].getY(), player
.getCombatAssistant().getRequiredDistance())) {
if (player.goodDistance(player.getX(), player.getY(), NpcHandler.npcs[player.npcIndex].getX(), NpcHandler.npcs[player.npcIndex].getY(), player.getCombatAssistant().getRequiredDistance())) {
if (player.getCombatAssistant().checkSpecAmount(4153)) {
boolean hit = Misc.random(player.getCombatAssistant().calcAtt()) > Misc
.random(NpcHandler.npcs[player.npcIndex].defence);
boolean hit = Misc.random(player.getCombatAssistant().calcAtt()) > Misc.random(NpcHandler.npcs[player.npcIndex].defence);
int damage = 0;
if (hit) {
damage = Misc.random(player.getCombatAssistant()
.meleeMaxHit());
damage = Misc.random(player.getCombatAssistant().meleeMaxHit());
NpcHandler.npcs[player.npcIndex].HP -= damage;
NpcHandler.npcs[player.npcIndex].hitDiff2 = damage;
NpcHandler.npcs[player.npcIndex].hitUpdateRequired2 = true;
@@ -279,17 +259,12 @@ public class Specials {
.getCombatAssistant().getRequiredDistance())) {
if (player.getCombatAssistant().checkReqs()) {
if (player.getCombatAssistant().checkSpecAmount(4153)) {
boolean hit = Misc.random(player.getCombatAssistant()
.calcAtt()) > Misc.random(o
.getCombatAssistant().calcDef());
boolean hit = Misc.random(player.getCombatAssistant().calcAtt()) > Misc.random(o.getCombatAssistant().calcDef());
int damage = 0;
if (hit) {
damage = Misc.random(player.getCombatAssistant()
.meleeMaxHit());
damage = Misc.random(player.getCombatAssistant().meleeMaxHit());
}
if (o.getPrayer().prayerActive[18]
&& System.currentTimeMillis()
- o.protMeleeDelay > 1500) {
if (o.getPrayer().prayerActive[18] && System.currentTimeMillis() - o.protMeleeDelay > 1500) {
damage *= .6;
}
if (o.playerLevel[3] - damage <= 0) {
@@ -1,6 +1,6 @@
package com.rebotted.game.content.combat.magic;
import com.rebotted.GameConstants;
import com.rebotted.game.content.combat.CombatConstants;
import com.rebotted.game.content.music.sound.SoundList;
import com.rebotted.game.players.Client;
import com.rebotted.game.players.Player;
@@ -32,7 +32,7 @@ public class MagicSpells extends MagicData {
if (c2.playerLevel[3] - damage < 0) {
damage = c2.playerLevel[3];
}
c.getPlayerAssistant().addSkillXP(MagicData.MAGIC_SPELLS[c.oldSpellId][7] + damage * GameConstants.MAGIC_EXP_RATE, 6);
c.getPlayerAssistant().addSkillXP(MagicData.MAGIC_SPELLS[c.oldSpellId][7] + damage * CombatConstants.MAGIC_EXP_RATE, 6);
c.getPlayerAssistant().addSkillXP(MagicData.MAGIC_SPELLS[c.oldSpellId][7] + damage / 3, 3);
// Server.playerHandler.players[playerId].setHitDiff(damage);
// Server.playerHandler.players[playerId].setHitUpdateRequired(true);
@@ -100,7 +100,7 @@ public class MagicSpells extends MagicData {
if (!PlayerHandler.players[i].inWild()) {
return false;
}
if (GameConstants.COMBAT_LEVEL_DIFFERENCE) {
if (CombatConstants.COMBAT_LEVEL_DIFFERENCE) {
int combatDif1 = c.getCombatAssistant().getCombatDifference(c.combatLevel,
PlayerHandler.players[i].combatLevel);
if (combatDif1 > c.wildLevel
@@ -112,7 +112,7 @@ public class MagicSpells extends MagicData {
}
}
if (GameConstants.SINGLE_AND_MULTI_ZONES) {
if (CombatConstants.SINGLE_AND_MULTI_ZONES) {
if (!PlayerHandler.players[i].inMulti()) { // single combat
// zones
if (PlayerHandler.players[i].underAttackBy != c.playerId
@@ -2,6 +2,7 @@ package com.rebotted.game.content.combat.npcs;
import com.rebotted.GameConstants;
import com.rebotted.game.content.combat.CombatAssistant;
import com.rebotted.game.content.combat.CombatConstants;
import com.rebotted.game.content.combat.melee.MeleeData;
import com.rebotted.game.content.minigames.FightCaves;
import com.rebotted.game.content.music.sound.CombatSounds;
@@ -181,7 +182,7 @@ public class NpcCombat {
NpcHandler.npcs[i].attackTimer = NpcData.getNpcDelay(i);
NpcHandler.npcs[i].hitDelayTimer = NpcData.getHitDelay(i);
NpcHandler.npcs[i].attackType = 0;
if (GameConstants.COMBAT_SOUNDS
if (CombatConstants.COMBAT_SOUNDS
&& NpcHandler.npcs[i].npcType < 3177
&& NpcHandler.npcs[i].npcType > 3180) {
c.getPacketSender()
@@ -201,7 +202,7 @@ public class NpcCombat {
if (NpcHandler.multiAttacks(i)) {
multiAttackGfx(i, NpcHandler.npcs[i].projectileId);
NpcData.startAnimation(NpcEmotes.getAttackEmote(i), i);
if (GameConstants.COMBAT_SOUNDS
if (CombatConstants.COMBAT_SOUNDS
&& NpcHandler.npcs[i].npcType < 3177
&& NpcHandler.npcs[i].npcType > 3180) {
c.getPacketSender()
@@ -240,7 +241,7 @@ public class NpcCombat {
c.singleCombatDelay2 = System.currentTimeMillis();
NpcHandler.npcs[i].oldIndex = c.playerId;
NpcData.startAnimation(NpcEmotes.getAttackEmote(i), i);
if (GameConstants.COMBAT_SOUNDS
if (CombatConstants.COMBAT_SOUNDS
&& NpcHandler.npcs[i].npcType < 3177
&& NpcHandler.npcs[i].npcType > 3180) {
c.getPacketSender()
@@ -1,10 +1,10 @@
package com.rebotted.game.content.combat.range;
import com.rebotted.GameConstants;
import com.rebotted.GameEngine;
import com.rebotted.event.CycleEvent;
import com.rebotted.event.CycleEventContainer;
import com.rebotted.event.CycleEventHandler;
import com.rebotted.game.content.combat.CombatConstants;
import com.rebotted.game.npcs.Npc;
import com.rebotted.game.npcs.NpcHandler;
import com.rebotted.game.players.Client;
@@ -397,7 +397,7 @@ public class DwarfCannon {
target.hitUpdateRequired2 = true;
target.updateRequired = true;
myBalls -= 1;
player.getPlayerAssistant().addSkillXP(damage * GameConstants.RANGE_EXP_RATE, player.playerRanged);
player.getPlayerAssistant().addSkillXP(damage * CombatConstants.RANGE_EXP_RATE, player.playerRanged);
}
}
@@ -1,6 +1,5 @@
package com.rebotted.game.content.randomevents;
import com.rebotted.game.players.Client;
import com.rebotted.game.players.Player;
import com.rebotted.util.Misc;
@@ -61,8 +60,7 @@ public class RandomEventHandler {
}
public static void addRandom(Player c) {
if (c.randomEventsEnabled)
{
if (c.randomEventsEnabled) {
if (c.randomActions >= CALL_RANDOM) {
callRandom(c);
if (c.playerIsBusy() && !c.hasSandwhichLady) {
@@ -0,0 +1,136 @@
package com.rebotted.game.content.skills;
import java.util.Arrays;
import java.util.Optional;
/**
* @author Syndicate
*/
public enum SkillData {
ATTACK(0, 6247, 6248, 6249, 4004, 4005, 4044, 4045),
DEFENCE(1, 6253, 6254, 6255, 4008, 4009, 4056, 4057),
STRENGTH(2, 6206, 6207, 6208, 4006, 4007, 4050, 4051),
HITPOINTS(3, 6216, 6217, 6218, 4016, 4017, 4080, 4081),
RANGED(4, 4443, 5453, 6114, 4010, 4011, 4062, 4063),
PRAYER(5, 6242, 6243, 6244, 4012, 4013, 4068, 4069),
MAGIC(6, 6211, 6212, 6213, 4014, 4015, 4074, 4075),
COOKING(7, 6226, 6227, 6228, 4034, 4035, 4134, 4135),
WOODCUTTING(8, 4272, 4273, 4274, 4038, 4039, 4146, 4147),
FLETCHING(9, 6231, 6232, 6233, 4026, 4027, 4110, 4111),
FISHING(10, 6258, 6259, 6260, 4032, 4033, 4128, 4129),
FIREMAKING(11, 4282, 4283, 4284, 4036, 4037, 4140, 4141),
CRAFTING(12, 6263, 6264, 6265, 4024, 4025, 4104, 4105),
SMITHING(13, 6221, 6222, 6223, 4030, 4031, 4122, 4123),
MINING(14, 4416, 4417, 4438, 4028, 4029, 4116, 4117),
HERBLORE(15, 6237, 6238, 6239, 4020, 4021, 4092, 4093),
AGILITY(16, 4277, 4278, 4279, 4018, 4019, 4086, 4087),
THIEVING(17, 4261, 4263, 4264, 4022, 4023, 4098, 4099),
SLAYER(18, 12122, 12123, 12124, 12166, 12167, 12171, 12172),
FARMING(19, 12122, 12123, 12124, 13926, 13927, 13921, 13922),
RUNECRAFTING(20, 4267, 4268, 4269, 4152, 4153, 4157, 4158);
/**
* The identifier for this skill.
*/
private final int skill;
/**
* The first frame id for this skill.
*/
private final int frame;
/**
* The second frame id for this skill.
*/
private final int frame2;
/**
* The third frame id for this skill.
*/
private final int frame3;
/**
* The fourth frame id for this skill.
*/
private final int frame4;
/**
* The fifth frame id for this skill.
*/
private final int frame5;
/**
* The sixth frame id for this skill.
*/
private final int frame6;
/**
* The seventh frame id for this skill.
*/
private final int frame7;
/**
* Constructs a new {@link SkillData}.
*
* @param skill
* @param frame
* @param frame2
* @param frame3
* @param frame4
* @param frame5
* @param frame6
* @param frame7
*/
SkillData(int skill, int frame, int frame2,
int frame3, int frame4, int frame5, int frame6, int frame7) {
this.skill = skill;
this.frame = frame;
this.frame2 = frame2;
this.frame3 = frame3;
this.frame4 = frame4;
this.frame5 = frame5;
this.frame6 = frame6;
this.frame7 = frame7;
}
public final int getId() {
return skill;
}
public final int getFrame1() {
return frame;
}
public final int getFrame2() {
return frame2;
}
public final int getFrame3() {
return frame3;
}
public final int getFrame4() {
return frame4;
}
public final int getFrame5() {
return frame5;
}
public final int getFrame6() {
return frame6;
}
public final int getFrame7() {
return frame7;
}
public String toString() {
return name().charAt(0) + name().substring(1).toLowerCase();
}
public static Optional<SkillData> getSkill(int identifier) {
return Arrays.stream(values()).filter(s -> s.skill == identifier).findFirst();
}
}
@@ -110,15 +110,6 @@ public class SkillHandler {
return false;
}
public static boolean membersOnly(Player c) {
if (c.membership == false) {
c.getPacketSender()
.sendMessage("This is a members only skill.");
return false;
}
return true;
}
public static boolean noInventorySpace(Player c, String skill) {
if (c.getItemAssistant().freeSlots() == 0) {
c.getPacketSender().sendMessage(
@@ -1,11 +1,10 @@
package com.rebotted.game.content.skills.agility;
import com.rebotted.game.players.Client;
import com.rebotted.game.players.Player;
/**
* Agility Shortcuts
* @author Andrew (I'm A Boss on Rune-Server, Mr Extremez on Moparscape & Runelocus)
* @author Andrew (Mr Extremez)
*/
public class AgilityShortcut {
@@ -151,8 +151,8 @@ public class Mining {
}
public void startMining(final Player player, final int objectID, final int objectX, final int objectY, final int type) {
if (player.isMining || player.miningRock) return;
if (player.isMining || player.miningRock)
return;
int miningLevel = player.playerLevel[player.playerMining];
rockData rock = rockData.getRock(objectID);
pickaxe = -1;
@@ -272,8 +272,7 @@ public class Mining {
}
public void mineRock(int respawnTime, int x, int y, int type, int i) {
if (i != 2491)
{
if (i != 2491) {
new Object(452, x, y, 0, type, 10, i, respawnTime);
Region.addObject(452, x, y, 0, 10, type, false);
}
@@ -27,31 +27,74 @@ public class Woodcutting {
{6739, 61, 8, 2846},
{13661, 41, 8, 10251}
};
public final static int[][] Tree_Settings = {
{ 1276, 1342, 1, 25, 1511, 45, 100 },
{ 1278, 1342, 1, 25, 1511, 45, 100 },
{ 1286, 1342, 1, 25, 1511, 45, 100 },
{ 1281, 1356, 15, 38, 1521, 11, 20 },
{ 1308, 7399, 30, 68, 1519, 11, 8 },
{ 5552, 7399, 30, 68, 1519, 11, 8 },
{ 1307, 1343, 45, 100, 1517, 48, 8 },
{ 1309, 7402, 60, 175, 1515, 79, 5 },
{ 1306, 7401, 75, 250, 1513, 150, 3 },
{ 5551, 7399, 30, 68, 1519, 11, 8 },
{ 5553, 7399, 30, 68, 1519, 11, 8 },
{ 3033, 1342, 1, 25, 1511, 45, 100 },
{ 3037, 1356, 15, 38, 1521, 11, 20 },
{ 1282, 1342, 1, 25, 1511, 45, 100 },
{ 1383, 1342, 1, 25, 1511, 45, 100 },
{ 2023, 3371, 1, 25, 2862, 45, 100 },
{ 1319, 1341, 1, 25, 1511, 45, 100 },
{ 1318, 1341, 1, 25, 1511, 45, 100 },
{ 1315, 1341, 1, 25, 1511, 45, 100 },
{ 1316, 1341, 1, 25, 1511, 45, 100 },
{ 1332, 1341, 1, 25, 1511, 45, 100 },
{ 1292, 1341, 36, 1, 771, 45, 100 }
};
private static enum treeData {
TREE(new int[] {1276, 1278, 1286, 3033, 1282, 1383}, 1342, 1, 25, 1511, 11, 100),
OAK(new int[] {1281, 3037}, 1356, 15, 38, 1521, 25, 20),
WILLOW(new int[] {1308, 5552, 5551, 5553}, 7399, 30, 68, 1519, 30, 8),
MAPLE(new int[] {1307}, 1343, 45, 100, 1517, 48, 8),
YEW(new int[] {1309}, 7402, 60, 175, 1515, 79, 5),
MAGIC(new int[] {1306}, 7401, 75, 250, 1513, 150, 3),
EVERGREEN(new int[] {1319, 1318, 1315, 1316, 1332}, 1341, 1, 25, 1511, 11, 100),
ACHEY(new int[] {2023}, 3371, 1, 25, 1511, 11, 100),
DRAMEN(new int[] {1292}, 1341, 1, 25, 771, 45, 100);
private int[] treeId;
private int stumpId, levelReq, xpRecieved, logRecieved, respawnTime, cutChance;
private treeData(int[] treeId, int stumpId, int levelReq, int xpRecieved, int logRecieved, int respawnTime, int cutChance) {
this.treeId = treeId;
this.stumpId = stumpId;
this.levelReq = levelReq;
this.xpRecieved = xpRecieved;
this.logRecieved = logRecieved;
this.respawnTime = respawnTime;
this.cutChance = cutChance;
}
private int getStump() {
return stumpId;
}
private int getLevelReq() {
return levelReq;
}
private int getXpReceived() {
return xpRecieved;
}
private int getLogRecieved() {
return logRecieved;
}
private int getRespawnTime() {
return respawnTime;
}
private int getChance() {
return cutChance;
}
private int getObject(int object) {
for (int element : treeId) {
if (object == element) {
return element;
}
}
return -1;
}
private static treeData getTree(int objectId) {
for (treeData tree : treeData.values()) {
if (objectId == tree.getObject(objectId)) {
return tree;
}
}
return null;
}
}
public static int[][] FIX_AXE = { { 492, 508, 1351 }, { 492, 510, 1349 },
{ 492, 512, 1353 }, { 492, 514, 1361 }, { 492, 516, 1355 },
@@ -63,22 +106,16 @@ public class Woodcutting {
CycleEventHandler.getSingleton().addEvent(p, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if (p.isWoodcutting)
{
if ((a >= 0) && (a < Axe_Settings.length))
{
try
{
if (p.isWoodcutting) {
if ((a >= 0) && (a < Axe_Settings.length)) {
try {
p.startAnimation(Axe_Settings[a][3]);
} catch (ArrayIndexOutOfBoundsException exception)
{
} catch (ArrayIndexOutOfBoundsException exception) {
System.out.println("LOL this happend again: " + exception);
}
p.getPacketSender().sendSound(SoundList.TREE_CUTTING, 100, 0);
}
}
else
{
} else {
container.stop();
}
}
@@ -99,17 +136,13 @@ public class Woodcutting {
for (int axes[] : Axe_Settings) {
int type = axes[0];
if ( player.getItemAssistant().playerHasItem(type) || player.playerEquipment[player.playerWeapon] == type)
{
if ( player.getItemAssistant().playerHasItem(type) || player.playerEquipment[player.playerWeapon] == type) {
gotAxe = true;
}
}
if (gotAxe)
{
if (gotAxe) {
player.getPacketSender().sendMessage("You swing your axe at the station.");
}
else
{
} else {
player.getPacketSender().sendMessage("You need an axe to cut the station.");
return;
}
@@ -196,7 +229,7 @@ public class Woodcutting {
return false;
}
public static void startWoodcutting(final Player p, final int j, final int x, final int y, final int type) {
public static void startWoodcutting(final Player p, final int objectId, final int x, final int y, final int type) {
CycleEventHandler.getSingleton().stopEvents(p, "WoodcuttingEvent".hashCode());
if (p.isWoodcutting || p.isFletching || p.isFiremaking || p.playerIsFletching) {
return;
@@ -211,9 +244,10 @@ public class Woodcutting {
}
int wcLevel = p.playerLevel[8];
a = -1;
treeData tree = treeData.getTree(objectId);
p.turnPlayerTo(x, y);
if (Tree_Settings[j][2] > wcLevel) {
p.getPacketSender().sendMessage("You need a Woodcutting level of " + Tree_Settings[j][2] + " to cut this tree.");
if (tree.getLevelReq() > wcLevel) {
p.getPacketSender().sendMessage("You need a Woodcutting level of " + tree.getLevelReq() + " to cut this tree.");
return;
}
for (int i = 0; i < Axe_Settings.length; i++) {
@@ -278,11 +312,11 @@ public class Woodcutting {
p.getPacketSender().sendMessage("You have ran out of inventory slots.");
container.stop();
}
int XP = Tree_Settings[j][3];
int XP = tree.getXpReceived();
if (p.isWoodcutting) {
p.getItemAssistant().addItem(Tree_Settings[j][4], 1);
p.getItemAssistant().addItem(tree.getLogRecieved(), 1);
p.getPlayerAssistant().addSkillXP(XP, 8);
p.getPacketSender().sendMessage("You manage to get some " + ItemAssistant.getItemName(Tree_Settings[j][4]).toLowerCase() + " from the tree.");
p.getPacketSender().sendMessage("You manage to get some " + ItemAssistant.getItemName(tree.getLogRecieved()).toLowerCase() + " from the tree.");
}
if (p.tutorialProgress == 3) {
p.getDialogueHandler().sendDialogues(3014, 0);
@@ -299,8 +333,8 @@ public class Woodcutting {
if (p.playerIsFletching || p.isFiremaking) {
container.stop();
}
if (Misc.random(100) <= Tree_Settings[j][6]) {
cutDownTree(Tree_Settings[j][5], x, y, type, Tree_Settings[j][1], Tree_Settings[j][0]);
if (Misc.random(100) <= tree.getChance()) {
cutDownTree(tree.getRespawnTime(), x, y, type, tree.getStump(), objectId);
p.getPacketSender().sendSound(SoundList.TREE_EMPTY, 100, 0);
container.stop();
}
@@ -312,7 +346,7 @@ public class Woodcutting {
p.treeX = 0;
p.treeY = 0;
}
}, getTimer(j, a, wcLevel));
}, getTimer(tree, a, wcLevel));
}
}
@@ -323,8 +357,8 @@ public class Woodcutting {
player.treeY = 0;
}
public static int getTimer(int b, int c, int level) {
double timer = (int)((Tree_Settings[b][2] * 2) + 20 + Misc.random(20))-((Axe_Settings[c][2] * (Axe_Settings[c][2] * 0.75)) + level);
public static int getTimer(treeData tree, int axe, int level) {
double timer = (int)((tree.getLevelReq() * 2) + 20 + Misc.random(20))-((Axe_Settings[axe][2] * (Axe_Settings[axe][2] * 0.75)) + level);
if (timer < 3.0) {
return 3;
} else {
@@ -384,17 +418,19 @@ public class Woodcutting {
{ // MAPLE
1307, 4674, 8435, 8436, 8437, 8438, 8439, 8440, 8441, 8442, 8443,
8444, 8454, 8455, 8456, 8457, 8458, 8459, 8460, 8461,
13415, 13423, }, { // YEW
13415, 13423, },
{ // YEW
1309, 8503, 8504, 8505, 8506, 8507, 8508, 8509, 8510, 8511, 8512,
8513, 13416, 13422, }, { // MAGIC
8513, 13416, 13422, },
{ // MAGIC
1306, 8396, 8397, 8398, 8399, 8400, 8401, 8402, 8403, 8404, 8405,
8406, 8407, 8408, 8409, 13417, 13424, } };
public static void cutDownTree(int respawnTime, int x, int y, int type, int i, int j) {
new Object(i, x, y, 0, type, 10, j, respawnTime);
public static void cutDownTree(int respawnTime, int objectX, int objectY, int type, int i, int objectId) {
new Object(i, objectX, objectY, 0, type, 10, objectId, respawnTime);
for (int t = 0; t < PlayerHandler.players.length; t++) {
if (PlayerHandler.players[t] != null) {
if (PlayerHandler.players[t].treeX == x && PlayerHandler.players[t].treeY == y) {
if (PlayerHandler.players[t].treeX == objectX && PlayerHandler.players[t].treeY == objectY) {
PlayerHandler.players[t].isWoodcutting = false;
PlayerHandler.players[t].startAnimation(65535);
PlayerHandler.players[t].treeX = 0;