Compare commits

...

12 Commits

Author SHA1 Message Date
dginovker 9efafdff47 Removed all java.awt.* 2019-12-13 12:30:07 -05:00
dginovker 37322d4874 Latest updates 2019-12-12 23:11:24 -05:00
Josh Shippam b94157f01b Remove Accidentally Added Import (#285) 2019-12-13 02:34:23 +00:00
Danial c1a5cf449c Shop fixes (#284)
* Update ShopAssistant.java

* Fixup fish selling/buying

* fixup

* tidy up

* fixup 0 stock items being removed
2019-12-13 01:07:44 +00:00
Josh Shippam 23951e9af6 Implement Ring Of Forging (#283) 2019-12-13 01:05:25 +00:00
Danial 2d58593be9 Fixup smelting (#281)
* Fixup smelting

* Move iron fail check, show message

* revert

* More smithing refactoring
2019-12-13 00:37:13 +00:00
Danial 9b160452ad Update Commands (#280)
* Show commands in interface

* Update players command, add playershops command

* Remove null command

* Update Commands.class
2019-12-13 00:36:18 +00:00
dginovker f39993e3d9 Latest compile + jars 2019-12-12 04:54:04 -05:00
Mr Extremez 6ad9d1f7e9 Random fixes (#273)
- Cant open nest if you do not have space
- Added working yo yo
- Added monks robe spawns
- Added ability to make god pages
- Removed a few warnings

closes #265
closes #262
closes #259
closes #243
2019-12-12 04:32:56 -05:00
Danial 8ec8a92d20 Fix for boots of lightness (#272) 2019-12-12 04:32:06 -05:00
Gptaqbc c891e4741e Added Winter theme and fixed couple items that werent wore in the correct slot (#271)
Added Winter theme and fixed couple items that werent wore in the correct slot
2019-12-12 04:31:21 -05:00
Daniel Ginovker 64ae22188f Small shop QoL (#267)
* Shop command clarification

* small syntax
2019-12-11 00:43:58 -05:00
56 changed files with 282 additions and 150 deletions
@@ -35,5 +35,6 @@ public class ClientSettings {
public static final BigInteger RSA_MODULUS = new BigInteger("91553247461173033466542043374346300088148707506479543786501537350363031301992107112953015516557748875487935404852620239974482067336878286174236183516364787082711186740254168914127361643305190640280157664988536979163450791820893999053469529344247707567448479470137716627440246788713008490213212272520901741443");
public static final BigInteger RSA_EXPONENT = new BigInteger("65537");
public final static Boolean SNOW = true;
}
+3
View File
@@ -25,6 +25,9 @@ public final class Flo {
return;
} else if (i == 1) {
anInt390 = stream.read3Bytes();
if (ClientSettings.SNOW) {
anInt390 = 0xffffff;
}
method262(anInt390);
} else if (i == 2) {
anInt391 = stream.readUnsignedByte();
+5 -1
View File
@@ -5,7 +5,11 @@
import javax.swing.*;
import java.applet.AppletContext;
import java.awt.*;
//import java.awt.*;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.KeyEvent;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
-12
View File
@@ -3,18 +3,6 @@
* THIS IS TO ALLOW LOCAL PARABOT TO CONTINUE TO WORK
*/
import java.applet.AppletContext;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.io.*;
import java.net.InetAddress;
import java.net.Socket;
import java.net.URL;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Calendar;
import java.util.Date;
/**
* NOTICE: IF YOU CHANGE ANYTHING IN GAME.JAVA, PLEASE COPY-PASTE THE WHOLE CLASS OVER TO LOCALGAME.JAVA
* THIS IS TO ALLOW LOCAL PARABOT TO CONTINUE TO WORK
+7 -1
View File
@@ -4,7 +4,13 @@
import javax.swing.*;
import java.applet.Applet;
import java.awt.*;
//import java.awt.*;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Font;
import java.awt.Insets;
import java.awt.FontMetrics;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.KeyEvent;
+9 -1
View File
@@ -2,7 +2,15 @@
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3)
import java.awt.*;
//import java.awt.*;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Font;
import java.awt.Insets;
import java.awt.FontMetrics;
import java.awt.Frame;
import java.awt.Dimension;
@SuppressWarnings("serial")
final class RSFrame extends Frame {
@@ -11,6 +11,8 @@
1935:1:3211:3212
88:1:2654:9767
1931:1:3209:3214
542:1:3059:3488:1
544:1:3059:3487:1
1923:1:3208:3214
882:1:3205:3228
2313:1:3033:9849
@@ -37,6 +37,8 @@ public class BotHandler {
return;
}
player.getPacketSender().sendMessage("Shop commands- ::withdrawshop, ::closeshop");
Client playerShop = getPlayerShop(player);
if (playerShop == null) {
@@ -25,16 +25,15 @@ public class Smelting extends SkillHandler {
* Handles Smelting data.
*/
public static int[][] data = {
// index ,lvl required, XP, item required, item2, COAL AMOUNT,
// Final item(BAR)
{ 1, 1, 6, COPPER, TIN, -1, 2349 }, // Bronze
// index ,lvl required, XP, primary item required, secondary item required, secondary item amount, output item(BAR)
{ 1, 1, 6, COPPER, TIN, 1, 2349 }, // Bronze
{ 2, 15, 12, IRON, -1, -1, 2351 }, // iron
{ 3, 20, 17, IRON, COAL, 2, 2353 }, // Steel
{ 4, 50, 30, MITH, COAL, 4, 2359 }, // Mith
{ 5, 70, 37, ADDY, COAL, 6, 2361 }, // Addy
{ 6, 85, 50, RUNE, COAL, 8, 2363 }, // Rune
{ 7, 20, 13, SILVER, -1, -1, 2355 }, // Silver
{ 8, 40, 22, GOLD, -1, -1, 2357 } // GOLD
{ 8, 40, 22, GOLD, -1, -1, 2357 }, // GOLD
};
/**
@@ -44,8 +43,7 @@ public class Smelting extends SkillHandler {
*/
public static void startSmelting(Player c, int object) {
for (int j = 0; j < SMELT_FRAME.length; j++) {
c.getPacketSender().sendFrame246(SMELT_FRAME[j], 150,
SMELT_BARS[j]);
c.getPacketSender().sendFrame246(SMELT_FRAME[j], 150, SMELT_BARS[j]);
}
c.getPacketSender().sendChatInterface(2400);
c.isSmelting = true;
@@ -70,30 +68,22 @@ public class Smelting extends SkillHandler {
private static void smeltBar(final Player c, int bartype) {
for (int i = 0; i < data.length; i++) {
if (bartype == data[i][0]) {
// Check player has the correct smithing level
if (c.playerLevel[c.playerSmithing] < data[i][1]) { // Smithing level
c.getDialogueHandler().sendStatement("You need a smithing level of at least "+ data[i][1] + " in order smelt this bar.");
return;
}
if (data[i][3] > 0 && data[i][4] > 0) { // All OTHER bars
if (!c.getItemAssistant().playerHasItem(data[i][3]) || !c.getItemAssistant().playerHasItem(data[i][4])) {
c.getPacketSender().sendMessage("You need an " + ItemAssistant.getItemName(data[i][3]).toLowerCase() + " and " + data[i][5] + " " + ItemAssistant.getItemName(data[i][4]).toLowerCase() + " to make this bar.");
c.getPacketSender().closeAllWindows();
return;
}
}
if (data[i][4] < 0) { // Iron bar, Gold & Silver requirements
// Check the player has all required items
if (data[i][4] <= 0) { // Bars with only a primary requirement
if (!c.getItemAssistant().playerHasItem(data[i][3])) {
c.getPacketSender().sendMessage("You need an " + ItemAssistant.getItemName(data[i][3]).toLowerCase() + " to make this bar.");
c.getPacketSender().sendMessage("You need " + ItemAssistant.getItemName(data[i][3]).toLowerCase() + " to make this bar.");
c.getPacketSender().closeAllWindows();
return;
}
}
if (data[i][5] > 0) { // Bars with more than 1 coal requirement
if (!c.getItemAssistant().playerHasItem(data[i][4], data[i][5])) {
c.getPacketSender().sendMessage("You need an " + ItemAssistant.getItemName(data[i][3]).toLowerCase() + " and " + data[i][5] + " coal ores to make this bar.");
} else { // Bars with a secondary requirement
if (!c.getItemAssistant().playerHasItem(data[i][3]) || !c.getItemAssistant().playerHasItem(data[i][4], data[i][5])) {
c.getPacketSender().sendMessage("You need 1 " + ItemAssistant.getItemName(data[i][3]).toLowerCase() + " and " + data[i][5] + " " + ItemAssistant.getItemName(data[i][4]).toLowerCase() + " to make this bar.");
c.getPacketSender().closeAllWindows();
return;
}
@@ -109,10 +99,10 @@ public class Smelting extends SkillHandler {
c.playerSkillProp[13][0] = data[i][0];// index
c.playerSkillProp[13][1] = data[i][1];// Level required
c.playerSkillProp[13][2] = data[i][2];// XP
c.playerSkillProp[13][3] = data[i][3];// item required
c.playerSkillProp[13][4] = data[i][4];// item required 2
c.playerSkillProp[13][5] = data[i][5];// coal amount
c.playerSkillProp[13][6] = data[i][6];// Final Item
c.playerSkillProp[13][3] = data[i][3];// primary item required
c.playerSkillProp[13][4] = data[i][4];// secondary item required
c.playerSkillProp[13][5] = data[i][5];// secondary item amount
c.playerSkillProp[13][6] = data[i][6];// output item
c.getPacketSender().closeAllWindows();
c.startAnimation(899);
@@ -122,45 +112,40 @@ public class Smelting extends SkillHandler {
@Override
public void execute(CycleEventContainer container) {
deleteTime(c);
// Remove primary item
c.getItemAssistant().deleteItem(c.playerSkillProp[13][3], 1);
if (c.playerSkillProp[13][5] == -1) {
c.getItemAssistant().deleteItem(c.playerSkillProp[13][4], 1);
}
if (c.playerSkillProp[13][5] > 0) {// if coal amount is > 0
// Check if required and remove secondary items
if (c.playerSkillProp[13][4] > 0 && c.playerSkillProp[13][5] > 0) {
c.getItemAssistant().deleteItem(c.playerSkillProp[13][4], c.playerSkillProp[13][5]);
}
if (c.playerSkillProp[13][3] == IRON && c.playerSkillProp[13][4] == -1 && 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() + ".");
}
if (c.playerSkillProp[13][3] == IRON && c.playerSkillProp[13][4] == -1) {
// 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() + ".");
if (c.playerSkillProp[13][3] == GOLD && c.playerSkillProp[13][4] == -1 && c.playerEquipment[c.playerHands] == 776) {
c.getPacketSender().sendMessage("You receive an " + ItemAssistant.getItemName(c.playerSkillProp[13][6]).toLowerCase() + ".");
} 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() + ".");
} else {
c.getPacketSender().sendMessage("You failed to smelt the iron bar.");
}
}
} else if (c.playerSkillProp[13][3] == GOLD && c.playerEquipment[c.playerHands] == 776) {
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
} else {
if (c.playerSkillProp[13][3] != IRON) {
c.getPacketSender().sendMessage("You receive an " + 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.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
}
// ///////////////////////////////CHECKING//////////////////////
if (!c.getItemAssistant().playerHasItem(c.playerSkillProp[13][3], 1)) {
c.getPacketSender().sendMessage("You don't have enough ores to continue smelting!");
resetSmelting(c);
container.stop();
}
if (c.playerSkillProp[13][4] > 0) {
if (!c.getItemAssistant().playerHasItem(c.playerSkillProp[13][4], 1)) {
c.getPacketSender().sendMessage("You don't have enough ores to continue smelting!");
resetSmelting(c);
container.stop();
}
}
////////////////////// CHECKING //////////////////////
if (c.doAmount <= 0) {
resetSmelting(c);
container.stop();
@@ -173,6 +158,18 @@ public class Smelting extends SkillHandler {
resetSmelting(c);
container.stop();
}
if (!c.getItemAssistant().playerHasItem(c.playerSkillProp[13][3], 1)) {
c.getPacketSender().sendMessage("You don't have enough ores to continue smelting!");
resetSmelting(c);
container.stop();
}
if (c.playerSkillProp[13][4] > 0) {
if (!c.getItemAssistant().playerHasItem(c.playerSkillProp[13][4], c.playerSkillProp[13][5])) {
c.getPacketSender().sendMessage("You don't have enough ores to continue smelting!");
resetSmelting(c);
container.stop();
}
}
}
@@ -141,11 +141,11 @@ public class Item {
private static String[] fullhat = { "med helm", "coif", "Dharok's helm",
"hood", "Initiate helm", "Coif", "Helm of neitiznot",
"Armadyl helmet", "Berserker helm", "Archer helm", "Farseer helm",
"Warrior helm", "Void" };
"Warrior helm", "Void"};
/* Fullmask covers your entire head. */
private static String[] fullmask = { "full helm(t)", "full helm(g)", "full helm", "mask", "Verac's helm",
"Guthan's helm", "Karil's coif", "mask", "Torag's helm", "Void", "helmet",
"sallet", "Facemask" };
"sallet", "Facemask", "Bearhead"};
public static boolean isFullBody(int itemId) {
String weapon = getItemName(itemId);
@@ -276,6 +276,8 @@ public class Item {
case 1167:
case 5525:
case 4168:
case 4502:
case 1037:
case 1025:
case 7112:
case 7124:
@@ -1439,7 +1439,11 @@ public class ItemAssistant {
}
}
}
if (wearID == 4079) {
c.startAnimation(1458);
return false;
}
switch (wearID) {
// Dragon daggers/sword
case 1215:
@@ -13,6 +13,7 @@ import com.rebotted.game.content.skills.fletching.Stringing;
import com.rebotted.game.content.skills.herblore.GrindingAction;
import com.rebotted.game.content.skills.herblore.Herblore;
import com.rebotted.game.items.impl.CapeDye;
import com.rebotted.game.items.impl.GodPages;
import com.rebotted.game.items.impl.WeaponPoison;
import com.rebotted.game.npcs.impl.MilkCow;
import com.rebotted.game.objects.impl.CrystalChest;
@@ -98,7 +99,7 @@ public class UseItem {
}
public static void ItemonItem(Player player, int itemUsed, int useWith) {
public static void itemOnItem(Player player, int itemUsed, int useWith) {
LogCuttingInterface.handleItemOnItem(player, itemUsed, useWith);
ArrowMaking.makeArrow(player, itemUsed, useWith);
Stringing.StringBow(player, itemUsed, useWith);
@@ -111,6 +112,7 @@ public class UseItem {
}
GrindingAction.init(player, itemUsed, useWith);
CapeDye.dyeItem(player, itemUsed, useWith);
GodPages.itemOnItemHandle(player, useWith, itemUsed);
if (Herblore.isIngredient(itemUsed) || Herblore.isIngredient(useWith)) {
Herblore.setupPotion(player, itemUsed, useWith);
}
@@ -49,29 +49,18 @@ public class Weight extends ItemDefinitions {
*/
public static void updateWeight(Player player) {
if (player != null) {
player.getPacketSender().writeWeight((int) player.weight);
player.weight = 0;
// Inventory items
for (int playerItem : player.playerItems) {
if (playerItem > -1) {// inventory
for (ItemList i1 : GameEngine.itemHandler.ItemList) {
if (i1 != null) {
if (i1.itemId == playerItem) {
calcWeight(player, playerItem, "addItem");
}
}
}
calcWeight(player, playerItem, "addItem");
}
}
// Equiped items
for (int element : player.playerEquipment) {
if (element > -1) {// equipment
for (ItemList i1 : GameEngine.itemHandler.ItemList) {
if (i1 != null) {
if (i1.itemId == element) {
calcWeight(player, element, "addItem");
}
}
}
if (element == 88) player.weight -= 4.5;
else calcWeight(player, element, "addItem");
}
}
}
@@ -0,0 +1,40 @@
package com.rebotted.game.items.impl;
import com.rebotted.game.players.Player;
public class GodPages {
public static void fillBook(Player player, int oldBook, int newBook, int page1, int page2, int page3) {
if (player.getItemAssistant().playerHasItem(oldBook, 1) && player.getItemAssistant().playerHasItem(page1, 1) && player.getItemAssistant().playerHasItem(page2, 1) && player.getItemAssistant().playerHasItem(page3, 1)) {
player.getItemAssistant().deleteItem(oldBook, player.getItemAssistant().getItemSlot(oldBook), 1);
player.getItemAssistant().deleteItem(page1, player.getItemAssistant().getItemSlot(page1), 1);
player.getItemAssistant().deleteItem(page2, player.getItemAssistant().getItemSlot(page2), 1);
player.getItemAssistant().deleteItem(page3, player.getItemAssistant().getItemSlot(page3), 1);
player.getItemAssistant().addItem(newBook, 1);
} else {
player.getPacketSender().sendMessage("You need all 3 pages to fill the book!");
}
}
public static void itemOnItemHandle(Player player, int useWith, int itemUsed) {
if ((useWith == 3827) || (useWith == 3827) || (useWith == 3827) && (itemUsed == 3839)) { // sara
fillBook(player, 3839, 3840, 3827, 3828, 3829);
}
if ((itemUsed == 3827) || (itemUsed == 3828) || (itemUsed == 3829) || (useWith == 3839)) {// sara
fillBook(player, 3839, 3840, 3827, 3828, 3829);
}
if ((useWith == 3831) || (useWith == 3832) || (useWith == 3833) && (itemUsed == 3841)) { // zam
fillBook(player, 3841, 3842, 3831, 3832, 3833);
}
if ((itemUsed == 3831) || (itemUsed == 3832) || (itemUsed == 3833) || (useWith == 3841)) { // zam
fillBook(player, 3841, 3842, 3831, 3832, 3833);
}
if ((useWith == 3835) || (useWith == 3836) || (useWith == 3837) && (itemUsed == 3843)) { // guth
fillBook(player, 3843, 3844, 3835, 3836, 3837);
}
if ((itemUsed == 3835) || (itemUsed == 3836) || (itemUsed == 3837) || (useWith == 3843)) { // guth
fillBook(player, 3843, 3844, 3835, 3836, 3837);
}
}
}
@@ -13,7 +13,7 @@ import com.rebotted.world.GlobalDropsHandler;
public class PlayerHandler {
public static Player players[] = new Player[GameConstants.MAX_PLAYERS];
public static int playerCount = 0, playerBotCount = 0;
public static int playerCount = 0, playerShopCount = 0;
public static String playersCurrentlyOn[] = new String[GameConstants.MAX_PLAYERS];
public static boolean updateAnnounced;
public static boolean updateRunning;
@@ -54,18 +54,18 @@ public class PlayerHandler {
return playerCount;
}
public static int getPlayerBotCount() {
return playerBotCount;
public static int getPlayerShopCount() {
return playerShopCount;
}
public void updatePlayerNames() {
playerBotCount = 0;
playerShopCount = 0;
playerCount = 0;
for (int i = 0; i < GameConstants.MAX_PLAYERS; i++) {
if (players[i] != null) {
playersCurrentlyOn[i] = players[i].playerName;
if (players[i].isBot)
playerBotCount++;
playerShopCount++;
else
playerCount++;
} else {
@@ -276,32 +276,32 @@ public class ShopAssistant {
String itemName = ItemAssistant.getItemName(unNotedItemID);
for (int i : GameConstants.ITEM_SELLABLE) {
if (unNotedItemID == i) {
player.getPacketSender().sendMessage("You can't sell " + ItemAssistant.getItemName(removeId).toLowerCase() + ".");
player.getPacketSender().sendMessage("You can't sell " + itemName + ".");
return;
}
}
boolean IsIn = false;
boolean canSellItem = false;
switch (ShopHandler.shopSModifier[player.shopId]) {
// Only buys what is in stock
case 2:
for (int j = 0; j <= ShopHandler.shopItemsStandard[player.shopId]; j++) {
if (unNotedItemID == (ShopHandler.shopItems[player.shopId][j] - 1)) {
IsIn = true;
canSellItem = true;
break;
}
}
break;
// General store
case 1:
IsIn = true;
canSellItem = true;
break;
// Player owns this store
case 0:
IsIn = ShopHandler.playerOwnsStore(player.shopId, player);
canSellItem = ShopHandler.playerOwnsStore(player.shopId, player);
break;
}
if (IsIn == false) {
if (canSellItem == false) {
player.getPacketSender().sendMessage("You can't sell " + ItemAssistant.getItemName(removeId).toLowerCase() + " to this store.");
} else {
int ShopValue = (int) Math.floor(getItemShopValue(unNotedItemID, 1, true));
@@ -468,7 +468,7 @@ public class ShopAssistant {
private static int getUnNoted(int itemID){
String itemName = ItemAssistant.getItemName(itemID).toLowerCase();
String ItemNameUnNotedItem = ItemAssistant.getItemName(itemID - 1).toLowerCase();
if (itemName.contains(ItemNameUnNotedItem)) {
if (itemName.equalsIgnoreCase(ItemNameUnNotedItem)) {
itemID--; //Replace the noted item by it's un-noted version.
}
return itemID;
@@ -477,7 +477,7 @@ public class ShopAssistant {
private static int getNoted(int itemID){
String itemName = ItemAssistant.getItemName(itemID).toLowerCase();
String ItemNameUnNotedItem = ItemAssistant.getItemName(itemID + 1).toLowerCase();
if (itemName.contains(ItemNameUnNotedItem)) {
if (itemName.equalsIgnoreCase(ItemNameUnNotedItem)) {
itemID++; //Replace the item by it's noted version.
}
return itemID;
@@ -16,9 +16,9 @@ public class ShopHandler {
public static int MAX_SHOP_ITEMS = 40;
public static int SHOW_DELAY = 2;
public static int SHOW_DELAY = 1; // Restock 1 item every tick
public static int SPECIAL_DELAY = 60;
public static int SPECIAL_DELAY = 60; // Remove overstocked items after 60 ticks
public static int totalshops = 0;
@@ -106,11 +106,13 @@ public class ShopHandler {
shopItemsN[shopID][ArrayID] -= 1;
if (shopItemsN[shopID][ArrayID] <= 0) {
shopItemsN[shopID][ArrayID] = 0;
ResetItem(shopID, ArrayID);
if (shopItemsStandard[shopID] <= ArrayID)
ResetItem(shopID, ArrayID);
}
}
private static void ResetItem(int shopID, int ArrayID) {
if (shopItemsStandard[shopID] > ArrayID) return;
shopItems[shopID][ArrayID] = 0;
shopItemsN[shopID][ArrayID] = 0;
shopItemsDelay[shopID][ArrayID] = 0;
@@ -143,19 +145,19 @@ public class ShopHandler {
token = line.substring(0, spot);
token = token.trim();
token2 = line.substring(spot + 1);
token2 = token2.trim();
token2_2 = token2.replaceAll("\t+", "\t");
token3 = token2_2.split("\t");
token3 = token2.trim().split("\t+");
if (token.equals("shop")) {
int shopID = Integer.parseInt(token3[0]);
shopName[shopID] = token3[1].replaceAll("_", " ");
shopSModifier[shopID] = Integer.parseInt(token3[2]);
shopBModifier[shopID] = Integer.parseInt(token3[3]);
for (int i = 0; i < ((token3.length - 4) / 2); i++) {
if (token3[(4 + (i * 2))] != null) {
shopItems[shopID][i] = (Integer.parseInt(token3[(4 + (i * 2))]) + 1);
shopItemsN[shopID][i] = Integer.parseInt(token3[(5 + (i * 2))]);
shopItemsSN[shopID][i] = Integer.parseInt(token3[(5 + (i * 2))]);
int itemID = Integer.parseInt(token3[(4 + (i * 2))]);
int itemAmount = Integer.parseInt(token3[(5 + (i * 2))]);
if (itemID > 0) {
shopItems[shopID][i] = itemID + 1;
shopItemsN[shopID][i] = itemAmount;
shopItemsSN[shopID][i] = itemAmount;
shopItemsStandard[shopID]++;
} else {
break;
@@ -164,7 +166,7 @@ public class ShopHandler {
totalshops++;
}
} else {
if (line.equals("[ENDOFshopLIST]")) {
if (line.equalsIgnoreCase("[ENDOFSHOPLIST]")) {
try {
characterfile.close();
} catch (IOException ioexception) {
@@ -794,6 +794,7 @@ public class PacketSender {
if (player.getOutStream() == null) return this;
player.outStream.createFrame(240);
DecimalFormat twoDForm = new DecimalFormat("#.##");
weight = Math.max(0, weight);
player.outStream.writeWord(Integer.valueOf(twoDForm.format(weight)));
return this;
}
@@ -1,6 +1,5 @@
package com.rebotted.net.packets.impl;
import com.rebotted.GameConstants;
import com.rebotted.game.content.random.PartyRoom;
import com.rebotted.game.items.GameItem;
import com.rebotted.game.items.Item;
@@ -4,7 +4,6 @@ import com.rebotted.GameConstants;
import com.rebotted.GameEngine;
import com.rebotted.game.content.music.Music;
import com.rebotted.game.globalworldobjects.Doors;
import com.rebotted.game.players.Client;
import com.rebotted.game.players.Player;
import com.rebotted.net.packets.PacketType;
import com.rebotted.world.GlobalDropsHandler;
@@ -72,7 +72,9 @@ public class ClickItem implements PacketType {
return;
}
switch (itemId) {
case 4079:
player.startAnimation(1457);
break;
case 407:
if (Misc.random(1) == 0) {
player.getItemAssistant().addItem(409, 1);
@@ -182,25 +184,37 @@ public class ClickItem implements PacketType {
// break;
case 5070:
player.getPacketSender().sendMessage("You search the nest.");
player.getItemAssistant().addItem(5076, 1);
player.getItemAssistant().deleteItem(itemId, 1);
player.getItemAssistant().addItem(5075, 1);
if (player.getItemAssistant().freeSlots() >= 2) {
player.getPacketSender().sendMessage("You search the nest.");
player.getItemAssistant().addItem(5076, 1);
player.getItemAssistant().deleteItem(itemId, 1);
player.getItemAssistant().addItem(5075, 1);
} else {
player.getPacketSender().sendMessage("You do not have enough inventory space to do that.");
}
break;
case 5071:
if (player.getItemAssistant().freeSlots() >= 2) {
player.getPacketSender().sendMessage("You search the nest.");
player.getItemAssistant().addItem(5078, 1);
player.getItemAssistant().deleteItem(itemId, 1);
player.getItemAssistant().addItem(5075, 1);
break;
} else {
player.getPacketSender().sendMessage("You do not have enough inventory space to do that.");
}
break;
case 5072:
player.getPacketSender().sendMessage("You search the nest.");
player.getItemAssistant().addItem(5077, 1);
player.getItemAssistant().deleteItem(itemId, 1);
player.getItemAssistant().addItem(5075, 1);
break;
if (player.getItemAssistant().freeSlots() >= 2) {
player.getPacketSender().sendMessage("You search the nest.");
player.getItemAssistant().addItem(5077, 1);
player.getItemAssistant().deleteItem(itemId, 1);
player.getItemAssistant().addItem(5075, 1);
} else {
player.getPacketSender().sendMessage("You do not have enough inventory space to do that.");
}
break;
case 5073:
player.getItemAssistant().handleTreeSeeds(itemId);
@@ -74,6 +74,7 @@ public class Commands implements PacketType {
case "coords":
case "coord":
case "pos":
case "loc":
player.getPacketSender().sendMessage("Your coords are [" + player.absX + ", " + player.absY + ", " + player.heightLevel + "]");
break;
case "password":
@@ -91,23 +92,50 @@ public class Commands implements PacketType {
player.logout(true);
}
break;
case "null":
break;
case "players":
if (PlayerHandler.getPlayerCount() != 1) {
player.getPacketSender().sendMessage("There are currently " + PlayerHandler.getPlayerCount() + " players online.");
case "playershops":
int count = playerCommand.equalsIgnoreCase("players") ? PlayerHandler.getPlayerCount() : PlayerHandler.getPlayerShopCount();
if (count != 1) {
player.getPacketSender().sendMessage("There are currently " + count + " " + (playerCommand.equalsIgnoreCase("players") ? "players" : "player shops") + " online.");
} else {
player.getPacketSender().sendMessage("There is currently " + PlayerHandler.getPlayerCount() + " player online.");
player.getPacketSender().sendMessage("There is currently " + count + " " + (playerCommand.equalsIgnoreCase("players") ? "player" : "player shop") + " online.");
}
if (player.playerRights > 0) {
String[] players = new String[count];
int playerIndex = 0;
for(Player _player : PlayerHandler.players) {
if(_player != null) {
if (playerCommand.equalsIgnoreCase("players") ? !_player.isBot : _player.isBot)
players[playerIndex++] = _player.properName;
}
}
// Clear all lines
for (int i = 8144; i < 8195; i++) player.getPacketSender().sendFrame126("", i);
player.getPacketSender().sendFrame126("@dre@" + (playerCommand.equalsIgnoreCase("players") ? "Players" : "Player Shops"), 8144);
int playersLineNumber = 8147;
for (String line : players){
player.getPacketSender().sendFrame126(line, playersLineNumber++);
}
player.getPacketSender().showInterface(8134);
break;
}
break;
case "shop":
BotHandler.playerShop(player);
break;
case "withdrawshop":
player.getPacketSender().sendMessage("Shorter version: ::wshop");
case "wshop":
BotHandler.takeCoins(player);
break;
case "closeshop":
player.getPacketSender().sendMessage("Shorter version: ::cshop");
case "cshop":
BotHandler.closeShop(player);
break;
@@ -149,10 +177,49 @@ public class Commands implements PacketType {
player.getPacketSender().closeAllWindows();
break;
case "commands":
player.getPacketSender().sendMessage("::players, ::highscores, ::loc, ::stuck, ::randomtoggle, ::debug, ::togglegfx, ::shop, ::withdrawshop, ::closeshop");
break;
case "loc":
player.getPacketSender().sendMessage(player.absX + "," + player.absY);
String[] commands = new String[]{
"::players",
"Show how many players are online",
"",
"::highscores",
"Get a list of current highscores",
"",
"::loc, ::pos, ::coord",
"Get your current world position",
"",
"::stuck",
"Return to Lumbridge when stuck",
"",
"::randomtoggle",
"Enable/Disable random events",
"",
"::debug",
"Enable/Disable debug information",
"",
"::togglegfx",
"Enable/Disable graphics rendering",
"",
"::shop",
"Open/Move player owned shop to your location",
"",
"::closeshop",
"Close your player owned shop",
"",
"::withdrawshop",
"Withdraw profits from player owned shop",
};
// Clear all lines
for (int i = 8144; i < 8195; i++) player.getPacketSender().sendFrame126("", i);
player.getPacketSender().sendFrame126("@dre@Commands", 8144);
int commandsLineNumber = 8147;
for (String line : commands){
player.getPacketSender().sendFrame126(line, commandsLineNumber++);
}
player.getPacketSender().showInterface(8134);
break;
case "stuck":
player.getPlayerAssistant().startTeleport(LUMBRIDGE_X, LUMBRIDGE_Y, 0, "modern");
@@ -209,10 +276,9 @@ public class Commands implements PacketType {
player.getPacketSender().sendFrame126("@dre@Highscores", 8144);
int lineNumber = 8147;
int highscoresLineNumber = 8147;
for (String line : highscores){
System.out.println(line + " - " + lineNumber);
player.getPacketSender().sendFrame126(line, lineNumber++);
player.getPacketSender().sendFrame126(line, highscoresLineNumber++);
}
player.getPacketSender().showInterface(8134);
@@ -27,6 +27,9 @@ public class ItemClick2 implements PacketType {
}
switch (itemId) {
case 4079:
c.startAnimation(1459);
break;
}
}
@@ -33,7 +33,10 @@ public class ItemClick3 implements PacketType {
player.endCurrentTask();
switch (itemId) {
case 4079:
player.startAnimation(1460);
break;
case 2552:
case 2554:
case 2556:
@@ -16,7 +16,7 @@ public class ItemOnItem implements PacketType {
return;
}
player.endCurrentTask();
UseItem.ItemonItem(player, itemUsed, useWith);
UseItem.itemOnItem(player, itemUsed, useWith);
}
}
@@ -11,7 +11,6 @@ import com.rebotted.game.content.skills.firemaking.Firemaking;
import com.rebotted.game.content.skills.firemaking.LogData;
import com.rebotted.game.items.ItemAssistant;
import com.rebotted.game.items.impl.RareProtection;
import com.rebotted.game.players.Client;
import com.rebotted.game.players.Player;
import com.rebotted.net.packets.PacketType;
import com.rebotted.util.GameLogger;
@@ -2,6 +2,7 @@ package com.rebotted.net.packets.impl;
import com.rebotted.game.content.random.PartyRoom;
import com.rebotted.game.content.skills.crafting.JewelryMaking;
import com.rebotted.game.items.Weight;
import com.rebotted.game.items.impl.RareProtection;
import com.rebotted.game.players.Player;
import com.rebotted.net.packets.PacketType;
@@ -16,16 +17,14 @@ public class RemoveItem implements PacketType {
int interfaceId = c.getInStream().readUnsignedWordA();
int removeSlot = c.getInStream().readUnsignedWordA();
int removeId = c.getInStream().readUnsignedWordA();
if (removeId == 88) {
c.weight += 4.5;
c.getPacketSender().writeWeight((int) c.weight);
}
if (!RareProtection.removeItem(c, removeId)) {
return;
}
c.endCurrentTask();
Weight.updateWeight(c);
switch (interfaceId) {
case 4233:
@@ -90,11 +89,11 @@ public class RemoveItem implements PacketType {
case 1121:
case 1122:
case 1123:
c.getSmithing().readInput(c.playerLevel[c.playerSmithing],
Integer.toString(removeId), c, 1);
c.getSmithing().readInput(c.playerLevel[c.playerSmithing], Integer.toString(removeId), c, 1);
break;
}
Weight.updateWeight(c);
}
}
@@ -1,5 +1,6 @@
package com.rebotted.net.packets.impl;
import com.rebotted.game.items.Weight;
import com.rebotted.game.items.impl.RareProtection;
import com.rebotted.game.players.Player;
import com.rebotted.net.packets.PacketType;
@@ -14,6 +15,7 @@ public class WearItem implements PacketType {
player.wearId = player.getInStream().readUnsignedWord();
player.wearSlot = player.getInStream().readUnsignedWordA();
player.interfaceId = player.getInStream().readUnsignedWordA();
Weight.updateWeight(player);
if (!RareProtection.equipItem(player)) {
return;
}
@@ -47,16 +49,13 @@ public class WearItem implements PacketType {
player.getPlayerAssistant().emptyPouch(pouch);
return;
}
if (player.wearId == 88 && player.playerEquipment[10] != 88) {
player.weight -= 4.5;
player.getPacketSender().writeWeight((int) player.weight);
}
if (player.wearSlot == player.playerHat) {
player.getPacketSender().setConfig(491, 0);
}
player.getPlayerAssistant().handleTiara();
player.getItemAssistant().wearItem(player.wearId, player.wearSlot);
Weight.updateWeight(player);
}
}
Binary file not shown.