From a27b9e22f9201ba0ac72d7d9f421bc6880a97b34 Mon Sep 17 00:00:00 2001 From: Gptaqbc <56596815+Gptaqbc@users.noreply.github.com> Date: Thu, 19 Dec 2019 22:50:15 -0500 Subject: [PATCH] Random stuff 3 (#304) * Make ::update automatically restart server as well * Add bank area checks back since previously you could open a bank, and as long as you didn't open another interface you could abuse it * Fix noclip (NEEDS TESTING) * Revert "Fix noclip (#302)" This reverts commit 521ae52e4ca17a4732f1718ab767502f8a293468. * ::clip command removed, fixed a typo, reordered some stuff, fixed a bug with others cannon -Removed the clip command from the client; -Fixed a typo in a dialogue; -Fixed mud battlestaff nto working as runes (water and earth); -Fixed a bug with other cannons near you preventing you from setting down a cannon. Somehow your player would glitch himself and make it impossible to spawn a cannon at certain spot; Co-authored-by: Daniel Ginovker --- 2006Redone Client/src/Game.java | 12 ------------ .../combat/magic/MagicRequirements.java | 4 ++-- .../content/combat/range/DwarfCannon.java | 10 ++++++---- .../game/dialogues/DialogueHandler.java | 2 +- .../src/com/rebotted/game/players/Player.java | 2 ++ .../game/players/PlayerAssistant.java | 7 +++---- .../rebotted/game/shops/ShopAssistant.java | 5 ----- .../rebotted/game/items/ItemAssistant.class | Bin 48065 -> 48022 bytes 8 files changed, 14 insertions(+), 28 deletions(-) diff --git a/2006Redone Client/src/Game.java b/2006Redone Client/src/Game.java index 157a67a5..5264f37f 100644 --- a/2006Redone Client/src/Game.java +++ b/2006Redone Client/src/Game.java @@ -4795,18 +4795,6 @@ public class Game extends RSApplet { if (inputString.equals("::dataon")) { showInfo = !showInfo; } - if (inputString.equals("::clip")) { - for (int k1 = 0; k1 < 4; k1++) { - for (int i2 = 1; i2 < 103; i2++) { - for (int k2 = 1; k2 < 103; k2++) { - aClass11Array1230[k1].anIntArrayArray294[i2][k2] = 0; - } - - } - - } - - } } if (inputString.startsWith("::")) { stream.createFrame(103); diff --git a/2006Redone Server/src/com/rebotted/game/content/combat/magic/MagicRequirements.java b/2006Redone Server/src/com/rebotted/game/content/combat/magic/MagicRequirements.java index 0330aedd..46de09bc 100644 --- a/2006Redone Server/src/com/rebotted/game/content/combat/magic/MagicRequirements.java +++ b/2006Redone Server/src/com/rebotted/game/content/combat/magic/MagicRequirements.java @@ -15,7 +15,7 @@ public class MagicRequirements { } break; case 555: - if (wep == 1383 || wep == 1395) { + if (wep == 1383 || wep == 1395 || wep == 6562) { return true; } break; @@ -25,7 +25,7 @@ public class MagicRequirements { } break; case 557: - if (wep == 1385 || wep == 1399 || wep == 3053) { + if (wep == 1385 || wep == 1399 || wep == 3053 || wep == 6562) { return true; } break; diff --git a/2006Redone Server/src/com/rebotted/game/content/combat/range/DwarfCannon.java b/2006Redone Server/src/com/rebotted/game/content/combat/range/DwarfCannon.java index 92df80e1..c77efb2a 100644 --- a/2006Redone Server/src/com/rebotted/game/content/combat/range/DwarfCannon.java +++ b/2006Redone Server/src/com/rebotted/game/content/combat/range/DwarfCannon.java @@ -86,6 +86,7 @@ public class DwarfCannon { if (setUpStage >= 4) { container.stop(); setUpStage = 0; + player.CannonSetupStage = setUpStage; settingUp = false; return; } @@ -102,6 +103,7 @@ public class DwarfCannon { placeObject(OBJECT_PARTS[setUpStage], player.absX, player.absY, true); player.getItemAssistant().deleteItem(ITEM_PARTS[setUpStage], 1); setUpStage ++; + player.CannonSetupStage = setUpStage; } @Override public void stop() { @@ -148,7 +150,7 @@ public class DwarfCannon { } public boolean hasCannon() { - return (player.cannonX > 0) && (player.cannonY > 0) || (player.cannonX > 0 && player.cannonY > 0); + return (player.CannonSetupStage != 0 || (player.cannonX > 0 && player.cannonY > 0)); } private boolean myCannon(int x, int y) { @@ -313,7 +315,7 @@ public class DwarfCannon { } } } - + public void pickup(int x, int y) { if (!myCannon(x, y)) { player.getPacketSender().sendMessage("You can't pick up somebody else's cannon!"); @@ -343,13 +345,13 @@ public class DwarfCannon { player.cannonX = 0; player.cannonY = 0; } - + public void placeObject(int id, int x, int y, boolean add) { GameEngine.objectHandler.placeObject(new Objects(id, x, y, 0, 516, 10, 0)); if (add) Region.addObject(id, x, y, 0, 10, 516, true); } - + public void removeObject(int x, int y) { placeObject(-1, x, y, false); } diff --git a/2006Redone Server/src/com/rebotted/game/dialogues/DialogueHandler.java b/2006Redone Server/src/com/rebotted/game/dialogues/DialogueHandler.java index 40aa59d6..e28eea05 100644 --- a/2006Redone Server/src/com/rebotted/game/dialogues/DialogueHandler.java +++ b/2006Redone Server/src/com/rebotted/game/dialogues/DialogueHandler.java @@ -1184,7 +1184,7 @@ public class DialogueHandler { break; case 247: sendNpcChat3( - "But, when this tower was burnt down, the sercret of creating runes was lost with it...", + "But, when this tower was burnt down, the secret of creating runes was lost with it...", "or so I thought.", "Some months ago, while searching these ruins for information, ", player.talkingNpc, "Sedridor"); diff --git a/2006Redone Server/src/com/rebotted/game/players/Player.java b/2006Redone Server/src/com/rebotted/game/players/Player.java index a8f74b4e..96379b29 100644 --- a/2006Redone Server/src/com/rebotted/game/players/Player.java +++ b/2006Redone Server/src/com/rebotted/game/players/Player.java @@ -1187,6 +1187,8 @@ public abstract class Player { public boolean lostCannon = false, refresh = false, isBot = false; + public int CannonSetupStage; + public ArrayList killedPlayers = new ArrayList(); public ArrayList attackedPlayers = new ArrayList(); public ArrayList lastKilledPlayers = new ArrayList(); diff --git a/2006Redone Server/src/com/rebotted/game/players/PlayerAssistant.java b/2006Redone Server/src/com/rebotted/game/players/PlayerAssistant.java index f65ea8b2..2b873dcd 100644 --- a/2006Redone Server/src/com/rebotted/game/players/PlayerAssistant.java +++ b/2006Redone Server/src/com/rebotted/game/players/PlayerAssistant.java @@ -2014,10 +2014,9 @@ public class PlayerAssistant { player.getPlayerAssistant().addStarter(); player.getPlayerAssistant().movePlayer(3233, 3229, 0); player.getPacketSender().sendMessage("Welcome to @blu@" + GameConstants.SERVER_NAME + "@bla@ - we are currently in Server Stage v@blu@" + GameConstants.TEST_VERSION + "@bla@."); - player.getPacketSender().sendMessage("@red@Did you know?@bla@ We're open source! Pull requests are welcome"); - player.getPacketSender().sendMessage("Source code at github.com/dginovker/2006rebotted"); - player.getPacketSender().sendMessage("Welcome to the Beta! A reset will occur before main release -"); - player.getPacketSender().sendMessage("Join our Discord: discord.gg/4zrA2Wy"); + player.getPacketSender().sendMessage("@red@Did you know?@bla@ We're open source and pull requests are welcome!"); + player.getPacketSender().sendMessage("Source code: github.com/dginovker/2006rebotted"); + player.getPacketSender().sendMessage("Discord: discord.gg/4zrA2Wy"); player.getDialogueHandler().sendDialogues(3115, 2224); player.isRunning2 = false; player.autoRet = 1; diff --git a/2006Redone Server/src/com/rebotted/game/shops/ShopAssistant.java b/2006Redone Server/src/com/rebotted/game/shops/ShopAssistant.java index 29cb5991..a0fa218e 100644 --- a/2006Redone Server/src/com/rebotted/game/shops/ShopAssistant.java +++ b/2006Redone Server/src/com/rebotted/game/shops/ShopAssistant.java @@ -344,11 +344,6 @@ public class ShopAssistant { player.getPacketSender().sendMessage("Selling items as an admin has been disabled."); return false; } - if (!player.inPlayerShopArea()) //Packet abuse! - { - player.getPacketSender().sendMessage("You're not in a shopping area! Enter one to sell items & manage your store."); - return false; - } if(!player.isShopping) { return false; } diff --git a/CompiledServer/production/2006rebotted/com/rebotted/game/items/ItemAssistant.class b/CompiledServer/production/2006rebotted/com/rebotted/game/items/ItemAssistant.class index 58a2a13e44b863279aba05064f762ccab7b82a18..70f706fd2e1cccbacdeac22ecebac7b3033c8c81 100644 GIT binary patch delta 11998 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