you just said why..
Printable View
Here is more 4 bugs not in the list:
1. Ancient spellbook there are 5 buttons hovors are bugged..
2. How to Remove objects?
3. Clan chat ( Allow teleport + copy-kit in clan chat setup is bugged ).
4. emotes tab ( there are 2 images are invsable ).
Any help?
[QUOTE=Gkua;5319763]Here is more 4 bugs not in the list:
1. Ancient spellbook there are 5 buttons hovors are bugged..
2. How to Remove objects?
3. Clan chat ( Allow teleport + copy-kit in clan chat setup is bugged ).
4. emotes tab ( there are 2 images are invsable ).
Yes what Omnee said about this will help to fix your problems. Use the Os-Brutality #129 client relesed by A-mage (google os-brutality #129, fixes for it are in comments..) This source will be overlooked by all of you if you think its shit. Im not going to tell you why it is amazing, but if you want a half decent server down the road and are WILLING TO PUT THE TIME INTO ACTUALLY CREATING CONTENT AND FIXING PROBLEMS, than you will have a very good server to call your own. It's basic PI, and most of the problems are released fix's in other threads.
cool thanks for help
i felt like this has some kind of anti-leech or at least some good stuff removed/damaged on release intentionally
The amount of code used for such simple things, seems unbelievably overkill and annoying to work with :p
If the combat was entity based, you could just do something like (Code was written up really quick by hand);
getCloseRandomPlayer() (Also written really quickly from on top of my head):Code:public static void applyRecoilNPC(final Entity attacker, final Damage damage) {
if (!(entity instanceof Player)) {
return;
}
final recoilDamage = damage.getCount() / 10;
if (recoilDamage > 0 && entity.getEquipment().contains(RECOIL)) {
attacker.getDamageManager().submit(new Damage(DATA));
entity.decremetRecoilHits(1);
if (entity.getRecoilHits() <= 0) {
entity.getEquipment().remove(RECOIL);
final Player player = (Player) entity;
if (player != null)
player.sendOutgoingPacket(new Message("The recoil has shattered"));
}
}
}
Compared to:Code:public int getRandomClosePlayer() {
if (getHitpoints() <= 0 || isDead() || getCombatBuilder().getUnderAttackBy() != null || getCombatBuilder().getTarget() != null)
return -1;
final List<Player> players = new ArrayList<Player>();
RegionManager.getLocalPlayers(getPosition()).forEach(player -> {
if (getPosition().isWithinRange(player, distance) && player.getCombatBuilder().getUnderAttackBy() == null) {
players.add(player);
}
});
return players.size() > 0 ? players.get(random.nextInt(players.size()) : -1;
}
However, take my code with a grain of salt, I'm by no means the best person on here to give you advice :pCode:public int getCloseRandomPlayer(int i) {
ArrayList<Integer> players = new ArrayList<>();
for (int j = 0; j < PlayerHandler.players.length; j++) {
if (PlayerHandler.players[j] != null) {
if (Boundary.isIn(npcs[i], Boundary.GODWARS_BOSSROOMS)) {
if (!Boundary.isIn(PlayerHandler.players[j], Boundary.GODWARS_BOSSROOMS)) {
npcs[i].killerId = 0;
continue;
}
}
if (goodDistance(PlayerHandler.players[j].absX, PlayerHandler.players[j].absY, npcs[i].absX,
npcs[i].absY, distanceRequired(i) + followDistance(i)) || isFightCaveNpc(i)) {
if ((PlayerHandler.players[j].underAttackBy <= 0 && PlayerHandler.players[j].underAttackBy2 <= 0)
|| PlayerHandler.players[j].inMulti())
if (PlayerHandler.players[j].heightLevel == npcs[i].heightLevel)
players.add(j);
}
}
}
if (players.size() > 0)
return players.get(Misc.random(players.size() - 1));
return 0;
}