From ffc3e02f59aa100544d2ee906141d29edab5e3a1 Mon Sep 17 00:00:00 2001 From: Ben Maher Date: Mon, 7 Oct 2019 01:14:04 +0100 Subject: [PATCH] Oct6 (#28) * Revised shop re-stocking interval. * Revised shop re-stocking interval. * Updated character save directory. * Renamed new player save directory from accounts to characters. * Added inverse for random toggle, since it's the first thing I type every time. * Added god capes. * Re-implemented experiments. * Yell now looks a little cleaner. * Fixed outside of bounds exception on High scores, when player count doesn't meet threshold. * Cleaned up Magic Teleports class and added level requirements. * Fixed exit portal from ancient chamber. * Added check to ensure axe id isn't outside the bounds of expected axes. * Added yet another check to ensure that the player has the required item before chopping a tree. NOTE this fix may not work as the issue is not reproducible locally. * Changed allowed connections from 3 to 250! * Sheep shearing just got easier! --- 2006Redone Server/src/redone/game/npcs/Npc.java | 16 +++++++--------- .../src/redone/net/packets/impl/ItemOnNpc.java | 9 ++++++++- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/2006Redone Server/src/redone/game/npcs/Npc.java b/2006Redone Server/src/redone/game/npcs/Npc.java index b8c63ad9..360bb034 100644 --- a/2006Redone Server/src/redone/game/npcs/Npc.java +++ b/2006Redone Server/src/redone/game/npcs/Npc.java @@ -64,19 +64,16 @@ public class Npc { updateRequired = true; } - public void requestTransformTime(Client player, int itemId, int animation, final int currentId, final int newId, int transformTime) { + public boolean requestTransformTime(Client player, int itemId, int animation, final int currentId, final int newId, int transformTime, int npcId) { if (!player.getItemAssistant().playerHasItem(itemId)) { player.getActionSender().sendMessage("You need " + ItemAssistant.getItemName(itemId).toLowerCase() + " to do that."); - return; + return false; } - if (NpcHandler.npcs[currentId].isTransformed == true) { - player.getActionSender().sendMessage("This npc is already transformed."); - return; - } - if (animation > 0) { + if (NpcHandler.npcs[npcId].isTransformed == true) + return false; + if (animation > 0) player.startAnimation(animation); - } - NpcHandler.npcs[currentId].isTransformed = true; + NpcHandler.npcs[npcId].isTransformed = true; requestTransform(newId); CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() { @@ -91,6 +88,7 @@ public class Npc { NpcHandler.npcs[currentId].isTransformed = false; } }, transformTime); + return true; } public void appendTransformUpdate(Stream str) { diff --git a/2006Redone Server/src/redone/net/packets/impl/ItemOnNpc.java b/2006Redone Server/src/redone/net/packets/impl/ItemOnNpc.java index 3ff38920..614acccc 100644 --- a/2006Redone Server/src/redone/net/packets/impl/ItemOnNpc.java +++ b/2006Redone Server/src/redone/net/packets/impl/ItemOnNpc.java @@ -28,7 +28,14 @@ public class ItemOnNpc implements PacketType { player.faceNpc(i); switch(npcId) { case 43: - NpcHandler.npcs[i].requestTransformTime(player, 1735, 893, 43, 42, 50); + if (NpcHandler.npcs[i].requestTransformTime(player, 1735, 893, 43, 42, 50, i)) + { + player.getItemAssistant().addItem(1737, 1); + } + else + { + player.getActionSender().sendMessage("You need to wait for this sheep's wool to regrow!"); + } break; } if (player.getItemAssistant().playerHasItem(995, 1) && npcId == 736) {