Compare commits

..

30 Commits

Author SHA1 Message Date
Dark98 3c61ba69f3 Small Update
* Disabled The Old Dialogue System
* Converted CooksAssistant/Lumbridge Cook Dialogue
* Only Show Log Info For New Dialogue System When Server Is In Debug Mode
2021-12-15 02:08:54 +00:00
Dark98 8d0000de0b Update NPC Plugins Layout To Put Click Actions Per NPC Plugin
(cherry picked from commit 156d864bfd)
2021-12-14 05:53:59 +00:00
Qweqker 8ee88848a3 Astraeus Dialogue System Port (#512)
* - Marked As Deprecated
- Reorganized DialogueOptions.java so that option buttons are grouped with each interface
- Added temporary Dialogue Executor to make new Dialogue System function
- Remove Man, Woman, and Banker Dialogue and Dialogue Options

* - Refactored Dialogue.java into DialoguePacket.java
- Moved DialoguePacket.java into impl packets package
- Added Astraeus dialogue executor

* - Removed useless file
- Reorganized the Misc.java file

* - Ported Astraeus Dialogue System
- Rewrote Man, Woman, and Banker Dialogues
- Added line splitter in AstraeusDialogueFactory.java

* - Renamed Astraeus* classes to *Plugin
- Fixed an issue where the Dialogue Option buttons were not executed through the Kotlin file

(cherry picked from commit 6deaa4162a)
2021-12-14 05:53:33 +00:00
Dark98 3aaf413bc7 Cleanup Unused GameConstants Vars & Add More Vars To ConfigLoader 2021-12-14 04:00:49 +00:00
Josh Shippam d3f5ebc7a2 Fix More Var Descriptions 2021-12-14 02:42:51 +00:00
Dark98 736b3b0ea3 Make CHECK_CRC Description More Descriptive 2021-12-14 01:59:45 +00:00
Dark98 24e5ad9415 Fix Naming For Some Vars 2021-12-14 01:55:27 +00:00
Dark98 79357215c7 Add -no-crc & -dev Arguments To Client 2021-12-14 01:42:16 +00:00
Dark98 6d23a5b536 Fix Cache CRC Checks For The Client(Allows Cache To Actually Check For Updates) 2021-12-14 01:34:53 +00:00
Dark98 790cc51d81 Properly Update Client Title Logo
If The Cache Has Already Been Downloaded You Will Need To Delete It & Let The Client ReDownload It
2021-12-14 01:28:13 +00:00
Dark98 49a2810e3e Allow Loading VARIABLE_XP_RATES & PLAYER_XP_RATES From Config 2021-12-14 00:31:37 +00:00
Dark98 c7a6cb2811 Fixed Abusive Client Command Privileges & Added myxprate/checkxprate 2021-12-13 01:43:28 +00:00
Dark98 c47d9a4b15 Create/Use PLAYER_XP_RATES For Easier Rate Changes 2021-12-13 01:21:44 +00:00
Dark98 83eb0be61a Use Either VARIABLE_SKILL_RATE OR XP_RATE Not Both
TODO(Convert Player.xpRate Into An Array For Easier Rate Changes)
2021-12-11 22:26:28 +00:00
Dark98 8761116b9b Fix XP Rate Multiplier & add ::xprate to cooamnds list if enabled 2021-12-10 19:32:58 +00:00
Danial c15722c766 43597 → 43598 2021-12-10 21:52:22 +13:00
Danial 5ed9394f44 Minor fixup 2021-12-10 21:50:52 +13:00
Dark98 375cc1ac6f More Discord Commands(GameKick, MoveHome & Update)
*GameKick kicks A player if their client froze but acc stayed logged in
*MoveHome removes the need for ::stuck which removes potential for abuse
*Update schedules A server update
2021-12-10 01:44:08 +00:00
Dark98 2fc416c3e1 Small Fixup For World 2
Renamed BOT_WORLD to VARIABLE_XP_RATE
Fixed Dialogue/Message grammar
Added a check for VARIABLE_XP_RATES to ::xprate command
2021-12-06 07:01:25 +00:00
Dark98 f64b0469c2 Create/Use commandPrefix Var For Discord Bot 2021-12-06 01:59:31 +00:00
Dark98 5c02c34569 Add Kick Command To Discord Bot & Fix Type In ConfigLoader 2021-12-06 01:45:31 +00:00
Dark98 d2faea6f71 More Multi World Stuff
Update Integrations(Discord Bot/Website Stuff) For Multiple Worlds
Added More XP Rate Dialogue Stuff
2021-12-06 01:20:48 +00:00
Dark98 38140d8665 Add XP Rate Multiplier For Non-Bot Worlds 2021-12-05 23:47:49 +00:00
Dark98 8a10201637 Add -w/-world arg to client 2021-11-23 01:15:32 +00:00
Dark98 bdd5297a94 Add xpRate Var & Include With XPRate Calculations 2021-11-23 01:08:13 +00:00
Dark98 8ab31771b3 Set Server Port After Loading Config 2021-11-23 00:46:46 +00:00
Dark98 8fc1e17a25 Merge branch 'master' into world2
# Conflicts:
#	2006Scape Server/src/main/java/com/rs2/GameConstants.java
2021-11-23 00:32:57 +00:00
Dark98 00932b82ee Woops Wrong Ports 2021-11-14 23:02:53 +00:00
Dark98 ccc0353bad Small Cleanup For World 2 Support
Calculate Port For World Based On World Number
Use Existing World int For World In Server
2021-11-14 22:58:29 +00:00
Dark98 45450dbb9c Start Setting Up Second World
Added World Number To Login Message
Added World Number To Login Interface
Made World 2 Listen On Different Port
Made Client Connect To 43597 For World 2
2021-11-12 02:57:31 +00:00
1877 changed files with 452981 additions and 214651 deletions
-18
View File
@@ -1,18 +0,0 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/java
{
"name": "Java",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "maven:3.9.10-eclipse-temurin-8",
// Use 'forwardPorts' to make a list of ports inside the container available locally.
"forwardPorts": [43594, 43595, 8080],
// Configure tool-specific properties.
"customizations" : {
"jetbrains" : {
"backend" : "IntelliJ"
}
},
}
+6 -20
View File
@@ -11,28 +11,14 @@ on:
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v2
- name: Set up JDK 1.8 - name: Set up JDK 1.8
uses: actions/setup-java@v2 uses: actions/setup-java@v1
with: with:
distribution: 'zulu' java-version: 1.8
java-version: '8'
cache: 'maven'
- name: Build with Maven - name: Build with Maven
id: build run: mvn -B clean install
run: |
mvn -B clean package
mkdir -p ~/artifacts
cp "2006Scape Client/target/client-1.0-jar-with-dependencies.jar" ~/artifacts/Client.jar
cp "2006Scape Server/target/server-1.0-jar-with-dependencies.jar" ~/artifacts/Server.jar
cp "2006Scape Server/ServerConfig.Sample.json" ~/artifacts/ServerConfig.json
cp SinglePlayer.bat ~/artifacts/
cp -r "2006Scape Server/plugins" ~/artifacts/
cp -r "2006Scape Server/data" ~/artifacts/
- name: Publish build to GH Actions
uses: actions/upload-artifact@v3
with:
path: ~/artifacts/*
name: 2006Scape-SinglePlayer
@@ -2,56 +2,11 @@ import java.math.BigInteger;
/** /**
* ClientSettings * ClientSettings
*
* @author Andrew (I'm A Boss on Rune-Server and Mr Extremez on Mopar & Runelocus) * @author Andrew (I'm A Boss on Rune-Server and Mr Extremez on Mopar & Runelocus)
*/ */
public class ClientSettings { public class ClientSettings {
/**
* @QoL
* Require control key to zoom the client
*/
public static boolean CONTROL_KEY_ZOOMING = false;
/**
* @QoL
* Show zoom level messages in chat when changing zoom levels
*/
public static boolean SHOW_ZOOM_LEVEL_MESSAGES = false;
/**
* @QoL
* Hide roofs
*/
public static boolean HIDE_ROOFS = false;
/**
* @QoL
* Hide buggy varrock sword shop snow
*/
public static boolean HIDE_BUGGY_VARROCK_SWORD_SHOP_SNOW = true;
/**
* @QoL
* Forces Server-Wide Snow floor
*/
public static boolean SNOW_FLOOR_FORCE_ENABLED = false;
/**
* @QoL
* Toggles Server-Wide Snow floor (for the designated month)
*/
public static boolean SNOW_FLOOR_ENABLED = true;
/**
* @QoL
* Forces Server-Wide Snow overlay
*/
public static boolean SNOW_OVERLAY_FORCE_ENABLED = false;
/**
* @QoL
* Toggles Server-Wide Snow overlay (for the designated month)
*/
public static boolean SNOW_OVERLAY_ENABLED = false;
/**
* @QoL
* Enables Server-Wide Snow In The Designated Month
*/
public static String SNOW_MONTH = ".12"; public static String SNOW_MONTH = ".12";
/** /**
* The Servers Name * The Servers Name
@@ -60,13 +15,13 @@ public class ClientSettings {
/** /**
* The Servers Website * The Servers Website
*/ */
public final static String SERVER_WEBSITE = "https://2006Scape.org/"; public final static String SERVER_WEBSITE = "www.2006Scape.org";
/** /**
* The Servers Ip * The Servers Ip
* You don't have to change this, the client will automatically connect to the server * You don't have to change this, the client will automatically connect to the server
* on localhost (Assuming you're running Client and LocalGame respectively) * on localhost (Assuming you're running Client and LocalGame respectively)
*/ */
public static String SERVER_IP = "server.2006scape.org"; public static String SERVER_IP = "www.2006Scape.org";
/** /**
* The Servers World * The Servers World
* This Determines The Port The Server Will Connect On * This Determines The Port The Server Will Connect On
@@ -76,60 +31,11 @@ public class ClientSettings {
public static int SERVER_WORLD = 1; public static int SERVER_WORLD = 1;
/** /**
* @QoL
* If false, the client will run the on demand fetcher based on SERVER_WORLD. If true it will
* only connect to the server on world 1/Port 43594.
*/
public static boolean SINGLE_ONDEMAND = true;
public static boolean SHOW_NAVBAR = true;
public static final String NAV_MAINMENU_LINK = SERVER_WEBSITE;
public static final String NAV_WORLDMAP_LINK = SERVER_WEBSITE + "img/worldmap.jpg";
public static final String NAV_MANUAL_LINK = SERVER_WEBSITE;
public static final String NAV_RULES_LINK = SERVER_WEBSITE + "kbase/rules.php";
/**
* @QoL
* Enables A Custom Tab With Various QoL Changes
*/
public static boolean CUSTOM_SETTINGS_TAB = false;
/**
* @QoL
* Enables Bilinear Minimap Filtering Which Smooths Out Lines And Sprites On The Minimap
*/
public static boolean BILINEAR_MINIMAP_FILTERING = false;
/**
* @QoL
* fixes overlapping lines drawn on transparent objects by post-incrementing the offset
* note: there's 2 other instances that haven't been updated in Texture.java (misnamed) because rarely used like this
*/
public static boolean FIX_TRANSPARENCY_OVERFLOW = false;
/**
* @QoL
* render the game to 512px instead of 511px (black line on right side)
*/
public static boolean FULL_512PX_VIEWPORT = false;
/**
* @QoL
* Enables/Disables FileServer CRC Checking For Cache Updates * Enables/Disables FileServer CRC Checking For Cache Updates
* FileServer Must Be Running Before Starting The Client If This Is True * FileServer Must Be Running Before Starting The Client If This Is True
*/ */
public static boolean CHECK_CRC = true; public static boolean CHECK_CRC = true;
/**
* @QoL
* Enables the ability to take screenshots
*/
public static boolean SCREENSHOTS_ENABLED = false;
/**
* @QoL
* Enables the ability to take automatic screenshots on stats tab click and bank open
* This is a poor man's player exports.
*/
public static boolean AUTOMATIC_SCREENSHOTS_ENABLED = false;
/** /**
* The Npc Bits for the Server * The Npc Bits for the Server
*/ */
@@ -141,5 +47,4 @@ public class ClientSettings {
public static final BigInteger RSA_MODULUS = new BigInteger("91553247461173033466542043374346300088148707506479543786501537350363031301992107112953015516557748875487935404852620239974482067336878286174236183516364787082711186740254168914127361643305190640280157664988536979163450791820893999053469529344247707567448479470137716627440246788713008490213212272520901741443"); public static final BigInteger RSA_MODULUS = new BigInteger("91553247461173033466542043374346300088148707506479543786501537350363031301992107112953015516557748875487935404852620239974482067336878286174236183516364787082711186740254168914127361643305190640280157664988536979163450791820893999053469529344247707567448479470137716627440246788713008490213212272520901741443");
public static final BigInteger RSA_EXPONENT = new BigInteger("65537"); public static final BigInteger RSA_EXPONENT = new BigInteger("65537");
} }
@@ -16,11 +16,7 @@ public class DrawingArea extends NodeSub {
topY = 0; topY = 0;
bottomX = width; bottomX = width;
bottomY = height; bottomY = height;
if (ClientSettings.FULL_512PX_VIEWPORT) {
centerX = bottomX;
} else {
centerX = bottomX - 1; centerX = bottomX - 1;
}
centerY = bottomX / 2; centerY = bottomX / 2;
} }
@@ -41,11 +37,7 @@ public class DrawingArea extends NodeSub {
topY = l; topY = l;
bottomX = k; bottomX = k;
bottomY = i; bottomY = i;
if (ClientSettings.FULL_512PX_VIEWPORT) {
centerX = bottomX;
} else {
centerX = bottomX - 1; centerX = bottomX - 1;
}
centerY = bottomX / 2; centerY = bottomX / 2;
anInt1387 = bottomY / 2; anInt1387 = bottomY / 2;
} }
+1 -1
View File
@@ -35,7 +35,7 @@ public final class Flo {
} else if (i == 1) { } else if (i == 1) {
anInt390 = stream.read3Bytes(); anInt390 = stream.read3Bytes();
Calendar date = new GregorianCalendar(); Calendar date = new GregorianCalendar();
if (ClientSettings.SNOW_FLOOR_FORCE_ENABLED || (ClientSettings.SNOW_FLOOR_ENABLED && (date.get(Calendar.MONTH) + 1) == Integer.parseInt(ClientSettings.SNOW_MONTH.substring(1)))) { if ((date.get(Calendar.MONTH) + 1) == 12) {
anInt390 = 0xffffff; anInt390 = 0xffffff;
} }
method262(anInt390); method262(anInt390);
+23 -149
View File
@@ -3,14 +3,12 @@
* THIS IS TO ALLOW LOCAL PARABOT TO CONTINUE TO WORK * THIS IS TO ALLOW LOCAL PARABOT TO CONTINUE TO WORK
*/ */
import javax.imageio.ImageIO;
import javax.swing.*; import javax.swing.*;
import java.applet.AppletContext; import java.applet.AppletContext;
import java.awt.*; import java.awt.*;
import java.awt.datatransfer.*; import java.awt.datatransfer.*;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelEvent;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.DataInputStream; import java.io.DataInputStream;
import java.io.EOFException; import java.io.EOFException;
@@ -25,7 +23,6 @@ import java.net.URL;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols; import java.text.DecimalFormatSymbols;
import java.text.SimpleDateFormat;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.zip.CRC32; import java.util.zip.CRC32;
@@ -1811,7 +1808,7 @@ public class Game extends RSApplet {
invBack.method361(0, 0); invBack.method361(0, 0);
if (invOverlayInterfaceID == -1) { if (invOverlayInterfaceID == -1) {
if (tabInterfaceIDs[tabID] != -1) { if (tabInterfaceIDs[tabID] != -1) {
if (tabID == 7 && ClientSettings.CUSTOM_SETTINGS_TAB) { if (tabID == 7) {
try { try {
int centerX = 95; int centerX = 95;
int currentY = 10; int currentY = 10;
@@ -1833,13 +1830,10 @@ public class Game extends RSApplet {
aTextDrawingArea_1271.textCenterShadow(Color.WHITE.hashCode(), centerX, WorldController.drawDistance + " tiles", currentY + textBottom, true); aTextDrawingArea_1271.textCenterShadow(Color.WHITE.hashCode(), centerX, WorldController.drawDistance + " tiles", currentY + textBottom, true);
drawButton(customSettingShowExperiencePerHour, centerX - 73, currentY += 40, 146); drawButton(customSettingShowExperiencePerHour, centerX - 73, currentY += 40, 146);
aTextDrawingArea_1271.textCenterShadow(Color.YELLOW.hashCode(), centerX, "show exp info", currentY + textMiddle, true); aTextDrawingArea_1271.textCenterShadow(customSettingShowExperiencePerHour ? Color.YELLOW.hashCode() : Color.YELLOW.hashCode(), centerX, "show exp info", currentY + textMiddle, true);
drawButton(showInfo, centerX - 73, currentY += 40, 146); drawButton(showInfo, centerX - 73, currentY += 40, 146);
aTextDrawingArea_1271.textCenterShadow(Color.YELLOW.hashCode(), centerX, "show debug info", currentY + textMiddle, true); aTextDrawingArea_1271.textCenterShadow(showInfo ? Color.YELLOW.hashCode() : Color.YELLOW.hashCode(), centerX, "show debug info", currentY + textMiddle, true);
drawButton(customSettingVisualFixes, centerX - 73, currentY += 40, 146);
aTextDrawingArea_1271.textCenterShadow(Color.YELLOW.hashCode(), centerX, "visual fixes", currentY + textMiddle, true);
} catch (Exception e) { } } catch (Exception e) { }
} }
} }
@@ -2978,11 +2972,7 @@ public class Game extends RSApplet {
if (anInt1011 > 0) { if (anInt1011 > 0) {
anInt1011--; anInt1011--;
} }
//TODO: Technically, this loop should be < 5 for authenticity, but until we reduce server inefficiencies for (int j = 0; j < 5; j++) {
//(for example killing a bunch of cows results in client lag,
//likely from all the items on the ground for example), < 100 is fine.
//OSRS uses < 100 and there are no drawbacks from having this < 100.
for (int j = 0; j < 100; j++) {
if (!parsePacket()) { if (!parsePacket()) {
break; break;
} }
@@ -3765,7 +3755,7 @@ public class Game extends RSApplet {
worldController.method312(k - 4, j - 4); worldController.method312(k - 4, j - 4);
} }
} }
if (l == 1062) { //Fifth click if (l == 1062) {
anInt924 += baseX; anInt924 += baseX;
if (anInt924 >= 113) { if (anInt924 >= 113) {
stream.createFrame(183); stream.createFrame(183);
@@ -4682,10 +4672,7 @@ public class Game extends RSApplet {
mouseDetection.running = false; mouseDetection.running = false;
} }
mouseDetection = null; mouseDetection = null;
if (onDemandFetcher != null) {
// prevent an exception if the client hasn't connected but tries to close the client, so it will actually close
onDemandFetcher.disable(); onDemandFetcher.disable();
}
onDemandFetcher = null; onDemandFetcher = null;
aStream_834 = null; aStream_834 = null;
stream = null; stream = null;
@@ -4826,6 +4813,9 @@ public class Game extends RSApplet {
Component getGameComponent() { Component getGameComponent() {
if (Signlink.mainapp != null) { if (Signlink.mainapp != null) {
return Signlink.mainapp; return Signlink.mainapp;
}
if (super.gameFrame != null) {
return super.gameFrame;
} else { } else {
return this; return this;
} }
@@ -5041,10 +5031,6 @@ public class Game extends RSApplet {
if (inputString.equals("::gfxtgl") || inputString.equals("::tglgfx") || inputString.equals("::togglerender") || inputString.equals("::togglegfx")) { if (inputString.equals("::gfxtgl") || inputString.equals("::tglgfx") || inputString.equals("::togglerender") || inputString.equals("::togglegfx")) {
graphicsEnabled = !graphicsEnabled; graphicsEnabled = !graphicsEnabled;
} }
if (inputString.equals("::crtlkeyzoom") || inputString.equals("::controlkeyzoom")) {
ClientSettings.CONTROL_KEY_ZOOMING = !ClientSettings.CONTROL_KEY_ZOOMING;
pushMessage("Your control key zooming is now: " + (ClientSettings.CONTROL_KEY_ZOOMING ? "enabled" : "disabled"), 0, "");
}
if (myPrivilege >= 2) { if (myPrivilege >= 2) {
if (inputString.equals("::noclip")) if (inputString.equals("::noclip"))
for (int k1 = 0; k1 < 4; k1++) for (int k1 = 0; k1 < 4; k1++)
@@ -5590,51 +5576,7 @@ public class Game extends RSApplet {
} }
} }
public void screenshot(boolean sendMessage, String... subfolders) {
try {
Window window = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusedWindow();
if (window == null) {
return;
}
Point point = window.getLocationOnScreen();
int x = (int) point.getX();
int y = (int) point.getY();
int w = window.getWidth();
int h = window.getHeight();
Robot robot = new Robot(window.getGraphicsConfiguration().getDevice());
Rectangle captureSize = new Rectangle(x, y, w, h);
BufferedImage bufferedimage = robot.createScreenCapture(captureSize);
// Format the current date and time
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy_MM_dd-HH_mm_ss");
String dateTime = dateFormat.format(new Date());
// Update the file path and naming
String fileExtension = myUsername != null && !myUsername.isEmpty() ? myUsername : ClientSettings.SERVER_NAME;
String subfolderPath = String.join(File.separator, subfolders);
if (!subfolderPath.isEmpty()) {
subfolderPath += File.separator;
}
String screenshotDir = System.getProperty("user.home") + File.separatorChar + ClientSettings.SERVER_NAME + File.separatorChar + "screenshots" + File.separatorChar + subfolderPath;
File dir = new File(screenshotDir);
if (!dir.exists()) {
dir.mkdirs(); // Create the directory if it doesn't exist
}
File file = new File(screenshotDir, fileExtension + "_" + dateTime + ".png");
if (!file.exists()) {
ImageIO.write(bufferedimage, "png", file);
if (sendMessage) {
pushMessage("A picture has been saved in your screenshots folder.", 0, "");
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void pushMessage(String s, int i, String s1) { public void pushMessage(String s, int i, String s1) {
if (i == 0 && dialogID != -1) { if (i == 0 && dialogID != -1) {
aString844 = s; aString844 = s;
@@ -5665,13 +5607,12 @@ public class Game extends RSApplet {
} }
int customTabAction = 0; int customTabAction = 0;
static boolean customSettingVisiblePlayerNames = false; boolean customSettingVisiblePlayerNames = true;
static int customSettingMinItemValue = Integer.MAX_VALUE; int customSettingMinItemValue = 1000;
boolean customSettingShowExperiencePerHour = false; boolean customSettingShowExperiencePerHour = false;
long customSettingShowExperiencePerHourStartExp = 0; long customSettingShowExperiencePerHourStartExp = 0;
long customSettingShowExperiencePerHourStart = System.currentTimeMillis(); long customSettingShowExperiencePerHourStart = System.currentTimeMillis();
int customSettingShowExperiencePerHourStartLevels = 0; int customSettingShowExperiencePerHourStartLevels = 0;
boolean customSettingVisualFixes = true;
public void processTabClick() { public void processTabClick() {
if (super.clickMode3 == 1) { if (super.clickMode3 == 1) {
@@ -5684,16 +5625,6 @@ public class Game extends RSApplet {
needDrawTabArea = true; needDrawTabArea = true;
tabID = 1; tabID = 1;
tabAreaAltered = true; tabAreaAltered = true;
if(ClientSettings.SCREENSHOTS_ENABLED && ClientSettings.AUTOMATIC_SCREENSHOTS_ENABLED) {
java.util.Timer timer = new java.util.Timer();
java.util.TimerTask delayedScreenshot = new java.util.TimerTask() {
@Override
public void run() {
screenshot(false, "stats");
}
};
timer.schedule(delayedScreenshot, 300);
}
} }
if (super.saveClickX >= 597 && super.saveClickX <= 627 && super.saveClickY >= 168 && super.saveClickY < 205 && tabInterfaceIDs[2] != -1) { if (super.saveClickX >= 597 && super.saveClickX <= 627 && super.saveClickY >= 168 && super.saveClickY < 205 && tabInterfaceIDs[2] != -1) {
needDrawTabArea = true; needDrawTabArea = true;
@@ -5720,7 +5651,7 @@ public class Game extends RSApplet {
tabID = 6; tabID = 6;
tabAreaAltered = true; tabAreaAltered = true;
} }
if (super.saveClickX >= 540 && super.saveClickX <= 574 && super.saveClickY >= 466 && super.saveClickY < 502 && tabInterfaceIDs[7] != -1 && ClientSettings.CUSTOM_SETTINGS_TAB) { if (super.saveClickX >= 540 && super.saveClickX <= 574 && super.saveClickY >= 466 && super.saveClickY < 502 && tabInterfaceIDs[7] != -1) {
/* Unused tab bottom left */ /* Unused tab bottom left */
needDrawTabArea = true; needDrawTabArea = true;
tabID = 7; tabID = 7;
@@ -5759,7 +5690,7 @@ public class Game extends RSApplet {
if (invOverlayInterfaceID == -1) { if (invOverlayInterfaceID == -1) {
if (tabInterfaceIDs[tabID] != -1) { if (tabInterfaceIDs[tabID] != -1) {
// Handle our custom tab // Handle our custom tab
if (tabID == 7 && ClientSettings.CUSTOM_SETTINGS_TAB && super.saveClickX >= 575 && super.saveClickX <= 720 && super.saveClickY >= 210 && super.saveClickY <= 465) { if (tabID == 7 && super.saveClickX >= 575 && super.saveClickX <= 720 && super.saveClickY >= 210 && super.saveClickY <= 465) {
int startY = 217 + 3; int startY = 217 + 3;
if (super.saveClickY >= startY && super.saveClickY <= (startY + 30)) { if (super.saveClickY >= startY && super.saveClickY <= (startY + 30)) {
customSettingVisiblePlayerNames = !customSettingVisiblePlayerNames; customSettingVisiblePlayerNames = !customSettingVisiblePlayerNames;
@@ -5793,13 +5724,6 @@ public class Game extends RSApplet {
if (super.saveClickY >= startY && super.saveClickY <= (startY + 30)) { if (super.saveClickY >= startY && super.saveClickY <= (startY + 30)) {
showInfo= !showInfo; showInfo= !showInfo;
} }
startY += 40;
if (super.saveClickY >= startY && super.saveClickY <= (startY + 30)) {
customSettingVisualFixes = !customSettingVisualFixes;
ClientSettings.BILINEAR_MINIMAP_FILTERING = !ClientSettings.BILINEAR_MINIMAP_FILTERING;
ClientSettings.FIX_TRANSPARENCY_OVERFLOW = !ClientSettings.FIX_TRANSPARENCY_OVERFLOW;
ClientSettings.FULL_512PX_VIEWPORT = !ClientSettings.FULL_512PX_VIEWPORT;
}
} }
} }
} }
@@ -6220,7 +6144,7 @@ public class Game extends RSApplet {
return; return;
} }
if (k == 11) { if (k == 11) {
loginMessage1 = "Login server rejected session."; loginMessage2 = "Login server rejected session.";
loginMessage2 = "Please try again."; loginMessage2 = "Please try again.";
return; return;
} }
@@ -8047,7 +7971,7 @@ public class Game extends RSApplet {
backBase2.method361(0, 0); backBase2.method361(0, 0);
if (invOverlayInterfaceID == -1) { if (invOverlayInterfaceID == -1) {
if (tabInterfaceIDs[tabID] != -1) { if (tabInterfaceIDs[tabID] != -1) {
if (tabID == 7 && ClientSettings.CUSTOM_SETTINGS_TAB) { if (tabID == 7) {
redStone1_3.method361(42, 0); redStone1_3.method361(42, 0);
} }
if (tabID == 8) { if (tabID == 8) {
@@ -8069,7 +7993,7 @@ public class Game extends RSApplet {
redStone1_4.method361(229, 0); redStone1_4.method361(229, 0);
} }
} }
if (tabInterfaceIDs[7] != -1 && (anInt1054 != 7 || loopCycle % 20 < 10) && ClientSettings.CUSTOM_SETTINGS_TAB) { if (tabInterfaceIDs[7] != -1 && (anInt1054 != 7 || loopCycle % 20 < 10)) {
sideIcons[10].method361(47, 2); sideIcons[10].method361(47, 2);
} }
if (tabInterfaceIDs[8] != -1 && (anInt1054 != 8 || loopCycle % 20 < 10)) { if (tabInterfaceIDs[8] != -1 && (anInt1054 != 8 || loopCycle % 20 < 10)) {
@@ -9107,14 +9031,7 @@ public class Game extends RSApplet {
return; return;
} }
if (k == 3) { if (k == 3) {
boolean debugPlanes = false;
if (debugPlanes) {
System.out.println("plane is " + plane);
}
plane = stream.readBits(2); plane = stream.readBits(2);
if (debugPlanes) {
System.out.println("plane is now " + plane);
}
int j1 = stream.readBits(1); int j1 = stream.readBits(1);
int i2 = stream.readBits(1); int i2 = stream.readBits(1);
if (i2 == 1) { if (i2 == 1) {
@@ -9123,15 +9040,6 @@ public class Game extends RSApplet {
int k2 = stream.readBits(7); int k2 = stream.readBits(7);
int l2 = stream.readBits(7); int l2 = stream.readBits(7);
myPlayer.setPos(l2, k2, j1 == 1); myPlayer.setPos(l2, k2, j1 == 1);
//Handle plane changes, higher planes need the roof drawing checks disabled, and we need to manually update ObjectManager's anInt131 (plane) then manually call method22 to let the ObjectManaegr know we're on a different plane. This makes plane changes draw properly. Coords for testing this: lumb: 3207 3227 and varrock: 3209, 3392 and gnome agil: 2474, 3427
ObjectManager.hideRoofs = ClientSettings.HIDE_ROOFS;
ObjectManager.hideBuggyVarrockSwordShopSnow = ClientSettings.HIDE_BUGGY_VARROCK_SWORD_SHOP_SNOW;
if (plane > 0) {
ObjectManager.hideRoofs = false;
ObjectManager.hideBuggyVarrockSwordShopSnow = false;
}
ObjectManager.anInt131 = plane;
method22();
} }
} }
@@ -11328,16 +11236,6 @@ public class Game extends RSApplet {
tabAreaAltered = true; tabAreaAltered = true;
aBoolean1149 = false; aBoolean1149 = false;
pktType = -1; pktType = -1;
if (ClientSettings.SCREENSHOTS_ENABLED && ClientSettings.AUTOMATIC_SCREENSHOTS_ENABLED && i5 == 5292) {
java.util.Timer timer = new java.util.Timer();
java.util.TimerTask delayedScreenshot = new java.util.TimerTask() {
@Override
public void run() {
screenshot(false, "bank");
}
};
timer.schedule(delayedScreenshot, 600);
}
return true; return true;
} }
if (pktType == 79) { if (pktType == 79) {
@@ -11662,7 +11560,7 @@ public class Game extends RSApplet {
// 15774 = Good/Bad Password // 15774 = Good/Bad Password
// 15767 = Drama Type // 15767 = Drama Type
if (l7 == 15244) { if (l7 == 15244) {
if (ClientSettings.SNOW_OVERLAY_FORCE_ENABLED || (ClientSettings.SNOW_OVERLAY_ENABLED && Flo.getTodaysDate().contains(ClientSettings.SNOW_MONTH))) { if (Flo.getTodaysDate().contains(ClientSettings.SNOW_MONTH)) {
openInterfaceID = 15819; openInterfaceID = 15819;
} else { } else {
openInterfaceID = 15801; openInterfaceID = 15801;
@@ -11905,8 +11803,8 @@ public class Game extends RSApplet {
draw3dScreen(); draw3dScreen();
if (showInfo) { if (showInfo) {
int debugX = 0; int debugX = 0;
int debugY = 234; int debugY = 249;
int debugItems = 5; int debugItems = 4;
int debugWidth = 140; int debugWidth = 140;
int debugHeight = 25 + (debugItems * 15); int debugHeight = 25 + (debugItems * 15);
int fill = 0x5d5447; int fill = 0x5d5447;
@@ -11933,8 +11831,6 @@ public class Game extends RSApplet {
chatTextDrawingArea.textRightShadow(true, debugX + debugWidth - 4, Color.YELLOW.hashCode(), (myPlayer.smallX[0] + baseX) + ", " + (myPlayer.smallY[0] + baseY), debugY); chatTextDrawingArea.textRightShadow(true, debugX + debugWidth - 4, Color.YELLOW.hashCode(), (myPlayer.smallX[0] + baseX) + ", " + (myPlayer.smallY[0] + baseY), debugY);
chatTextDrawingArea.textLeftShadow(true, debugX + 4, Color.WHITE.hashCode(), "Interface:", debugY += 15); chatTextDrawingArea.textLeftShadow(true, debugX + 4, Color.WHITE.hashCode(), "Interface:", debugY += 15);
chatTextDrawingArea.textRightShadow(true, debugX + debugWidth - 4, Color.YELLOW.hashCode(), "" + openInterfaceID, debugY); chatTextDrawingArea.textRightShadow(true, debugX + debugWidth - 4, Color.YELLOW.hashCode(), "" + openInterfaceID, debugY);
chatTextDrawingArea.textLeftShadow(true, debugX + 4, Color.WHITE.hashCode(), "Zoom level:", debugY += 15);
chatTextDrawingArea.textRightShadow(true, debugX + debugWidth - 4, Color.YELLOW.hashCode(), "" + zoom, debugY);
} }
if (customSettingShowExperiencePerHour) { if (customSettingShowExperiencePerHour) {
@@ -12712,20 +12608,12 @@ public class Game extends RSApplet {
tabAreaAltered = true; tabAreaAltered = true;
break; break;
case KeyEvent.VK_PAGE_UP: case KeyEvent.VK_PAGE_UP:
if (zoom > -1) { if (zoom > -1)
zoom--; zoom--;
if (ClientSettings.SHOW_ZOOM_LEVEL_MESSAGES) {
pushMessage("Your zoom level is now: " + zoom, 0, "");
}
}
break; break;
case KeyEvent.VK_PAGE_DOWN: case KeyEvent.VK_PAGE_DOWN:
if (zoom < (WorldController.drawDistance / 3)) { if (zoom < (WorldController.drawDistance / 3))
zoom++; zoom++;
if (ClientSettings.SHOW_ZOOM_LEVEL_MESSAGES) {
pushMessage("Your zoom level is now: " + zoom, 0, "");
}
}
break; break;
case KeyEvent.VK_V: case KeyEvent.VK_V:
if (keyevent.isControlDown()) { if (keyevent.isControlDown()) {
@@ -12737,9 +12625,6 @@ public class Game extends RSApplet {
} }
} }
if (ClientSettings.SCREENSHOTS_ENABLED && keyevent.getKeyCode() == KeyEvent.VK_PRINTSCREEN && keyevent.isControlDown()) {
screenshot(true);
}
} }
public long calculateTotalExp() { public long calculateTotalExp() {
@@ -12887,7 +12772,7 @@ public class Game extends RSApplet {
inputTaken = true; inputTaken = true;
} }
if (interfaceID == 15244) { if (interfaceID == 15244) {
if (ClientSettings.SNOW_OVERLAY_FORCE_ENABLED || (ClientSettings.SNOW_OVERLAY_ENABLED && Flo.getTodaysDate().contains(ClientSettings.SNOW_MONTH))) { if (Flo.getTodaysDate().contains(ClientSettings.SNOW_MONTH)) {
openInterfaceID = 15819; openInterfaceID = 15819;
} else { } else {
openInterfaceID = 15801; openInterfaceID = 15801;
@@ -12910,25 +12795,14 @@ public class Game extends RSApplet {
public final void mouseWheelMoved(MouseWheelEvent e) { public final void mouseWheelMoved(MouseWheelEvent e) {
int notches = e.getWheelRotation(); int notches = e.getWheelRotation();
if (ClientSettings.CONTROL_KEY_ZOOMING && !e.isControlDown()) {
return;
}
// If mouse over main game screen, without anything else opened // If mouse over main game screen, without anything else opened
if (openInterfaceID == -1 && mouseX < 515 && mouseY < 340) { if (openInterfaceID == -1 && mouseX < 515 && mouseY < 340) {
if (notches < 0) { if (notches < 0) {
if (zoom > -1) { if (zoom > -1)
zoom--; zoom--;
if (ClientSettings.SHOW_ZOOM_LEVEL_MESSAGES) {
pushMessage("Your zoom level is now: " + zoom, 0, "");
}
}
} else { } else {
if (zoom < (WorldController.drawDistance / 3)) { if (zoom < (WorldController.drawDistance / 3))
zoom++; zoom++;
if (ClientSettings.SHOW_ZOOM_LEVEL_MESSAGES) {
pushMessage("Your zoom level is now: " + zoom, 0, "");
}
}
} }
} }
} }
+11 -49
View File
@@ -13,56 +13,8 @@ public final class Main {
public static void main(String[] args) { public static void main(String[] args) {
try { try {
// Process client arguments to connect to // Process server/ip address to connect to
for (int i = 0; i < args.length; i++) { for (int i = 0; i < args.length; i++) {
switch(args[i]) {
case "-dev" :
case "-local":
case "-offline":
ClientSettings.SERVER_IP = "localhost";
ClientSettings.CHECK_CRC = false;
break;
case "-no-crc":
case "-no-cache-crc":
ClientSettings.CHECK_CRC = false;
break;
case "-qol":
case "-fixes":
ClientSettings.CUSTOM_SETTINGS_TAB = true;
ClientSettings.BILINEAR_MINIMAP_FILTERING = true;
ClientSettings.FIX_TRANSPARENCY_OVERFLOW = true;
ClientSettings.FULL_512PX_VIEWPORT = true;
ClientSettings.CONTROL_KEY_ZOOMING = true;
break;
case "-no-nav":
case "-disable-nav":
ClientSettings.SHOW_NAVBAR = false;
break;
case"-no-snow":
case"-hide-snow":
case"-disable-snow":
ClientSettings.SNOW_FLOOR_ENABLED = false;
ClientSettings.SNOW_FLOOR_FORCE_ENABLED = false;
ClientSettings.SNOW_OVERLAY_FORCE_ENABLED = false;
ClientSettings.SNOW_OVERLAY_ENABLED = false;
break;
case"-no-roofs":
case"-hide-roofs":
case"-disable-roofs":
ClientSettings.HIDE_ROOFS = true;
break;
case"-show-zoom":
ClientSettings.SHOW_ZOOM_LEVEL_MESSAGES = true;
break;
case"-screenshots":
case"-enable-screenshots":
ClientSettings.SCREENSHOTS_ENABLED = true;
break;
case"-auto-screenshots":
case"-enable-auto-screenshots":
ClientSettings.AUTOMATIC_SCREENSHOTS_ENABLED = true;
break;
}
if (args[i].startsWith("-") && (i + 1) < args.length && !args[i + 1].startsWith("-")) { if (args[i].startsWith("-") && (i + 1) < args.length && !args[i + 1].startsWith("-")) {
switch(args[i]) { switch(args[i]) {
case "-s": case "-s":
@@ -70,6 +22,16 @@ public final class Main {
case "-ip": case "-ip":
ClientSettings.SERVER_IP = args[++i]; ClientSettings.SERVER_IP = args[++i];
break; break;
case "-no-crc":
case "-no-cache-crc":
ClientSettings.CHECK_CRC = false;
break;
case "-dev" :
case "-local":
case "-offline":
ClientSettings.SERVER_IP = "localhost";
ClientSettings.CHECK_CRC = false;
break;
} }
} }
} }
@@ -146,7 +146,7 @@ final class ObjectManager {
k15 -= anIntArray127[k18]; k15 -= anIntArray127[k18];
k16 -= anIntArray128[k18]; k16 -= anIntArray128[k18];
} }
if (k17 >= 1 && k17 < anInt147 - 1 && ((!hideBuggyVarrockSwordShopSnow && !hideRoofs && !lowMem) || (aByteArrayArrayArray149[0][l6][k17] & 2) != 0 || (aByteArrayArrayArray149[l][l6][k17] & 0x10) == 0 && method182(k17, l, l6) == anInt131)) { if (k17 >= 1 && k17 < anInt147 - 1 && (!lowMem || (aByteArrayArrayArray149[0][l6][k17] & 2) != 0 || (aByteArrayArrayArray149[l][l6][k17] & 0x10) == 0 && method182(k17, l, l6) == anInt131)) {
if (l < anInt145) { if (l < anInt145) {
anInt145 = l; anInt145 = l;
} }
@@ -456,7 +456,7 @@ final class ObjectManager {
} }
private void method175(int i, WorldController worldController, CollisionMap class11, int j, int k, int l, int i1, int j1) { private void method175(int i, WorldController worldController, CollisionMap class11, int j, int k, int l, int i1, int j1) {
if ((hideRoofs || lowMem) && (aByteArrayArrayArray149[0][l][i] & 2) == 0) { if (lowMem && (aByteArrayArrayArray149[0][l][i] & 2) == 0) {
if ((aByteArrayArrayArray149[k][l][i] & 0x10) != 0) { if ((aByteArrayArrayArray149[k][l][i] & 0x10) != 0) {
return; return;
} }
@@ -1355,10 +1355,6 @@ final class ObjectManager {
private final byte[][][] aByteArrayArrayArray148; private final byte[][][] aByteArrayArrayArray148;
private final byte[][][] aByteArrayArrayArray149; private final byte[][][] aByteArrayArrayArray149;
static boolean lowMem = true; static boolean lowMem = true;
static boolean hideRoofs = ClientSettings.HIDE_ROOFS;
static boolean hideBuggyVarrockSwordShopSnow = ClientSettings.HIDE_BUGGY_VARROCK_SWORD_SHOP_SNOW; //There is some buggy snow near Varrock sword shop, let's hide it. I know, this is not ideal, but it does work.
private static final int anIntArray152[] = {1, 2, 4, 8}; private static final int anIntArray152[] = {1, 2, 4, 8};
} }
@@ -235,7 +235,7 @@ public final class OnDemandFetcher extends OnDemandFetcherParent implements Runn
return; return;
} }
openSocketTime = l; openSocketTime = l;
socket = clientInstance.openSocket((ClientSettings.SINGLE_ONDEMAND || ClientSettings.SERVER_WORLD == 1) ? 43594 : 43596 + ClientSettings.SERVER_WORLD + Game.portOff); socket = clientInstance.openSocket(43596 + Game.portOff);
inputStream = socket.getInputStream(); inputStream = socket.getInputStream();
outputStream = socket.getOutputStream(); outputStream = socket.getOutputStream();
outputStream.write(15); outputStream.write(15);
+30 -205
View File
@@ -5,10 +5,17 @@
import javax.swing.*; import javax.swing.*;
import java.applet.Applet; import java.applet.Applet;
import java.awt.*; import java.awt.*;
import java.awt.event.*; import java.awt.event.FocusEvent;
import java.awt.font.TextAttribute; import java.awt.event.FocusListener;
import java.net.URI; import java.awt.event.KeyEvent;
import java.util.Map; import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener;
import java.awt.event.MouseMotionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
@SuppressWarnings("serial") @SuppressWarnings("serial")
public class RSApplet extends Applet implements Runnable, MouseListener, MouseWheelListener, MouseMotionListener, KeyListener, FocusListener, WindowListener { public class RSApplet extends Applet implements Runnable, MouseListener, MouseWheelListener, MouseMotionListener, KeyListener, FocusListener, WindowListener {
@@ -22,209 +29,10 @@ public class RSApplet extends Applet implements Runnable, MouseListener, MouseWh
final void createClientFrame(int i, int j) { final void createClientFrame(int i, int j) {
myWidth = j; myWidth = j;
myHeight = i; myHeight = i;
this.setPreferredSize(new Dimension(this.myWidth, this.myHeight)); gameFrame = new RSFrame(this, myWidth, myHeight);
gameFrame = new RSFrame(this);
graphics = getGameComponent().getGraphics(); graphics = getGameComponent().getGraphics();
fullGameScreen = new RSImageProducer(myWidth, myHeight, getGameComponent()); fullGameScreen = new RSImageProducer(myWidth, myHeight, getGameComponent());
if (ClientSettings.SHOW_NAVBAR) {
try {
java.awt.Font arial = new java.awt.Font("Arial", java.awt.Font.PLAIN, 11);
Map attributes = arial.getAttributes();
attributes.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON);
JLayeredPane layers = new JLayeredPane();
layers.setPreferredSize(new Dimension(765, 25));
ImageIcon backgroundImg = new ImageIcon(this.getClass().getResource("navbar.gif"));
ImageIcon menuImg = new ImageIcon(this.getClass().getResource("navbar_mainmenu.gif"));
ImageIcon companyImg = new ImageIcon(this.getClass().getResource("navbar_jagex.gif"));
ImageIcon worldmapImg = new ImageIcon(this.getClass().getResource("navbar_worldmap.gif"));
ImageIcon manualImg = new ImageIcon(this.getClass().getResource("navbar_manual.gif"));
ImageIcon rulesImg = new ImageIcon(this.getClass().getResource("navbar_rules.gif"));
// set up containers
JLabel background = new JLabel(backgroundImg);
background.setBounds(0, 0, backgroundImg.getIconWidth(), backgroundImg.getIconHeight());
JLabel company = new JLabel(companyImg);
company.setBounds(5, 0, companyImg.getIconWidth(), companyImg.getIconHeight());
JLabel mainMenu = new JLabel(menuImg);
mainMenu.setBounds(126, 0, menuImg.getIconWidth(), menuImg.getIconHeight());
mainMenu.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
try {
Desktop.getDesktop().browse(URI.create(ClientSettings.NAV_MAINMENU_LINK));
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
JLabel mainMenuText = new JLabel();
mainMenuText.setForeground(Color.WHITE);
mainMenuText.setFont(arial.deriveFont(attributes));
mainMenuText.setBounds(126 + menuImg.getIconWidth() + 4, 0, 75, 25);
mainMenuText.setText("Main Menu");
mainMenuText.addMouseListener(mainMenu.getMouseListeners()[0]);
mainMenuText.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
mainMenuText.setForeground(Color.LIGHT_GRAY);
mainMenuText.setCursor(new Cursor(Cursor.HAND_CURSOR));
}
@Override
public void mouseExited(MouseEvent e) {
mainMenuText.setForeground(Color.WHITE);
mainMenuText.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
});
JLabel worldSelect = new JLabel(menuImg);
worldSelect.setBounds(250, 0, menuImg.getIconWidth(), menuImg.getIconHeight());
worldSelect.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
// TODO: world select popup? redirect to launcher?
}
});
JLabel worldSelectText = new JLabel();
worldSelectText.setForeground(Color.WHITE);
worldSelectText.setFont(arial.deriveFont(attributes));
worldSelectText.setBounds(250 + menuImg.getIconWidth() + 4, 0, 75, 25);
worldSelectText.setText("World Select");
worldSelectText.addMouseListener(worldSelect.getMouseListeners()[0]);
worldSelectText.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
worldSelectText.setForeground(Color.LIGHT_GRAY);
worldSelectText.setCursor(new Cursor(Cursor.HAND_CURSOR));
}
@Override
public void mouseExited(MouseEvent e) {
worldSelectText.setForeground(Color.WHITE);
worldSelectText.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
});
JLabel worldmap = new JLabel(worldmapImg);
worldmap.setBounds(387, 0, worldmapImg.getIconWidth(), worldmapImg.getIconHeight());
worldmap.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
try {
Desktop.getDesktop().browse(URI.create(ClientSettings.NAV_WORLDMAP_LINK));
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
JLabel worldmapText = new JLabel();
worldmapText.setForeground(Color.WHITE);
worldmapText.setFont(arial.deriveFont(attributes));
worldmapText.setBounds(387 + worldmapImg.getIconWidth() + 4, 0, 75, 25);
worldmapText.setText("World Map");
worldmapText.addMouseListener(worldmap.getMouseListeners()[0]);
worldmapText.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
worldmapText.setForeground(Color.LIGHT_GRAY);
worldmapText.setCursor(new Cursor(Cursor.HAND_CURSOR));
}
@Override
public void mouseExited(MouseEvent e) {
worldmapText.setForeground(Color.WHITE);
worldmapText.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
});
JLabel manual = new JLabel(manualImg);
manual.setBounds(520, 0, manualImg.getIconWidth(), manualImg.getIconHeight());
manual.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
try {
Desktop.getDesktop().browse(URI.create(ClientSettings.NAV_MANUAL_LINK));
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
JLabel manualText = new JLabel();
manualText.setForeground(Color.WHITE);
manualText.setFont(arial.deriveFont(attributes));
manualText.setBounds(520 + manualImg.getIconWidth() + 4, 0, 50, 25);
manualText.setText("Manual");
manualText.addMouseListener(manual.getMouseListeners()[0]);
manualText.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
manualText.setForeground(Color.LIGHT_GRAY);
manualText.setCursor(new Cursor(Cursor.HAND_CURSOR));
}
@Override
public void mouseExited(MouseEvent e) {
manualText.setForeground(Color.WHITE);
manualText.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
});
JLabel rules = new JLabel(rulesImg);
rules.setBounds(636, 0, rulesImg.getIconWidth(), rulesImg.getIconHeight());
rules.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
try {
Desktop.getDesktop().browse(URI.create(ClientSettings.NAV_RULES_LINK));
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
JLabel rulesText = new JLabel();
rulesText.setForeground(Color.WHITE);
rulesText.setFont(arial.deriveFont(attributes));
rulesText.setBounds(636 + rulesImg.getIconWidth() + 4, 0, 100, 25);
rulesText.setText("Rules & Security");
rulesText.addMouseListener(rules.getMouseListeners()[0]);
rulesText.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
rulesText.setForeground(Color.LIGHT_GRAY);
rulesText.setCursor(new Cursor(Cursor.HAND_CURSOR));
}
@Override
public void mouseExited(MouseEvent e) {
rulesText.setForeground(Color.WHITE);
rulesText.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
});
// layer images
layers.add(background, 0);
layers.add(company, 0);
layers.add(mainMenu, 0);
layers.add(mainMenuText, 0);
layers.add(worldSelect, 0);
layers.add(worldSelectText, 0);
layers.add(worldmap, 0);
layers.add(worldmapText, 0);
layers.add(manual, 0);
layers.add(manualText, 0);
layers.add(rules, 0);
layers.add(rulesText, 0);
gameFrame.add(layers, BorderLayout.NORTH);
gameFrame.pack();
gameFrame.setLocationRelativeTo(null); // re-center based on the new size
} catch (Exception ex) {
ex.printStackTrace();
}
}
startRunnable(this, 1); startRunnable(this, 1);
this.requestFocus();
} }
final void initClientFrame(int i, int j) { final void initClientFrame(int i, int j) {
@@ -375,7 +183,7 @@ public class RSApplet extends Applet implements Runnable, MouseListener, MouseWh
public final void destroy() { public final void destroy() {
anInt4 = -1; anInt4 = -1;
try { try {
Thread.sleep(1000L); Thread.sleep(5000L);
} catch (Exception _ex) { } catch (Exception _ex) {
} }
if (anInt4 == -1) { if (anInt4 == -1) {
@@ -407,6 +215,10 @@ public class RSApplet extends Applet implements Runnable, MouseListener, MouseWh
public final void mousePressed(MouseEvent mouseevent) { public final void mousePressed(MouseEvent mouseevent) {
int i = mouseevent.getX(); int i = mouseevent.getX();
int j = mouseevent.getY(); int j = mouseevent.getY();
if (gameFrame != null) {
i -= 4;
j -= 22;
}
idleTime = 0; idleTime = 0;
clickX = i; clickX = i;
clickY = j; clickY = j;
@@ -453,6 +265,11 @@ public class RSApplet extends Applet implements Runnable, MouseListener, MouseWh
public final void mouseDragged(MouseEvent e) { public final void mouseDragged(MouseEvent e) {
int x = e.getX(); int x = e.getX();
int y = e.getY(); int y = e.getY();
if(gameFrame != null) {
Insets insets = gameFrame.getInsets();
x -= insets.left;//4
y -= insets.top;//22
}
if (mouseWheelDown) { if (mouseWheelDown) {
y = mouseWheelX - e.getX(); y = mouseWheelX - e.getX();
int k = mouseWheelY - e.getY(); int k = mouseWheelY - e.getY();
@@ -473,6 +290,10 @@ public class RSApplet extends Applet implements Runnable, MouseListener, MouseWh
public void mouseMoved(MouseEvent mouseevent) { public void mouseMoved(MouseEvent mouseevent) {
int i = mouseevent.getX(); int i = mouseevent.getX();
int j = mouseevent.getY(); int j = mouseevent.getY();
if (gameFrame != null) {
i -= 4;
j -= 22;
}
idleTime = 0; idleTime = 0;
mouseX = i; mouseX = i;
mouseY = j; mouseY = j;
@@ -677,8 +498,12 @@ public class RSApplet extends Applet implements Runnable, MouseListener, MouseWh
} }
Component getGameComponent() { Component getGameComponent() {
if (gameFrame != null) {
return gameFrame;
} else {
return this; return this;
} }
}
public void startRunnable(Runnable runnable, int priority) { public void startRunnable(Runnable runnable, int priority) {
Thread thread = new Thread(runnable); Thread thread = new Thread(runnable);
+24 -13
View File
@@ -4,25 +4,36 @@
import java.awt.*; import java.awt.*;
@SuppressWarnings("serial")
final class RSFrame extends Frame { final class RSFrame extends Frame {
public RSFrame(RSApplet applet) { public RSFrame(RSApplet RSApplet_, int i, int j) {
rsApplet = applet; rsApplet = RSApplet_;
setTitle(ClientSettings.SERVER_NAME);
setResizable(false);
setMinimumSize(new Dimension(i + 8, j + 28));
setVisible(true);
toFront();
setSize(i + 8, j + 28);
setLocationRelativeTo(null);
}
setTitle(ClientSettings.SERVER_NAME + " World: " + ClientSettings.SERVER_WORLD + ((ClientSettings.SERVER_IP.equals("localhost") || ClientSettings.SERVER_IP.equals("127.0.0.1")) ? " [Local]" : "")); @Override
this.setResizable(false); public Graphics getGraphics() {
this.setBackground(Color.BLACK); Graphics g = super.getGraphics();
g.translate(4, 24);
return g;
}
this.setLayout(new BorderLayout()); @Override
this.add(applet, BorderLayout.CENTER); public void update(Graphics g) {
this.pack(); rsApplet.update(g);
}
this.setLocationRelativeTo(null); @Override
this.setVisible(true); public void paint(Graphics g) {
this.toFront(); rsApplet.paint(g);
this.transferFocus();
} }
private final RSApplet rsApplet; private final RSApplet rsApplet;
} }
+15 -25
View File
@@ -1,18 +1,23 @@
import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.FloatControl;
import javax.sound.sampled.*; import sun.audio.AudioPlayer; //Note! If you see a compile error here, make sure you set your JDK to Java 8!
public class SoundPlayer implements Runnable { public class SoundPlayer implements Runnable {
private AudioInputStream stream; private AudioInputStream stream;
private DataLine.Info info; private DataLine.Info info;
private SourceDataLine sound; private Clip sound;
private InputStream soundStream; private InputStream soundStream;
private Thread player; private Thread player;
private int delay; private int delay;
private int soundLevel; private int soundLevel;
private InputStream arg0;
public static int volume; public static int volume;
/** /**
@@ -37,37 +42,22 @@ public class SoundPlayer implements Runnable {
*/ */
public void run() { public void run() {
try { try {
AudioPlayer.player.start(arg0);
stream = AudioSystem.getAudioInputStream(soundStream); stream = AudioSystem.getAudioInputStream(soundStream);
info = new DataLine.Info(Clip.class, stream.getFormat());
AudioFormat format = stream.getFormat(); sound = (Clip) AudioSystem.getLine(info);
info = new DataLine.Info(SourceDataLine.class, format); sound.open(stream);
sound = (SourceDataLine) AudioSystem.getLine(info);
sound.open(format);
FloatControl volume = (FloatControl) sound.getControl(FloatControl.Type.MASTER_GAIN); FloatControl volume = (FloatControl) sound.getControl(FloatControl.Type.MASTER_GAIN);
volume.setValue(getDecibels(soundLevel - getVolume())); volume.setValue(getDecibels(soundLevel - getVolume()));
if (delay > 0) { if (delay > 0) {
Thread.sleep(delay); Thread.sleep(delay);
} }
sound.start(); sound.start();
while (sound.isActive()) {
int nBytesRead = 0; Thread.sleep(250);
int EXTERNAL_BUFFER_SIZE = 524288;
byte[] abData = new byte[EXTERNAL_BUFFER_SIZE];
try {
while (nBytesRead != -1) {
nBytesRead = stream.read(abData, 0, abData.length);
if (nBytesRead >= 0) {
sound.write(abData, 0, nBytesRead);
} }
} Thread.sleep(10000);
} catch (IOException e) {
e.printStackTrace();
} finally {
sound.drain();
sound.close(); sound.close();
}
stream.close(); stream.close();
player.interrupt(); player.interrupt();
} catch (Exception e) { } catch (Exception e) {
@@ -366,30 +366,7 @@ public final class Sprite extends DrawingArea {
int k4 = j3 + i3 * i4; int k4 = j3 + i3 * i4;
int l4 = k3 - l2 * i4; int l4 = k3 - l2 * i4;
for (k1 = -ai[j1]; k1 < 0; k1++) { for (k1 = -ai[j1]; k1 < 0; k1++) {
if (ClientSettings.BILINEAR_MINIMAP_FILTERING) {
int x1 = k4 >> 16;
int y1 = l4 >> 16;
int x2 = x1 + 1;
int y2 = y1 + 1;
int sampleColor1 = pixels[x1 + y1 * width];
int sampleColor2 = pixels[x2 + y1 * width];
int sampleColor3 = pixels[x1 + y2 * width];
int sampleColor4 = pixels[x2 + y2 * width];
int x1Distance = (k4 >> 8) - (x1 << 8);
int y1Distance = (l4 >> 8) - (y1 << 8);
int x2Distance = (x2 << 8) - (k4 >> 8);
int y2Distance = (y2 << 8) - (l4 >> 8);
int sampleAlpha1 = x2Distance * y2Distance;
int sampleAlpha2 = x1Distance * y2Distance;
int sampleAlpha3 = x2Distance * y1Distance;
int sampleAlpha4 = x1Distance * y1Distance;
int red = (sampleColor1 >> 16 & 0xff) * sampleAlpha1 + (sampleColor2 >> 16 & 0xff) * sampleAlpha2 + (sampleColor3 >> 16 & 0xff) * sampleAlpha3 + (sampleColor4 >> 16 & 0xff) * sampleAlpha4 & 0xff0000;
int green = (sampleColor1 >> 8 & 0xff) * sampleAlpha1 + (sampleColor2 >> 8 & 0xff) * sampleAlpha2 + (sampleColor3 >> 8 & 0xff) * sampleAlpha3 + (sampleColor4 >> 8 & 0xff) * sampleAlpha4 >> 8 & 0xff00;
int blue = (sampleColor1 & 0xff) * sampleAlpha1 + (sampleColor2 & 0xff) * sampleAlpha2 + (sampleColor3 & 0xff) * sampleAlpha3 + (sampleColor4 & 0xff) * sampleAlpha4 >> 16;
DrawingArea.pixels[j4++] = red | green | blue;
} else {
DrawingArea.pixels[j4++] = pixels[(k4 >> 16) + (l4 >> 16) * width]; DrawingArea.pixels[j4++] = pixels[(k4 >> 16) + (l4 >> 16) * width];
}
k4 += i3; k4 += i3;
l4 -= l2; l4 -= l2;
} }
+1 -52
View File
@@ -730,30 +730,6 @@ final class Texture extends DrawingArea {
} else { } else {
int j2 = anInt1465; int j2 = anInt1465;
int l2 = 256 - anInt1465; int l2 = 256 - anInt1465;
if (ClientSettings.FIX_TRANSPARENCY_OVERFLOW) {
while (--k >= 0) {
j = anIntArray1482[j1 >> 8];
j1 += l1;
j = ((j & 0xff00ff) * l2 >> 8 & 0xff00ff) + ((j & 0xff00) * l2 >> 8 & 0xff00);
ai[i] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00);
i++;
ai[i] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00);
i++;
ai[i] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00);
i++;
ai[i] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00);
i++;
}
k = i1 - l & 3;
if (k > 0) {
j = anIntArray1482[j1 >> 8];
j = ((j & 0xff00ff) * l2 >> 8 & 0xff00ff) + ((j & 0xff00) * l2 >> 8 & 0xff00);
do {
ai[i] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00);
i++;
} while (--k > 0);
}
} else {
while (--k >= 0) { while (--k >= 0) {
j = anIntArray1482[j1 >> 8]; j = anIntArray1482[j1 >> 8];
j1 += l1; j1 += l1;
@@ -772,7 +748,6 @@ final class Texture extends DrawingArea {
} while (--k > 0); } while (--k > 0);
} }
} }
}
return; return;
} }
if (l >= i1) { if (l >= i1) {
@@ -802,15 +777,6 @@ final class Texture extends DrawingArea {
} }
int k2 = anInt1465; int k2 = anInt1465;
int i3 = 256 - anInt1465; int i3 = 256 - anInt1465;
if (ClientSettings.FIX_TRANSPARENCY_OVERFLOW) {
do {
j = anIntArray1482[j1 >> 8];
j1 += i2;
j = ((j & 0xff00ff) * i3 >> 8 & 0xff00ff) + ((j & 0xff00) * i3 >> 8 & 0xff00);
ai[i] = j + ((ai[i] & 0xff00ff) * k2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * k2 >> 8 & 0xff00);
i++;
} while (--k > 0);
} else {
do { do {
j = anIntArray1482[j1 >> 8]; j = anIntArray1482[j1 >> 8];
j1 += i2; j1 += i2;
@@ -818,7 +784,6 @@ final class Texture extends DrawingArea {
ai[i++] = j + ((ai[i] & 0xff00ff) * k2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * k2 >> 8 & 0xff00); ai[i++] = j + ((ai[i] & 0xff00ff) * k2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * k2 >> 8 & 0xff00);
} while (--k > 0); } while (--k > 0);
} }
}
public static void method376(int i, int j, int k, int l, int i1, int j1, int k1) { public static void method376(int i, int j, int k, int l, int i1, int j1, int k1) {
int l1 = 0; int l1 = 0;
@@ -1160,22 +1125,6 @@ final class Texture extends DrawingArea {
int j1 = anInt1465; int j1 = anInt1465;
int k1 = 256 - anInt1465; int k1 = 256 - anInt1465;
j = ((j & 0xff00ff) * k1 >> 8 & 0xff00ff) + ((j & 0xff00) * k1 >> 8 & 0xff00); j = ((j & 0xff00ff) * k1 >> 8 & 0xff00ff) + ((j & 0xff00) * k1 >> 8 & 0xff00);
if (ClientSettings.FIX_TRANSPARENCY_OVERFLOW) {
while (--k >= 0) {
ai[i] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
i++;
ai[i] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
i++;
ai[i] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
i++;
ai[i] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
i++;
}
for (k = i1 - l & 3; --k >= 0;) {
ai[i] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
i++;
}
} else {
while (--k >= 0) { while (--k >= 0) {
ai[i++] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00); ai[i++] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
ai[i++] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00); ai[i++] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
@@ -1185,7 +1134,7 @@ final class Texture extends DrawingArea {
for (k = i1 - l & 3; --k >= 0;) { for (k = i1 - l & 3; --k >= 0;) {
ai[i++] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00); ai[i++] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
} }
}
} }
public static void method378(int i, int j, int k, int l, int i1, int j1, int k1, int l1, int i2, int j2, int k2, int l2, int i3, int j3, int k3, int l3, int i4, int j4, int k4) { public static void method378(int i, int j, int k, int l, int i1, int j1, int k1, int l1, int i2, int j2, int k2, int l2, int i3, int j3, int k3, int l3, int i4, int j4, int k4) {
Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 978 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

+1 -7
View File
@@ -1,12 +1,8 @@
{ {
"server_name": "2006Scape", "server_name": "2006Scape",
"server_test_version": 2.3,
"gui_enabled": false,
"website_link": "https://2006Scape.org", "website_link": "https://2006Scape.org",
"server_debug": false, "server_debug": false,
"file_server": true, "file_server": true,
"http_port": 8080,
"jaggrab_port": 43595,
"world_id": 1, "world_id": 1,
"xp_rate": 1.0, "xp_rate": 1.0,
"variable_xp_rate": false, "variable_xp_rate": false,
@@ -23,7 +19,5 @@
"timeout": 60, "timeout": 60,
"item_requirements": true, "item_requirements": true,
"max_players": 200, "max_players": 200,
"website_integration": false, "website_total_characters_integration": false
"cycle_logging": true,
"cycle_logging_tick": 10
} }
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+21 -28
View File
@@ -570,7 +570,7 @@
"id": 94 "id": 94
}, },
{ {
"hitpoints": 69, "hitpoints": 70,
"name": "Wolf", "name": "Wolf",
"combat": 64, "combat": 64,
"id": 95 "id": 95
@@ -846,7 +846,7 @@
"id": 140 "id": 140
}, },
{ {
"hitpoints": 74, "hitpoints": 67,
"name": "Big Wolf", "name": "Big Wolf",
"combat": 73, "combat": 73,
"id": 141 "id": 141
@@ -991,7 +991,7 @@
}, },
{ {
"hitpoints": 0, "hitpoints": 0,
"name": "Gnome Shop keeper", "name": "Gnome shop keeper",
"combat": 0, "combat": 0,
"id": 165 "id": 165
}, },
@@ -3121,31 +3121,31 @@
}, },
{ {
"hitpoints": 0, "hitpoints": 0,
"name": "Shop keeper", "name": "Shop Keeper",
"combat": 0, "combat": 0,
"id": 520 "id": 520
}, },
{ {
"hitpoints": 0, "hitpoints": 0,
"name": "Shop assistant", "name": "Shop Assistant",
"combat": 0, "combat": 0,
"id": 521 "id": 521
}, },
{ {
"hitpoints": 0, "hitpoints": 0,
"name": "Shop keeper", "name": "Shop Keeper",
"combat": 0, "combat": 0,
"id": 522 "id": 522
}, },
{ {
"hitpoints": 0, "hitpoints": 0,
"name": "Shop assistant", "name": "Shop Assistant",
"combat": 0, "combat": 0,
"id": 523 "id": 523
}, },
{ {
"hitpoints": 0, "hitpoints": 0,
"name": "Shop keeper", "name": "Shop Keeper",
"combat": 0, "combat": 0,
"id": 524 "id": 524
}, },
@@ -3157,61 +3157,61 @@
}, },
{ {
"hitpoints": 0, "hitpoints": 0,
"name": "Shop keeper", "name": "Shop Keeper",
"combat": 0, "combat": 0,
"id": 526 "id": 526
}, },
{ {
"hitpoints": 0, "hitpoints": 0,
"name": "Shop assistant", "name": "Shop Assistant",
"combat": 0, "combat": 0,
"id": 527 "id": 527
}, },
{ {
"hitpoints": 0, "hitpoints": 0,
"name": "Shop keeper", "name": "Shop Keeper",
"combat": 0, "combat": 0,
"id": 528 "id": 528
}, },
{ {
"hitpoints": 0, "hitpoints": 0,
"name": "Shop assistant", "name": "Shop Assistant",
"combat": 0, "combat": 0,
"id": 529 "id": 529
}, },
{ {
"hitpoints": 0, "hitpoints": 0,
"name": "Shop keeper", "name": "Shop Keeper",
"combat": 0, "combat": 0,
"id": 530 "id": 530
}, },
{ {
"hitpoints": 0, "hitpoints": 0,
"name": "Shop assistant", "name": "Shop Assistant",
"combat": 0, "combat": 0,
"id": 531 "id": 531
}, },
{ {
"hitpoints": 0, "hitpoints": 0,
"name": "Shop keeper", "name": "Shop Keeper",
"combat": 0, "combat": 0,
"id": 532 "id": 532
}, },
{ {
"hitpoints": 0, "hitpoints": 0,
"name": "Shop assistant", "name": "Shop Assistant",
"combat": 0, "combat": 0,
"id": 533 "id": 533
}, },
{ {
"hitpoints": 0, "hitpoints": 0,
"name": "Fairy shop keeper", "name": "Fairy Shop Keeper",
"combat": 0, "combat": 0,
"id": 534 "id": 534
}, },
{ {
"hitpoints": 0, "hitpoints": 0,
"name": "Fairy shop assistant", "name": "Fairy Shop assistant",
"combat": 0, "combat": 0,
"id": 535 "id": 535
}, },
@@ -3253,7 +3253,7 @@
}, },
{ {
"hitpoints": 0, "hitpoints": 0,
"name": "Louie Legs", "name": "Louie legs",
"combat": 0, "combat": 0,
"id": 542 "id": 542
}, },
@@ -3325,7 +3325,7 @@
}, },
{ {
"hitpoints": 0, "hitpoints": 0,
"name": "Fancy-dress shop owner", "name": "Fancy dress shop owner",
"combat": 0, "combat": 0,
"id": 554 "id": 554
}, },
@@ -10207,7 +10207,7 @@
}, },
{ {
"hitpoints": 0, "hitpoints": 0,
"name": "Ghost shopkeeper", "name": "Ghost Shopkeeper",
"combat": 0, "combat": 0,
"id": 1699 "id": 1699
}, },
@@ -16217,12 +16217,6 @@
"combat": 0, "combat": 0,
"id": 3109 "id": 3109
}, },
{
"hitpoints": 0,
"name": "Mike",
"combat": 0,
"id": 3166
},
{ {
"hitpoints": 250, "hitpoints": 250,
"name": "Chaos Elemental", "name": "Chaos Elemental",
@@ -16589,7 +16583,6 @@
"combat": 140, "combat": 140,
"id": 3068 "id": 3068
}, },
{ {
"hitpoints": 7, "hitpoints": 7,
"name": "Drunken Man", "name": "Drunken Man",
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

@@ -0,0 +1,11 @@
[2014/02/01] 13:44 andrewadsfa1 cast High Alchemy on bread for 14 coins
[2014/02/01] 13:44 andrewadsfa1 cast High Alchemy on empty pot for 0 coins
[2014/02/01] 13:44 andrewadsfa1 cast High Alchemy on bucket for 0 coins
[2014/02/01] 13:44 andrewadsfa1 cast High Alchemy on bronze pickaxe for 0 coins
[2014/02/01] 13:44 andrewadsfa1 cast High Alchemy on shrimps for 3 coins
[2014/02/01] 13:44 andrewadsfa1 cast High Alchemy on small fishing net for 3 coins
[2014/02/01] 13:44 andrewadsfa1 cast High Alchemy on tinderbox for 0 coins
[2014/02/01] 13:44 andrewadsfa1 cast High Alchemy on bronze hatchet for 9 coins
[2014/02/01] 13:46 andrewadsfa1 cast High Alchemy on nature rune for 74 coins
[2014/02/01] 13:46 andrewadsfa1 cast High Alchemy on nature rune for 74 coins
[2014/02/01] 13:46 andrewadsfa1 cast High Alchemy on nature rune for 74 coins
@@ -0,0 +1,7 @@
[2019/10/26] 21:23 michael2 clicked item bones
[2019/10/26] 21:25 michael2 clicked item bones
[2019/10/26] 21:26 michael2 clicked item bones
[2019/10/26] 21:28 michael2 clicked item bones
[2019/10/26] 21:30 michael2 clicked item bones
[2019/10/26] 21:30 michael2 clicked item bones
[2019/10/26] 21:30 michael2 clicked item bones
@@ -0,0 +1,2 @@
[2019/10/28] 15:43 michael8 clicked item herb
[2019/10/28] 15:43 michael8 clicked item bones
@@ -0,0 +1,110 @@
[2014/01/12] 10:51 andrew used command: ipban andrew
[2014/01/12] 10:59 andrew used command: ipbot andrew10
[2014/01/12] 11:00 andrew used command: ipbot andrew10
[2014/01/12] 11:01 andrew used command: ipbot andrew10
[2014/01/12] 11:07 andrew used command: ipbot andrew10
[2014/01/12] 11:07 andrew used command: ipbot andrew10
[2014/01/12] 11:08 andrew used command: ipbot andrew10
[2014/01/12] 11:09 andrew used command: ipbot andrew10
[2014/01/12] 11:09 andrew used command: ipbot andrew10
[2014/01/12] 11:10 andrew used command: ipbot andrew10
[2014/01/12] 11:11 andrew used command: ipbot andrew10
[2014/01/12] 11:11 andrew used command: ipbot andrew10
[2014/01/12] 11:12 andrew used command: ipbot andrew10
[2014/01/12] 11:12 andrew used command: ipbot andrew10
[2014/01/12] 11:12 andrew used command: ipbot andrew10
[2014/01/12] 11:12 andrew used command: ipbot andrew10
[2014/01/12] 11:13 andrew used command: ipbot andrew10
[2014/01/12] 12:27 andrew used command: ipban andrew11
[2014/01/12] 13:52 andrew used command: ipban andrew25
[2014/01/12] 13:53 andrew used command: ipban andrew25
[2014/01/12] 13:54 andrew used command: ipban andrew25 hi
[2014/01/12] 13:55 andrew used command: ipban andrew25
[2014/01/12] 13:56 andrew used command: ipban andrew25 botting
[2014/01/12] 13:57 andrew used command: ipban andrew25
[2014/01/12] 13:57 andrew used command: ipban andrew25 botting bitch
[2014/01/12] 13:58 andrew used command: ipban andrew25 botting
[2014/01/12] 16:07 andrew used command: ipban andrew22 fucker
[2014/01/12] 16:09 andrew used command: ipban andrew22 botting
[2014/01/12] 16:10 andrew used command: ipban andrew22
[2014/01/12] 16:10 andrew used command: ipban andrew22 botting
[2014/01/12] 16:11 andrew used command: ipbanned andrew22 BOTTING
[2014/01/12] 16:24 andrew used command: ipmute andrew22 fuckoff
[2014/01/12] 16:26 andrew used command: ipmute andrew22 hi
[2014/01/12] 16:28 andrew used command: ipban andrew22
[2014/01/12] 16:28 andrew used command: ipban andrew22 fuckoff
[2014/01/12] 16:32 andrew used command: ipban andrew22 fucker
[2014/01/12] 16:35 andrew used command: ipmute andrew22
[2014/01/12] 16:35 andrew used command: ipmute andrew22 spam
[2014/01/12] 16:37 andrew used command: ipmute andrew22
[2014/01/12] 16:37 andrew used command: ipmute andrew22 fucker
[2014/01/12] 16:37 andrew used command: unipmute andrew22
[2014/01/12] 16:39 andrew used command: unipmute andrew22
[2014/01/12] 16:39 andrew used command: ipmute andrew 22 botting
[2014/01/12] 16:39 andrew used command: ipmute andrew 22 botting
[2014/01/12] 16:39 andrew used command: ipmute andrew 22 botting
[2014/01/12] 16:42 andrew used command: ipmute andrew 22 hi
[2014/01/12] 16:42 andrew used command: ipmute andrew 22 hi..
[2014/01/12] 16:44 andrew used command: ipmute andrew 22 hi
[2014/01/12] 16:44 andrew used command: ipmute andrew 22 hi
[2014/01/12] 16:45 andrew used command: ipmute andrew 22 hi
[2014/01/12] 16:45 andrew used command: ipmute andrew 22 hi
[2014/01/12] 16:48 andrew used command: ipmute andrew 22 hi
[2014/01/12] 16:49 andrew used command: ipmute andrew 22 hi
[2014/01/12] 16:56 andrew used command: ipmute andrew 22 hi
[2014/01/12] 16:57 andrew used command: ipmute andrew 22 hi
[2014/01/12] 16:57 andrew used command: ipmute andrew 22 hi
[2014/01/12] 16:59 andrew used command: ipmute andrew 22 hi
[2014/01/12] 17:00 andrew used command: ipmute andrew 22 hi
[2014/01/12] 17:01 andrew used command: ipmute adsfasdf adsfasdf asdf
[2014/01/13] 19:31 andrew used command: ipmute andrew 30 hi
[2014/01/13] 19:33 andrew used command: ipmute andrew 35 hi
[2014/01/13] 19:37 andrew used command: ipmute andrew_35 hi
[2014/01/13] 19:42 andrew used command: ipmute_andrew 35_botting
[2014/01/13] 19:42 andrew used command: ipban_andrew 35_botting
[2014/01/13] 19:47 andrew used command: ipmute
[2014/01/13] 19:48 andrew used command: ipmute
[2014/01/14] 18:39 andrew used command: mute andrew45 cuz
[2014/01/14] 18:39 andrew used command: mute-andrew45-cuz
[2014/01/14] 18:39 andrew used command: mute-Andrew45-cuz
[2014/01/14] 18:40 andrew used command: mute-Andrew45-jj
[2014/01/14] 18:40 andrew used command: ipmute-andrew45-cuz
[2014/01/14] 18:40 andrew used command: unipmute-andrew-cuz
[2014/01/14] 18:40 andrew used command: unipmute andrew
[2014/01/14] 18:44 andrew used command: mute-andrew45-cuz
[2014/01/14] 18:44 andrew used command: mute
[2014/01/14] 18:44 andrew used command: mute-andrew45-da
[2014/01/14] 18:45 andrew used command: unmute andrew45
[2014/03/08] 13:37 andrew used command: bank
[2014/03/08] 13:39 andrew used command: bank
[2014/03/08] 13:41 andrew used command: bank
[2014/03/08] 13:43 andrew used command: bank
[2014/03/08] 13:45 andrew used command: bank
[2014/03/08] 13:46 andrew used command: bank
[2014/03/08] 13:47 andrew used command: bank
[2014/03/08] 13:47 andrew used command: bank
[2014/03/08] 13:53 andrew used command: bank
[2014/03/08] 13:54 andrew used command: bank
[2014/03/08] 13:54 andrew used command: bank
[2014/03/08] 13:54 andrew used command: bank:
[2014/03/08] 13:55 andrew used command: bank
[2014/03/08] 13:56 andrew used command: bank
[2014/03/08] 14:06 andrew used command: bank
[2014/03/08] 14:08 andrew used command: bank
[2014/03/08] 14:11 andrew used command: bank
[2014/03/08] 14:12 andrew used command: bank
[2014/03/08] 14:14 andrew used command: bank
[2014/03/08] 14:15 andrew used command: bank
[2014/03/08] 14:21 andrew used command: bank
[2014/03/08] 14:21 andrew used command: bank
[2014/03/08] 14:22 andrew used command: bank
[2014/03/08] 14:24 andrew used command: bank
[2014/03/08] 14:27 andrew used command: bank
[2014/03/08] 14:28 andrew used command: bank
[2014/03/08] 14:30 andrew used command: bank
[2014/03/08] 14:32 andrew used command: bank
[2014/03/08] 14:36 andrew used command: bank
[2014/03/08] 14:41 andrew used command: bank
[2014/03/08] 14:51 andrew used command: bank
[2014/03/08] 14:57 andrew used command: bank
[2014/03/08] 15:01 andrew used command: bank
@@ -0,0 +1,11 @@
[2014/03/08] 14:22 andrew1 used command: bank
[2014/03/08] 14:26 andrew1 used command: bank
[2014/03/08] 14:31 andrew1 used command: bank
[2014/03/08] 14:33 andrew1 used command: bank
[2014/03/08] 14:40 andrew1 used command: bank
[2014/03/08] 14:44 andrew1 used command: bank
[2014/03/08] 14:44 andrew1 used command: bank
[2014/03/08] 14:49 andrew1 used command: bank
[2014/03/08] 14:54 andrew1 used command: bank
[2014/03/08] 14:55 andrew1 used command: bank
[2014/03/08] 14:57 andrew1 used command: bank
@@ -0,0 +1,16 @@
[2019/11/21] 18:52 andrew5 used command: bank
[2019/11/21] 19:04 andrew5 used command: bank
[2019/12/04] 13:26 andrew5 used command: bank
[2019/12/22] 05:47 andrew5 used command: bank
[2019/12/22] 05:58 andrew5 used command: bank
[2019/12/22] 05:58 andrew5 used command: bank
[2019/12/22] 05:59 andrew5 used command: bank
[2020/01/03] 07:00 andrew5 used command: bank
[2020/01/03] 07:00 andrew5 used command: bank
[2020/01/03] 07:02 andrew5 used command: bank
[2020/03/13] 04:15 andrew5 used command: bank
[2020/03/13] 04:17 andrew5 used command: bank
[2020/03/13] 04:21 andrew5 used command: bank
[2020/03/13] 04:25 andrew5 used command: bank
[2020/03/13] 04:25 andrew5 used command: bank
[2020/03/13] 04:29 andrew5 used command: bank
@@ -0,0 +1,2 @@
[2020/02/09] 23:17 andrew55 used command: bank
[2020/02/09] 23:19 andrew55 used command: bank
@@ -0,0 +1,4 @@
[2019/10/27] 16:16 michael used command: bank
[2019/11/24] 09:27 michael used command: bank
[2019/11/24] 09:31 michael used command: bank
[2019/11/24] 09:38 michael used command: bank
@@ -0,0 +1 @@
[2019/10/28] 16:52 michael2 used command: bank
@@ -0,0 +1 @@
[2014/01/18] 22:22 mod den used command: bank
File diff suppressed because it is too large Load Diff
@@ -0,0 +1 @@
[2014/02/11] 20:05 andrewf dropped 1 empty pot absX: 3222 absY: 3218
@@ -0,0 +1,3 @@
[2014/02/11] 20:24 andrewsdf dropped 1 bronze hatchet absX: 3222 absY: 3218
[2014/02/11] 20:24 andrewsdf dropped 1 tinderbox absX: 3223 absY: 3219
[2014/02/11] 20:24 andrewsdf dropped 1 shrimps absX: 3226 absY: 3219
@@ -0,0 +1,2 @@
[2019/06/19] 22:04 irdb dropped 1 bronze sword absX: 3210 absY: 3218
[2019/06/19] 22:14 irdb dropped 1 bronze dagger absX: 3207 absY: 3215
@@ -0,0 +1,2 @@
[2019/10/26] 13:49 michael dropped 1 chef's hat absX: 3250 absY: 3225
[2019/10/26] 13:49 michael dropped 1 fire talisman absX: 3250 absY: 3225
@@ -0,0 +1,16 @@
[2019/10/26] 21:23 michael2 dropped 3 iron arrow absX: 3248 absY: 3225
[2019/10/26] 21:24 michael2 dropped 17 bronze arrow absX: 3262 absY: 3228
[2019/10/26] 21:24 michael2 dropped 1 air talisman absX: 3262 absY: 3228
[2019/10/26] 21:26 michael2 dropped 1 bronze longsword absX: 3259 absY: 3229
[2019/10/26] 21:28 michael2 dropped 1 bronze med helm absX: 3251 absY: 3225
[2019/10/26] 21:28 michael2 dropped 1 air talisman absX: 3251 absY: 3225
[2019/10/26] 21:29 michael2 dropped 9 coins absX: 3255 absY: 3223
[2019/10/26] 21:29 michael2 dropped 6 water rune absX: 3255 absY: 3223
[2019/10/26] 21:29 michael2 dropped 1 goblin mail absX: 3255 absY: 3223
[2019/10/26] 21:31 michael2 dropped 1 bronze sq shield absX: 3260 absY: 3228
[2019/10/26] 21:32 michael2 dropped 9 coins absX: 3259 absY: 3227
[2019/10/26] 21:34 michael2 dropped 1 bronze sq shield absX: 3262 absY: 3229
[2019/10/26] 21:34 michael2 dropped 1 bronze sq shield absX: 3255 absY: 3223
[2019/10/26] 21:34 michael2 dropped 1 bronze longsword absX: 3255 absY: 3223
[2019/10/26] 21:35 michael2 dropped 1 raw chicken absX: 3260 absY: 3227
[2019/10/26] 21:51 michael2 dropped 1 ashes absX: 3234 absY: 3218
@@ -0,0 +1,21 @@
[2019/10/27] 18:50 michael5 dropped 1 bronze arrow absX: 3247 absY: 3226
[2019/10/27] 18:50 michael5 dropped 1 bronze arrow absX: 3247 absY: 3226
[2019/10/27] 18:50 michael5 dropped 1 bronze arrow absX: 3247 absY: 3226
[2019/10/27] 18:50 michael5 dropped 2 bronze arrow absX: 3247 absY: 3226
[2019/10/27] 18:50 michael5 dropped 3 bronze arrow absX: 3247 absY: 3226
[2019/10/27] 18:50 michael5 dropped 4 bronze arrow absX: 3247 absY: 3226
[2019/10/27] 18:50 michael5 dropped 5 bronze arrow absX: 3247 absY: 3226
[2019/10/27] 18:50 michael5 dropped 6 bronze arrow absX: 3247 absY: 3226
[2019/10/27] 18:51 michael5 dropped 2 air rune absX: 3248 absY: 3226
[2019/10/27] 18:51 michael5 dropped 5 iron arrow absX: 3248 absY: 3226
[2019/10/27] 18:51 michael5 dropped 1 bronze arrow absX: 3251 absY: 3226
[2019/10/27] 18:51 michael5 dropped 1 bronze arrow absX: 3253 absY: 3225
[2019/10/27] 18:51 michael5 dropped 2 bronze arrow absX: 3252 absY: 3225
[2019/10/27] 18:51 michael5 dropped 3 bronze arrow absX: 3252 absY: 3225
[2019/10/27] 18:51 michael5 dropped 1 bronze arrow absX: 3242 absY: 3225
[2019/10/27] 18:51 michael5 dropped 2 bronze arrow absX: 3242 absY: 3225
[2019/10/27] 18:52 michael5 dropped 3 bronze arrow absX: 3242 absY: 3225
[2019/10/27] 18:52 michael5 dropped 4 bronze arrow absX: 3242 absY: 3225
[2019/10/27] 18:52 michael5 dropped 5 bronze arrow absX: 3242 absY: 3225
[2019/10/27] 18:52 michael5 dropped 6 bronze arrow absX: 3242 absY: 3225
[2019/10/27] 18:55 michael5 dropped 1 ashes absX: 3234 absY: 3230
@@ -0,0 +1,27 @@
[2019/10/28] 13:45 michael6 dropped 1 bronze arrow absX: 3224 absY: 3222
[2019/10/28] 13:45 michael6 dropped 1 bronze arrow absX: 3224 absY: 3224
[2019/10/28] 13:45 michael6 dropped 2 bronze arrow absX: 3224 absY: 3224
[2019/10/28] 13:45 michael6 dropped 3 bronze arrow absX: 3224 absY: 3222
[2019/10/28] 13:45 michael6 dropped 4 bronze arrow absX: 3224 absY: 3224
[2019/10/28] 13:45 michael6 dropped 5 bronze arrow absX: 3224 absY: 3224
[2019/10/28] 13:45 michael6 dropped 6 bronze arrow absX: 3224 absY: 3224
[2019/10/28] 13:45 michael6 dropped 7 bronze arrow absX: 3224 absY: 3224
[2019/10/28] 13:46 michael6 dropped 8 bronze arrow absX: 3224 absY: 3224
[2019/10/28] 13:46 michael6 dropped 9 bronze arrow absX: 3224 absY: 3222
[2019/10/28] 13:46 michael6 dropped 10 bronze arrow absX: 3224 absY: 3224
[2019/10/28] 13:48 michael6 dropped 1 bronze arrow absX: 3220 absY: 3224
[2019/10/28] 13:48 michael6 dropped 1 bronze arrow absX: 3219 absY: 3223
[2019/10/28] 13:48 michael6 dropped 2 bronze arrow absX: 3221 absY: 3223
[2019/10/28] 13:48 michael6 dropped 1 bronze arrow absX: 3221 absY: 3225
[2019/10/28] 13:48 michael6 dropped 1 bronze arrow absX: 3222 absY: 3221
[2019/10/28] 13:48 michael6 dropped 2 bronze arrow absX: 3222 absY: 3221
[2019/10/28] 13:48 michael6 dropped 3 bronze arrow absX: 3222 absY: 3221
[2019/10/28] 13:48 michael6 dropped 4 bronze arrow absX: 3222 absY: 3221
[2019/10/28] 13:48 michael6 dropped 5 bronze arrow absX: 3222 absY: 3221
[2019/10/28] 13:48 michael6 dropped 6 bronze arrow absX: 3222 absY: 3221
[2019/10/28] 13:52 michael6 dropped 1 bronze arrow absX: 3221 absY: 3219
[2019/10/28] 13:52 michael6 dropped 1 bronze arrow absX: 3232 absY: 3219
[2019/10/28] 14:01 michael6 dropped 1 bronze arrow absX: 3217 absY: 3244
[2019/10/28] 14:01 michael6 dropped 1 bronze arrow absX: 3228 absY: 3218
[2019/10/28] 14:01 michael6 dropped 1 bronze arrow absX: 3230 absY: 3218
[2019/10/28] 14:02 michael6 dropped 1 bronze arrow absX: 3232 absY: 3217
@@ -0,0 +1,29 @@
[2019/10/28] 15:09 michael7 dropped 1 bronze arrow absX: 3225 absY: 3223
[2019/10/28] 15:13 michael7 dropped 1 bronze arrow absX: 3225 absY: 3224
[2019/10/28] 15:13 michael7 dropped 1 bronze arrow absX: 3225 absY: 3222
[2019/10/28] 15:18 michael7 dropped 1 bronze arrow absX: 3230 absY: 3219
[2019/10/28] 15:19 michael7 dropped 2 bronze arrow absX: 3230 absY: 3219
[2019/10/28] 15:19 michael7 dropped 1 bronze arrow absX: 3234 absY: 3217
[2019/10/28] 15:19 michael7 dropped 1 bronze arrow absX: 3235 absY: 3221
[2019/10/28] 15:19 michael7 dropped 2 bronze arrow absX: 3235 absY: 3221
[2019/10/28] 15:19 michael7 dropped 1 bronze arrow absX: 3236 absY: 3222
[2019/10/28] 15:19 michael7 dropped 1 bronze arrow absX: 3233 absY: 3222
[2019/10/28] 15:19 michael7 dropped 2 bronze arrow absX: 3233 absY: 3222
[2019/10/28] 15:19 michael7 dropped 3 bronze arrow absX: 3233 absY: 3222
[2019/10/28] 15:19 michael7 dropped 4 bronze arrow absX: 3233 absY: 3222
[2019/10/28] 15:19 michael7 dropped 5 bronze arrow absX: 3233 absY: 3222
[2019/10/28] 15:19 michael7 dropped 6 bronze arrow absX: 3233 absY: 3222
[2019/10/28] 15:19 michael7 dropped 1 bronze arrow absX: 3232 absY: 3220
[2019/10/28] 15:19 michael7 dropped 1 bronze arrow absX: 3233 absY: 3220
[2019/10/28] 15:19 michael7 dropped 2 bronze arrow absX: 3233 absY: 3220
[2019/10/28] 15:20 michael7 dropped 1 bronze arrow absX: 3234 absY: 3218
[2019/10/28] 15:20 michael7 dropped 1 ashes absX: 3230 absY: 3218
[2019/10/28] 15:20 michael7 dropped 3 bronze arrow absX: 3230 absY: 3219
[2019/10/28] 15:20 michael7 dropped 1 bronze arrow absX: 3223 absY: 3228
[2019/10/28] 15:23 michael7 dropped 1 bronze arrow absX: 3223 absY: 3227
[2019/10/28] 15:23 michael7 dropped 2 bronze arrow absX: 3223 absY: 3229
[2019/10/28] 15:23 michael7 dropped 1 bronze arrow absX: 3234 absY: 3218
[2019/10/28] 15:23 michael7 dropped 1 bronze arrow absX: 3236 absY: 3218
[2019/10/28] 15:23 michael7 dropped 1 bronze arrow absX: 3234 absY: 3218
[2019/10/28] 15:23 michael7 dropped 2 bronze arrow absX: 3234 absY: 3218
[2019/10/28] 15:23 michael7 dropped 3 bronze arrow absX: 3234 absY: 3218
@@ -0,0 +1,20 @@
[2019/10/28] 15:25 michael8 dropped 1 bronze arrow absX: 3234 absY: 3226
[2019/10/28] 15:25 michael8 dropped 1 bronze arrow absX: 3234 absY: 3226
[2019/10/28] 15:25 michael8 dropped 1 bronze arrow absX: 3234 absY: 3226
[2019/10/28] 15:29 michael8 dropped 1 bronze arrow absX: 3228 absY: 3219
[2019/10/28] 15:29 michael8 dropped 1 bronze arrow absX: 3226 absY: 3220
[2019/10/28] 15:29 michael8 dropped 2 bronze arrow absX: 3226 absY: 3220
[2019/10/28] 15:29 michael8 dropped 3 bronze arrow absX: 3226 absY: 3220
[2019/10/28] 15:29 michael8 dropped 4 bronze arrow absX: 3228 absY: 3220
[2019/10/28] 15:30 michael8 dropped 1 bronze arrow absX: 3229 absY: 3217
[2019/10/28] 15:30 michael8 dropped 1 bronze arrow absX: 3226 absY: 3218
[2019/10/28] 15:31 michael8 dropped 5 bronze arrow absX: 3226 absY: 3220
[2019/10/28] 15:31 michael8 dropped 6 bronze arrow absX: 3226 absY: 3220
[2019/10/28] 15:31 michael8 dropped 7 bronze arrow absX: 3226 absY: 3220
[2019/10/28] 15:31 michael8 dropped 1 iron dagger absX: 3226 absY: 3220
[2019/10/28] 15:36 michael8 dropped 1 bronze arrow absX: 3219 absY: 3222
[2019/10/28] 15:36 michael8 dropped 2 bronze arrow absX: 3219 absY: 3222
[2019/10/28] 15:36 michael8 dropped 3 bronze arrow absX: 3219 absY: 3222
[2019/10/28] 15:36 michael8 dropped 4 bronze arrow absX: 3219 absY: 3222
[2019/10/28] 15:41 michael8 dropped 1 air talisman absX: 3220 absY: 3222
[2019/10/28] 15:41 michael8 dropped 1 herb absX: 3220 absY: 3222
@@ -0,0 +1,9 @@
[2020/08/09] 21:08 sandro dropped 1 waterskin(0) absX: 3303 absY: 3136
[2020/08/09] 21:08 sandro dropped 1 waterskin(0) absX: 3303 absY: 3136
[2020/08/09] 21:08 sandro dropped 1 waterskin(0) absX: 3301 absY: 3138
[2020/08/09] 21:08 sandro dropped 1 waterskin(0) absX: 3299 absY: 3139
[2020/08/09] 21:08 sandro dropped 1 waterskin(0) absX: 3297 absY: 3141
[2020/08/09] 21:08 sandro dropped 1 waterskin(0) absX: 3297 absY: 3141
[2020/08/09] 21:08 sandro dropped 1 waterskin(0) absX: 3297 absY: 3141
[2020/08/09] 21:08 sandro dropped 1 waterskin(0) absX: 3297 absY: 3141
[2020/08/09] 21:08 sandro dropped 1 waterskin(0) absX: 3293 absY: 3147
@@ -0,0 +1 @@
[2019/11/10] 22:30 spamtest1 dropped 1 grimy lantadyme absX: 3231 absY: 3207
@@ -0,0 +1 @@
[2019/10/04] 22:10 test dropped 3 coins absX: 3224 absY: 3202
@@ -0,0 +1 @@
[2014/01/08] 16:07 andrew1 killed andrew in the duel arena.
@@ -0,0 +1,4 @@
[2019/11/17] 15:52 andrew22 picked up knife itemX: 3224, itemY: 3202
[2019/11/17] 15:52 andrew22 picked up knife itemX: 3224, itemY: 3202
[2019/11/17] 15:54 andrew22 picked up knife itemX: 3224, itemY: 3202
[2019/11/17] 15:56 andrew22 picked up knife itemX: 3224, itemY: 3202
@@ -0,0 +1,2 @@
[2019/06/19] 22:14 irdb picked up bronze dagger itemX: 3207, itemY: 3215
[2019/10/03] 18:17 irdb picked up cabbage itemX: 3217, itemY: 9622
@@ -0,0 +1,2 @@
[2019/10/26] 13:50 michael picked up fire talisman itemX: 3250, itemY: 3226
[2019/10/26] 13:50 michael picked up chef's hat itemX: 3250, itemY: 3226
@@ -0,0 +1,20 @@
[2019/10/26] 21:23 michael2 picked up iron arrow itemX: 3249, itemY: 3225
[2019/10/26] 21:23 michael2 picked up bones itemX: 3249, itemY: 3225
[2019/10/26] 21:24 michael2 picked up bronze arrow itemX: 3261, itemY: 3228
[2019/10/26] 21:24 michael2 picked up bones itemX: 3261, itemY: 3228
[2019/10/26] 21:24 michael2 picked up air talisman itemX: 3261, itemY: 3228
[2019/10/26] 21:26 michael2 picked up bones itemX: 3251, itemY: 3225
[2019/10/26] 21:26 michael2 picked up bones itemX: 3260, itemY: 3229
[2019/10/26] 21:26 michael2 picked up bronze longsword itemX: 3260, itemY: 3229
[2019/10/26] 21:27 michael2 picked up bones itemX: 3262, itemY: 3229
[2019/10/26] 21:28 michael2 picked up bronze med helm itemX: 3250, itemY: 3225
[2019/10/26] 21:28 michael2 picked up bones itemX: 3250, itemY: 3225
[2019/10/26] 21:28 michael2 picked up air talisman itemX: 3250, itemY: 3225
[2019/10/26] 21:30 michael2 picked up bones itemX: 3250, itemY: 3225
[2019/10/26] 21:30 michael2 picked up goblin mail itemX: 3254, itemY: 3223
[2019/10/26] 21:31 michael2 picked up bronze sq shield itemX: 3260, itemY: 3229
[2019/10/26] 21:31 michael2 picked up bones itemX: 3260, itemY: 3229
[2019/10/26] 21:33 michael2 picked up coins itemX: 3261, itemY: 3229
[2019/10/26] 21:34 michael2 picked up bronze sq shield itemX: 3262, itemY: 3230
[2019/10/26] 21:34 michael2 picked up bronze sq shield itemX: 3254, itemY: 3223
[2019/10/26] 21:34 michael2 picked up bronze longsword itemX: 3254, itemY: 3223
@@ -0,0 +1,5 @@
[2019/10/27] 18:51 michael5 picked up bronze arrow itemX: 3248, itemY: 3226
[2019/10/27] 18:51 michael5 picked up air rune itemX: 3248, itemY: 3226
[2019/10/27] 18:51 michael5 picked up bones itemX: 3248, itemY: 3226
[2019/10/27] 18:51 michael5 picked up iron arrow itemX: 3248, itemY: 3226
[2019/10/27] 18:51 michael5 picked up bronze arrow itemX: 3249, itemY: 3226
@@ -0,0 +1,5 @@
[2019/10/28] 13:46 michael6 picked up bronze arrow itemX: 3224, itemY: 3223
[2019/10/28] 13:48 michael6 picked up bronze arrow itemX: 3220, itemY: 3223
[2019/10/28] 13:48 michael6 picked up bronze arrow itemX: 3222, itemY: 3222
[2019/10/28] 13:48 michael6 picked up bronze arrow itemX: 3220, itemY: 3225
[2019/10/28] 13:48 michael6 picked up bronze arrow itemX: 3220, itemY: 3226
@@ -0,0 +1,5 @@
[2019/10/28] 15:19 michael7 picked up bronze arrow itemX: 3234, itemY: 3222
[2019/10/28] 15:19 michael7 picked up bronze arrow itemX: 3234, itemY: 3221
[2019/10/28] 15:19 michael7 picked up bronze arrow itemX: 3234, itemY: 3220
[2019/10/28] 15:19 michael7 picked up bronze arrow itemX: 3235, itemY: 3220
[2019/10/28] 15:19 michael7 picked up bronze arrow itemX: 3234, itemY: 3218
@@ -0,0 +1,4 @@
[2019/10/28] 15:36 michael8 picked up bronze arrow itemX: 3219, itemY: 3221
[2019/10/28] 15:43 michael8 picked up air talisman itemX: 3219, itemY: 3222
[2019/10/28] 15:43 michael8 picked up herb itemX: 3219, itemY: 3222
[2019/10/28] 15:43 michael8 picked up bones itemX: 3219, itemY: 3222
@@ -0,0 +1,2 @@
[2019/11/10] 22:46 spamtest1 picked up bones itemX: 3231, itemY: 3236
[2019/11/10] 22:46 spamtest1 picked up bones itemX: 3231, itemY: 3236
@@ -0,0 +1,9 @@
[2019/10/04] 22:06 test picked up knife itemX: 3224, itemY: 3202
[2019/10/04] 22:10 test picked up knife itemX: 3224, itemY: 3202
[2019/10/04] 22:10 test picked up knife itemX: 3224, itemY: 3202
[2019/10/04] 22:11 test picked up coins itemX: 3224, itemY: 3202
[2019/10/04] 22:16 test picked up knife itemX: 3224, itemY: 3202
[2019/10/04] 22:16 test picked up knife itemX: 3224, itemY: 3202
[2019/10/04] 22:16 test picked up knife itemX: 3224, itemY: 3202
[2019/10/04] 22:23 test picked up knife itemX: 3224, itemY: 3202
[2019/10/04] 22:24 test picked up knife itemX: 3224, itemY: 3202
@@ -0,0 +1 @@
[2014/01/07] 18:47 andrew was killed by andrew1 absX: 3087 absY: 3900
@@ -0,0 +1 @@
[2019/11/21] 19:51 andrew5 was killed by andrew44 absX: 3104 absY: 3898
@@ -0,0 +1 @@
[2014/01/07] 18:47 andrew1 killed andrew absX: 3088 absY: 3900
@@ -0,0 +1,2 @@
[2014/01/14] 18:40 andrew45 said hi
[2014/01/14] 18:48 andrew45 said hi
@@ -0,0 +1,10 @@
andrew1 was reported by andrew2, Offensive language, January, 06
.
andrew2 was reported by andrew, Offensive language, January, 06
-[01:09:58: andrew2]: asdfasdfa
-[01:09:59: andrew2]: aa
-[01:09:59: andrew2]: sdfa
-[01:10:00: andrew]: adsfasdfadsfa
.
@@ -0,0 +1 @@
[2019/11/08] 19:22 bot bought newcomer map from store id: 88 for 1 coins
@@ -0,0 +1 @@
[2019/11/08] 19:22 bot sold newcomer map to store id: 88 for 1 coins
@@ -0,0 +1,23 @@
[2019/10/04] 10:46 irdb sold thread to store id: 24 for 2 coins
[2019/10/04] 10:47 irdb sold bronze dagger to store id: 88 for 8 coins
[2019/10/04] 16:54 irdb sold bronze dagger to store id: 88 for 8 coins
[2019/10/04] 16:54 irdb sold bucket to store id: 88 for 0 coins
[2019/10/04] 16:54 irdb sold bucket to store id: 88 for 0 coins
[2019/10/04] 16:54 irdb sold bucket to store id: 88 for 0 coins
[2019/10/04] 16:54 irdb sold bucket to store id: 88 for 0 coins
[2019/10/04] 16:54 irdb sold bucket to store id: 88 for 0 coins
[2019/10/04] 16:54 irdb sold bucket to store id: 88 for 0 coins
[2019/10/04] 16:54 irdb sold bucket to store id: 88 for 0 coins
[2019/10/04] 16:54 irdb sold bucket to store id: 88 for 0 coins
[2019/10/04] 16:54 irdb sold bucket to store id: 88 for 0 coins
[2019/10/04] 16:54 irdb sold bucket to store id: 88 for 0 coins
[2019/10/04] 16:55 irdb sold bucket to store id: 88 for 0 coins
[2019/10/04] 16:55 irdb sold bucket to store id: 88 for 0 coins
[2019/10/04] 16:55 irdb sold bucket to store id: 88 for 0 coins
[2019/10/04] 16:55 irdb sold bucket to store id: 88 for 0 coins
[2019/10/04] 16:55 irdb sold bucket to store id: 88 for 0 coins
[2019/10/04] 16:55 irdb sold bucket to store id: 88 for 0 coins
[2019/10/04] 16:55 irdb sold bucket to store id: 88 for 0 coins
[2019/10/04] 16:55 irdb sold bucket to store id: 88 for 0 coins
[2019/10/04] 16:55 irdb sold bucket to store id: 88 for 0 coins
[2019/10/04] 16:55 irdb sold bucket to store id: 88 for 0 coins
@@ -0,0 +1,13 @@
[2020/01/03] 07:19 andrew was traded by andrew5 and recieved 1 Knife
[2020/01/03] 07:19 andrew was traded by andrew5 and recieved 1 Logs
[2020/01/03] 07:19 andrew was traded by andrew5 and recieved 1 Logs
[2020/01/03] 07:19 andrew was traded by andrew5 and recieved 1 Logs
[2020/01/03] 07:19 andrew was traded by andrew5 and recieved 1 Logs
[2020/01/03] 07:19 andrew was traded by andrew5 and recieved 1 Logs
[2020/01/03] 07:19 andrew was traded by andrew5 and recieved 1 Logs
[2020/01/03] 07:19 andrew was traded by andrew5 and recieved 1 Logs
[2020/01/03] 07:19 andrew was traded by andrew5 and recieved 1 Logs
[2020/01/03] 07:19 andrew was traded by andrew5 and recieved 1 Logs
[2020/01/03] 07:19 andrew was traded by andrew5 and recieved 1 Logs
[2020/01/03] 07:19 andrew was traded by andrew5 and recieved 1 Logs
[2020/01/03] 07:19 andrew was traded by andrew5 and recieved 1 Logs
@@ -0,0 +1,2 @@
[2019/10/27] 14:45 irdb2 was traded by irdb3 and recieved 1 Bronze dagger
[2019/10/27] 14:45 irdb2 was traded by irdb3 and recieved 1 Wooden shield
+1
View File
@@ -0,0 +1 @@
0
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.

Some files were not shown because too many files have changed in this diff Show More