- 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)
This commit is contained in:
Mr Extremez
2019-12-14 22:46:05 -06:00
committed by Daniel Ginovker
parent 37322d4874
commit 87eaaed36f
8 changed files with 45 additions and 18 deletions
+4
View File
@@ -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++;
}
@@ -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];
}
@@ -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;
@@ -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;
}
}
}
}
@@ -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;
@@ -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) {
@@ -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(
@@ -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.");
}