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
This commit is contained in:
Nick Gal
2021-02-03 17:32:34 -08:00
committed by GitHub
parent fa167bacd3
commit 15ab625349
2 changed files with 10 additions and 12 deletions
@@ -63,8 +63,8 @@ public class SkillHandler {
player.isSmithing = false; player.isSmithing = false;
} else if (isSkilling[12]) {// crafting } else if (isSkilling[12]) {// crafting
isSkilling[12] = false; isSkilling[12] = false;
} else if (player.isSmelting) { } else if (player.isSmelting || player.playerSkilling[13]) {// smelting
player.isSmelting = false; Smelting.resetSmelting(player);
} else if (player.isCrafting) { } else if (player.isCrafting) {
player.isCrafting = false; player.isCrafting = false;
} else if (player.isPotionMaking) {// herblore } else if (player.isPotionMaking) {// herblore
@@ -77,8 +77,6 @@ public class SkillHandler {
player.isPotCrafting = false; player.isPotCrafting = false;
} else if (player.playerIsCooking) {// cooking } else if (player.playerIsCooking) {// cooking
Cooking.setCooking(player, false); Cooking.setCooking(player, false);
} else if (player.playerSkilling[13]) {// smelting
Smelting.resetSmelting(player);
} }
} }
@@ -96,8 +94,8 @@ public class SkillHandler {
player.isSmithing = false; player.isSmithing = false;
} else if (isSkilling[12]) {// crafting } else if (isSkilling[12]) {// crafting
isSkilling[12] = false; isSkilling[12] = false;
} else if (player.isSmelting) { } else if (player.isSmelting || player.playerSkilling[13]) {// smelting
player.isSmelting = false; Smelting.resetSmelting(player);
} else if (player.isCrafting) { } else if (player.isCrafting) {
player.isCrafting = false; player.isCrafting = false;
} else if (player.isPotionMaking) {// herblore } else if (player.isPotionMaking) {// herblore
@@ -127,27 +127,27 @@ public class Smelting extends SkillHandler {
if (c.playerSkillProp[13][3] == IRON && c.playerSkillProp[13][4] == -1 && c.isSmelting) { if (c.playerSkillProp[13][3] == IRON && c.playerSkillProp[13][4] == -1 && c.isSmelting) {
// Ring of forging // Ring of forging
if (c.playerEquipment[c.playerRing] == 2568) { 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.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 { } else {
if (Misc.random(100) >= 50) { 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.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 { } else {
c.getPacketSender().sendMessage("You failed to smelt the iron bar."); c.getPacketSender().sendMessage("You failed to smelt the iron bar.");
} }
} }
} else if (c.playerSkillProp[13][3] == GOLD && c.playerEquipment[c.playerHands] == 776 && c.isSmelting) { } 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.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.getItemAssistant().addItem(c.playerSkillProp[13][6], 1);// item
c.getPlayerAssistant().addSkillXP(56.2, c.playerSmithing);
} else if (c.isSmelting){ } else if (c.isSmelting){
c.getPacketSender().sendMessage("You receive a " + ItemAssistant.getItemName(c.playerSkillProp[13][6]).toLowerCase() + "."); 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.getItemAssistant().addItem(c.playerSkillProp[13][6], 1);// item
c.getPlayerAssistant().addSkillXP(c.playerSkillProp[13][2], c.playerSmithing);
} }
////////////////////// CHECKING ////////////////////// ////////////////////// CHECKING //////////////////////