From 15ab6253499e5f5a38372a296d35aa30492dd6d6 Mon Sep 17 00:00:00 2001 From: Nick Gal Date: Wed, 3 Feb 2021 17:32:34 -0800 Subject: [PATCH] Fix bug where leveling up while Smelting would consume ores. (#473) * Fix bug where leveling up while Smelting would consume ores. * Making sending message before adding skill xp more consistent. If you level up while smelting iron, playerSkillProp[13] gets cleared and getItemName will fallback to Unarmed --- .../rebotted/game/content/skills/SkillHandler.java | 10 ++++------ .../game/content/skills/smithing/Smelting.java | 12 ++++++------ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/2006Redone Server/src/main/java/com/rebotted/game/content/skills/SkillHandler.java b/2006Redone Server/src/main/java/com/rebotted/game/content/skills/SkillHandler.java index 23e7bb81..8f2a9f62 100644 --- a/2006Redone Server/src/main/java/com/rebotted/game/content/skills/SkillHandler.java +++ b/2006Redone Server/src/main/java/com/rebotted/game/content/skills/SkillHandler.java @@ -63,8 +63,8 @@ public class SkillHandler { player.isSmithing = false; } else if (isSkilling[12]) {// crafting isSkilling[12] = false; - } else if (player.isSmelting) { - player.isSmelting = false; + } else if (player.isSmelting || player.playerSkilling[13]) {// smelting + Smelting.resetSmelting(player); } else if (player.isCrafting) { player.isCrafting = false; } else if (player.isPotionMaking) {// herblore @@ -77,8 +77,6 @@ public class SkillHandler { player.isPotCrafting = false; } else if (player.playerIsCooking) {// cooking Cooking.setCooking(player, false); - } else if (player.playerSkilling[13]) {// smelting - Smelting.resetSmelting(player); } } @@ -96,8 +94,8 @@ public class SkillHandler { player.isSmithing = false; } else if (isSkilling[12]) {// crafting isSkilling[12] = false; - } else if (player.isSmelting) { - player.isSmelting = false; + } else if (player.isSmelting || player.playerSkilling[13]) {// smelting + Smelting.resetSmelting(player); } else if (player.isCrafting) { player.isCrafting = false; } else if (player.isPotionMaking) {// herblore diff --git a/2006Redone Server/src/main/java/com/rebotted/game/content/skills/smithing/Smelting.java b/2006Redone Server/src/main/java/com/rebotted/game/content/skills/smithing/Smelting.java index d51f12e0..e13e2dd8 100644 --- a/2006Redone Server/src/main/java/com/rebotted/game/content/skills/smithing/Smelting.java +++ b/2006Redone Server/src/main/java/com/rebotted/game/content/skills/smithing/Smelting.java @@ -127,27 +127,27 @@ public class Smelting extends SkillHandler { if (c.playerSkillProp[13][3] == IRON && c.playerSkillProp[13][4] == -1 && c.isSmelting) { // Ring of forging if (c.playerEquipment[c.playerRing] == 2568) { - c.getPlayerAssistant().addSkillXP(c.playerSkillProp[13][2], c.playerSmithing); - c.getItemAssistant().addItem(c.playerSkillProp[13][6], 1);// item c.getPacketSender().sendMessage("You receive an " + ItemAssistant.getItemName(c.playerSkillProp[13][6]).toLowerCase() + "."); + c.getItemAssistant().addItem(c.playerSkillProp[13][6], 1);// item + c.getPlayerAssistant().addSkillXP(c.playerSkillProp[13][2], c.playerSmithing); } else { if (Misc.random(100) >= 50) { - c.getPlayerAssistant().addSkillXP(c.playerSkillProp[13][2], c.playerSmithing); - c.getItemAssistant().addItem(c.playerSkillProp[13][6], 1);// item c.getPacketSender().sendMessage("You receive an " + ItemAssistant.getItemName(c.playerSkillProp[13][6]).toLowerCase() + "."); + c.getItemAssistant().addItem(c.playerSkillProp[13][6], 1);// item + c.getPlayerAssistant().addSkillXP(c.playerSkillProp[13][2], c.playerSmithing); } else { c.getPacketSender().sendMessage("You failed to smelt the iron bar."); } } } else if (c.playerSkillProp[13][3] == GOLD && c.playerEquipment[c.playerHands] == 776 && c.isSmelting) { c.getPacketSender().sendMessage("You receive a " + ItemAssistant.getItemName(c.playerSkillProp[13][6]).toLowerCase() + "."); - c.getPlayerAssistant().addSkillXP(56.2, c.playerSmithing); c.getItemAssistant().addItem(c.playerSkillProp[13][6], 1);// item + c.getPlayerAssistant().addSkillXP(56.2, c.playerSmithing); } else if (c.isSmelting){ c.getPacketSender().sendMessage("You receive a " + ItemAssistant.getItemName(c.playerSkillProp[13][6]).toLowerCase() + "."); - c.getPlayerAssistant().addSkillXP(c.playerSkillProp[13][2], c.playerSmithing); c.getItemAssistant().addItem(c.playerSkillProp[13][6], 1);// item + c.getPlayerAssistant().addSkillXP(c.playerSkillProp[13][2], c.playerSmithing); } ////////////////////// CHECKING //////////////////////