Files
2006Scape/2006Redone Client/src/RSApplet.java
T
Mr Extremez 2b6ff7db02 Global drops/monks/al kharid furnance (#192)
closes #177
closes #136 (hp restoring works, couldn't find the anim tho)
closes #178 (should fix all the issues, let me know for sure)
Also removed the object does not exist message ingame for non admins and got rid of the isBotting code when clicking objects
2019-11-17 18:30:08 -05:00

583 lines
12 KiB
Java

// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3)
import javax.swing.*;
import java.applet.Applet;
import java.awt.*;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.KeyEvent;
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")
public class RSApplet extends Applet implements Runnable, MouseListener, MouseMotionListener, KeyListener, FocusListener, WindowListener {
public static boolean ctrlDown = false;
public static boolean shiftDown = false;
private int mouseWheelX = 0;
private int mouseWheelY = 0;
public static boolean removeShiftDropOnMenuOpen;
final void createClientFrame(int i, int j) {
myWidth = j;
myHeight = i;
gameFrame = new RSFrame(this, myWidth, myHeight);
graphics = getGameComponent().getGraphics();
fullGameScreen = new RSImageProducer(myWidth, myHeight, getGameComponent());
startRunnable(this, 1);
}
final void initClientFrame(int i, int j) {
myWidth = j;
myHeight = i;
graphics = getGameComponent().getGraphics();
fullGameScreen = new RSImageProducer(myWidth, myHeight, getGameComponent());
startRunnable(this, 1);
}
@Override
public void run() {
getGameComponent().addMouseListener(this);
getGameComponent().addMouseMotionListener(this);
getGameComponent().addKeyListener(this);
getGameComponent().addFocusListener(this);
if (gameFrame != null) {
gameFrame.addWindowListener(this);
}
drawLoadingText(0, "Loading...");
startUp();
int i = 0;
int j = 256;
int k = 1;
int i1 = 0;
int j1 = 0;
for (int k1 = 0; k1 < 10; k1++) {
aLongArray7[k1] = System.currentTimeMillis();
}
System.currentTimeMillis();
while (anInt4 >= 0) {
if (anInt4 > 0) {
anInt4--;
if (anInt4 == 0) {
exit();
return;
}
}
int i2 = j;
int j2 = k;
j = 300;
k = 1;
long l1 = System.currentTimeMillis();
if (aLongArray7[i] == 0L) {
j = i2;
k = j2;
} else if (l1 > aLongArray7[i]) {
j = (int) (2560 * delayTime / (l1 - aLongArray7[i]));
}
if (j < 25) {
j = 25;
}
if (j > 256) {
j = 256;
k = (int) (delayTime - (l1 - aLongArray7[i]) / 10L);
}
if (k > delayTime) {
k = delayTime;
}
aLongArray7[i] = l1;
i = (i + 1) % 10;
if (k > 1) {
for (int k2 = 0; k2 < 10; k2++) {
if (aLongArray7[k2] != 0L) {
aLongArray7[k2] += k;
}
}
}
if (k < minDelay) {
k = minDelay;
}
try {
Thread.sleep(k);
} catch (InterruptedException _ex) {
j1++;
}
for (; i1 < 256; i1 += j) {
clickMode3 = clickMode1;
saveClickX = clickX;
saveClickY = clickY;
aLong29 = clickTime;
clickMode1 = 0;
processGameLoop();
readIndex = writeIndex;
}
i1 &= 0xff;
if (delayTime > 0) {
fps = 1000 * j / (delayTime * 256);
}
processDrawing();
if (shouldDebug) {
System.out.println("ntime:" + l1);
for (int l2 = 0; l2 < 10; l2++) {
int i3 = (i - l2 - 1 + 20) % 10;
System.out.println("otim" + i3 + ":" + aLongArray7[i3]);
}
System.out.println("fps:" + fps + " ratio:" + j + " count:" + i1);
System.out.println("del:" + k + " deltime:" + delayTime + " mindel:" + minDelay);
System.out.println("intex:" + j1 + " opos:" + i);
shouldDebug = false;
j1 = 0;
}
}
if (anInt4 == -1) {
exit();
}
}
private void exit() {
anInt4 = -2;
cleanUpForQuit();
if (gameFrame != null) {
try {
Thread.sleep(1000L);
} catch (Exception _ex) {
}
try {
System.exit(0);
} catch (Throwable _ex) {
}
}
}
final void method4(int i) {
delayTime = 1000 / i;
}
@Override
public final void start() {
if (anInt4 >= 0) {
anInt4 = 0;
}
}
@Override
public final void stop() {
if (anInt4 >= 0) {
anInt4 = 4000 / delayTime;
}
}
@Override
public final void destroy() {
anInt4 = -1;
try {
Thread.sleep(5000L);
} catch (Exception _ex) {
}
if (anInt4 == -1) {
exit();
}
}
@Override
public final void update(Graphics g) {
if (graphics == null) {
graphics = g;
}
shouldClearScreen = true;
raiseWelcomeScreen();
}
@Override
public final void paint(Graphics g) {
if (graphics == null) {
graphics = g;
}
shouldClearScreen = true;
raiseWelcomeScreen();
}
public boolean mouseWheelDown;
@Override
public final void mousePressed(MouseEvent mouseevent) {
int i = mouseevent.getX();
int j = mouseevent.getY();
if (gameFrame != null) {
i -= 4;
j -= 22;
}
idleTime = 0;
clickX = i;
clickY = j;
clickTime = System.currentTimeMillis();
if (mouseevent.getButton() == 2) {
mouseWheelDown = true;
mouseWheelX = mouseevent.getX();
mouseWheelY = mouseevent.getY();
return;
}
if (mouseevent.isMetaDown()) {
clickMode1 = 2;
clickMode2 = 2;
} else {
clickMode1 = 1;
clickMode2 = 1;
}
}
@Override
public final void mouseReleased(MouseEvent mouseevent) {
idleTime = 0;
clickMode2 = 0;
mouseWheelDown = false;
}
@Override
public final void mouseClicked(MouseEvent mouseevent) {
}
@Override
public final void mouseEntered(MouseEvent mouseevent) {
}
@Override
public final void mouseExited(MouseEvent mouseevent) {
idleTime = 0;
mouseX = -1;
mouseY = -1;
}
public final void mouseDragged(MouseEvent e) {
int x = e.getX();
int y = e.getY();
if(gameFrame != null) {
Insets insets = gameFrame.getInsets();
x -= insets.left;//4
y -= insets.top;//22
}
if (mouseWheelDown) {
y = mouseWheelX - e.getX();
int k = mouseWheelY - e.getY();
mouseWheelDragged(y, -k);
mouseWheelX = e.getX();
mouseWheelY = e.getY();
return;
}
idleTime = 0;
mouseX = x;
mouseY = y;
}
void mouseWheelDragged(int param1, int param2) {
}
@Override
public void mouseMoved(MouseEvent mouseevent) {
int i = mouseevent.getX();
int j = mouseevent.getY();
if (gameFrame != null) {
i -= 4;
j -= 22;
}
idleTime = 0;
mouseX = i;
mouseY = j;
}
@Override
public void keyPressed(KeyEvent keyevent) {
idleTime = 0;
int i = keyevent.getKeyCode();
int j = keyevent.getKeyChar();
switch (keyevent.getKeyCode())
{
case KeyEvent.VK_SHIFT:
shiftDown = true;
break;
case KeyEvent.VK_CONTROL:
ctrlDown = true;
break;
}
if (j < 30) {
j = 0;
}
if (i == 37) {
j = 1;
}
if (i == 39) {
j = 2;
}
if (i == 38) {
j = 3;
}
if (i == 40) {
j = 4;
}
if (i == 17) {
j = 5;
}
if (i == 8) {
j = 8;
}
if (i == 127) {
j = 8;
}
if (i == 9) {
j = 9;
}
if (i == 10) {
j = 10;
}
if (i >= 112 && i <= 123) {
j = 1008 + i - 112;
}
if (i == 36) {
j = 1000;
}
if (i == 35) {
j = 1001;
}
if (i == 33) {
j = 1002;
}
if (i == 34) {
j = 1003;
}
if (j > 0 && j < 128) {
keyArray[j] = 1;
}
if (j > 4) {
charQueue[writeIndex] = j;
writeIndex = writeIndex + 1 & 0x7f;
}
}
@Override
public final void keyReleased(KeyEvent keyevent) {
idleTime = 0;
int i = keyevent.getKeyCode();
char c = keyevent.getKeyChar();
switch (keyevent.getKeyCode())
{
case KeyEvent.VK_SHIFT:
shiftDown = false;
break;
case KeyEvent.VK_CONTROL:
ctrlDown = false;
break;
}
if (c < '\036') {
c = '\0';
}
if (i == 37) {
c = '\001';
}
if (i == 39) {
c = '\002';
}
if (i == 38) {
c = '\003';
}
if (i == 40) {
c = '\004';
}
if (i == 17) {
c = '\005';
}
if (i == 8) {
c = '\b';
}
if (i == 127) {
c = '\b';
}
if (i == 9) {
c = '\t';
}
if (i == 10) {
c = '\n';
}
if (c > 0 && c < '\200') {
keyArray[c] = 0;
}
}
@Override
public final void keyTyped(KeyEvent keyevent) {
}
final int readChar(int dummy) {
while (dummy >= 0) {
for (int j = 1; j > 0; j++) {
;
}
}
int k = -1;
if (writeIndex != readIndex) {
k = charQueue[readIndex];
readIndex = readIndex + 1 & 0x7f;
}
return k;
}
@Override
public final void focusGained(FocusEvent focusevent) {
awtFocus = true;
shouldClearScreen = true;
raiseWelcomeScreen();
}
@Override
public final void focusLost(FocusEvent focusevent) {
awtFocus = false;
for (int i = 0; i < 128; i++) {
keyArray[i] = 0;
}
}
@Override
public final void windowActivated(WindowEvent windowevent) {
}
@Override
public final void windowClosed(WindowEvent windowevent) {
}
@Override
public final void windowClosing(WindowEvent windowevent) {
destroy();
}
@Override
public final void windowDeactivated(WindowEvent windowevent) {
}
@Override
public final void windowDeiconified(WindowEvent windowevent) {
}
@Override
public final void windowIconified(WindowEvent windowevent) {
}
@Override
public final void windowOpened(WindowEvent windowevent) {
}
void startUp() {
}
void processGameLoop() {
}
void cleanUpForQuit() {
}
void processDrawing() {
}
void raiseWelcomeScreen() {
}
Component getGameComponent() {
if (gameFrame != null) {
return gameFrame;
} else {
return this;
}
}
public void startRunnable(Runnable runnable, int priority) {
Thread thread = new Thread(runnable);
thread.start();
thread.setPriority(priority);
}
void drawLoadingText(int i, String s) {
while (graphics == null) {
graphics = getGameComponent().getGraphics();
try {
getGameComponent().repaint();
} catch (Exception _ex) {
}
try {
Thread.sleep(1000L);
} catch (Exception _ex) {
}
}
Font font = new Font("Helvetica", 1, 13);
FontMetrics fontmetrics = getGameComponent().getFontMetrics(font);
Font font1 = new Font("Helvetica", 0, 13);
getGameComponent().getFontMetrics(font1);
if (shouldClearScreen) {
graphics.setColor(Color.black);
graphics.fillRect(0, 0, myWidth, myHeight);
shouldClearScreen = false;
}
Color color = new Color(140, 17, 17);
int j = myHeight / 2 - 18;
graphics.setColor(color);
graphics.drawRect(myWidth / 2 - 152, j, 304, 34);
graphics.fillRect(myWidth / 2 - 150, j + 2, i * 3, 30);
graphics.setColor(Color.black);
graphics.fillRect(myWidth / 2 - 150 + i * 3, j + 2, 300 - i * 3, 30);
graphics.setFont(font);
graphics.setColor(Color.white);
graphics.drawString(s, (myWidth - fontmetrics.stringWidth(s)) / 2, j + 22);
}
RSApplet() {
delayTime = 20;
minDelay = 1;
aLongArray7 = new long[10];
shouldDebug = false;
shouldClearScreen = true;
awtFocus = true;
keyArray = new int[128];
charQueue = new int[128];
}
private int anInt4;
private int delayTime;
int minDelay;
private final long[] aLongArray7;
int fps;
boolean shouldDebug;
int myWidth;
int myHeight;
Graphics graphics;
RSImageProducer fullGameScreen;
RSFrame gameFrame;
private boolean shouldClearScreen;
boolean awtFocus;
int idleTime;
int clickMode2;
public int mouseX;
public int mouseY;
private int clickMode1;
private int clickX;
private int clickY;
private long clickTime;
int clickMode3;
int saveClickX;
int saveClickY;
long aLong29;
final int[] keyArray;
private final int[] charQueue;
private int readIndex;
private int writeIndex;
public static int anInt34;
}