Compare commits

..

1 Commits

Author SHA1 Message Date
Sandro Coutinho b78d903188 [BUGFIX] Running in 1-tick 2020-08-04 23:44:51 +01:00
2181 changed files with 215066 additions and 468343 deletions
-38
View File
@@ -1,38 +0,0 @@
# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
name: Java CI with Maven
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 1.8
uses: actions/setup-java@v2
with:
distribution: 'zulu'
java-version: '8'
cache: 'maven'
- name: Build with Maven
id: build
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 -13
View File
@@ -1,17 +1,6 @@
2006Scape\ Server/data/characters/ 2006Redone\ Server/data/characters/
.idea/ .idea/
.idea/workspace.xml .idea/workspace.xml
**/.idea/workspace.xml **/.idea/workspace.xml
**/.idea/* **/.idea/*
*/*.jar *.iml
*.iml
.DS_Store
2006Scape Server/data/logs
*.class
*.project
2006Scape Client/bin/
*.prefs
*.classpath
# Ignore any json files in the server root (should only be config files, the sample file should still be updated)
2006Scape Server/*.json
@@ -0,0 +1,11 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.6
@@ -3,8 +3,8 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent> <parent>
<artifactId>2006Scape</artifactId> <artifactId>2006redone</artifactId>
<groupId>com.rs2</groupId> <groupId>com.rebotted</groupId>
<version>1.0</version> <version>1.0</version>
</parent> </parent>
@@ -47,4 +47,4 @@
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
</project> </project>
@@ -0,0 +1,22 @@
import java.net.InetAddress;
import java.net.UnknownHostException;
public final class Client {
public static void main(String[] args) {
ClientSettings.SERVER_IP = "127.0.0.1";
try {
Game game = new Game();
Game.nodeID = 10;
Game.portOff = 0;
Game.setHighMem();
Game.isMembers = true;
Signlink.storeid = 32;
Signlink.startpriv(InetAddress.getLocalHost());
game.createClientFrame(503, 765);
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
@@ -0,0 +1,38 @@
import java.math.BigInteger;
/**
* ClientSettings
* @author Andrew (I'm A Boss on Rune-Server and Mr Extremez on Mopar & Runelocus)
*/
public class ClientSettings {
public static String SNOW_MONTH = ".12";
/**
* The Servers Name
*/
public final static String SERVER_NAME = "2006rebotted";
/**
* The Servers Website
*/
public final static String SERVER_WEBSITE = "www.rsrebotted.com";
/**
* The Servers Ip
*
* 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)
*
*/
public static String SERVER_IP = "127.0.0.1";
/**
* The Npc Bits for the Server
*/
public final static int NPC_BITS = 12;
/**
* The Servers Uid
*/
public final static int UID = 314268572;
public static final BigInteger RSA_MODULUS = new BigInteger("91553247461173033466542043374346300088148707506479543786501537350363031301992107112953015516557748875487935404852620239974482067336878286174236183516364787082711186740254168914127361643305190640280157664988536979163450791820893999053469529344247707567448479470137716627440246788713008490213212272520901741443");
public static final BigInteger RSA_EXPONENT = new BigInteger("65537");
}
@@ -525,8 +525,6 @@ final class CollisionMap {
return false; return false;
} }
// Something to do with moving to objects/npcs etc when clicked on
// Maybe checking distance?
public boolean method221(int i, int j, int k, int l, int i1, int j1, int k1) { public boolean method221(int i, int j, int k, int l, int i1, int j1, int k1) {
int l1 = j + j1 - 1; int l1 = j + j1 - 1;
int i2 = i + l - 1; int i2 = i + l - 1;
@@ -0,0 +1,233 @@
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3)
public class DrawingArea extends NodeSub {
public static void initDrawingArea(int i, int j, int ai[]) {
pixels = ai;
width = j;
height = i;
setDrawingArea(i, 0, j, 0);
}
public static void defaultDrawingAreaSize() {
topX = 0;
topY = 0;
bottomX = width;
bottomY = height;
centerX = bottomX - 1;
centerY = bottomX / 2;
}
public static void setDrawingArea(int i, int j, int k, int l) {
if (j < 0) {
j = 0;
}
if (l < 0) {
l = 0;
}
if (k > width) {
k = width;
}
if (i > height) {
i = height;
}
topX = j;
topY = l;
bottomX = k;
bottomY = i;
centerX = bottomX - 1;
centerY = bottomX / 2;
anInt1387 = bottomY / 2;
}
public static void setAllPixelsToZero() {
int i = width * height;
for (int j = 0; j < i; j++) {
pixels[j] = 0;
}
}
public static void method335(int i, int j, int k, int l, int i1, int k1) {
if (k1 < topX) {
k -= topX - k1;
k1 = topX;
}
if (j < topY) {
l -= topY - j;
j = topY;
}
if (k1 + k > bottomX) {
k = bottomX - k1;
}
if (j + l > bottomY) {
l = bottomY - j;
}
int l1 = 256 - i1;
int i2 = (i >> 16 & 0xff) * i1;
int j2 = (i >> 8 & 0xff) * i1;
int k2 = (i & 0xff) * i1;
int k3 = width - k;
int l3 = k1 + j * width;
for (int i4 = 0; i4 < l; i4++) {
for (int j4 = -k; j4 < 0; j4++) {
int l2 = (pixels[l3] >> 16 & 0xff) * l1;
int i3 = (pixels[l3] >> 8 & 0xff) * l1;
int j3 = (pixels[l3] & 0xff) * l1;
int k4 = (i2 + l2 >> 8 << 16) + (j2 + i3 >> 8 << 8) + (k2 + j3 >> 8);
pixels[l3++] = k4;
}
l3 += k3;
}
}
public static void method336(int i, int j, int l, int i1, int k) {
if (k < topX) {
i1 -= topX - k;
k = topX;
}
if (j < topY) {
i -= topY - j;
j = topY;
}
if (k + i1 > bottomX) {
i1 = bottomX - k;
}
if (j + i > bottomY) {
i = bottomY - j;
}
int k1 = width - i1;
int l1 = k + j * width;
for (int i2 = -i; i2 < 0; i2++) {
for (int j2 = -i1; j2 < 0; j2++) {
pixels[l1++] = l;
}
l1 += k1;
}
}
public static void fillPixels(int i1, int k, int l, int i, int j) {
method339(i1, l, j, i);
method339(i1 + k - 1, l, j, i);
method341(i1, l, k, i);
method341(i1, l, k, i + j - 1);
}
public static void method338(int i, int j, int k, int l, int i1, int j1) {
method340(l, i1, i, k, j1);
method340(l, i1, i + j - 1, k, j1);
if (j >= 3) {
method342(l, j1, k, i + 1, j - 2);
method342(l, j1 + i1 - 1, k, i + 1, j - 2);
}
}
public static void method339(int i, int j, int k, int l) {
if (i < topY || i >= bottomY) {
return;
}
if (l < topX) {
k -= topX - l;
l = topX;
}
if (l + k > bottomX) {
k = bottomX - l;
}
int i1 = l + i * width;
for (int j1 = 0; j1 < k; j1++) {
pixels[i1 + j1] = j;
}
}
private static void method340(int i, int j, int k, int l, int i1) {
if (k < topY || k >= bottomY) {
return;
}
if (i1 < topX) {
j -= topX - i1;
i1 = topX;
}
if (i1 + j > bottomX) {
j = bottomX - i1;
}
int j1 = 256 - l;
int k1 = (i >> 16 & 0xff) * l;
int l1 = (i >> 8 & 0xff) * l;
int i2 = (i & 0xff) * l;
int i3 = i1 + k * width;
for (int j3 = 0; j3 < j; j3++) {
int j2 = (pixels[i3] >> 16 & 0xff) * j1;
int k2 = (pixels[i3] >> 8 & 0xff) * j1;
int l2 = (pixels[i3] & 0xff) * j1;
int k3 = (k1 + j2 >> 8 << 16) + (l1 + k2 >> 8 << 8) + (i2 + l2 >> 8);
pixels[i3++] = k3;
}
}
public static void method341(int i, int j, int k, int l) {
if (l < topX || l >= bottomX) {
return;
}
if (i < topY) {
k -= topY - i;
i = topY;
}
if (i + k > bottomY) {
k = bottomY - i;
}
int j1 = l + i * width;
for (int k1 = 0; k1 < k; k1++) {
pixels[j1 + k1 * width] = j;
}
}
private static void method342(int i, int j, int k, int l, int i1) {
if (j < topX || j >= bottomX) {
return;
}
if (l < topY) {
i1 -= topY - l;
l = topY;
}
if (l + i1 > bottomY) {
i1 = bottomY - l;
}
int j1 = 256 - k;
int k1 = (i >> 16 & 0xff) * k;
int l1 = (i >> 8 & 0xff) * k;
int i2 = (i & 0xff) * k;
int i3 = j + l * width;
for (int j3 = 0; j3 < i1; j3++) {
int j2 = (pixels[i3] >> 16 & 0xff) * j1;
int k2 = (pixels[i3] >> 8 & 0xff) * j1;
int l2 = (pixels[i3] & 0xff) * j1;
int k3 = (k1 + j2 >> 8 << 16) + (l1 + k2 >> 8 << 8) + (i2 + l2 >> 8);
pixels[i3] = k3;
i3 += width;
}
}
DrawingArea() {
}
public static int pixels[];
public static int width;
public static int height;
public static int topY;
public static int bottomY;
public static int topX;
public static int bottomX;
public static int centerX;
public static int centerY;
public static int anInt1387;
}
@@ -25,7 +25,7 @@ public final class EntityDef {
break; break;
case 945: case 945:
entityDef.name = ClientSettings.SERVER_NAME + " Guide"; entityDef.name = "2006Redone Guide";
break; break;
} }
return entityDef; return entityDef;
@@ -92,12 +92,10 @@ public final class EntityDef {
} }
} }
public static int totalNPCs;
public static void unpackConfig(StreamLoader streamLoader) { public static void unpackConfig(StreamLoader streamLoader) {
stream = new Stream(streamLoader.getDataForName("npc.dat")); stream = new Stream(streamLoader.getDataForName("npc.dat"));
Stream stream2 = new Stream(streamLoader.getDataForName("npc.idx")); Stream stream2 = new Stream(streamLoader.getDataForName("npc.idx"));
totalNPCs = stream2.readUnsignedWord(); int totalNPCs = stream2.readUnsignedWord();
streamIndices = new int[totalNPCs]; streamIndices = new int[totalNPCs];
int i = 2; int i = 2;
for (int j = 0; j < totalNPCs; j++) { for (int j = 0; j < totalNPCs; j++) {
@@ -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);
File diff suppressed because it is too large Load Diff
@@ -1,6 +1,6 @@
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov. // Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html // Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) package com.rs2; // Decompiler options: packimports(3) package com.rebotted;
public final class ISAACRandomGen { public final class ISAACRandomGen {
@@ -7,7 +7,7 @@ final class Item extends Animable {
@Override @Override
public final Model getRotatedModel() { public final Model getRotatedModel() {
ItemDef itemDef = ItemDef.forID(ID); ItemDef itemDef = ItemDef.forID(ID);
return itemDef.method201(amount); return itemDef.method201(anInt1559);
} }
public Item() { public Item() {
@@ -16,5 +16,5 @@ final class Item extends Animable {
public int ID; public int ID;
public int x; public int x;
public int y; public int y;
public int amount; public int anInt1559;
} }
@@ -2103,7 +2103,7 @@ public final class ItemDef {
int j3 = DrawingArea.bottomY; int j3 = DrawingArea.bottomY;
Texture.aBoolean1464 = false; Texture.aBoolean1464 = false;
DrawingArea.initDrawingArea(32, 32, sprite2.pixels); DrawingArea.initDrawingArea(32, 32, sprite2.pixels);
DrawingArea.fillArea(32, 0, 0, 32, 0); DrawingArea.method336(32, 0, 0, 32, 0);
Texture.method364(); Texture.method364();
int k3 = itemDef.modelZoom; int k3 = itemDef.modelZoom;
if (k == -1) { if (k == -1) {
@@ -2372,7 +2372,7 @@ public final class ItemDef {
private int[] originalModelColors; private int[] originalModelColors;
public boolean membersObject; public boolean membersObject;
private int anInt162; private int anInt162;
public int certTemplateID; private int certTemplateID;
private int anInt164; private int anInt164;
private int anInt165; private int anInt165;
private int anInt166; private int anInt166;
@@ -2405,7 +2405,7 @@ public final class ItemDef {
private int anInt197; private int anInt197;
public int modelRotation2; public int modelRotation2;
private int anInt200; private int anInt200;
public int[] stackAmounts; private int[] stackAmounts;
public int team; public int team;
public static int totalItems; public static int totalItems;
private int anInt204; private int anInt204;
+39
View File
@@ -0,0 +1,39 @@
import java.net.InetAddress;
import java.net.UnknownHostException;
public final class Main {
/*
DEAR DEVELOPER!
If you want to run the client locally, the easiest way to do that is run the class "Client.java" instead!
If you REALLY want to use this class, add two random program arguments.
But seriously, Client.java is just a copy-paste of this class and does it locally. Use that instead!
*/
public static void main(String[] args) {
ClientSettings.SERVER_IP = "2006rebotted.hopto.org";
if (args.length > 1)
{
System.out.println("Running local");
ClientSettings.SERVER_IP = "127.0.0.1";
}
try {
Game game = new Game();
Game.nodeID = 10;
Game.portOff = 0;
Game.setHighMem();
Game.isMembers = true;
Signlink.storeid = 32;
Signlink.startpriv(InetAddress.getLocalHost());
game.createClientFrame(503, 765);
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
@@ -113,7 +113,7 @@ public final class Model extends Animable {
if (aClass21Array1661 == null) { if (aClass21Array1661 == null) {
return null; return null;
} }
Class21 class21 = aClass21Array1661.length < j ? null : aClass21Array1661[j]; Class21 class21 = aClass21Array1661[j];
if (class21 == null) { if (class21 == null) {
aOnDemandFetcherParent_1662.method548(j); aOnDemandFetcherParent_1662.method548(j);
return null; return null;
@@ -1335,10 +1335,7 @@ public final class Model extends Animable {
int k2 = k1 * j + j2 * k >> 16; int k2 = k1 * j + j2 * k >> 16;
int l2 = anInt1650 * k >> 16; int l2 = anInt1650 * k >> 16;
int i3 = k2 + l2; int i3 = k2 + l2;
// Check distance of model to camera for rendering (default 3500) if (i3 <= 50 || k2 >= 3500) {
int distance = WorldController.drawDistance * 256;
distance *= 1 + (Game.zoom / 10);
if (i3 <= 50 || k2 >= distance) {
return; return;
} }
int j3 = l1 * l + j1 * i1 >> 16; int j3 = l1 * l + j1 * i1 >> 16;
@@ -83,12 +83,10 @@ public final class ObjectDef {
stream = null; stream = null;
} }
public static int totalObjects;
public static void unpackConfig(StreamLoader streamLoader) { public static void unpackConfig(StreamLoader streamLoader) {
stream = new Stream(streamLoader.getDataForName("loc.dat")); stream = new Stream(streamLoader.getDataForName("loc.dat"));
Stream stream = new Stream(streamLoader.getDataForName("loc.idx")); Stream stream = new Stream(streamLoader.getDataForName("loc.idx"));
totalObjects = stream.readUnsignedWord(); int totalObjects = stream.readUnsignedWord();
streamIndices = new int[totalObjects]; streamIndices = new int[totalObjects];
int i = 2; int i = 2;
for (int j = 0; j < totalObjects; j++) { for (int j = 0; j < totalObjects; j++) {
@@ -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);
@@ -5,13 +5,18 @@
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.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, MouseMotionListener, KeyListener, FocusListener, WindowListener {
public static boolean ctrlDown = false; public static boolean ctrlDown = false;
public static boolean shiftDown = false; public static boolean shiftDown = false;
@@ -22,209 +27,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) {
@@ -239,7 +45,6 @@ public class RSApplet extends Applet implements Runnable, MouseListener, MouseWh
public void run() { public void run() {
getGameComponent().addMouseListener(this); getGameComponent().addMouseListener(this);
getGameComponent().addMouseMotionListener(this); getGameComponent().addMouseMotionListener(this);
getGameComponent().addMouseWheelListener(this);
getGameComponent().addKeyListener(this); getGameComponent().addKeyListener(this);
getGameComponent().addFocusListener(this); getGameComponent().addFocusListener(this);
if (gameFrame != null) { if (gameFrame != null) {
@@ -375,7 +180,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 +212,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 +262,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,14 +287,15 @@ 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;
} }
@Override
public void mouseWheelMoved(MouseWheelEvent e) {}
@Override @Override
public void keyPressed(KeyEvent keyevent) { public void keyPressed(KeyEvent keyevent) {
idleTime = 0; idleTime = 0;
@@ -677,7 +492,11 @@ public class RSApplet extends Applet implements Runnable, MouseListener, MouseWh
} }
Component getGameComponent() { Component getGameComponent() {
return this; if (gameFrame != null) {
return gameFrame;
} else {
return this;
}
} }
public void startRunnable(Runnable runnable, int priority) { public void startRunnable(Runnable runnable, int priority) {
@@ -0,0 +1,39 @@
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3)
import java.awt.*;
@SuppressWarnings("serial")
final class RSFrame extends Frame {
public RSFrame(RSApplet RSApplet_, int i, int j) {
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);
}
@Override
public Graphics getGraphics() {
Graphics g = super.getGraphics();
g.translate(4, 24);
return g;
}
@Override
public void update(Graphics g) {
rsApplet.update(g);
}
@Override
public void paint(Graphics g) {
rsApplet.paint(g);
}
private final RSApplet rsApplet;
}
@@ -25,6 +25,8 @@ public final class RSInterface {
rsInterface.id = k; rsInterface.id = k;
rsInterface.parentID = i; rsInterface.parentID = i;
rsInterface.type = stream.readUnsignedByte(); rsInterface.type = stream.readUnsignedByte();
//if(rsInterface.type == 0)
// System.out.println(rsInterface.parentID+":"+k);
rsInterface.atActionType = stream.readUnsignedByte(); rsInterface.atActionType = stream.readUnsignedByte();
rsInterface.anInt214 = stream.readUnsignedWord(); rsInterface.anInt214 = stream.readUnsignedWord();
rsInterface.width = stream.readUnsignedWord(); rsInterface.width = stream.readUnsignedWord();
@@ -278,7 +278,7 @@ public final class Signlink implements Runnable {
public static Synthesizer synthesizer = null; public static Synthesizer synthesizer = null;
public static String findcachedir() { public static String findcachedir() {
String path = System.getProperty("user.home") + "/.2006Scape_file_system/"; String path = System.getProperty("user.home") + "/.2006rebotted_file_system/";
File file = new File(path); File file = new File(path);
if (!file.exists()) { if (!file.exists()) {
if (!file.mkdirs()) { if (!file.mkdirs()) {
@@ -289,7 +289,7 @@ public final class Signlink implements Runnable {
} }
public static String secondDir() { public static String secondDir() {
File file = new File("C:/.2006Scape_file_system/"); File file = new File("C:/.2006rebotted_file_system/");
if (!file.exists()) { if (!file.exists()) {
file.mkdirs(); file.mkdirs();
} }
@@ -404,17 +404,17 @@ public final class Signlink implements Runnable {
public static boolean reporterror = true; public static boolean reporterror = true;
public static String errorname = ""; public static String errorname = "";
public static Midi midii = new Midi(); public static Midi midii = new Midi();
private static int savelen; private static int savelen;
private static String saveReq = null; private static String saveReq = null;
private static byte savebuf[] = null; private static byte savebuf[] = null;
public static boolean play; public static boolean play;
private static int midiPos; private static int midiPos;
public static String midi = null; public static String midi = null;
public static int midiVolume; public static int midiVolume;
public static int midifade; public static int midifade;
private static boolean waveplay; private static boolean waveplay;
private static int wavepos; private static int wavepos;
public static String wave = null; public static String wave = null;
public static int wavevol; public static int wavevol;
} }
@@ -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);
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
sound.drain();
sound.close();
} }
Thread.sleep(10000);
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) { DrawingArea.pixels[j4++] = pixels[(k4 >> 16) + (l4 >> 16) * width];
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];
}
k4 += i3; k4 += i3;
l4 -= l2; l4 -= l2;
} }
@@ -75,20 +75,16 @@ public final class TextDrawingArea extends DrawingArea {
} }
} }
public void textRight(int i, String s, int k, int l) { public void method380(String s, int i, int j, int k) {
textLeft(i, s, k, l - method384(s)); method385(j, s, k, i - method384(s));
} }
public void textCenter(int i, String s, int k, int l) { public void drawText(int i, String s, int k, int l) {
textLeft(i, s, k, l - method384(s) / 2); method385(i, s, k, l - method384(s) / 2);
} }
public void textCenterShadow(int _color, int _x, String s, int _y, boolean _shadow) { public void method382(int i, int j, String s, int l, boolean flag) {
textLeftShadow(_shadow, _x - getTextWidth(s) / 2, _color, s, _y); method389(flag, j - getTextWidth(s) / 2, i, s, l);
}
public void textRightShadow(boolean _shadow, int _x, int _color, String s, int _y) {
textLeftShadow(_shadow, _x - getTextWidth(s), _color, s, _y);
} }
public int getTextWidth(String s) { public int getTextWidth(String s) {
@@ -118,7 +114,7 @@ public final class TextDrawingArea extends DrawingArea {
return j; return j;
} }
public void textLeft(int i, String s, int j, int l) { public void method385(int i, String s, int j, int l) {
if (s == null) { if (s == null) {
return; return;
} }
@@ -184,37 +180,37 @@ public final class TextDrawingArea extends DrawingArea {
} }
public void textLeftShadow(boolean _shadow, int _x, int _color, String s, int _y) { public void method389(boolean flag1, int i, int j, String s, int k) {
aBoolean1499 = false; aBoolean1499 = false;
int l = _x; int l = i;
if (s == null) { if (s == null) {
return; return;
} }
_y -= anInt1497; k -= anInt1497;
for (int i1 = 0; i1 < s.length(); i1++) { for (int i1 = 0; i1 < s.length(); i1++) {
if (s.charAt(i1) == '@' && i1 + 4 < s.length() && s.charAt(i1 + 4) == '@') { if (s.charAt(i1) == '@' && i1 + 4 < s.length() && s.charAt(i1 + 4) == '@') {
int j1 = getColorByName(s.substring(i1 + 1, i1 + 4)); int j1 = getColorByName(s.substring(i1 + 1, i1 + 4));
if (j1 != -1) { if (j1 != -1) {
_color = j1; j = j1;
} }
i1 += 4; i1 += 4;
} else { } else {
char c = s.charAt(i1); char c = s.charAt(i1);
if (c != ' ') { if (c != ' ') {
if (_shadow) { if (flag1) {
method392(aByteArrayArray1491[c], _x + anIntArray1494[c] + 1, _y + anIntArray1495[c] + 1, anIntArray1492[c], anIntArray1493[c], 0); method392(aByteArrayArray1491[c], i + anIntArray1494[c] + 1, k + anIntArray1495[c] + 1, anIntArray1492[c], anIntArray1493[c], 0);
} }
try { try {
method392(aByteArrayArray1491[c], _x + anIntArray1494[c], _y + anIntArray1495[c], anIntArray1492[c], anIntArray1493[c], _color); method392(aByteArrayArray1491[c], i + anIntArray1494[c], k + anIntArray1495[c], anIntArray1492[c], anIntArray1493[c], j);
} catch (Exception e) { } catch (Exception e) {
} }
} }
_x += anIntArray1496[c]; i += anIntArray1496[c];
} }
} }
if (aBoolean1499) { if (aBoolean1499) {
DrawingArea.drawHorizontalLine(_y + (int) (anInt1497 * 0.69999999999999996D), 0x800000, _x - l, l); DrawingArea.method339(k + (int) (anInt1497 * 0.69999999999999996D), 0x800000, i - l, l);
} }
} }
@@ -730,47 +730,22 @@ 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) {
while (--k >= 0) { j = anIntArray1482[j1 >> 8];
j = anIntArray1482[j1 >> 8]; j1 += l1;
j1 += l1; j = ((j & 0xff00ff) * l2 >> 8 & 0xff00ff) + ((j & 0xff00) * l2 >> 8 & 0xff00);
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);
ai[i] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 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);
ai[i] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 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); k = i1 - l & 3;
i++; if (k > 0) {
ai[i] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00); j = anIntArray1482[j1 >> 8];
i++; j = ((j & 0xff00ff) * l2 >> 8 & 0xff00ff) + ((j & 0xff00) * l2 >> 8 & 0xff00);
} do {
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) {
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); ai[i++] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00);
ai[i++] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00); } while (--k > 0);
ai[i++] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00);
ai[i++] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00);
}
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);
} while (--k > 0);
}
} }
} }
return; return;
@@ -802,22 +777,12 @@ 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 {
do { j = anIntArray1482[j1 >> 8];
j = anIntArray1482[j1 >> 8]; j1 += i2;
j1 += i2; j = ((j & 0xff00ff) * i3 >> 8 & 0xff00ff) + ((j & 0xff00) * i3 >> 8 & 0xff00);
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);
ai[i] = j + ((ai[i] & 0xff00ff) * k2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * k2 >> 8 & 0xff00); } while (--k > 0);
i++;
} while (--k > 0);
} else {
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);
} 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) {
@@ -1160,32 +1125,16 @@ 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) {
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);
i++; 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);
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) {
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);
}
for (k = i1 - l & 3; --k >= 0;) {
ai[i++] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
}
} }
for (k = i1 - l & 3; --k >= 0;) {
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) {
@@ -3,7 +3,6 @@
// Decompiler options: packimports(3) // Decompiler options: packimports(3)
final class WorldController { final class WorldController {
public static int drawDistance = 25;
public WorldController(int ai[][][]) { public WorldController(int ai[][][]) {
int i = 104;// was parameter int i = 104;// was parameter
@@ -795,7 +794,7 @@ final class WorldController {
anInt498 = l; anInt498 = l;
anInt493 = k / 2; anInt493 = k / 2;
anInt494 = l / 2; anInt494 = l / 2;
boolean aflag[][][][] = new boolean[9][32][256][256]; boolean aflag[][][][] = new boolean[9][32][53][53];
for (int i1 = 128; i1 <= 384; i1 += 32) { for (int i1 = 128; i1 <= 384; i1 += 32) {
for (int j1 = 0; j1 < 2048; j1 += 64) { for (int j1 = 0; j1 < 2048; j1 += 64) {
anInt458 = Model.modelIntArray1[i1]; anInt458 = Model.modelIntArray1[i1];
@@ -804,8 +803,8 @@ final class WorldController {
anInt461 = Model.modelIntArray2[j1]; anInt461 = Model.modelIntArray2[j1];
int l1 = (i1 - 128) / 32; int l1 = (i1 - 128) / 32;
int j2 = j1 / 64; int j2 = j1 / 64;
for (int l2 = -(drawDistance + 1); l2 <= (drawDistance + 1); l2++) { for (int l2 = -26; l2 <= 26; l2++) {
for (int j3 = -(drawDistance + 1); j3 <= (drawDistance + 1); j3++) { for (int j3 = -26; j3 <= 26; j3++) {
int k3 = l2 * 128; int k3 = l2 * 128;
int i4 = j3 * 128; int i4 = j3 * 128;
boolean flag2 = false; boolean flag2 = false;
@@ -817,7 +816,7 @@ final class WorldController {
break; break;
} }
aflag[l1][j2][l2 + drawDistance + 1][j3 + drawDistance + 1] = flag2; aflag[l1][j2][l2 + 25 + 1][j3 + 25 + 1] = flag2;
} }
} }
@@ -828,19 +827,19 @@ final class WorldController {
for (int k1 = 0; k1 < 8; k1++) { for (int k1 = 0; k1 < 8; k1++) {
for (int i2 = 0; i2 < 32; i2++) { for (int i2 = 0; i2 < 32; i2++) {
for (int k2 = -drawDistance; k2 < drawDistance; k2++) { for (int k2 = -25; k2 < 25; k2++) {
for (int i3 = -drawDistance; i3 < drawDistance; i3++) { for (int i3 = -25; i3 < 25; i3++) {
boolean flag1 = false; boolean flag1 = false;
label0 : for (int l3 = -1; l3 <= 1; l3++) { label0 : for (int l3 = -1; l3 <= 1; l3++) {
for (int j4 = -1; j4 <= 1; j4++) { for (int j4 = -1; j4 <= 1; j4++) {
if (aflag[k1][i2][k2 + l3 + drawDistance + 1][i3 + j4 + drawDistance + 1]) { if (aflag[k1][i2][k2 + l3 + 25 + 1][i3 + j4 + 25 + 1]) {
flag1 = true; flag1 = true;
} else if (aflag[k1][(i2 + 1) % 31][k2 + l3 + drawDistance + 1][i3 + j4 + drawDistance + 1]) { } else if (aflag[k1][(i2 + 1) % 31][k2 + l3 + 25 + 1][i3 + j4 + 25 + 1]) {
flag1 = true; flag1 = true;
} else if (aflag[k1 + 1][i2][k2 + l3 + drawDistance + 1][i3 + j4 + drawDistance + 1]) { } else if (aflag[k1 + 1][i2][k2 + l3 + 25 + 1][i3 + j4 + 25 + 1]) {
flag1 = true; flag1 = true;
} else { } else {
if (!aflag[k1 + 1][(i2 + 1) % 31][k2 + l3 + drawDistance + 1][i3 + j4 + drawDistance + 1]) { if (!aflag[k1 + 1][(i2 + 1) % 31][k2 + l3 + 25 + 1][i3 + j4 + 25 + 1]) {
continue; continue;
} }
flag1 = true; flag1 = true;
@@ -850,7 +849,7 @@ final class WorldController {
} }
aBooleanArrayArrayArrayArray491[k1][i2][k2 + drawDistance][i3 + drawDistance] = flag1; aBooleanArrayArrayArrayArray491[k1][i2][k2 + 25][i3 + 25] = flag1;
} }
} }
@@ -905,19 +904,19 @@ final class WorldController {
anInt453 = i / 128; anInt453 = i / 128;
anInt454 = j / 128; anInt454 = j / 128;
anInt447 = i1; anInt447 = i1;
anInt449 = anInt453 - drawDistance; anInt449 = anInt453 - 25;
if (anInt449 < 0) { if (anInt449 < 0) {
anInt449 = 0; anInt449 = 0;
} }
anInt451 = anInt454 - drawDistance; anInt451 = anInt454 - 25;
if (anInt451 < 0) { if (anInt451 < 0) {
anInt451 = 0; anInt451 = 0;
} }
anInt450 = anInt453 + drawDistance; anInt450 = anInt453 + 25;
if (anInt450 > anInt438) { if (anInt450 > anInt438) {
anInt450 = anInt438; anInt450 = anInt438;
} }
anInt452 = anInt454 + drawDistance; anInt452 = anInt454 + 25;
if (anInt452 > anInt439) { if (anInt452 > anInt439) {
anInt452 = anInt439; anInt452 = anInt439;
} }
@@ -929,7 +928,7 @@ final class WorldController {
for (int k2 = anInt451; k2 < anInt452; k2++) { for (int k2 = anInt451; k2 < anInt452; k2++) {
Ground class30_sub3 = aclass30_sub3[i2][k2]; Ground class30_sub3 = aclass30_sub3[i2][k2];
if (class30_sub3 != null) { if (class30_sub3 != null) {
if (class30_sub3.anInt1321 > i1 || !aBooleanArrayArray492[i2 - anInt453 + drawDistance][k2 - anInt454 + drawDistance] && anIntArrayArrayArray440[k1][i2][k2] - l < 50) { if (class30_sub3.anInt1321 > i1 || !aBooleanArrayArray492[i2 - anInt453 + 25][k2 - anInt454 + 25] && anIntArrayArrayArray440[k1][i2][k2] - l < 2000) {
class30_sub3.aBoolean1322 = false; class30_sub3.aBoolean1322 = false;
class30_sub3.aBoolean1323 = false; class30_sub3.aBoolean1323 = false;
class30_sub3.anInt1325 = 0; class30_sub3.anInt1325 = 0;
@@ -948,11 +947,11 @@ final class WorldController {
for (int l1 = anInt442; l1 < anInt437; l1++) { for (int l1 = anInt442; l1 < anInt437; l1++) {
Ground aclass30_sub3_1[][] = groundArray[l1]; Ground aclass30_sub3_1[][] = groundArray[l1];
for (int l2 = -drawDistance; l2 <= 0; l2++) { for (int l2 = -25; l2 <= 0; l2++) {
int i3 = anInt453 + l2; int i3 = anInt453 + l2;
int k3 = anInt453 - l2; int k3 = anInt453 - l2;
if (i3 >= anInt449 || k3 < anInt450) { if (i3 >= anInt449 || k3 < anInt450) {
for (int i4 = -drawDistance; i4 <= 0; i4++) { for (int i4 = -25; i4 <= 0; i4++) {
int k4 = anInt454 + i4; int k4 = anInt454 + i4;
int i5 = anInt454 - i4; int i5 = anInt454 - i4;
if (i3 >= anInt449) { if (i3 >= anInt449) {
@@ -996,11 +995,11 @@ final class WorldController {
for (int j2 = anInt442; j2 < anInt437; j2++) { for (int j2 = anInt442; j2 < anInt437; j2++) {
Ground aclass30_sub3_2[][] = groundArray[j2]; Ground aclass30_sub3_2[][] = groundArray[j2];
for (int j3 = -drawDistance; j3 <= 0; j3++) { for (int j3 = -25; j3 <= 0; j3++) {
int l3 = anInt453 + j3; int l3 = anInt453 + j3;
int j4 = anInt453 - j3; int j4 = anInt453 - j3;
if (l3 >= anInt449 || j4 < anInt450) { if (l3 >= anInt449 || j4 < anInt450) {
for (int l4 = -drawDistance; l4 <= 0; l4++) { for (int l4 = -25; l4 <= 0; l4++) {
int j5 = anInt454 + l4; int j5 = anInt454 + l4;
int k5 = anInt454 - l4; int k5 = anInt454 - l4;
if (l3 >= anInt449) { if (l3 >= anInt449) {
@@ -1692,15 +1691,15 @@ final class WorldController {
for (int k = 0; k < j; k++) { for (int k = 0; k < j; k++) {
Class47 class47 = aclass47[k]; Class47 class47 = aclass47[k];
if (class47.anInt791 == 1) { if (class47.anInt791 == 1) {
int l = class47.anInt787 - anInt453 + drawDistance; int l = class47.anInt787 - anInt453 + 25;
if (l < 0 || l > 50) { if (l < 0 || l > 50) {
continue; continue;
} }
int k1 = class47.anInt789 - anInt454 + drawDistance; int k1 = class47.anInt789 - anInt454 + 25;
if (k1 < 0) { if (k1 < 0) {
k1 = 0; k1 = 0;
} }
int j2 = class47.anInt790 - anInt454 + drawDistance; int j2 = class47.anInt790 - anInt454 + 25;
if (j2 > 50) { if (j2 > 50) {
j2 = 50; j2 = 50;
} }
@@ -1732,15 +1731,15 @@ final class WorldController {
continue; continue;
} }
if (class47.anInt791 == 2) { if (class47.anInt791 == 2) {
int i1 = class47.anInt789 - anInt454 + drawDistance; int i1 = class47.anInt789 - anInt454 + 25;
if (i1 < 0 || i1 > 50) { if (i1 < 0 || i1 > 50) {
continue; continue;
} }
int l1 = class47.anInt787 - anInt453 + drawDistance; int l1 = class47.anInt787 - anInt453 + 25;
if (l1 < 0) { if (l1 < 0) {
l1 = 0; l1 = 0;
} }
int k2 = class47.anInt788 - anInt453 + drawDistance; int k2 = class47.anInt788 - anInt453 + 25;
if (k2 > 50) { if (k2 > 50) {
k2 = 50; k2 = 50;
} }
@@ -1772,20 +1771,20 @@ final class WorldController {
} else if (class47.anInt791 == 4) { } else if (class47.anInt791 == 4) {
int j1 = class47.anInt796 - anInt456; int j1 = class47.anInt796 - anInt456;
if (j1 > 128) { if (j1 > 128) {
int i2 = class47.anInt789 - anInt454 + drawDistance; int i2 = class47.anInt789 - anInt454 + 25;
if (i2 < 0) { if (i2 < 0) {
i2 = 0; i2 = 0;
} }
int l2 = class47.anInt790 - anInt454 + drawDistance; int l2 = class47.anInt790 - anInt454 + 25;
if (l2 > 50) { if (l2 > 50) {
l2 = 50; l2 = 50;
} }
if (i2 <= l2) { if (i2 <= l2) {
int i3 = class47.anInt787 - anInt453 + drawDistance; int i3 = class47.anInt787 - anInt453 + 25;
if (i3 < 0) { if (i3 < 0) {
i3 = 0; i3 = 0;
} }
int l3 = class47.anInt788 - anInt453 + drawDistance; int l3 = class47.anInt788 - anInt453 + 25;
if (l3 > 50) { if (l3 > 50) {
l3 = 50; l3 = 50;
} }
@@ -2104,7 +2103,7 @@ final class WorldController {
private int anInt488; private int anInt488;
private final int[][] anIntArrayArray489 = {new int[16], {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1}, {1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1}, {0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0}, {1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1}, {1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1}}; private final int[][] anIntArrayArray489 = {new int[16], {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1}, {1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1}, {0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0}, {1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1}, {1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1}};
private final int[][] anIntArrayArray490 = {{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, {12, 8, 4, 0, 13, 9, 5, 1, 14, 10, 6, 2, 15, 11, 7, 3}, {15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0}, {3, 7, 11, 15, 2, 6, 10, 14, 1, 5, 9, 13, 0, 4, 8, 12}}; private final int[][] anIntArrayArray490 = {{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, {12, 8, 4, 0, 13, 9, 5, 1, 14, 10, 6, 2, 15, 11, 7, 3}, {15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0}, {3, 7, 11, 15, 2, 6, 10, 14, 1, 5, 9, 13, 0, 4, 8, 12}};
private static boolean[][][][] aBooleanArrayArrayArrayArray491 = new boolean[8][32][256][256]; private static boolean[][][][] aBooleanArrayArrayArrayArray491 = new boolean[8][32][51][51];
private static boolean[][] aBooleanArrayArray492; private static boolean[][] aBooleanArrayArray492;
private static int anInt493; private static int anInt493;
private static int anInt494; private static int anInt494;
@@ -6,5 +6,4 @@
.classpath .classpath
.project .project
settings.gradle settings.gradle
*.iml *.iml
server-1.0-jar-with-dependencies.jar
@@ -1,4 +1,4 @@
# 2006Scape - Game Server # 2006rebotted - Game Server
This is the Game Server component of our emulated Runescape environment. This is the Game Server component of our emulated Runescape environment.
It's responsibility is to provide the instructions for the in-game world, its entities, and respond to player interactions. It's responsibility is to provide the instructions for the in-game world, its entities, and respond to player interactions.
@@ -6,8 +6,10 @@ Contained within is an implementation of the Runescape network protocol roughly
When run, this java application will listen on TCP port 43594. When run, this java application will listen on TCP port 43594.
### Building the project ### Building the project
- `git clone https://github.com/2006-Scape/2006Scape` - `git clone https://github.com/dginovker/2006rebotted`
- `cd 2006Scape/2006Scape\ Server/` - `cd 2006rebotted/2006Redone\ Server/`
- `mvn package` - `./gradlew build`
- `./runServer.sh` - `java -jar ./build/libs/2006rebotted.jar`
- You will also have to place a copy of the `data` folder in the same location as the jar.

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