From 87eaaed36fc76fa277b2082915ef6b8f6c0cd7c3 Mon Sep 17 00:00:00 2001 From: Mr Extremez Date: Sat, 14 Dec 2019 22:46:05 -0600 Subject: [PATCH] Fixes (#293) - Added ROL for player and npcs - Fixed Redemption now works for players and NPCs - Fixed prayer not updating on prayer tab when it goes down in points - Fixed not being able to use glories after trading them - Fixed item spawn crash (only affected some people such as myself and a few others) --- 2006Redone Client/src/Game.java | 4 ++++ 2006Redone Client/src/TextDrawingArea.java | 4 ++++ .../game/content/combat/CombatAssistant.java | 10 -------- .../game/content/combat/npcs/NpcCombat.java | 24 +++++++++++++------ .../src/com/rebotted/game/players/Player.java | 1 + .../game/players/PlayerAssistant.java | 16 +++++++++++++ .../net/packets/impl/ClickingButtons.java | 2 ++ .../rebotted/net/packets/impl/Commands.java | 2 +- 8 files changed, 45 insertions(+), 18 deletions(-) diff --git a/2006Redone Client/src/Game.java b/2006Redone Client/src/Game.java index 75660100..ada887ba 100644 --- a/2006Redone Client/src/Game.java +++ b/2006Redone Client/src/Game.java @@ -393,7 +393,11 @@ public class Game extends RSApplet { } if (l == 0) { if (i1 > 0 && i1 < 110) { + try { textDrawingArea.method389(false, 4, 0, chatMessages[k], i1); + } catch (Exception e) { + + } } j++; } diff --git a/2006Redone Client/src/TextDrawingArea.java b/2006Redone Client/src/TextDrawingArea.java index abc6682b..6d47c883 100644 --- a/2006Redone Client/src/TextDrawingArea.java +++ b/2006Redone Client/src/TextDrawingArea.java @@ -200,7 +200,11 @@ public final class TextDrawingArea extends DrawingArea { if (flag1) { method392(aByteArrayArray1491[c], i + anIntArray1494[c] + 1, k + anIntArray1495[c] + 1, anIntArray1492[c], anIntArray1493[c], 0); } + try { method392(aByteArrayArray1491[c], i + anIntArray1494[c], k + anIntArray1495[c], anIntArray1492[c], anIntArray1493[c], j); + } catch (Exception e) { + + } } i += anIntArray1496[c]; } diff --git a/2006Redone Server/src/com/rebotted/game/content/combat/CombatAssistant.java b/2006Redone Server/src/com/rebotted/game/content/combat/CombatAssistant.java index 3d7d067a..55a437d4 100644 --- a/2006Redone Server/src/com/rebotted/game/content/combat/CombatAssistant.java +++ b/2006Redone Server/src/com/rebotted/game/content/combat/CombatAssistant.java @@ -2150,16 +2150,6 @@ public class CombatAssistant { } } - /* - * public void applyRecoil(int damage, int i) { if (damage > 0 && - * PlayerHandler.players[i].playerEquipment[c.playerRing] == 2550) { int - * recDamage = damage / 10 + 1; if (!c.getHitUpdateRequired()) { - * c.setHitDiff(recDamage); c.setHitUpdateRequired(true); } else if - * (!c.getHitUpdateRequired2()) { c.setHitDiff2(recDamage); - * c.setHitUpdateRequired2(true); } c.dealDamage(recDamage); - * c.updateRequired = true; } } - */ - public static void applyRecoilNPC(Client c, int damage, int i) { if (c == null || c.npcIndex == 0) { return; diff --git a/2006Redone Server/src/com/rebotted/game/content/combat/npcs/NpcCombat.java b/2006Redone Server/src/com/rebotted/game/content/combat/npcs/NpcCombat.java index 987e4b83..042e031f 100644 --- a/2006Redone Server/src/com/rebotted/game/content/combat/npcs/NpcCombat.java +++ b/2006Redone Server/src/com/rebotted/game/content/combat/npcs/NpcCombat.java @@ -665,13 +665,23 @@ public class NpcCombat { if (damage > 0) { CombatAssistant.applyRecoilNPC(c, damage, i); } - NpcHandler.handleSpecialEffects(c, i, damage); - c.logoutDelay = System.currentTimeMillis(); // logout delay - c.handleHitMask(damage); - c.playerLevel[3] -= damage; - c.getPlayerAssistant().refreshSkill(3); - FightCaves.tzKihEffect(c, i, damage); - c.updateRequired = true; + if (c.playerLevel[3] - damage < 0) { + damage = c.playerLevel[3]; + } + int difference = c.playerLevel[3] - damage; + if (c.getPlayerAssistant().savePlayer()) { + c.getPlayerAssistant().handleROL(); + } else if (difference <= c.getLevelForXP(c.playerXP[3]) / 10 && difference > 0) { + c.appendRedemption(); + } else { + NpcHandler.handleSpecialEffects(c, i, damage); + c.logoutDelay = System.currentTimeMillis(); // logout delay + c.handleHitMask(damage); + c.playerLevel[3] -= damage; + c.getPlayerAssistant().refreshSkill(3); + FightCaves.tzKihEffect(c, i, damage); + c.updateRequired = true; + } } } } diff --git a/2006Redone Server/src/com/rebotted/game/players/Player.java b/2006Redone Server/src/com/rebotted/game/players/Player.java index 5710fa47..21c3dab7 100644 --- a/2006Redone Server/src/com/rebotted/game/players/Player.java +++ b/2006Redone Server/src/com/rebotted/game/players/Player.java @@ -3093,6 +3093,7 @@ public abstract class Player { int difference = playerLevel[3] - damage; if (difference <= getLevelForXP(playerXP[3]) / 10 && difference > 0) appendRedemption(); + getPlayerAssistant().handleROL(); } else { if (hitUpdateRequired) { hitUpdateRequired = false; diff --git a/2006Redone Server/src/com/rebotted/game/players/PlayerAssistant.java b/2006Redone Server/src/com/rebotted/game/players/PlayerAssistant.java index 4129f77e..f65ea8b2 100644 --- a/2006Redone Server/src/com/rebotted/game/players/PlayerAssistant.java +++ b/2006Redone Server/src/com/rebotted/game/players/PlayerAssistant.java @@ -37,6 +37,19 @@ public class PlayerAssistant { this.player = player2; } + public boolean savePlayer() { + return (player.wildLevel < 20 && player.playerEquipment[GameConstants.RING] == 2570 && player.playerLevel[3] > 0 && player.playerLevel[3] <= player.getLevelForXP(player.playerXP[3]) / 10 && player.underAttackBy > 0); + } + + public void handleROL() { + if (!savePlayer()) { + return; + } + player.getItemAssistant().deleteEquipment(2570, GameConstants.RING); + player.getPlayerAssistant().startTeleport(3222, 3218, 0, "modern"); + player.getPacketSender().sendMessage("Your ring of life saves you."); + } + public void objectAnim(int X, int Y, int animationID, int tileObjectType, int orientation) { for (Player p : PlayerHandler.players) { if(p != null) { @@ -2062,6 +2075,9 @@ public class PlayerAssistant { player.getPacketSender().sendFrame126("" + getLevelForXP(player.playerXP[skill]) + "", data.get().getFrame5()); player.getPacketSender().sendFrame126("" + player.playerXP[skill] + "", data.get().getFrame6()); player.getPacketSender().sendFrame126("" + getXPForLevel(getLevelForXP(player.playerXP[skill]) + 1) + "", data.get().getFrame7()); + if (skill == 5) { + player.getPacketSender().sendFrame126("" + player.playerLevel[5] + "/" + getLevelForXP(player.playerXP[5]) + "", 687);// Prayer + } } public int getXPForLevel(int level) { diff --git a/2006Redone Server/src/com/rebotted/net/packets/impl/ClickingButtons.java b/2006Redone Server/src/com/rebotted/net/packets/impl/ClickingButtons.java index f75a53b0..bb5a0fda 100644 --- a/2006Redone Server/src/com/rebotted/net/packets/impl/ClickingButtons.java +++ b/2006Redone Server/src/com/rebotted/net/packets/impl/ClickingButtons.java @@ -1737,6 +1737,8 @@ public class ClickingButtons implements PacketType { "@red@Trade completed."); ot1.getPacketSender().sendMessage( "@red@Trade completed."); + player.tradeStatus = 0; + ot1.tradeStatus = 0; break; } ot1.getPacketSender().sendFrame126( diff --git a/2006Redone Server/src/com/rebotted/net/packets/impl/Commands.java b/2006Redone Server/src/com/rebotted/net/packets/impl/Commands.java index a04d02e1..571fd1bd 100644 --- a/2006Redone Server/src/com/rebotted/net/packets/impl/Commands.java +++ b/2006Redone Server/src/com/rebotted/net/packets/impl/Commands.java @@ -641,7 +641,7 @@ public class Commands implements PacketType { if (player.isBusy()) { player.getPacketSender().closeAllWindows(); } - player.getPacketSender().sendMessage("You spawn " + newItemAmount + " × "+ ItemAssistant.getItemName(newItemID) + "."); + // player.getPacketSender().sendMessage("You spawn " + newItemAmount + " × "+ ItemAssistant.getItemName(newItemID) + "."); } else { player.getPacketSender().sendMessage("No such item."); }