From 7261568e2d1aaa2c0202782bb53cc50af3ae445e Mon Sep 17 00:00:00 2001 From: dark98 Date: Fri, 2 Apr 2021 23:01:48 +0100 Subject: [PATCH] Added Player Morphing to Ring Of Stone & Easter Ring --- .../com/rs2/game/players/PlayerAssistant.java | 14 +++++++++++++ .../rs2/net/packets/impl/ClickingButtons.java | 4 +++- .../com/rs2/net/packets/impl/Walking.java | 5 +++++ .../com/rs2/net/packets/impl/WearItem.java | 21 +++++++++++++++++++ 4 files changed, 43 insertions(+), 1 deletion(-) diff --git a/2006Scape Server/src/main/java/com/rs2/game/players/PlayerAssistant.java b/2006Scape Server/src/main/java/com/rs2/game/players/PlayerAssistant.java index 4eb5bfe9..b2359fcf 100644 --- a/2006Scape Server/src/main/java/com/rs2/game/players/PlayerAssistant.java +++ b/2006Scape Server/src/main/java/com/rs2/game/players/PlayerAssistant.java @@ -2259,6 +2259,20 @@ public class PlayerAssistant { return player.getItemAssistant().getBankQuantity(996) + player.getItemAssistant().getItemAmount(995); } + public void unMorphPlayer() { + sendSidebars(); + player.getItemAssistant().sendWeapon(player.playerEquipment[player.playerWeapon], ItemAssistant.getItemName(player.playerEquipment[player.playerWeapon])); + if (player.playerEquipment[player.playerRing] == 6583 || player.playerEquipment[player.playerRing] == 7927) { + int ring = player.playerEquipment[player.playerRing]; + player.getItemAssistant().deleteEquipment(ring, player.playerRing); + player.getItemAssistant().addItem(ring, 1); + } + player.wearId = 0; + player.isNpc = false; + player.updateRequired = true; + player.appearanceUpdateRequired = true; + } + /** * anchors the camera to a specific view (for cutscenes) * @param x The X Coordinate (Within the player's loaded area) diff --git a/2006Scape Server/src/main/java/com/rs2/net/packets/impl/ClickingButtons.java b/2006Scape Server/src/main/java/com/rs2/net/packets/impl/ClickingButtons.java index 1798d19a..6fbd4020 100644 --- a/2006Scape Server/src/main/java/com/rs2/net/packets/impl/ClickingButtons.java +++ b/2006Scape Server/src/main/java/com/rs2/net/packets/impl/ClickingButtons.java @@ -80,7 +80,9 @@ public class ClickingButtons implements PacketType { player.assignAutocast(actionButtonId); } switch (actionButtonId) { - + case 23132: + player.getPlayerAssistant().unMorphPlayer(); + break; case 55096: player.getPacketSender().closeAllWindows(); diff --git a/2006Scape Server/src/main/java/com/rs2/net/packets/impl/Walking.java b/2006Scape Server/src/main/java/com/rs2/net/packets/impl/Walking.java index b4377058..8975382f 100644 --- a/2006Scape Server/src/main/java/com/rs2/net/packets/impl/Walking.java +++ b/2006Scape Server/src/main/java/com/rs2/net/packets/impl/Walking.java @@ -163,6 +163,11 @@ public class Walking implements PacketType { return; } + if (player.wearId == 6583 || player.wearId == 7927) { + player.getPlayerAssistant().unMorphPlayer(); + player.getPacketSender().sendMessage("You Can't Move While Being Morphed"); + } + player.endCurrentTask(); if (packetType == 248) { diff --git a/2006Scape Server/src/main/java/com/rs2/net/packets/impl/WearItem.java b/2006Scape Server/src/main/java/com/rs2/net/packets/impl/WearItem.java index 43bf576d..334262f0 100644 --- a/2006Scape Server/src/main/java/com/rs2/net/packets/impl/WearItem.java +++ b/2006Scape Server/src/main/java/com/rs2/net/packets/impl/WearItem.java @@ -1,9 +1,11 @@ package com.rs2.net.packets.impl; +import com.rs2.GameConstants; import com.rs2.game.items.Weight; import com.rs2.game.items.impl.RareProtection; import com.rs2.game.players.Player; import com.rs2.net.packets.PacketType; +import com.rs2.util.Misc; /** * Wear Item @@ -53,6 +55,25 @@ public class WearItem implements PacketType { player.getPacketSender().setConfig(491, 0); } + if(player.wearId == 6583 || player.wearId == 7927) { + for (int i = 0; i < GameConstants.SIDEBARS.length; i++) { + player.getPacketSender().setSidebarInterface(i, 6014); + } + switch(player.wearId) { + case 6583: + player.getPacketSender().sendMessage("As you put on the ring you turn into an rock!"); + player.npcId2 = 2626; + break; + case 7927: + player.getPacketSender().sendMessage("As you put on the ring you turn into an egg!"); + player.npcId2 = 3689 + Misc.random(5); + break; + } + player.isNpc = true; + player.updateRequired = true; + player.setAppearanceUpdateRequired(true); + } + player.getPlayerAssistant().handleTiara(); player.getItemAssistant().wearItem(player.wearId, player.wearSlot); Weight.updateWeight(player);