mirror of
https://github.com/2006-Scape/2006Scape.git
synced 2026-07-03 00:31:51 +00:00
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)
This commit is contained in:
committed by
Daniel Ginovker
parent
37322d4874
commit
87eaaed36f
@@ -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.");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user