mirror of
https://github.com/2006-Scape/2006Scape.git
synced 2026-07-03 00:31:51 +00:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9efafdff47 | |||
| 37322d4874 | |||
| b94157f01b | |||
| c1a5cf449c | |||
| 23951e9af6 | |||
| 2d58593be9 | |||
| 9b160452ad | |||
| f39993e3d9 | |||
| 6ad9d1f7e9 | |||
| 8ec8a92d20 | |||
| c891e4741e | |||
| 64ae22188f |
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
@@ -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,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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user