Compare commits

..

43 Commits

Author SHA1 Message Date
dginovker 488ff99c7f Fixed some items dcing client 2019-12-27 12:40:17 -05:00
dginovker 094c3f79dc Merge branch 'master' of https://github.com/dginovker/2006rebotted 2019-12-26 00:44:51 -05:00
dginovker 8e68d9739c update readme 2019-12-26 00:44:41 -05:00
Daniel Ginovker 43a0f3e9f1 Gptaqbc new stuff 6 (#328)
* Some stuff on weight

Some stuff on weight

* Cleaned some code related to trading and fixed most likely the issue where the player stays busy and cant trade till relog

Cleaned some code related to trading and fixed most likely the issue where the player stays busy and cant trade till relog

* removed a shitload of '== true'

I did a search and replace but I manually checked the changes that were made so there shouldn't be any issue with that.

* Fixed drop issue

* Fixed duel arena, changed some chat message so they are all the same, changed Additem

Fixed duel arena:
> 98% completed duel (the winning duel sound is still missing)
> Added forfeiting
> Added checks to prevent tbing, teleothers, teleport and logout from duel
> Remove the check for same IP to disable duel

Item Assistant:
> Changed the AddItem method so it now drops items on the ground if inventory is full

Cleaned some stuff while I was at it...

* Update ItemAssistant.java

Oupsie

* Resolving my issues

* Allow walking during movement

* Why won't commit work

Co-authored-by: Gptaqbc <56596815+Gptaqbc@users.noreply.github.com>
2019-12-26 00:33:18 -05:00
Daniel Ginovker e8685c97d0 Remove prices.txt, which isn't used anymore it seems (#326)
* Remove prices.txt, which isn't used anymore it seems

* Actually git rm the file too...
2019-12-25 21:31:32 -05:00
dginovker b79103ed79 Add link to PR guide 2019-12-25 20:28:36 -05:00
Gptaqbc aa6b9a9aa0 New stuff 6 (#325)
* Some stuff on weight

Some stuff on weight

* Cleaned some code related to trading and fixed most likely the issue where the player stays busy and cant trade till relog

Cleaned some code related to trading and fixed most likely the issue where the player stays busy and cant trade till relog

* removed a shitload of '== true'

I did a search and replace but I manually checked the changes that were made so there shouldn't be any issue with that.

* Fixed drop issue
2019-12-25 16:09:25 -05:00
Gptaqbc 5f500280b2 New stuff 6 (#324)
* Some stuff on weight

Some stuff on weight

* Cleaned some code related to trading and fixed most likely the issue where the player stays busy and cant trade till relog

Cleaned some code related to trading and fixed most likely the issue where the player stays busy and cant trade till relog

* removed a shitload of '== true'

I did a search and replace but I manually checked the changes that were made so there shouldn't be any issue with that.
2019-12-25 13:01:24 -05:00
dginovker 1c2deaacb6 Make setup instructions easier 2019-12-24 19:58:26 -05:00
Gptaqbc 287018346b Some stuff on weight (#323)
* Some stuff on weight

Some stuff on weight

* Cleaned some code related to trading and fixed most likely the issue where the player stays busy and cant trade till relog

Cleaned some code related to trading and fixed most likely the issue where the player stays busy and cant trade till relog
2019-12-24 13:40:50 -05:00
Gptaqbc 850b09e6fc New stuff 5 (#322)
* Refactored smithing and added cannonball making in there too (?) as the interface have an option for it.

Refactored smithing and added cannonball making in there too (?) as the interface have an option for it.

* Added check for hammer when smithing

Added check for hammer when smithing
2019-12-24 12:57:01 -05:00
dginovker 9759d004eb latest compile 2019-12-23 22:42:22 -05:00
Gptaqbc 10070843e6 New stuff 4 (#319)
* Added some sound, refactored fletching and arrowmaking a bit... I've maybe fixed the issue with fletching.. idk

Added some sound, refactored fletching and arrowmaking a bit... I've maybe fixed the issue with fletching.. idk

* Commented clipping server side check so we can work on it

Commented and brought back the old code so gates works while we work in the clipping check server side.

* Added Canifis bank to the bank boolean

* Fixed the drops problem

* Added cannonball making, fixed some typos, added some command for admin to get 999k hp and prayer points(usefull for debugging)

New feature:
- Cannonball making
New Commands:
- ::hp
- ::pray

* Update DwarfCannon.java
2019-12-23 22:38:24 -05:00
Gptaqbc b1b06e9cb9 Refactored smithing and added cannonball making in there too (?) as the interface have an option for it. (#320)
Refactored smithing and added cannonball making in there too (?) as the interface have an option for it.
2019-12-23 22:37:55 -05:00
Daniel Ginovker 1702a9b726 Make 8 spaces 4 (#317) 2019-12-23 12:54:42 -05:00
Mr Extremez 32bbf1e003 Quick patch (#316)
- Fixed npc drops/anims
- Fixed some combat sounds that were not working
- Made Kalphite Queen a multi area
2019-12-23 12:23:04 -05:00
dginovker bc4320ee68 fix drops 2019-12-22 17:35:10 -05:00
Gptaqbc b07dd8cfb7 New stuff 4 (#315)
* Added some sound, refactored fletching and arrowmaking a bit... I've maybe fixed the issue with fletching.. idk

Added some sound, refactored fletching and arrowmaking a bit... I've maybe fixed the issue with fletching.. idk

* Commented clipping server side check so we can work on it

Commented and brought back the old code so gates works while we work in the clipping check server side.

* Added Canifis bank to the bank boolean

* Fixed the drops problem
2019-12-22 17:34:35 -05:00
dginovker 7f7e00788e latest compile 2019-12-22 16:03:42 -05:00
Gptaqbc 2790decd44 Added some sound, refactored fletching and arrowmaking a bit... I've … (#314)
* Added some sound, refactored fletching and arrowmaking a bit... I've maybe fixed the issue with fletching.. idk

Added some sound, refactored fletching and arrowmaking a bit... I've maybe fixed the issue with fletching.. idk

* Commented clipping server side check so we can work on it

Commented and brought back the old code so gates works while we work in the clipping check server side.

* Added Canifis bank to the bank boolean
2019-12-22 15:59:32 -05:00
Mr Extremez c5c1c2fc35 Cats/kalphite queen/random (#313)
- Did some work with the kalphite queen
2019-12-22 15:59:26 -05:00
Gptaqbc 17e5e7ea5c Random stuff 3 (#312)
* Make ::update automatically restart server as well

* Add bank area checks back since previously you could open a bank, and as long as you didn't open another interface you could abuse it

* Fix noclip (NEEDS TESTING)

* Revert "Fix noclip  (#302)"

This reverts commit 521ae52e4c.

* ::clip command removed, fixed a typo, reordered some stuff, fixed a bug with others cannon

-Removed the clip command from the client;
-Fixed a typo in a dialogue;
-Fixed mud battlestaff nto working as runes (water and earth);
-Fixed a bug with other cannons near you preventing you from setting down a cannon. Somehow your player would glitch himself and make it impossible to spawn a cannon at certain spot;

* Snow improvement

Nothing major

* Fixed Click to teleport command

Fixed Click to teleport command;

* cleaned stuff

* Update Commands.java

* Fixed picking up items requiring 2 clicks when not standing on/near it. Fixed the sound so it doesnt repeat itself anymore if spamclicked.

Fixed picking up items requiring 2 clicks when not standing on/near it. Fixed the sound so it doesnt repeat itself anymore if spamclicked.

Co-authored-by: Daniel Ginovker <dcress01@uoguelph.ca>
2019-12-22 00:05:59 -05:00
Gptaqbc bda71ee34a Random stuff 3 (#311)
* Make ::update automatically restart server as well

* Add bank area checks back since previously you could open a bank, and as long as you didn't open another interface you could abuse it

* Fix noclip (NEEDS TESTING)

* Revert "Fix noclip  (#302)"

This reverts commit 521ae52e4c.

* ::clip command removed, fixed a typo, reordered some stuff, fixed a bug with others cannon

-Removed the clip command from the client;
-Fixed a typo in a dialogue;
-Fixed mud battlestaff nto working as runes (water and earth);
-Fixed a bug with other cannons near you preventing you from setting down a cannon. Somehow your player would glitch himself and make it impossible to spawn a cannon at certain spot;

* Snow improvement

Nothing major

* Fixed Click to teleport command

Fixed Click to teleport command;

* cleaned stuff

* Update Commands.java

Co-authored-by: Daniel Ginovker <dcress01@uoguelph.ca>
2019-12-21 18:46:34 -05:00
Gptaqbc f6e8f2d851 Random stuff 3 (#308)
* Make ::update automatically restart server as well

* Add bank area checks back since previously you could open a bank, and as long as you didn't open another interface you could abuse it

* Fix noclip (NEEDS TESTING)

* Revert "Fix noclip  (#302)"

This reverts commit 521ae52e4c.

* ::clip command removed, fixed a typo, reordered some stuff, fixed a bug with others cannon

-Removed the clip command from the client;
-Fixed a typo in a dialogue;
-Fixed mud battlestaff nto working as runes (water and earth);
-Fixed a bug with other cannons near you preventing you from setting down a cannon. Somehow your player would glitch himself and make it impossible to spawn a cannon at certain spot;

* Snow improvement

Nothing major

* Fixed Click to teleport command

Fixed Click to teleport command;

* cleaned stuff

Co-authored-by: Daniel Ginovker <dcress01@uoguelph.ca>
2019-12-21 12:49:54 -05:00
dginovker 7157020ac6 Latest compile 2019-12-20 12:46:05 -05:00
dginovker 5ce95df4ea Merge branch 'master' of https://github.com/dginovker/2006rebotted 2019-12-20 12:35:40 -05:00
dginovker 13977992d7 Fix most of the clipping (minor stuff with doors left) 2019-12-20 12:35:12 -05:00
Gptaqbc 2005be0948 Random stuff 3 (#307)
* Make ::update automatically restart server as well

* Add bank area checks back since previously you could open a bank, and as long as you didn't open another interface you could abuse it

* Fix noclip (NEEDS TESTING)

* Revert "Fix noclip  (#302)"

This reverts commit 521ae52e4c.

* ::clip command removed, fixed a typo, reordered some stuff, fixed a bug with others cannon

-Removed the clip command from the client;
-Fixed a typo in a dialogue;
-Fixed mud battlestaff nto working as runes (water and earth);
-Fixed a bug with other cannons near you preventing you from setting down a cannon. Somehow your player would glitch himself and make it impossible to spawn a cannon at certain spot;

* Snow improvement

Nothing major

Co-authored-by: Daniel Ginovker <dcress01@uoguelph.ca>
2019-12-20 11:42:15 -05:00
MitchvanWijngaarden 0842e2bc9c Added in ::prayer and ::energy commands, semi-closes #305 (#306)
* Added in ::prayer and ::energy commands, closes #305

* Added in message prefix 'Run energy: ' and 'Prayer points: ' to ::prayer and ::energy commands.
2019-12-20 11:41:18 -05:00
Gptaqbc a27b9e22f9 Random stuff 3 (#304)
* Make ::update automatically restart server as well

* Add bank area checks back since previously you could open a bank, and as long as you didn't open another interface you could abuse it

* Fix noclip (NEEDS TESTING)

* Revert "Fix noclip  (#302)"

This reverts commit 521ae52e4c.

* ::clip command removed, fixed a typo, reordered some stuff, fixed a bug with others cannon

-Removed the clip command from the client;
-Fixed a typo in a dialogue;
-Fixed mud battlestaff nto working as runes (water and earth);
-Fixed a bug with other cannons near you preventing you from setting down a cannon. Somehow your player would glitch himself and make it impossible to spawn a cannon at certain spot;

Co-authored-by: Daniel Ginovker <dcress01@uoguelph.ca>
2019-12-19 22:50:15 -05:00
dginovker 00500a072b Noclip fix thanks to ethan 2019-12-19 21:47:27 -05:00
Daniel Ginovker cfa59f4a4d Revert "Fix noclip (#302)" (#303)
This reverts commit 521ae52e4c.
2019-12-18 20:02:13 -05:00
Daniel Ginovker 521ae52e4c Fix noclip (#302)
* Add bank area checks back since previously you could open a bank, and as long as you didn't open another interface you could abuse it

* Fix noclip (NEEDS TESTING)
2019-12-18 17:35:12 -05:00
Daniel Ginovker 62a22f8857 Add bank area checks back since previously you could open a bank, and as long as you didn't open another interface you could abuse it (#301) 2019-12-17 15:19:39 -05:00
Daniel Ginovker 223c3194a8 Fix bank packet exploit + fishing guild banking (#300) 2019-12-17 15:11:59 -05:00
Daniel Ginovker 0653db8ad1 Fix some shop item prices (#296) 2019-12-16 15:03:03 -05:00
dginovker e0d795323b Dec 15th update 2019-12-15 19:38:25 -05:00
dginovker a16311ba15 Merge branch 'fix_packet_exploits' 2019-12-15 19:37:14 -05:00
Daniel Ginovker f12181140b Fix 32-bit java (#289) 2019-12-15 19:33:23 -05:00
Daniel Ginovker 6bf8d407e0 Make ::update automatically restart server as well (#291) 2019-12-15 19:33:16 -05:00
Gptaqbc 9ed0acfb04 Random fixes 2 (#294)
* Make ::update automatically restart server as well

* Added toggeable snow(only activable in december), added walking queue reset when using objects changing Z, made it so the wildy warning interface is appearing when entering in wildy

For some reason the resetWalkingQueue added to the execute method wasnt doing anything so I manually added it to every interaction possible... LOL

Wildy warning interface was appearing when clicking with player in wildy. I made it so it appears straight when walking 1 tile in wildy zone. Wont appears if player logs in wildy as he already knows this shit.
2019-12-15 19:33:03 -05:00
Mr Extremez 87eaaed36f Fixes (#293)
- Added ROL for player and npcs
- Fixed Redemption now works for players and NPCs
- Fixed prayer not updating on prayer tab when it goes down in points
- Fixed not being able to use glories after trading them
- Fixed item spawn crash (only affected some people such as myself and a few others)
2019-12-14 23:46:05 -05:00
dginovker 06d40b9a98 Fix banking packet exploit, & setup for a future of preventing packet exploits 2019-12-13 13:46:29 -05:00
209 changed files with 2182 additions and 5275 deletions
+49 -14
View File
@@ -7,14 +7,19 @@
</component>
<component name="ChangeListManager">
<list default="true" id="9c1d485e-b413-4c80-b742-7c5a88c1c73c" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/2006Redone Server/src/com/rebotted/net/packets/impl/Commands.java" beforeDir="false" afterPath="$PROJECT_DIR$/2006Redone Server/src/com/rebotted/net/packets/impl/Commands.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/CompiledServer/production/2006rebotted/com/rebotted/net/packets/impl/Commands.class" beforeDir="false" afterPath="$PROJECT_DIR$/CompiledServer/production/2006rebotted/com/rebotted/net/packets/impl/Commands.class" afterDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileColors">
<fileColor scope="Local Unit Tests" color="#161c22" />
<fileColor scope="Android Instrumented Tests" color="#161c22" />
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>math.sq</find>
@@ -29,25 +34,20 @@
<option name="height" value="1407" />
</component>
<component name="ProjectId" id="1Sr1PyvKre5eWJ6XgOrqWrHM5hp" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showExcludedFiles" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/2006Redone Client/METAs/Client Meta" />
<property name="project.structure.last.edited" value="Project" />
<property name="project.structure.proportion" value="0.15" />
<property name="project.structure.side.proportion" value="0.2" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager" selected="Application.GameEngine">
<configuration name="Client" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="Client" />
@@ -97,6 +97,18 @@
</list>
</recent_temporary>
</component>
<component name="ServiceViewManager">
<option name="viewStates">
<list>
<serviceView>
<treeState>
<expand />
<select />
</treeState>
</serviceView>
</list>
</option>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
@@ -107,9 +119,14 @@
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1572306880139</updated>
<workItem from="1576853591840" duration="1190000" />
<workItem from="1576854792240" duration="1663000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
@@ -137,4 +154,22 @@
</map>
</option>
</component>
<component name="WindowStateProjectService">
<state width="1877" height="266" key="GridCell.Tab.0.bottom" timestamp="1576858443106">
<screen x="0" y="40" width="1920" height="1040" />
</state>
<state width="1877" height="266" key="GridCell.Tab.0.bottom/0.40.1920.1040@0.40.1920.1040" timestamp="1576858443106" />
<state width="1877" height="266" key="GridCell.Tab.0.center" timestamp="1576858443106">
<screen x="0" y="40" width="1920" height="1040" />
</state>
<state width="1877" height="266" key="GridCell.Tab.0.center/0.40.1920.1040@0.40.1920.1040" timestamp="1576858443106" />
<state width="1877" height="266" key="GridCell.Tab.0.left" timestamp="1576858443105">
<screen x="0" y="40" width="1920" height="1040" />
</state>
<state width="1877" height="266" key="GridCell.Tab.0.left/0.40.1920.1040@0.40.1920.1040" timestamp="1576858443105" />
<state width="1877" height="266" key="GridCell.Tab.0.right" timestamp="1576858443106">
<screen x="0" y="40" width="1920" height="1040" />
</state>
<state width="1877" height="266" key="GridCell.Tab.0.right/0.40.1920.1040@0.40.1920.1040" timestamp="1576858443106" />
</component>
</project>
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -34,7 +34,4 @@ public class ClientSettings {
public static final BigInteger RSA_MODULUS = new BigInteger("91553247461173033466542043374346300088148707506479543786501537350363031301992107112953015516557748875487935404852620239974482067336878286174236183516364787082711186740254168914127361643305190640280157664988536979163450791820893999053469529344247707567448479470137716627440246788713008490213212272520901741443");
public static final BigInteger RSA_EXPONENT = new BigInteger("65537");
public final static Boolean SNOW = true;
}
+5 -1
View File
@@ -2,6 +2,9 @@
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3)
import java.util.Calendar;
import java.util.GregorianCalendar;
public final class Flo {
public static void unpackConfig(StreamLoader streamLoader) {
@@ -25,7 +28,8 @@ public final class Flo {
return;
} else if (i == 1) {
anInt390 = stream.read3Bytes();
if (ClientSettings.SNOW) {
Calendar date = new GregorianCalendar();
if ((date.get(Calendar.MONTH) + 1) == 12) {
anInt390 = 0xffffff;
}
method262(anInt390);
+6 -19
View File
@@ -5,11 +5,7 @@
import javax.swing.*;
import java.applet.AppletContext;
//import java.awt.*;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Font;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
@@ -397,7 +393,11 @@ public class Game extends RSApplet {
}
if (l == 0) {
if (i1 > 0 && i1 < 110) {
try {
textDrawingArea.method389(false, 4, 0, chatMessages[k], i1);
} catch (Exception e) {
}
}
j++;
}
@@ -4795,18 +4795,6 @@ public class Game extends RSApplet {
if (inputString.equals("::dataon")) {
showInfo = !showInfo;
}
if (inputString.equals("::clip")) {
for (int k1 = 0; k1 < 4; k1++) {
for (int i2 = 1; i2 < 103; i2++) {
for (int k2 = 1; k2 < 103; k2++) {
aClass11Array1230[k1].anIntArrayArray294[i2][k2] = 0;
}
}
}
}
}
if (inputString.startsWith("::")) {
stream.createFrame(103);
@@ -5982,7 +5970,6 @@ public class Game extends RSApplet {
}
}
int j3 = j2;
int k3 = j1;
anIntArrayArray901[j2][j1] = 99;
@@ -11540,7 +11527,7 @@ public class Game extends RSApplet {
public Game() {
//Test if they're on 32-bit, warn them if they are
if (!System.getProperty("os.arch").contains("64"))
if (!System.getProperty("sun.arch.data.model").contains("64"))
{
JOptionPane.showMessageDialog(null, "You're running 32-bit java. This will definitely cause problems.\nYou can get the right Java 8 at AdoptOpenJDK.net", "You're running 32-bit Java!", JOptionPane.INFORMATION_MESSAGE);
System.out.println("Please upgrade to 64-bit java to avoid problems! (AdoptOpenJDK.net)");
+5 -1
View File
@@ -190,7 +190,11 @@ public final class ItemDef {
cacheIndex = (cacheIndex + 1) % 10;
ItemDef itemDef = cache[cacheIndex];
stream.currentOffset = streamIndices[i];
try {
stream.currentOffset = streamIndices[i];
} catch (Exception e) {
System.out.println("Itemdef issue? Apparently this ID is out of bounds: " + e);
}
itemDef.id = i;
itemDef.setDefaults();
itemDef.readValues(stream);
+12
View File
@@ -3,6 +3,18 @@
* THIS IS TO ALLOW LOCAL PARABOT TO CONTINUE TO WORK
*/
import java.applet.AppletContext;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.io.*;
import java.net.InetAddress;
import java.net.Socket;
import java.net.URL;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Calendar;
import java.util.Date;
/**
* NOTICE: IF YOU CHANGE ANYTHING IN GAME.JAVA, PLEASE COPY-PASTE THE WHOLE CLASS OVER TO LOCALGAME.JAVA
* THIS IS TO ALLOW LOCAL PARABOT TO CONTINUE TO WORK
+1 -7
View File
@@ -4,13 +4,7 @@
import javax.swing.*;
import java.applet.Applet;
//import java.awt.*;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Font;
import java.awt.Insets;
import java.awt.FontMetrics;
import java.awt.*;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.KeyEvent;
+1 -9
View File
@@ -2,15 +2,7 @@
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3)
//import java.awt.*;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Font;
import java.awt.Insets;
import java.awt.FontMetrics;
import java.awt.Frame;
import java.awt.Dimension;
import java.awt.*;
@SuppressWarnings("serial")
final class RSFrame extends Frame {
@@ -200,7 +200,11 @@ public final class TextDrawingArea extends DrawingArea {
if (flag1) {
method392(aByteArrayArray1491[c], i + anIntArray1494[c] + 1, k + anIntArray1495[c] + 1, anIntArray1492[c], anIntArray1493[c], 0);
}
try {
method392(aByteArrayArray1491[c], i + anIntArray1494[c], k + anIntArray1495[c], anIntArray1492[c], anIntArray1493[c], j);
} catch (Exception e) {
}
}
i += anIntArray1496[c];
}
-68
View File
@@ -1,68 +0,0 @@
//the door starts as closed
// South 0 face = doorX -1 face = -3
// East -1 face = doorY -1 face = 0
// North -2 face = doorX +1 face = -1
// West -3 face = doorY +1 face = -2
// doorX doorY Height Face State //0 closed, 1 open
door = 2474 3233 9312 0 1 //Ancient temple portal
door = 3312 3235 0 0 0 //duel arena gate
door = 3312 3234 0 0 0 //duel arena gate
door = 3253 3266 0 0 0 //cow gate
door = 3268 3227 0 0 0 //al kharid gates
door = 3268 3228 0 0 0
door = 3562 9694 0 -2 0 //barrows door
door = 3563 9694 0 -1 1
//door = 2949 3379 0 0 0 //fally hair shop
//door = 2948 3379 0 -3 1
door = 3234 3426 0 -2 0
door = 3235 3426 0 -1 1
door = 3238 3210 0 0 0
door = 3237 3210 0 -3 1
door = 3234 3207 0 0 0
door = 3233 3207 0 -3 1
door = 3079 3497 0 -2 0
door = 3079 3497 0 -1 1
//the door starts as opened
// South 0 face = doorY +1 face = -1
// East -1 face = doorX -1 face = -2
// North -2 face = doorY -1 face = -3
// West -3 face = doorX +1 face = 0
// doorX doorY Height Face State //0 closed, 1 open
door = 3231 3433 0 -2 1
door = 3231 3432 0 -3 0
door = 2950 3385 0 -2 1
door = 2950 3384 0 -3 0
door = 3249 3435 0 -1 1
door = 3248 3435 0 -2 0
door = 3253 3431 0 -2 1
door = 3253 3430 0 -3 0
door = 3233 3427 0 0 1
door = 3233 3428 0 -1 0
door = 3217 3219 0 0 0
door = 3216 3219 0 -3 1
door = 3101 3510 0 0 0
door = 3101 3509 0 0 0
door = 2816 3438 0 -3 0
//door = 3101 3509 0 1 0
//door = 3101 3510 0 -1 0
[ENDOFDOORLIST]
@@ -1,3 +0,0 @@
// objectId X Y H Face objectType
//object = 9981 3254 3429 0 -1 10
[ENDOFOBJECTLIST]
+3
View File
@@ -2887,5 +2887,8 @@ npc = 3830 Kathy Corkat 0 0
npc = 3348 White_Knight 38 55
npc = 3350 White_Knight 42 60
npc = 3340 Giant_Mole 230 200
npc = 3504 Hellcat 0 0
npc = 3506 Lazy_Hellcat 0 0
npc = 3507 Wily_Hellcat 0 0
[ENDOFNPCLIST]
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-2
View File
@@ -256,5 +256,3 @@
1520 3280 3506 0 0
4423 2426 3088 0 0
4424 2427 3088 0 0
14751 3021 3631 2 0
14752 3021 3632 2 0
@@ -1,3 +1,7 @@
[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
@@ -60,7 +60,7 @@ public class GameEngine {
private static IoAcceptor acceptor;
private static ConnectionHandler connectionHandler;
private static ConnectionThrottleFilter throttleFilter;
private static boolean shutdownServer = false;
public static boolean shutdownServer = false;
public static int garbageCollectDelay = 40;
public static boolean shutdownClientHandler;
private static int serverlistenerPort;
@@ -32,7 +32,7 @@ public class BotHandler {
public static void playerShop(Player player){
// Must be in the correct zones
if (!player.inPlayerShopArea() && !player.inBankArea()) {
if (!player.inPlayerShopArea()) {
player.getPacketSender().sendMessage("You need to be in a bank zone or trade area for this.");
return;
}
@@ -61,7 +61,7 @@ public class CombatAssistant {
NpcHandler.npcs[i].animUpdateRequired = true;
NpcHandler.npcs[i].updateRequired = true;
}
if (CombatConstants.COMBAT_SOUNDS && NpcHandler.npcs[i].npcType < 3177 && NpcHandler.npcs[i].npcType > 3180) {
if (CombatConstants.COMBAT_SOUNDS) {
c.getPacketSender().sendSound(CombatSounds.getNpcBlockSound(NpcHandler.npcs[c.oldNpcIndex].npcType), 100, 0);
}
NpcHandler.npcs[i].facePlayer(c.playerId);
@@ -569,7 +569,7 @@ public class CombatAssistant {
return;
}
}
if (c.isWoodcutting == true) {
if (c.isWoodcutting) {
c.getPacketSender().sendMessage("You can't attack an npc while woodcutting.");
resetPlayerAttack();
return;
@@ -644,9 +644,7 @@ public class CombatAssistant {
return;
}
if (c.usingRangeWeapon || c.usingBow
&& CombatConstants.COMBAT_SOUNDS
&& NpcHandler.npcs[i].npcType < 3177
&& NpcHandler.npcs[i].npcType > 3180) {
&& CombatConstants.COMBAT_SOUNDS) {
c.getPacketSender().sendSound(SoundList.SHOOT_ARROW,
100, 0);
}
@@ -2023,6 +2021,7 @@ public class CombatAssistant {
if (PlayerHandler.players[c.playerIndex].inDuelArena() && c.duelStatus != 5 && !c.usingMagic) {
if (c.duelingArena() || c.duelStatus == 5) {
c.getPacketSender().sendMessage("You can't challenge inside the arena!");
resetPlayerAttack();
return false;
}
c.getDueling().requestDuel(c.playerIndex);
@@ -2150,16 +2149,6 @@ public class CombatAssistant {
}
}
/*
* public void applyRecoil(int damage, int i) { if (damage > 0 &&
* PlayerHandler.players[i].playerEquipment[c.playerRing] == 2550) { int
* recDamage = damage / 10 + 1; if (!c.getHitUpdateRequired()) {
* c.setHitDiff(recDamage); c.setHitUpdateRequired(true); } else if
* (!c.getHitUpdateRequired2()) { c.setHitDiff2(recDamage);
* c.setHitUpdateRequired2(true); } c.dealDamage(recDamage);
* c.updateRequired = true; } }
*/
public static void applyRecoilNPC(Client c, int damage, int i) {
if (c == null || c.npcIndex == 0) {
return;
@@ -15,7 +15,7 @@ public class MagicRequirements {
}
break;
case 555:
if (wep == 1383 || wep == 1395) {
if (wep == 1383 || wep == 1395 || wep == 6562) {
return true;
}
break;
@@ -25,7 +25,7 @@ public class MagicRequirements {
}
break;
case 557:
if (wep == 1385 || wep == 1399 || wep == 3053) {
if (wep == 1385 || wep == 1399 || wep == 3053 || wep == 6562) {
return true;
}
break;
@@ -241,9 +241,7 @@ public class NpcCombat {
c.singleCombatDelay2 = System.currentTimeMillis();
NpcHandler.npcs[i].oldIndex = c.playerId;
NpcData.startAnimation(NpcEmotes.getAttackEmote(i), i);
if (CombatConstants.COMBAT_SOUNDS
&& NpcHandler.npcs[i].npcType < 3177
&& NpcHandler.npcs[i].npcType > 3180) {
if (CombatConstants.COMBAT_SOUNDS) {
c.getPacketSender()
.sendSound(
CombatSounds
@@ -282,6 +280,26 @@ public class NpcCombat {
NpcHandler.npcs[i].attackType = 1;
}
switch (NpcHandler.npcs[i].npcType) {
case 1158://kq first form
int kqRandom = Misc.random(3);
if (kqRandom == 2) {
NpcHandler.npcs[i].projectileId = 280; //gfx
NpcHandler.npcs[i].attackType = 2;
NpcHandler.npcs[i].endGfx = 279;
} else {
NpcHandler.npcs[i].attackType = 0;
}
break;
case 1160://kq secondform
int kqRandom2 = Misc.random(3);
if (kqRandom2 == 2) {
NpcHandler.npcs[i].projectileId = 279; //gfx
NpcHandler.npcs[i].attackType = 1 + Misc.random(1);
NpcHandler.npcs[i].endGfx = 278;
} else {
NpcHandler.npcs[i].attackType = 0;
}
break;
case 2607:
NpcHandler.npcs[i].attackType = 1;
case 2591:
@@ -569,25 +587,17 @@ public class NpcCombat {
damage = c.playerLevel[GameConstants.HITPOINTS] - 1;
}
}
if (c.getPrayer().prayerActive[18]
&& !(NpcHandler.npcs[i].npcType == 2030)) { // protect
// from
// melee)
// {
// //
// protect
// from
// melee
if (c.getPrayer().prayerActive[18] && !(NpcHandler.npcs[i].npcType == 2030)) { // protect from melee
damage = 0;
} else if (c.getPrayer().prayerActive[18]
&& NpcHandler.npcs[i].npcType == 2030) {
} else if (c.getPrayer().prayerActive[18] && NpcHandler.npcs[i].npcType == 2030) {
if (NpcHandler.npcs[i].attackType == 0) {
damage = Misc.random(NpcHandler.npcs[i].maxHit);
}
if (10 + Misc
.random(MeleeData.calculateMeleeDefence(c)) > Misc
.random(NpcHandler.npcs[i].attack)) {
damage = 0;
if (10 + Misc.random(MeleeData.calculateMeleeDefence(c)) > Misc.random(NpcHandler.npcs[i].attack)) {
if (NpcHandler.npcs[i].npcType == 1158 || NpcHandler.npcs[i].npcType == 1160)
damage = (damage / 2);
else
damage = 0;
}
}
if (c.playerLevel[3] - damage < 0) {
@@ -597,10 +607,11 @@ public class NpcCombat {
if (NpcHandler.npcs[i].attackType == 1) { // range
damage = Misc.random(NpcHandler.npcs[i].maxHit);
if (10 + Misc.random(c.getCombatAssistant()
.calculateRangeDefence()) > Misc
.random(NpcHandler.npcs[i].attack)) {
damage = 0;
if (10 + Misc.random(c.getCombatAssistant().calculateRangeDefence()) > Misc.random(NpcHandler.npcs[i].attack)) {
if (NpcHandler.npcs[i].npcType == 1158 || NpcHandler.npcs[i].npcType == 1160)
damage = (damage / 2);
else
damage = 0;
}
if (NpcData.cantKillYou(NpcHandler.npcs[i].npcType)) {
if (damage >= c.playerLevel[GameConstants.HITPOINTS]) {
@@ -618,8 +629,7 @@ public class NpcCombat {
if (NpcHandler.npcs[i].attackType == 2) { // magic
damage = Misc.random(NpcHandler.npcs[i].maxHit);
boolean magicFailed = false;
if (10 + Misc.random(c.getCombatAssistant().mageDef()) > Misc
.random(NpcHandler.npcs[i].attack)) {
if (10 + Misc.random(c.getCombatAssistant().mageDef()) > Misc.random(NpcHandler.npcs[i].attack)) {
damage = 0;
magicFailed = true;
}
@@ -628,19 +638,23 @@ public class NpcCombat {
damage = c.playerLevel[GameConstants.HITPOINTS] - 1;
}
}
if (c.getPrayer().prayerActive[16]) { // protect from magic
damage = 0;
magicFailed = true;
}
if (c.playerLevel[3] - damage < 0) {
damage = c.playerLevel[3];
}
if (NpcHandler.npcs[i].endGfx > 0 && (!magicFailed || FightCaves.isFightCaveNpc(i))) {
c.gfx100(NpcHandler.npcs[i].endGfx);
} else {
c.gfx100(85);
c.getPacketSender().sendSound(SoundList.MAGE_FAIL,
100, 0);
if(c.getPrayer().prayerActive[16]) { // protect from magic
if (NpcHandler.npcs[i].npcType == 1158) {
damage = (damage / 2);
} else {
damage = 0;
}
magicFailed = true;
if (c.playerLevel[3] - damage < 0) {
damage = c.playerLevel[3];
}
if(NpcHandler.npcs[i].endGfx > 0 && (!magicFailed || FightCaves.isFightCaveNpc(i))) {
c.gfx100(NpcHandler.npcs[i].endGfx);
} else {
c.gfx100(85);
c.getPacketSender().sendSound(SoundList.MAGE_FAIL, 100, 0);
}
}
}
@@ -665,13 +679,23 @@ public class NpcCombat {
if (damage > 0) {
CombatAssistant.applyRecoilNPC(c, damage, i);
}
NpcHandler.handleSpecialEffects(c, i, damage);
c.logoutDelay = System.currentTimeMillis(); // logout delay
c.handleHitMask(damage);
c.playerLevel[3] -= damage;
c.getPlayerAssistant().refreshSkill(3);
FightCaves.tzKihEffect(c, i, damage);
c.updateRequired = true;
if (c.playerLevel[3] - damage < 0) {
damage = c.playerLevel[3];
}
int difference = c.playerLevel[3] - damage;
if (c.getPlayerAssistant().savePlayer()) {
c.getPlayerAssistant().handleROL();
} else if (difference <= c.getLevelForXP(c.playerXP[3]) / 10 && difference > 0) {
c.appendRedemption();
} else {
NpcHandler.handleSpecialEffects(c, i, damage);
c.logoutDelay = System.currentTimeMillis(); // logout delay
c.handleHitMask(damage);
c.playerLevel[3] -= damage;
c.getPlayerAssistant().refreshSkill(3);
FightCaves.tzKihEffect(c, i, damage);
c.updateRequired = true;
}
}
}
}
@@ -1,6 +1,8 @@
package com.rebotted.game.content.combat.npcs;
import com.rebotted.GameEngine;
import com.rebotted.game.npcs.NpcHandler;
import com.rebotted.game.players.Player;
/**
* Npc Emotes
@@ -163,7 +165,7 @@ public enum NpcEmotes {
return -1;
}
public static int getDeadEmote(int i) {
public static int getDeadEmote(Player player, int i) {
for (NpcEmotes e : NpcEmotes.values()) {
for (int f = 0; f < e.getNpcId().length; f++) {
if (NpcHandler.npcs[i].npcType == e.getNpcId()[f]) {
@@ -172,11 +174,16 @@ public enum NpcEmotes {
switch (NpcHandler.npcs[i].npcType) {
case 2745:
return 2654;
case 1158:
GameEngine.npcHandler.spawnSecondForm(player, i);
return 6242;
case 1160:
GameEngine.npcHandler.spawnFirstForm(player, i);
return 6233;
}
}
}
}
return 2304;
}
}
@@ -5,6 +5,8 @@ import com.rebotted.event.CycleEvent;
import com.rebotted.event.CycleEventContainer;
import com.rebotted.event.CycleEventHandler;
import com.rebotted.game.content.combat.CombatConstants;
import com.rebotted.game.content.skills.fletching.LogCuttingInterface;
import com.rebotted.game.items.ItemAssistant;
import com.rebotted.game.npcs.Npc;
import com.rebotted.game.npcs.NpcHandler;
import com.rebotted.game.objects.Objects;
@@ -33,6 +35,10 @@ public class DwarfCannon {
private final int ballsID = 2;
public final int steelBarID = 2353;
private final int ammoMouldID = 4;
public boolean settingUp = false;
private int setUpStage = 0;
@@ -53,8 +59,46 @@ public class DwarfCannon {
private boolean justClicked = false;
public static void makeBall(Player player)
{
//An interface could be added instead of making all.
if (!player.getItemAssistant().playerHasItem(2353) || !player.getItemAssistant().playerHasItem(4))
{
player.getPacketSender().sendMessage("You need an ammo mould and steel bars to make cannonballs.");
return;
}
if (!player.isSmithing)
{
player.isSmithing = true;
CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if (player.isWoodcutting || player.isCrafting || player.isFletching || player.isMoving || player.isMining || player.isBusy || player.isShopping || player.isFiremaking || player.isSpinning || player.isPotionMaking || player.playerIsFishing || player.isBanking || player.isSmelting || player.isTeleporting || player.isHarvesting || player.playerIsCooking || player.isPotCrafting ||!player.isSmithing || !player.getItemAssistant().playerHasItem(2353) || !player.getItemAssistant().playerHasItem(4))
{
container.stop();
return;
}
else
{
player.startAnimation(899);
player.getItemAssistant().deleteItem(2353, 1);
player.getItemAssistant().addItem(2, 4);
player.getPacketSender().sendMessage("You make some cannonballs.");
player.getPlayerAssistant().addSkillXP(26, player.playerSmithing);
player.getPacketSender().sendSound(352, 100, 0);
}
}
@Override
public void stop() {
player.isSmithing = false;
}
}, 3);
}
}
public void placeCannon() {
if (settingUp == true) {
if (settingUp) {
return;
}
if (noSetUpArea()) {
@@ -86,6 +130,7 @@ public class DwarfCannon {
if (setUpStage >= 4) {
container.stop();
setUpStage = 0;
player.CannonSetupStage = setUpStage;
settingUp = false;
return;
}
@@ -102,6 +147,7 @@ public class DwarfCannon {
placeObject(OBJECT_PARTS[setUpStage], player.absX, player.absY, true);
player.getItemAssistant().deleteItem(ITEM_PARTS[setUpStage], 1);
setUpStage ++;
player.CannonSetupStage = setUpStage;
}
@Override
public void stop() {
@@ -115,17 +161,12 @@ public class DwarfCannon {
}
}, 2);
}
public boolean needsCannon() {
return (player.lostCannon == true);
}
public void loginCheck() {
if (needsCannon()) {
if (player.lostCannon) {
player.getPacketSender().sendMessage("@red@You can collect your cannon from Nulodion.");
}
}
private boolean canSetUp() {
if (setUpStage == 0) {
if (player.getItemAssistant().playerHasItem(ITEM_PARTS[0]) && player.getItemAssistant().playerHasItem(ITEM_PARTS[1]) && player.getItemAssistant().playerHasItem(ITEM_PARTS[2]) && player.getItemAssistant().playerHasItem(ITEM_PARTS[3])) {
@@ -148,7 +189,7 @@ public class DwarfCannon {
}
public boolean hasCannon() {
return (player.cannonX > 0) && (player.cannonY > 0) || (player.cannonX > 0 && player.cannonY > 0);
return (player.CannonSetupStage != 0 || (player.cannonX > 0 && player.cannonY > 0));
}
private boolean myCannon(int x, int y) {
@@ -209,7 +250,7 @@ public class DwarfCannon {
}
if (myBalls >= 1 && rotating == false) {
shoot();
} else if (myBalls >= 1 && rotating == true) {
} else if (myBalls >= 1 && rotating) {
player.getPacketSender().sendMessage("Your cannon is already shooting.");
}
}
@@ -242,7 +283,7 @@ public class DwarfCannon {
}
public void shoot() {
if (justClicked == true) {
if (justClicked) {
return;
}
rotating = true;
@@ -261,7 +302,7 @@ public class DwarfCannon {
rotating = false;
e.stop();
}
if (rotating == true) {
if (rotating) {
rotation += 1;
rotateCannon();
shootNpcs();
@@ -313,13 +354,13 @@ public class DwarfCannon {
}
}
}
public void pickup(int x, int y) {
if (!myCannon(x, y)) {
player.getPacketSender().sendMessage("You can't pick up somebody else's cannon!");
return;
}
if (rotating == true) {
if (rotating) {
rotating = false;
}
if (player.getItemAssistant().freeSlots() > 3) {
@@ -343,13 +384,13 @@ public class DwarfCannon {
player.cannonX = 0;
player.cannonY = 0;
}
public void placeObject(int id, int x, int y, boolean add) {
GameEngine.objectHandler.placeObject(new Objects(id, x, y, 0, 516, 10, 0));
if (add)
Region.addObject(id, x, y, 0, 10, 516, true);
}
public void removeObject(int x, int y) {
placeObject(-1, x, y, false);
}
@@ -47,6 +47,7 @@ public class Potions {
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
c.getPacketSender().sendSound(1210, 100, 0);
c.getPacketSender().sendMessage(m1);
container.stop();
}
@@ -17,6 +17,8 @@ import com.rebotted.game.players.PlayerSave;
import com.rebotted.util.GameLogger;
import com.rebotted.util.Misc;
import static com.rebotted.game.content.music.sound.SoundList.DUEL_WON;
public class Dueling {
private final Player player;
@@ -51,12 +53,9 @@ public class Dueling {
if (o == null) {
return;
}
/*if (player.connectedFrom.equals(o.connectedFrom)) {
player.getActionSender().sendMessage("You can't duel your own IP.");
return;
}*/
player.duelRequested = true;
if (player.duelStatus == 0 && o.duelStatus == 0 && player.duelRequested
if (player.duelStatus == 0 && o.duelStatus == 0
&& o.duelRequested && player.duelingWith == o.getId()
&& o.duelingWith == player.getId()) {
if (player.goodDistance(player.getX(), player.getY(), o.getX(), o.getY(), 2)) {
@@ -142,10 +141,7 @@ public class Dueling {
if (o == null) {
return;
}
if(!player.openDuel && !o.openDuel) {
declineDuel();
return;
}
player.getOutStream().createFrameVarSizeWord(53);
player.getOutStream().writeWord(6669);
player.getOutStream().writeWord(stakedItems.toArray().length);
@@ -577,6 +573,15 @@ public class Dueling {
player.getPlayerAssistant().requestUpdates();
}
public static void HandleForfeit(Player player)
{
Client opponent = (Client) PlayerHandler.players[player.duelingWith];
opponent.getDueling().duelVictory();
player.getDueling().resetDuel();
player.getPlayerAssistant().movePlayer(GameConstants.DUELING_RESPAWN_X + Misc.random(5), GameConstants.DUELING_RESPAWN_Y + Misc.random(5), 0);
player.getPacketSender().sendMessage("You have lost the duel!");
}
public void duelVictory() {
Client opponent = (Client) PlayerHandler.players[player.duelingWith];
if (opponent != null) {
@@ -593,7 +598,7 @@ public class Dueling {
player.playerXP[i]);
player.getPlayerAssistant().refreshSkill(i);
}
// c.getPacketDispatcher().sendSound(Sound.DUEL_WON, 100, 0);
//player.getPacketSender().sendSound(DUEL_WON, 100, 0); Not good sound
player.duelStatus = 6;
if (player.isSkulled) {
player.isSkulled = false;
@@ -619,9 +624,7 @@ public class Dueling {
player.getCombatAssistant().resetPlayerAttack();
player.duelRequested = false;
PlayerSave.saveGame(player);
if (opponent != null) {
PlayerSave.saveGame(opponent);
}
PlayerSave.saveGame(opponent);
}
public void duelRewardInterface() {
@@ -686,7 +689,6 @@ public class Dueling {
resetDuel();
resetDuelItems();
PlayerSave.saveGame(player);
player.duelStatus = 0;
}
public void declineDuel() {
@@ -717,9 +719,7 @@ public class Dueling {
}
}
stakedItems.clear();
for (int i = 0; i < player.duelRule.length; i++) {
player.duelRule[i] = false;
}
refreshduelRules();
}
public void checkDuelWalk() {
@@ -727,25 +727,19 @@ public class Dueling {
if (player.duelStatus == 5 && o.duelStatus == 5 && o.duelingArena() && !player.duelingArena()) {
o.getDueling().duelVictory();
player.getDueling().resetDuel();
return;
}
}
public void resetDuel() {
//Client o = (Client) PlayerHandler.players[player.duelingWith];
if (player.isDead) {
player.lostDuel = true;
}
player.getPacketSender().showOption(3, 0, "Challenge", 3);
player.headIconHints = 0;
for (int i = 0; i < player.duelRule.length; i++) {
player.duelRule[i] = false;
}
refreshduelRules();
player.getPacketSender().createPlayerHints(10, -1);
player.duelStatus = 0;
player.duelSpaceReq = 0;
//player.openDuel = false;
//o.openDuel = false;
player.duelingWith = 0;
player.getPlayerAssistant().requestUpdates();
player.getCombatAssistant().resetPlayerAttack();
@@ -431,11 +431,11 @@ public class PestControl {
private void spawnNPC() {
//npcid, npcx, npcy, heightlevel, walking type, hp, att, def
for (int[] aPcNPCData : pcNPCData) {
GameEngine.npcHandler.spawnNpc2(aPcNPCData[0], aPcNPCData[1], aPcNPCData[2], 0, 0, 200, 0, 0, playersInGame() * 200);
GameEngine.npcHandler.spawnNpc2(aPcNPCData[0], aPcNPCData[1], aPcNPCData[2], 0, 0, 200, 0, 0, playersInGame() * 200, false);
}
for (int[] voidMonsters : voidMonsterData) {
//Server.npcHandler.spawnNpc2(voidMonsters[0], voidMonsters[1], voidMonsters[2], 0, 1, voidMonsters[NpcHandler.getNpcListHP(voidMonsters[0])], NpcHandler.getNpcListCombat(voidMonsters[0])/10, NpcHandler.getNpcListCombat(voidMonsters[0]), playersInGame() * 200);
GameEngine.npcHandler.spawnNpc2(voidMonsters[0], voidMonsters[1], voidMonsters[2], 0, 1, 500, 20, 200, 25);
GameEngine.npcHandler.spawnNpc2(voidMonsters[0], voidMonsters[1], voidMonsters[2], 0, 1, 500, 20, 200, 25, false);
}
}
}
@@ -126,7 +126,7 @@ public class CastleWars {
public static void addToWaitRoom(Player p, int team) {
if (p == null) {
return;
} else if (gameStarted == true) {
} else if (gameStarted) {
p.getPacketSender()
.sendMessage(
"There's already a Castle Wars going. Please wait a few minutes before trying again.");
@@ -218,7 +218,7 @@ public class Trawler extends GroupMinigame {
}
GameEngine.objectHandler.removeObject(GameEngine.objectHandler.getObjectByPosition(w.x, w.y));
GameEngine.objectHandler.removeObject(GameEngine.objectHandler.getObjectByPosition(w.x + (isSunk ? -128 : 128), w.y));
if (wall_status[index] == true) {
if (wall_status[index]) {
GameEngine.objectHandler.createAnObject(leaking_wall, w.x, w.y,
w.y == 4826 ? 1 : 3);
if (isSunk)
@@ -32,7 +32,7 @@ public class RestlessGhost {
client.getPacketSender().sendFrame126("Restless Ghost", 8144);
client.getPacketSender().sendFrame126(
"@str@I've talked Father Urhey", 8147);
client.getPacketSender().sendFrame126("@str@He gave me a amulet",
client.getPacketSender().sendFrame126("@str@He gave me an amulet",
8148);
client.getPacketSender().sendFrame126(
"I should speak to the ghost", 8149);
@@ -35,7 +35,7 @@ public class SkillHandler {
|| player.isMining || player.isWoodcutting || player.isSmithing
|| player.isSmelting || player.isSpinning || player.isPotionMaking
|| player.isPotCrafting || player.isFiremaking
|| player.playerSkilling[player.playerHerblore] == true
|| player.playerSkilling[player.playerHerblore]
|| player.playerSkilling[13]) {
return true;
}
@@ -46,7 +46,7 @@ public class SkillHandler {
public static void resetItemOnNpc(Player player) {
if (player.isMining) {// mining
Mining.resetMining(player);
} else if (player.playerIsFletching == true) {// fletching
} else if (player.playerIsFletching) {// fletching
player.playerIsFletching = false;
} else if (player.playerIsCooking) {// cooking
Cooking.resetCooking(player);
@@ -56,7 +56,7 @@ public class SkillHandler {
isSkilling[12] = false;
} else if (player.isSmelting) {
player.isSmelting = false;
} else if (player.isCrafting == true) {
} else if (player.isCrafting) {
player.isCrafting = false;
} else if (player.isPotionMaking) {// herblore
Herblore.resetHerblore(player);
@@ -64,7 +64,7 @@ public class SkillHandler {
Woodcutting.stopWoodcutting(player);
} else if (player.isSpinning) {// spinning
player.isSpinning = false;
} else if (player.isPotCrafting == true) {// pot crafting
} else if (player.isPotCrafting) {// pot crafting
player.isPotCrafting = false;
} else if (player.playerIsCooking) {// cooking
Cooking.resetCooking(player);
@@ -79,7 +79,7 @@ public class SkillHandler {
Fishing.resetFishing(player);
} else if (player.isMining) {// mining
Mining.resetMining(player);
} else if (player.playerIsFletching == true) {// fletching
} else if (player.playerIsFletching) {// fletching
player.playerIsFletching = false;
} else if (player.playerIsCooking) {// cooking
Cooking.resetCooking(player);
@@ -89,7 +89,7 @@ public class SkillHandler {
isSkilling[12] = false;
} else if (player.isSmelting) {
player.isSmelting = false;
} else if (player.isCrafting == true) {
} else if (player.isCrafting) {
player.isCrafting = false;
} else if (player.isPotionMaking) {// herblore
Herblore.resetHerblore(player);
@@ -97,7 +97,7 @@ public class SkillHandler {
Woodcutting.stopWoodcutting(player);
} else if (player.isSpinning) {// spinning
player.isSpinning = false;
} else if (player.isPotCrafting == true) {// pot crafting
} else if (player.isPotCrafting) {// pot crafting
player.isPotCrafting = false;
}
}
@@ -58,7 +58,7 @@ public class ApeAtollAgility {
c.getAgility().climbUpTropicalTree(c.getX(), c.getY(), 2);
c.getPlayerAssistant().addSkillXP(
c.getAgility().getXp(objectId), c.playerAgility);
if (c.getAgility().agilityProgress[0] == true) {
if (c.getAgility().agilityProgress[0]) {
c.getAgility().agilityProgress[1] = true;
}
}
@@ -81,7 +81,7 @@ public class ApeAtollAgility {
c.getAgility().getAnimation(objectId), -1);
c.getPlayerAssistant().addSkillXP(
c.getAgility().getXp(objectId), c.playerAgility);
if (c.getAgility().agilityProgress[1] == true) {
if (c.getAgility().agilityProgress[1]) {
c.getAgility().agilityProgress[2] = true;
}
}
@@ -102,7 +102,7 @@ public class ApeAtollAgility {
c.getPlayerAssistant().addSkillXP(
c.getAgility().getXp(objectId), c.playerAgility);
c.getPacketSender().sendMessage("You climb your way up");
if (c.getAgility().agilityProgress[2] == true) {
if (c.getAgility().agilityProgress[2]) {
c.getAgility().agilityProgress[3] = true;
}
}
@@ -122,7 +122,7 @@ public class ApeAtollAgility {
c.getAgility().getAnimation(objectId), -1);
c.getPlayerAssistant().addSkillXP(
c.getAgility().getXp(objectId), c.playerAgility);
if (c.getAgility().agilityProgress[3] == true) {
if (c.getAgility().agilityProgress[3]) {
c.getAgility().agilityProgress[4] = true;
}
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@@ -161,7 +161,7 @@ public class ApeAtollAgility {
c.getAgility().moveHeight = 0;
c.getPlayerAssistant().addSkillXP(c.getAgility().getXp(objectId),
c.playerAgility);
if (c.getAgility().agilityProgress[4] == true) {
if (c.getAgility().agilityProgress[4]) {
c.getAgility().agilityProgress[5] = true;
}
c.getAgility().lapBonus = 2700;
@@ -56,7 +56,7 @@ public class BarbarianAgility {
if (c.getAgility().hotSpot(2551, 3546)) {
c.getAgility().walk(-10, 0, c.getAgility().getAnimation(objectId), -1);
c.getPlayerAssistant().addSkillXP(c.getAgility().getXp(objectId), c.playerAgility);
if (c.getAgility().agilityProgress[0] == true) {
if (c.getAgility().agilityProgress[0]) {
c.getAgility().agilityProgress[1] = true;
}
} else if (c.absX < 2551 && c.absX > 2541) {
@@ -72,7 +72,7 @@ public class BarbarianAgility {
c.getAgility().climbUp(c.getX() - 1, c.getY(), 1);
c.getPlayerAssistant().addSkillXP(c.getAgility().getXp(objectId),
c.playerAgility);
if (c.getAgility().agilityProgress[1] == true) {
if (c.getAgility().agilityProgress[1]) {
c.getAgility().agilityProgress[2] = true;
}
} else {
@@ -90,7 +90,7 @@ public class BarbarianAgility {
c.getAgility().getAnimation(objectId), -1);
c.getPlayerAssistant().addSkillXP(
c.getAgility().getXp(objectId), c.playerAgility);
if (c.getAgility().agilityProgress[2] == true) {
if (c.getAgility().agilityProgress[2]) {
c.getAgility().agilityProgress[3] = true;
}
} else if (c.absX < 2536 && c.absX > 2532) {
@@ -109,7 +109,7 @@ public class BarbarianAgility {
}
c.getAgility().climbDown(c.getX(), c.getY(), 0);
c.getPacketSender().sendMessage("You climb down.");
if (c.getAgility().agilityProgress[3] == true) {
if (c.getAgility().agilityProgress[3]) {
c.getAgility().agilityProgress[4] = true;
}
return true;
@@ -123,10 +123,10 @@ public class BarbarianAgility {
c.getAgility().getAnimation(objectId), -1);
c.getPlayerAssistant().addSkillXP(
c.getAgility().getXp(objectId), c.playerAgility);
if (c.getAgility().agilityProgress[4] == true) {
if (c.getAgility().agilityProgress[4]) {
c.getAgility().agilityProgress[5] = true;
}
if (c.getAgility().agilityProgress[5] == true) {
if (c.getAgility().agilityProgress[5]) {
c.getAgility().lapBonus = 1700 / 30;
c.getAgility().lapFinished();
c.getAgility().resetAgilityProgress();
@@ -34,7 +34,7 @@ public class GnomeAgility {
case NET1_OBJECT:
c.getAgility().climbUp(c.getX(), c.getY() - 2, 1);
c.getPlayerAssistant().addSkillXP(c.getAgility().getXp(objectId), c.playerAgility);
if (c.getAgility().agilityProgress[0] == true) {
if (c.getAgility().agilityProgress[0]) {
c.getAgility().agilityProgress[1] = true;
}
return true;
@@ -42,7 +42,7 @@ public class GnomeAgility {
case TREE_OBJECT:
c.getAgility().climbUp(c.getX(), c.getY() - 3, 2);
c.getPlayerAssistant().addSkillXP(c.getAgility().getXp(objectId), c.playerAgility);
if (c.getAgility().agilityProgress[1] == true) {
if (c.getAgility().agilityProgress[1]) {
c.getAgility().agilityProgress[2] = true;
}
return true;
@@ -58,7 +58,7 @@ public class GnomeAgility {
c.getPlayerAssistant().movePlayer(2483, 3420, 2);
}
c.getPlayerAssistant().addSkillXP(c.getAgility().getXp(objectId), c.playerAgility);
if (c.getAgility().agilityProgress[2] == true) {
if (c.getAgility().agilityProgress[2]) {
c.getAgility().agilityProgress[3] = true;
}
return true;
@@ -66,7 +66,7 @@ public class GnomeAgility {
case TREE_BRANCH_OBJECT:
c.getAgility().climbDown(c.getX(), c.getY(), 0);
c.getPlayerAssistant().addSkillXP(c.getAgility().getXp(objectId), c.playerAgility);
if (c.getAgility().agilityProgress[3] == true) {
if (c.getAgility().agilityProgress[3]) {
c.getAgility().agilityProgress[4] = true;
}
return true;
@@ -79,7 +79,7 @@ public class GnomeAgility {
c.getAgility().climbUp(c.getX(), c.getY() + 2, 0);
c.getPlayerAssistant().addSkillXP(c.getAgility().getXp(objectId), c.playerAgility);
clickTimer = System.currentTimeMillis();
if (c.getAgility().agilityProgress[4] == true) {
if (c.getAgility().agilityProgress[4]) {
c.getAgility().agilityProgress[5] = true;
}
}
@@ -88,7 +88,7 @@ public class GnomeAgility {
case PIPES1_OBJECT:
if (c.getAgility().hotSpot(2484, 3430)) {
c.getAgility().walk(0, 7, c.getAgility().getAnimation(objectId), 748);
if (c.getAgility().agilityProgress[5] == true) {
if (c.getAgility().agilityProgress[5]) {
c.getPlayerAssistant().addSkillXP(c.getAgility().getXp(objectId), c.playerAgility);
c.getAgility().lapBonus = 1400 / 30;
c.getAgility().lapFinished();
@@ -105,7 +105,7 @@ public class GnomeAgility {
case PIPES2_OBJECT:
if (c.getAgility().hotSpot(2487, 3430)) {
c.getAgility().walk(0, 7, c.getAgility().getAnimation(objectId), 748);
if (c.getAgility().agilityProgress[5] == true) {
if (c.getAgility().agilityProgress[5]) {
c.getPlayerAssistant().addSkillXP(
c.getAgility().getXp(objectId), c.playerAgility);
c.getAgility().lapBonus = 1400 / 30;
@@ -82,7 +82,7 @@ public class WerewolfAgility {
c.getAgility().getAnimation(objectId), -1);
c.getPlayerAssistant().addSkillXP(
c.getAgility().getXp(objectId), c.playerAgility);
if (c.getAgility().agilityProgress[0] == true) {
if (c.getAgility().agilityProgress[0]) {
c.getAgility().agilityProgress[1] = true;
}
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@@ -113,7 +113,7 @@ public class WerewolfAgility {
c.getAgility().getAnimation(objectId), 748);
c.getPlayerAssistant().addSkillXP(
c.getAgility().getXp(objectId), c.playerAgility);
if (c.getAgility().agilityProgress[1] == true) {
if (c.getAgility().agilityProgress[1]) {
c.getAgility().agilityProgress[2] = true;
}
} else if (c.getAgility().hotSpot(3541, 9904)) {
@@ -121,7 +121,7 @@ public class WerewolfAgility {
c.getAgility().getAnimation(objectId), 748);
c.getPlayerAssistant().addSkillXP(
c.getAgility().getXp(objectId), c.playerAgility);
if (c.getAgility().agilityProgress[1] == true) {
if (c.getAgility().agilityProgress[1]) {
c.getAgility().agilityProgress[2] = true;
}
} else if (c.getAgility().hotSpot(3544, 9904)) {
@@ -129,7 +129,7 @@ public class WerewolfAgility {
c.getAgility().getAnimation(objectId), 748);
c.getPlayerAssistant().addSkillXP(
c.getAgility().getXp(objectId), c.playerAgility);
if (c.getAgility().agilityProgress[1] == true) {
if (c.getAgility().agilityProgress[1]) {
c.getAgility().agilityProgress[2] = true;
}
}
@@ -144,7 +144,7 @@ public class WerewolfAgility {
c.getAgility().getAnimation(objectId), -1);
c.getPlayerAssistant().addSkillXP(
c.getAgility().getXp(objectId), c.playerAgility);
if (c.getAgility().agilityProgress[2] == true) {
if (c.getAgility().agilityProgress[2]) {
c.getAgility().agilityProgress[3] = true;
}
}
@@ -159,7 +159,7 @@ public class WerewolfAgility {
WerewolfAgility.WEREWOLF_SLING_OBJECT), 743);
c.getPlayerAssistant().addSkillXP(
c.getAgility().getXp(objectId), c.playerAgility);
if (c.getAgility().agilityProgress[3] == true) {
if (c.getAgility().agilityProgress[3]) {
c.getAgility().agilityProgress[4] = true;
}
c.getAgility().agilityProgress[5] = true;
@@ -46,7 +46,7 @@ public class WildernessAgility {
if (c.getAgility().hotSpot(3005, 3953) || ((c.absX >= 3004 && c.absX <= 3006) && (c.absY > 3950 && c.absY < 3953))) {
c.getAgility().walk(0, 1,
c.getAgility().getAnimation(objectId), -1);
if (c.getAgility().agilityProgress[0] == true) {
if (c.getAgility().agilityProgress[0]) {
c.getAgility().agilityProgress[1] = true;
}
c.getPlayerAssistant().addSkillXP(c.getAgility().getXp(objectId), c.playerAgility);
@@ -82,7 +82,7 @@ public class WildernessAgility {
c.getAgility().steppingStone = 6;
c.getAgility().steppingStoneTimer = 2;
c.getAgility().steppingStone--;
if (c.getAgility().agilityProgress[2] == true) {
if (c.getAgility().agilityProgress[2]) {
c.getAgility().agilityProgress[3] = true;
}
return true;
@@ -102,7 +102,7 @@ public class WildernessAgility {
c.getAgility().getAnimation(objectId), -1);
}
if (c.getAgility().agilityProgress[3] == true) {
if (c.getAgility().agilityProgress[3]) {
c.getAgility().agilityProgress[5] = true;
}
c.getPlayerAssistant().addSkillXP(c.getAgility().getXp(objectId), c.playerAgility);
@@ -116,7 +116,7 @@ public class WildernessAgility {
return false;
}
c.getAgility().walk(0, -4, c.getAgility().getAnimation(objectId), -1);
if (c.getAgility().agilityProgress[5] == true) {
if (c.getAgility().agilityProgress[5]) {
c.getPlayerAssistant().addSkillXP(c.getAgility().getXp(objectId), c.playerAgility);
c.getAgility().lapBonus = 2400 / 30;
c.getAgility().lapFinished();
@@ -13,7 +13,7 @@ public class GemCutting extends CraftingData {
public static boolean cutGem(final Player player, final int itemUsed,
final int usedWith) {
/*
* if (c.isCrafting == true) { return false; }
* if (c.isCrafting) { return false; }
*/
final int itemId = itemUsed == 1755 ? usedWith : itemUsed;
for (final cutGemData g : cutGemData.values()) {
@@ -43,7 +43,7 @@ public class GemCutting extends CraftingData {
player.getItemAssistant().deleteItem(itemId, 1);
player.getPlayerAssistant().addSkillXP(1, 12);
}
if (player.isCrafting == true) {
if (player.isCrafting) {
if (player.getItemAssistant().playerHasItem(itemId)) {
player.getItemAssistant().deleteItem(itemId, 1);
player.getItemAssistant().addItem(g.getCut(), 1);
@@ -76,7 +76,7 @@ public class JewelryMaking {
} else {
c.getPacketSender().sendFrame246(4241, 120, 1595);
c.getPacketSender().sendFrame126(
"You need a amulet mould to craft necklaces", 4242);
"You need an amulet mould to craft necklaces", 4242);
for (int i = 0; i < MOULD_INTERFACE_IDS[2].length; i++) {
c.getPacketSender().sendFrame34(-1, i, 4245, 1);
}
@@ -62,7 +62,7 @@ public class LeatherMaking extends CraftingData {
private static int amount;
public static void craftLeather(final Player player, final int buttonId) {
if (player.isCrafting == true) {
if (player.isCrafting) {
return;
}
for (final leatherData l : leatherData.values()) {
@@ -106,7 +106,7 @@ public class LeatherMaking extends CraftingData {
@Override
public void execute(
CycleEventContainer container) {
if (player.isCrafting == true) {
if (player.isCrafting) {
if (!player.getItemAssistant()
.playerHasItem(1734)) {
player.getPacketSender()
@@ -54,7 +54,7 @@ public class Pottery {
c.doAmount = amount;
c.isPotCrafting = true;
if (c.getItemAssistant().playerHasItem(softClay)
&& c.playerLevel[12] >= level && c.isPotCrafting == true) {
&& c.playerLevel[12] >= level && c.isPotCrafting) {
c.startAnimation(unFire);
c.getItemAssistant().deleteItem(softClay, 1);
c.getItemAssistant().addItem(id, 1);
@@ -70,7 +70,7 @@ public class Pottery {
public void execute(CycleEventContainer container) {
if (c.getItemAssistant().playerHasItem(softClay)
&& c.playerLevel[12] >= level && !(c.doAmount <= 0)
&& c.isPotCrafting == true) {
&& c.isPotCrafting) {
c.startAnimation(unFire);
c.getItemAssistant().deleteItem(softClay, 1);
c.getItemAssistant().addItem(id, 1);
@@ -118,7 +118,7 @@ public class Pottery {
player.doAmount = amount;
player.isPotCrafting = true;
if (player.getItemAssistant().playerHasItem(startId)
&& player.playerLevel[12] >= level && player.isPotCrafting == true) {
&& player.playerLevel[12] >= level && player.isPotCrafting) {
player.getItemAssistant().deleteItem(startId, 1);
player.getItemAssistant().addItem(finishId, 1);
player.startAnimation(Fire);
@@ -151,7 +151,7 @@ public class Pottery {
public void execute(CycleEventContainer container) {
if (player.getItemAssistant().playerHasItem(startId)
&& player.playerLevel[12] >= level
&& player.isPotCrafting == true && !(player.doAmount <= 0)) {
&& player.isPotCrafting && !(player.doAmount <= 0)) {
player.getItemAssistant().deleteItem(startId, 1);
player.getItemAssistant().addItem(finishId, 1);
player.startAnimation(Fire);
@@ -40,7 +40,7 @@ public class Spinning extends CraftingData {
@Override
public void execute(CycleEventContainer container) {
if (c.isSpinning == true) {
if (c.isSpinning) {
if (c.getItemAssistant().playerHasItem(before)) {
if (c.playerLevel[c.playerCrafting] < level) {
c.getDialogueHandler().sendStatement(
@@ -28,7 +28,7 @@ public class Firemaking {
public static void attemptFire(final Player c, final int itemUsed, final int usedWith, final int x, final int y, final boolean groundObject) {
int firemakingItems[] = {590, 7329, 7330, 7331};
for (int i = 0; i < firemakingItems.length; i++) {
if (Firemaking.pickedUpFiremakingLog == true) {
if (Firemaking.pickedUpFiremakingLog) {
c.getPacketSender().sendMessage("You can't do that!");
Firemaking.pickedUpFiremakingLog = false;
return;
@@ -87,20 +87,20 @@ public class Firemaking {
walk = false;
}
c.startAnimation(733);
c.getPlayerAssistant().walkTo(walk == true ? -1 : 1, 0);
c.getPlayerAssistant().walkTo(walk ? -1 : 1, 0);
stopFiremaking = false;
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if (stopFiremaking == true) {
if (stopFiremaking) {
stopFiremaking = false;
return;
}
if (c.isWoodcutting || c.playerIsFletching || c.isFletching) {
container.stop();
}
if (c.isFiremaking == true) {
if (c.isFiremaking) {
GameEngine.itemHandler.removeGroundItem(c, logId, x, y, false);
c.getPacketSender().sendSound(SoundList.FIRE_SUCCESSFUL, 100, 0);
if (itemUsed == 7331 || usedWith == 7331)
@@ -120,7 +120,7 @@ public class Firemaking {
@Override
public void execute(CycleEventContainer container) {
c.turnPlayerTo(walk == true ? x + 1 : x - 1, y);
c.turnPlayerTo(walk ? x + 1 : x - 1, y);
logLit = true;
stopFiremaking(c);
container.stop();
@@ -79,7 +79,7 @@ public class ArrowMaking {
if (arrowData == null) {
return false;
}
if (player.isWoodcutting == true) {
if (player.isWoodcutting) {
return false;
}
if (player.playerLevel[9] < arrowData.getLevel()) {
@@ -104,55 +104,52 @@ public class ArrowMaking {
player.getPacketSender().sendMessage("Not enough space in your inventory.");
return false;
}
player.playerIsFletching = true;
int factor = 1;
final int multiplier = factor;
int count1 = player.getItemAssistant().getItemAmount(arrowData.getItem1()) < 15 ? player
.getItemAssistant().getItemAmount(arrowData.getItem1()) : 15;
int count2 = player.getItemAssistant().getItemAmount(arrowData.getItem2()) < 15 ? player
.getItemAssistant().getItemAmount(arrowData.getItem2()) : 15;
final int count = count1 < count2 ? count1 : count2;
CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if (!player.getItemAssistant().playerHasItem(arrowData.getItem1(),
count)
|| !player.getItemAssistant().playerHasItem(
arrowData.getItem2(), count)
|| player.playerIsFletching == false) {
container.stop();
return;
if (!player.playerIsFletching)
{
player.playerIsFletching = true;
CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
int factor = 1;
final int multiplier = factor;
int count1 = player.getItemAssistant().getItemAmount(arrowData.getItem1()) < 15 ? player
.getItemAssistant().getItemAmount(arrowData.getItem1()) : 15;
int count2 = player.getItemAssistant().getItemAmount(arrowData.getItem2()) < 15 ? player
.getItemAssistant().getItemAmount(arrowData.getItem2()) : 15;
final int count = count1 < count2 ? count1 : count2;
@Override
public void execute(CycleEventContainer container) {
if (!player.getItemAssistant().playerHasItem(arrowData.getItem1(),
count)
|| !player.getItemAssistant().playerHasItem(
arrowData.getItem2(), count) || player.isWoodcutting || player.isCrafting || player.isMoving || player.isMining || player.isBusy || player.isShopping || player.isSmithing || player.isFiremaking || player.isSpinning || player.isPotionMaking || player.playerIsFishing || player.isBanking || player.isSmelting || player.isTeleporting || player.isHarvesting || player.playerIsCooking || player.isPotCrafting) {
container.stop();
return;
}
player.getPacketSender().sendSound(375, 100, 0);
player.getItemAssistant().deleteItem(arrowData.getItem1(), count);
player.getItemAssistant().deleteItem(arrowData.getItem2(), count);
player.getItemAssistant().addItem(arrowData.getProduct(),
count / multiplier);
player.getPacketSender().sendMessage(
"You attach the "
+ ItemAssistant.getItemName(arrowData
.getItem1())
+ " to "
+ count
/ multiplier
+ " "
+ ItemAssistant.getItemName(arrowData
.getItem2()) + "s.");
player.getPlayerAssistant().addSkillXP(
count / multiplier * arrowData.getXp(), 9);
}
if (player.isWoodcutting == true) {
container.stop();
}
player.getItemAssistant().deleteItem(arrowData.getItem1(), count);
player.getItemAssistant().deleteItem(arrowData.getItem2(), count);
player.getItemAssistant().addItem(arrowData.getProduct(),
count / multiplier);
player.getPacketSender().sendMessage(
"You attach the "
+ ItemAssistant.getItemName(arrowData
.getItem1())
+ " to "
+ count
/ multiplier
+ " "
+ ItemAssistant.getItemName(arrowData
.getItem2()) + "s.");
player.getPlayerAssistant().addSkillXP(
count / multiplier * arrowData.getXp(), 9);
}
@Override
public void stop() {
player.playerIsFletching = false;
return;
}
}, 1);
@Override
public void stop() {
player.playerIsFletching = false;
}
}, 1);
}
return true;
}
}
@@ -16,93 +16,61 @@ public class LogCutting {
private static final int KNIFE = 946, CUT_SOUND = 375;
public static void resetFletching(Player player) {
if (player.playerIsFletching == true) {
if (player.playerIsFletching) {
player.playerIsFletching = false;
player.startAnimation(65535);
}
}
public static void cutLog(final Player c, final int product, final int level, final double xp, int amount) {
if (c.isSpinning) {
c.isSpinning = false;
}
if (c.isWoodcutting) {
c.isWoodcutting = false;
}
c.doAmount = amount;
c.getPacketSender().closeAllWindows();
if (c.playerLevel[9] < level) {
c.getPacketSender().sendMessage("You need a fletching level of " + level + " to make this.");
public static void cutLog(final Player player, final int product, final int level, final double xp, int amount) {
player.doAmount = amount;
player.getPacketSender().closeAllWindows();
if (player.playerLevel[9] < level) {
player.getPacketSender().sendMessage("You need a fletching level of " + level + " to make this.");
return;
}
c.playerIsFletching = true;
c.startAnimation(1248);
c.getPacketSender().sendSound(CUT_SOUND, 100, 0);
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if (c.getItemAssistant().playerHasItem(LogCuttingInterface.log) && c.getItemAssistant().playerHasItem(KNIFE)) {
c.getItemAssistant().deleteItem(LogCuttingInterface.log, 1);
if (product == 52) {
c.getItemAssistant().addItem(product, 15);
} else {
c.getItemAssistant().addItem(product, 1);
if (!player.playerIsFletching)
{
player.playerIsFletching = true;
CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if (player.doAmount <= 0 || !player.getItemAssistant().playerHasItem(LogCuttingInterface.log) || !player.getItemAssistant().playerHasItem(KNIFE) || player.isWoodcutting || player.isCrafting || player.isMoving || player.isMining || player.isBusy || player.isShopping || player.isSmithing || player.isFiremaking || player.isSpinning || player.isPotionMaking || player.playerIsFishing || player.isBanking || player.isSmelting || player.isTeleporting || player.isHarvesting || player.playerIsCooking || player.isPotCrafting) {
container.stop();
return;
}
else
{
player.startAnimation(1248);
player.getItemAssistant().deleteItem(LogCuttingInterface.log, 1);
if (product == 52)
{
player.getItemAssistant().addItem(product, 15);
player.getPacketSender().sendMessage("You carefully cut the " + ItemAssistant.getItemName(LogCuttingInterface.log) + " into 15 " + ItemAssistant.getItemName(product) + "s.");
}
else
{
player.getItemAssistant().addItem(product, 1);
player.getPacketSender().sendMessage("You carefully cut the " + ItemAssistant.getItemName(LogCuttingInterface.log) + " into a " + ItemAssistant.getItemName(product) + ".");
}
player.getPlayerAssistant().addSkillXP(xp, player.playerFletching);
player.doAmount--;
player.getPacketSender().sendSound(CUT_SOUND, 100, 0);
}
c.getPacketSender().sendMessage("You carefully cut the " + ItemAssistant.getItemName(LogCuttingInterface.log) + " into an " + ItemAssistant.getItemName(product) + ".");
c.getPlayerAssistant().addSkillXP(xp, c.playerFletching);
c.doAmount--;
}
if (!c.getItemAssistant().playerHasItem(LogCuttingInterface.log)) {
container.stop();
return;
@Override
public void stop() {
player.playerIsFletching = false;
}
if (c.playerIsFletching == false) {
container.stop();
return;
}
if (c.doAmount <= 0) {
container.stop();
return;
}
}
@Override
public void stop() {
c.playerIsFletching = false;
c.startAnimation(65535);
return;
}
}, 3);
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if (c.playerIsFletching == false) {
container.stop();
return;
}
c.getPacketSender().sendSound(CUT_SOUND, 100, 0);
c.startAnimation(1248);
}
@Override
public void stop() {
c.playerIsFletching = false;
c.startAnimation(65535);
return;
}
}, 3);
}, 3);
}
}
public static void handleClick(Player c, int buttonId) {
if (c.doAmount == 28 && c.playerIsFletching == true) {
if (c.doAmount == 28 && c.playerIsFletching) {
c.getPacketSender().closeAllWindows();
c.playerIsFletching = false;
return;
@@ -112,7 +80,7 @@ public class LogCutting {
* normal log (item on interface 3)
*/
case 34185:
if (c.playerIsFletching == true) {
if (c.playerIsFletching) {
cutLog(c, 52, 1, 5, 1);
c.playerIsFletching = false;
return;
@@ -128,7 +96,7 @@ public class LogCutting {
cutLog(c, 52, 1, 5, 28);
return;
case 34189:
if (c.playerIsFletching == true) {
if (c.playerIsFletching) {
cutLog(c, 50, 5, 5, 1);
c.playerIsFletching = false;
return;
@@ -144,7 +112,7 @@ public class LogCutting {
cutLog(c, 50, 5, 5, 28);
return;
case 34193:
if (c.playerIsFletching == true) {
if (c.playerIsFletching) {
cutLog(c, 48, 10, 10, 1);
c.playerIsFletching = false;
return;
@@ -166,23 +134,23 @@ public class LogCutting {
* first item
*/
case 34170:
if (LogCuttingInterface.log == 1521 && c.playerIsFletching == true) {
if (LogCuttingInterface.log == 1521 && c.playerIsFletching) {
cutLog(c, 54, 20, 16.5, 1);
c.playerIsFletching = false;
}
if (LogCuttingInterface.log == 1519 && c.playerIsFletching == true) {
if (LogCuttingInterface.log == 1519 && c.playerIsFletching) {
cutLog(c, 60, 35, 33.3, 1);
c.playerIsFletching = false;
}
if (LogCuttingInterface.log == 1517 && c.playerIsFletching == true) {
if (LogCuttingInterface.log == 1517 && c.playerIsFletching) {
cutLog(c, 64, 50, 50, 1);
c.playerIsFletching = false;
}
if (LogCuttingInterface.log == 1515 && c.playerIsFletching == true) {
if (LogCuttingInterface.log == 1515 && c.playerIsFletching) {
cutLog(c, 68, 65, 67.5, 1);
c.playerIsFletching = false;
}
if (LogCuttingInterface.log == 1513 && c.playerIsFletching == true) {
if (LogCuttingInterface.log == 1513 && c.playerIsFletching) {
cutLog(c, 72, 80, 83.25, 1);
c.playerIsFletching = false;
}
@@ -242,23 +210,23 @@ public class LogCutting {
* second item
*/
case 34174:
if (LogCuttingInterface.log == 1521 && c.playerIsFletching == true) {
if (LogCuttingInterface.log == 1521 && c.playerIsFletching) {
cutLog(c, 56, 25, 25, 1);
c.playerIsFletching = false;
}
if (LogCuttingInterface.log == 1519 && c.playerIsFletching == true) {
if (LogCuttingInterface.log == 1519 && c.playerIsFletching) {
cutLog(c, 58, 40, 41.5, 1);
c.playerIsFletching = false;
}
if (LogCuttingInterface.log == 1517 && c.playerIsFletching == true) {
if (LogCuttingInterface.log == 1517 && c.playerIsFletching) {
cutLog(c, 62, 55, 58.3, 1);
c.playerIsFletching = false;
}
if (LogCuttingInterface.log == 1515 && c.playerIsFletching == true) {
if (LogCuttingInterface.log == 1515 && c.playerIsFletching) {
cutLog(c, 66, 70, 70, 1);
c.playerIsFletching = false;
}
if (LogCuttingInterface.log == 1513 && c.playerIsFletching == true) {
if (LogCuttingInterface.log == 1513 && c.playerIsFletching) {
cutLog(c, 70, 85, 91.5, 1);
c.playerIsFletching = false;
}
@@ -20,12 +20,14 @@ public class LogCuttingInterface {
}
public static void fletchInterface(Player c, int item) {
if (c.playerIsFletching == true && (item > 1510 && item < 1522)) {
LogCutting.resetFletching(c);
if (c.playerIsFletching) {
c.playerIsFletching = false;
return;
} else if (c.playerIsFletching == true && (item < 1510 || item > 1521)) {
}
if (item < 1510 || item > 1521) {
c.playerIsFletching = false;
c.getPacketSender().sendMessage("Nothing interesting happens.");
return;
}
log = item;
if (item == 1511) {
@@ -73,7 +75,6 @@ public class LogCuttingInterface {
c.getPacketSender().sendFrame126(ItemAssistant.getItemName(72), 8874);
c.getPacketSender().sendFrame126(ItemAssistant.getItemName(70), 8878);
}
c.playerIsFletching = true;
}
public static void handleItemOnItem(Player player, int itemUsed, int useWith) {
@@ -86,10 +86,11 @@ public class Stringing {
@Override
public void execute(CycleEventContainer container) {
if (!player.getItemAssistant().playerHasItem(loadData.getItem1()) || !player.getItemAssistant().playerHasItem(loadData.getItem2()) || player.playerIsFletching == false) {
if (!player.getItemAssistant().playerHasItem(loadData.getItem1()) || !player.getItemAssistant().playerHasItem(loadData.getItem2()) || !player.playerIsFletching) {
container.stop();
return;
}
player.getPacketSender().sendSound(1311, 100, 0);
player.getItemAssistant().deleteItem(loadData.getItem1(), 1);
player.getItemAssistant().deleteItem(loadData.getItem2(), 1);
player.getPacketSender().sendMessage("You add a string to the bow.");
@@ -559,7 +559,7 @@ public class Slayer {
}
c.buySlayerTimer = System.currentTimeMillis();
c.slayerPoints -= 25;
c.getPacketSender().sendMessage("You spend 25 slayer points and aquire a useful Slayer's respite.");
c.getPacketSender().sendMessage("You spend 25 slayer points and aquire an useful Slayer's respite.");
c.getItemAssistant().addItem(5841, 1);
updatePoints();
}
@@ -1,8 +1,13 @@
package com.rebotted.game.content.skills.smithing;
import com.rebotted.event.CycleEvent;
import com.rebotted.event.CycleEventContainer;
import com.rebotted.event.CycleEventHandler;
import com.rebotted.game.items.ItemAssistant;
import com.rebotted.game.players.Player;
import java.lang.reflect.Array;
/**
* Cleaned by Andrew
* @author Andrew (Mr Extremez)
@@ -17,7 +22,7 @@ public class Smithing {
checkBronze(player, levelReq, amountToMake, type);
} else if (ItemAssistant.getItemName(Integer.parseInt(type)).contains("Iron")) {
checkIron(player, levelReq, amountToMake, type);
} else if (ItemAssistant.getItemName(Integer.parseInt(type)).contains("Steel")) {
} else if (ItemAssistant.getItemName(Integer.parseInt(type)).contains("Steel") || ItemAssistant.getItemName(Integer.parseInt(type)).contains("ball")) {
checkSteel(player, levelReq, amountToMake, type);
} else if (ItemAssistant.getItemName(Integer.parseInt(type)).contains("Mith")) {
checkMith(player, levelReq, amountToMake, type);
@@ -315,6 +320,11 @@ public class Smithing {
addItem = 1353;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equals("2") && levelReq >= 35) { // Cannonball
XP = 26;
addItem = 2;
removeAmount = 1;
makeTimes = amountToMake;
} else if (type.equalsIgnoreCase("1207") && levelReq >= 30) { // Dagger
XP = 50;
addItem = 1207;
@@ -790,55 +800,76 @@ public class Smithing {
smithItem(c, addItem, removeItem, removeAmount, makeTimes, XP);
}
public boolean smithItem(Player c, int addItem, int removeItem,
int removeItem2, int timesToMake, int XP) {
int makeTimes = timesToMake;
c.getPacketSender().closeAllWindows();
c.isSmithing = true;
public static void smithItem(Player player, int addItem, int removeItem,
int removeItem2, int timesToMake, int XP) {
player.doAmount = timesToMake;
player.getPacketSender().closeAllWindows();
String name = ItemAssistant.getItemName(addItem);
if (c.getItemAssistant().playerHasItem(removeItem, removeItem2)) {
c.startAnimation(898);
if (makeTimes > 1 && c.getItemAssistant().playerHasItem(removeItem, removeItem2 * 2) && !name.contains("claws") && !name.contains("nails") && !name.contains("dart tip") && !name.contains("tip") && !name.contains("platelegs")) {
c.getPacketSender().sendMessage("You make some " + ItemAssistant.getItemName(addItem) + "s.");
} else if (makeTimes > 1 && c.getItemAssistant().playerHasItem(removeItem, removeItem2 * 2) && name.contains("claws") || name.contains("nails") || name.contains("dart tip") || name.contains("tip") || name.contains("platelegs")) {
c.getPacketSender().sendMessage("You make some " + ItemAssistant.getItemName(addItem) + ".");
} else {
c.getPacketSender().sendMessage("You hammer out a " + ItemAssistant.getItemName(addItem) + ".");
}
while (makeTimes > 0 && c.isSmithing == true) {
if (c.getItemAssistant().playerHasItem(removeItem, removeItem2)) {
c.getItemAssistant().deleteItem(removeItem, removeItem2);
if (ItemAssistant.getItemName(addItem).contains("bolt")) {
c.getItemAssistant().addItem(addItem, 10);
} else if (ItemAssistant.getItemName(addItem).contains("tip") && !ItemAssistant.getItemName(addItem).contains("dart tip")) {
c.getItemAssistant().addItem(addItem, 15);
} else if (ItemAssistant.getItemName(addItem).contains("dart tip")) {
c.getItemAssistant().addItem(addItem, 10);
} else if (ItemAssistant.getItemName(addItem).contains("nail")) {
c.getItemAssistant().addItem(addItem, 15);
} else if (ItemAssistant.getItemName(addItem).contains("arrow")) {
c.getItemAssistant().addItem(addItem, 15);
} else if (ItemAssistant.getItemName(addItem).contains("knife")) {
c.getItemAssistant().addItem(addItem, 5);
} else if (ItemAssistant.getItemName(addItem).contains("cannon")) {
c.getItemAssistant().addItem(addItem, 4);
} else {
c.getItemAssistant().addItem(addItem, 1);
if (player.getItemAssistant().playerHasItem(removeItem, removeItem2)) {
if (!player.isSmithing)
{
player.isSmithing = true;
player.startAnimation(898);
CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if (player.doAmount <= 0 || !player.getItemAssistant().playerHasItem(removeItem, removeItem2) || !player.isSmithing || player.isWoodcutting || player.isCrafting || player.isMoving || player.isMining || player.isBusy || player.isShopping || player.isFletching || player.isFiremaking || player.isSpinning || player.isPotionMaking || player.playerIsFishing || player.isBanking || player.isSmelting || player.isTeleporting || player.isHarvesting || player.playerIsCooking || player.isPotCrafting) {
container.stop();
}
else
{
player.startAnimation(898);
player.getPacketSender().sendSound(468, 100, 0);
if (name.contains("ball"))
{
player.getPacketSender().sendMessage("You make some " + name.toLowerCase() + "s.");
}
else if (name.charAt(name.length() -1) == 's') {
player.getPacketSender().sendMessage("You make some " + name.toLowerCase() + ".");
} else {
if (name.charAt(1) == 'a' || name.charAt(1) == 'e' || name.toLowerCase().charAt(1) == 'i' || name.charAt(1) == 'o' || name.charAt(1) == 'u')
{
player.getPacketSender().sendMessage("You make an " + name.toLowerCase() + ".");
}
else
{
player.getPacketSender().sendMessage("You make a " + name.toLowerCase() + ".");
}
}
player.getItemAssistant().deleteItem(removeItem, removeItem2);
player.getPacketSender().sendMessage(ItemAssistant.getItemName(addItem));
if (name.contains("bolt")) {
player.getItemAssistant().addItem(addItem, 10);
} else if (name.contains("tip") && !name.contains("dart tip")) {
player.getItemAssistant().addItem(addItem, 15);
} else if (name.contains("dart tip")) {
player.getItemAssistant().addItem(addItem, 10);
} else if (name.contains("nail")) {
player.getItemAssistant().addItem(addItem, 15);
} else if (name.contains("arrow")) {
player.getItemAssistant().addItem(addItem, 15);
} else if (name.contains("knife")) {
player.getItemAssistant().addItem(addItem, 5);
} else if (name.contains("ball")) {
player.getItemAssistant().addItem(addItem, 4);
} else {
player.getItemAssistant().addItem(addItem, 1);
}
player.getPlayerAssistant().addSkillXP(XP, player.playerSmithing);
player.doAmount--;
}
}
c.getPlayerAssistant().addSkillXP(XP, c.playerSmithing);
c.getPlayerAssistant().refreshSkill(c.playerSmithing);
makeTimes--;
c.getPacketSender().sendSound(468, 100, 0);
} else {
c.isSmithing = false;
break;
}
@Override
public void stop() {
player.isSmithing = false;
}
}, addItem == 2 ? 10 : 3);
}
} else {
c.getPacketSender().sendMessage("You don't have enough bars to make this item!");
c.isSmithing = false;
return false;
player.getPacketSender().sendMessage("You don't have enough bars to make this item!");
player.isSmithing = false;
}
return true;
}
}
@@ -11,6 +11,11 @@ public class SmithingInterface {
}
public void showSmithInterface(int itemId) {
if (!c.getItemAssistant().playerHasItem(2347))
{
c.getPacketSender().sendMessage("You need an hammer to do that.");
return;
}
if (itemId == 2349 && c.tutorialProgress == 20) {
c.getPacketSender().chatbox(6180);
c.getDialogueHandler().chatboxText(c, "Now you have the Smithing menu open, you will see a list of all", "the things you can make. Only the dagger can be made at your", "skill level, this is shown by the white text under it. You'll need", "to select the dagger to continue.", "Smithing a dagger");
@@ -59,7 +59,7 @@ public class ThieveOther {
client.getPacketSender().sendMessage("Thieving is currently disabled.");
return;
}
if (isPicking == true) {
if (isPicking) {
client.getPacketSender().sendMessage("You are already picking a lock.");
return;
}
@@ -17,7 +17,7 @@ public class GnomeGlider {
};
public static void flightButtons(Player player, int button) {
if (player.gliderOpen == true) {
if (player.gliderOpen) {
for (int i = 0; i < getLength(); i++) {
if (getButton(i) == button) {
handleFlight(player, i);
@@ -1,6 +1,7 @@
package com.rebotted.game.dialogues;
import com.rebotted.GameConstants;
import com.rebotted.GameEngine;
import com.rebotted.game.content.quests.QuestAssistant;
import com.rebotted.game.content.quests.QuestRewards;
import com.rebotted.game.content.randomevents.FreakyForester;
@@ -75,7 +76,7 @@ public class DialogueHandler {
break;
case 4:
if (player.luthas == true && player.bananas >= 2) {
if (player.luthas && player.bananas >= 2) {
player.getItemAssistant().addOrDropItem(995, 30);
sendNpcChat1(
"Thank you for your services you have been rewarded 30 coins.",
@@ -1184,7 +1185,7 @@ public class DialogueHandler {
break;
case 247:
sendNpcChat3(
"But, when this tower was burnt down, the sercret of creating runes was lost with it...",
"But, when this tower was burnt down, the secret of creating runes was lost with it...",
"or so I thought.",
"Some months ago, while searching these ruins for information, ",
player.talkingNpc, "Sedridor");
@@ -2638,7 +2639,7 @@ public class DialogueHandler {
player.nextChat = 522;
break;
case 522:
sendNpcChat1("You are a eager one.", player.talkingNpc,
sendNpcChat1("You are an eager one.", player.talkingNpc,
"Doctor Harlow");
player.nextChat = 523;
break;
@@ -3901,9 +3902,9 @@ public class DialogueHandler {
player.nextChat = 0;
break;
case 912:
player.getDialogueHandler().sendStatement(
"Catching rats is currently disabled.");
player.nextChat = 0;
GameEngine.npcHandler.catchRat(player.rememberNpcIndex);
player.getPacketSender().closeAllWindows();
player.nextChat = 0;
break;
case 913:
sendStatement("You shoo your cat away.");
@@ -4702,14 +4703,14 @@ public class DialogueHandler {
"for 50 coins?", player.talkingNpc,
NpcHandler.getNpcListName(player.talkingNpc));
player.nextChat = 1350;
} else if (player.hasPaid == true && player.absY > 3485
} else if (player.hasPaid && player.absY > 3485
&& player.absY < 3489) {
sendNpcChat1(
"Hello, are you interested in a free ride up the river?",
player.talkingNpc,
NpcHandler.getNpcListName(player.talkingNpc));
player.nextChat = 1350;
} else if (player.hasPaid == true) {
} else if (player.hasPaid) {
sendNpcChat1(
"Hello, are you interested in a free back down the river?",
player.talkingNpc,
@@ -4744,12 +4745,12 @@ public class DialogueHandler {
"modern");
player.hasPaid = true;
player.nextChat = 0;
} else if (player.hasPaid == true && player.absY > 3485
} else if (player.hasPaid && player.absY > 3485
&& player.absY < 3489) {
sendPlayerChat1("Yes please.");
player.getPlayerAssistant().startTeleport(2358, 3640, 0,
"modern");
} else if (player.hasPaid == true) {
} else if (player.hasPaid) {
sendPlayerChat1("Yes please.");
player.getPlayerAssistant().startTeleport(2367, 3488, 0,
"modern");
@@ -6742,7 +6743,7 @@ public class DialogueHandler {
VotingHandler.setAsReceived(client.playerName);
client.recievedMask = true;
client.nextChat = 0;
} else if (client.recievedMask == true && Constants.HALLOWEEN) {
} else if (client.recievedMask && Constants.HALLOWEEN) {
sendNpcChat2("You have already recieved a halloween mask.", "What reward would you like?", 945, "" + Constants.SERVER_NAME + " Guide");
client.nextChat = 3207;
}
@@ -6843,7 +6844,7 @@ public class DialogueHandler {
* @author Andrew
*/
case 3500:
if (player.getCannon().needsCannon()) {
if (player.lostCannon) {
sendNpcChat2("Hello, " + Misc.capitalize(player.playerName) + ".", "I see that you lost your cannon.", player.talkingNpc, "Nulodion");
player.nextChat = 3501;
} else {
@@ -6853,7 +6854,7 @@ public class DialogueHandler {
break;
case 3501:
if (player.getCannon().needsCannon()) {
if (player.lostCannon) {
if (player.getItemAssistant().freeSlots() >= 4) {
sendNpcChat1("Here is your cannon, try not to lose it again.", player.talkingNpc, "Nulodion");
for (int i = 0; i < 4; i++) {
@@ -8,6 +8,7 @@ import java.util.Scanner;
import com.rebotted.GameEngine;
import com.rebotted.game.objects.Objects;
import com.rebotted.game.players.Player;
import com.rebotted.world.clip.Region;
public class Doors {
@@ -55,18 +56,21 @@ public class Doors {
}
public boolean handleDoor(Player player, int id, int x, int y, int z) {
Doors d = getDoor(id, x, y, z);
if (d == null) {
if (DoubleDoors.getSingleton().handleDoor(player, id, x, y, z)) {
return true;
}
return false;
//System.out.println("D: " + id + " null debug x: " + x + " y: " + y + ".");
return DoubleDoors.getSingleton().handleDoor(player, id, x, y, z);
}
//todo: improvment: if player manage to get to door then open the door.
if(player.distanceToPoint(x, y) > 1) return false;
if(player.distanceToPoint(x, y) > 1) {
//System.out.println("Door (single): " + id + " not in distance debug at x: " + x + " y: " + y + ".");
return false;
}
//Remove clipping for old door (gets added back in placeObject)
//Region.removeClipping(x, y, z);
int xAdjustment = 0, yAdjustment = 0;
if (d.type == 0) {
@@ -10,6 +10,7 @@ import java.util.Scanner;
import com.rebotted.GameEngine;
import com.rebotted.game.objects.Objects;
import com.rebotted.game.players.Player;
import com.rebotted.world.clip.Region;
/**
*
@@ -47,15 +48,20 @@ public class DoubleDoors {
}
public boolean handleDoor(Player player, int id, int x, int y, int z) {
DoubleDoors doorClicked = getDoor(id, x, y, z);
DoubleDoors doorClicked = getDoor(id, x, y, z);
if (doorClicked == null) {
//System.out.println("Door: " + id + " null debug at x: " + x + " y: " + y + ".");
//GameEngine.objectHandler.placeObject(new Objects(-1, x, y, z, 0, 0, 0));
return true;
}
if (doorClicked.doorId > 12000) {
if (doorClicked.doorId > 15000) {
// System.out.println("Door: " + id + " clicking debug x: " + x + " y: " + y + ".");
return true; //nearly all of these are not opened
}
//Region.removeClipping(x, y, z);
if (doorClicked.open == 0) {
if (doorClicked.originalFace == 0) {
DoubleDoors lowerDoor = getDoor(id - 3, x, y -1, z);
@@ -5,6 +5,7 @@ import com.rebotted.GameEngine;
import com.rebotted.game.content.minigames.castlewars.CastleWars;
import com.rebotted.game.npcs.NpcHandler;
import com.rebotted.game.players.Client;
import com.rebotted.game.players.MainFrameIDs;
import com.rebotted.game.players.Player;
import com.rebotted.game.players.PlayerHandler;
import com.rebotted.util.Misc;
@@ -510,7 +511,7 @@ public class ItemAssistant {
} else {
c.playerItemsN[i] = GameConstants.MAXITEM_AMOUNT;
}
if (c.getOutStream() != null && c != null) {
if (c.getOutStream() != null) {
c.getOutStream().createFrameVarSizeWord(34);
c.getOutStream().writeWord(3214);
c.getOutStream().writeByte(i);
@@ -525,7 +526,7 @@ public class ItemAssistant {
c.flushOutStream();
}
i = 30;
Weight.calcWeight(c, item, "additem");
Weight.updateWeight(c);
return true;
}
}
@@ -543,12 +544,15 @@ public class ItemAssistant {
}
resetItems(3214);
i = 30;
Weight.calcWeight(c, item, "additem");
Weight.updateWeight(c);
return true;
}
}
return false;
} else {
GameEngine.itemHandler.createGroundItem(c, item,
c.getX(), c.getY(), 1, c.getId());
resetItems(3214);
c.getPacketSender().sendMessage("Not enough space in your inventory.");
return false;
@@ -1661,7 +1665,7 @@ public class ItemAssistant {
c.flushOutStream();
c.updateRequired = true;
c.setAppearanceUpdateRequired(true);
Weight.calcWeight(c, wearID, "deleteitem");
Weight.updateWeight(c);
}
}
}
@@ -1798,12 +1802,18 @@ public class ItemAssistant {
if (!CastleWars.deleteCastleWarsItems(c, itemID)) {
return false;
}
if (c.otherBank == true) {
if (c.otherBank) {
c.getPacketSender().closeAllWindows();
c.getPacketSender().sendMessage("You can't bank while viewing someones bank!");
c.otherBank = false;
return false;
}
if (!(c.lastMainFrameInterface == MainFrameIDs.DEPOSIT_BOX || c.lastMainFrameInterface == MainFrameIDs.BANK || c.inBankArea())) { //Packet exploit prevention
c.getPacketSender().sendMessage("You don't have a bank open! Report this ID to developers: " + c.lastMainFrameInterface);
return false;
}
if (c.playerItemsN[fromSlot] <= 0) {
return false;
}
@@ -2086,6 +2096,11 @@ public class ItemAssistant {
public void fromBank(int itemID, int fromSlot, int amount) {
boolean cantWithdrawCuzMaxStack = false;
if (!(c.lastMainFrameInterface == MainFrameIDs.BANK || c.inBankArea()))
{
c.getPacketSender().sendMessage("Your bank isn't open!");
return;
}
if (amount > 0) {
if (c.bankItems[fromSlot] > 0) {
if (c.getItemAssistant().playerHasItem(itemID))
@@ -2355,7 +2370,7 @@ public class ItemAssistant {
}
}
resetItems(3214);
Weight.calcWeight(c, id, "deleteitem");
Weight.updateWeight(c);
}
public void deleteItem(int id, int slot, int amount) {
@@ -2370,7 +2385,7 @@ public class ItemAssistant {
c.playerItems[slot] = 0;
}
resetItems(3214);
Weight.calcWeight(c, id, "deleteitem");
Weight.updateWeight(c);
}
}
@@ -230,8 +230,8 @@ public class ItemDefinitions {
if (id >= 0 && id < definitions.length)
return definitions[id].weight;
System.out.println("WARNING: id " + id + " doesn't have a definition!");
return 0.0;
System.out.println("WARNING: id " + id + " doesn't have a definition! 2.147kg is used as weight.");
return 2.147;
}
/**
@@ -176,7 +176,7 @@ public class UseItem {
for (int i = 0; i < firemakingItems.length; i++) {
if (itemUsed == firemakingItems[i] || useWith == firemakingItems[i] && player.isFiremaking == false) {
Firemaking.attemptFire(player, itemUsed, useWith, player.absX, player.absY, false);
} else if (itemUsed == firemakingItems[i] || useWith == firemakingItems[i] && player.isFiremaking == true) {
} else if (itemUsed == firemakingItems[i] || useWith == firemakingItems[i] && player.isFiremaking) {
player.getPacketSender().sendMessage("You can't do that, you are already firemaking.");
}
}
@@ -16,7 +16,7 @@ public class Weight extends ItemDefinitions {
* @param action
* - deleteitem, additem, equip, unequip.
*/
public static void calcWeight(Player c, int item, String action) {
private static void calcWeight(Player c, int item, String action) {
if (action.equalsIgnoreCase("deleteitem")) {
if (getWeight(item) > 99.20) {
c.weight -= getWeight(item) / 100;
@@ -63,7 +63,7 @@ public class Weight extends ItemDefinitions {
else calcWeight(player, element, "addItem");
}
}
player.getPacketSender().writeWeight((int) player.weight);
}
player.getPacketSender().writeWeight((int) player.weight);
}
}
@@ -23,6 +23,7 @@ public class Npc {
public int summonedBy, size;
public int focusPointX, focusPointY, masterId;
public boolean turnUpdateRequired;
public int chasingRat = -1;
/**
* attackType: 0 = melee, 1 = range, 2 = mage
@@ -68,7 +69,7 @@ public class Npc {
player.getPacketSender().sendMessage("You need " + ItemAssistant.getItemName(itemId).toLowerCase() + " to do that.");
return false;
}
if (NpcHandler.npcs[npcId].isTransformed == true)
if (NpcHandler.npcs[npcId].isTransformed)
return false;
if (animation > 0)
player.startAnimation(animation);
@@ -5,6 +5,7 @@ import com.rebotted.game.content.skills.core.Fishing;
import com.rebotted.game.content.skills.crafting.Tanning;
import com.rebotted.game.content.skills.thieving.Pickpocket;
import com.rebotted.game.content.traveling.Sailing;
import com.rebotted.game.npcs.impl.Pets;
import com.rebotted.game.players.Player;
import com.rebotted.game.players.PlayerAssistant;
import com.rebotted.game.shops.ShopAssistant;
@@ -21,6 +22,7 @@ public class NpcActions {
public void firstClickNpc(int npcType) {
c.clickNpcType = 0;
c.rememberNpcIndex = c.npcClickIndex;
c.npcClickIndex = 0;
Shops.dialogueShop(c, npcType);
if (Pickpocket.isNPC(c, npcType)) {
@@ -30,6 +32,15 @@ public class NpcActions {
if (Fishing.fishingNPC(c, npcType)) {
Fishing.fishingNPC(c, 1, npcType);
}
if (Pets.isCat(npcType)) {
if (NpcHandler.npcs[c.rememberNpcIndex].spawnedBy == c.playerId) {
c.getSummon().pickUpPet(c, c.summonId);
c.hasNpc = false;
c.summonId = -1;
} else {
c.getPacketSender().sendMessage("This is not your pet.");
}
}
switch (npcType) {
case 209:
c.getDialogueHandler().sendDialogues(3500, 209);
@@ -814,28 +825,6 @@ public class NpcActions {
}
break;
case 3506:
case 3507:
case 761:
case 760:
case 762:
case 763:
case 764:
case 765:
case 766:
case 767:
case 768:
case 769:
case 770:
case 771:
case 772:
case 773:
case 3505:
c.getSummon().pickUpClean(c, c.summonId);
c.hasNpc = false;
c.summonId = 0;
break;
case 804:
case 1041:
Tanning.sendTanningInterface(c);
@@ -996,9 +985,12 @@ public class NpcActions {
if (Fishing.fishingNPC(c, npcType)) {
Fishing.fishingNPC(c, 2, npcType);
}
if (npcType >= 761 && npcType <= 773 || npcType > 3504
&& npcType < 3508 && npcType != 767) {
c.getDialogueHandler().sendDialogues(908, npcType);
if (Pets.isCat(npcType)) {
if (NpcHandler.npcs[c.rememberNpcIndex].spawnedBy == c.playerId) {
c.getDialogueHandler().sendDialogues(908, npcType);
} else {
c.getPacketSender().sendMessage("This is not your pet.");
}
}
switch (npcType) {
@@ -1141,11 +1133,12 @@ public class NpcActions {
Pickpocket.attemptPickpocket(c, npcType);
return;
}
if (npcType >= 761 && npcType <= 773 && npcType != 767) {
if (NpcHandler.npcs[c.rememberNpcIndex].spawnedBy == c.playerId)
if (Pets.isCat(npcType)) {
if (NpcHandler.npcs[c.rememberNpcIndex].spawnedBy == c.playerId) {
c.getDialogueHandler().sendDialogues(910, npcType);
else
c.getPacketSender().sendMessage("This isn't your cat.");
} else {
c.getPacketSender().sendMessage("This is not your pet.");
}
}
switch (npcType) {
@@ -54,14 +54,6 @@ public class NpcData {
return false;
}
/*
* public static boolean isAggressive(int i) { if
* (NPCHandler.npcs[i].aggressive && !onlyMage(NPCHandler.npcs[i].npcType))
* { return true; } if (NPCHandler.npcs[i].inWild() &&
* NPCHandler.npcs[i].MaxHP > 0 && !onlyMage(NPCHandler.npcs[i].npcType)) {
* return true; } return false; }
*/
public static int getNpcKillerId(int npcId) {
int oldDamage = 0;
int killerId = 0;
@@ -256,6 +248,9 @@ public class NpcData {
**/
public static int getRespawnTime(int i) {
switch (NpcHandler.npcs[i].npcType) {
case 1158:
case 1160:
return -1;
case 2881:
case 2882:
case 2883:
@@ -7,6 +7,9 @@ import java.io.IOException;
import com.rebotted.GameConstants;
import com.rebotted.GameEngine;
import com.rebotted.event.CycleEvent;
import com.rebotted.event.CycleEventContainer;
import com.rebotted.event.CycleEventHandler;
import com.rebotted.game.content.combat.CombatConstants;
import com.rebotted.game.content.combat.npcs.NpcAggressive;
import com.rebotted.game.content.combat.npcs.NpcCombat;
@@ -19,6 +22,7 @@ import com.rebotted.game.content.randomevents.RandomEventHandler;
import com.rebotted.game.content.randomevents.RiverTroll;
import com.rebotted.game.npcs.drops.ItemDrop;
import com.rebotted.game.npcs.drops.NPCDropsHandler;
import com.rebotted.game.npcs.impl.Pets;
import com.rebotted.game.players.Client;
import com.rebotted.game.players.Player;
import com.rebotted.game.players.PlayerHandler;
@@ -33,6 +37,101 @@ public class NpcHandler {
public static int maxListedNPCs = 4000;
public static Npc npcs[] = new Npc[MAX_NPCS];
public static NpcList NpcList[] = new NpcList[maxListedNPCs];
public void spawnSecondForm(Player c, final int i) {
// npcs[i].gfx0(1055);
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
spawnNpc2(1160, npcs[i].absX, npcs[i].absY, 0, 1, 230, 45, 500, 300, true);
container.stop();
}
@Override
public void stop() {
}
}, 15);
}
/**
* kq respawn first form
*/
public void spawnFirstForm(Player c, final int i) {
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
spawnNpc2(1158, npcs[i].absX, npcs[i].absY, 0, 1, 230, 45, 500, 300, true);
container.stop();
}
@Override
public void stop() {
}
}, 15);
}
public void catchRat(final int npcIndex) {
int foundRat = -1;
for (int i = 0; i < MAX_NPCS; i++) {
if (npcs[i] == null || foundRat != -1) {
continue;
}
if(npcs[i].npcType == 47 && !npcs[i].isDead) {
if(goodDistance(npcs[npcIndex].absX, npcs[npcIndex].absY, npcs[i].absX, npcs[i].absY, 5)) {
foundRat = i;
continue;
}
}
}
final Client slaveOwner = (PlayerHandler.players[npcs[npcIndex].summonedBy] != null ? (Client) PlayerHandler.players[npcs[npcIndex].summonedBy] : null);
if(foundRat == -1) {
if(slaveOwner != null) {
slaveOwner.getPacketSender().sendMessage("The " + getNpcListName(NpcHandler.npcs[npcIndex].npcType) + " can't seem to find any rats nearby.");
}
} else {
npcs[npcIndex].chasingRat = foundRat;
boolean beatChance = (Misc.random(2) == 1 ? true : false);
CycleEventHandler.getSingleton().addEvent(this, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if(npcs[npcIndex].absX == npcs[npcs[npcIndex].chasingRat].absX && npcs[npcIndex].absY == npcs[npcs[npcIndex].chasingRat].absY && (beatChance || npcs[npcIndex].npcType >= 768 && npcs[npcIndex].npcType <= 773)) {
npcs[npcs[npcIndex].chasingRat].isDead = true;
npcs[npcs[npcIndex].chasingRat].forceChat("Eek!");
npcs[npcIndex].forceChat("Meow!");
//startAnimation(9163, npcIndex);
slaveOwner.getPacketSender().sendMessage("The " + getNpcListName(NpcHandler.npcs[npcIndex].npcType) + " caught a rat!");
if(npcs[npcIndex].npcType >= 761 && npcs[npcIndex].npcType <= 766)
slaveOwner.ratsCaught++;
if(slaveOwner.ratsCaught == Pets.RATS_NEEDED_TO_GROW) {
slaveOwner.getPacketSender().sendMessage("Your kitten has grown into a cat!");
int newNpcId = npcs[npcIndex].npcType+7;
int[] coords = {npcs[npcIndex].absX, npcs[npcIndex].absY, npcs[npcIndex].heightLevel};
spawnNpc3(slaveOwner, newNpcId, coords[0], coords[1], coords[2], 0, 120, 25, 200, 200, true, false, true);
npcs[npcIndex].absX = 0;
npcs[npcIndex].absY = 0;
npcs[npcIndex] = null;
//Spawns grown cat in spot of kitten.
slaveOwner.summonId = Pets.summonItemId(newNpcId);
slaveOwner.ratsCaught = 0;
}
npcs[npcIndex].chasingRat = -1;
} else {
if(slaveOwner != null)
slaveOwner.getPacketSender().sendMessage("The " + getNpcListName(NpcHandler.npcs[npcIndex].npcType) + " failed to catch the rat.");
npcs[npcIndex].chasingRat = -1;
}
container.stop();
}
@Override
public void stop() {
// TODO Auto-generated method stub
}
}, 4);
}
}
public NpcHandler() {
for (int i = 0; i < MAX_NPCS; i++) {
@@ -139,15 +238,6 @@ public class NpcHandler {
return 0;
}
public int npcSize(int i) {
switch (npcs[i].npcType) {
case 2883:
case 2882:
case 2881:
return 3;
}
return 0;
}
/**
* Summon npc, barrows, etc
@@ -201,7 +291,7 @@ public class NpcHandler {
npcs[slot] = newNPC;
}
public void spawnNpc2(int npcType, int x, int y, int heightLevel, int WalkingType, int HP, int maxHit, int attack, int defence) {
public void spawnNpc2(int npcType, int x, int y, int heightLevel, int WalkingType, int HP, int maxHit, int attack, int defence, boolean attackPlayer) {
// first, search for a free slot
int slot = -1;
for (int i = 1; i < MAX_NPCS; i++) {
@@ -225,6 +315,9 @@ public class NpcHandler {
newNPC.MaxHP = HP;
newNPC.maxHit = maxHit;
newNPC.attack = attack;
if (attackPlayer) {
newNPC.underAttack = true;
}
newNPC.defence = defence;
npcs[slot] = newNPC;
}
@@ -356,6 +449,13 @@ public class NpcHandler {
npcs[i].absX = slaveOwner.absX;
npcs[i].absY = slaveOwner.absY - 1;
}
if (slaveOwner != null && slaveOwner.hasNpc && npcs[i].summoner) {
if (slaveOwner.goodDistance(npcs[i].absX, npcs[i].absY, slaveOwner.absX, slaveOwner.absY, 15)) {
NpcHandler.followPlayer(i, slaveOwner.playerId);
}
}
if (npcs[i].actionTimer > 0) {
npcs[i].actionTimer--;
@@ -385,7 +485,7 @@ public class NpcHandler {
}
}
if (npcs[i].spawnedBy > 0) { // delete summons npc
if (npcs[i].spawnedBy > 0) {
if (PlayerHandler.players[npcs[i].spawnedBy] == null
|| PlayerHandler.players[npcs[i].spawnedBy].heightLevel != npcs[i].heightLevel
|| PlayerHandler.players[npcs[i].spawnedBy].respawnTimer > 0
@@ -393,11 +493,10 @@ public class NpcHandler {
if (npcs[i].npcType == FightCaves.YT_HURKOT) {
Player c = ((Client)PlayerHandler.players[npcs[i].spawnedBy]);
int ranHeal = Misc.random(19);
if (ranHeal == 19)
int ranHeal = Misc.random(10);
if (ranHeal == 10)
FightCaves.healJad(c, i);
}
if (PlayerHandler.players[npcs[i].spawnedBy] != null) {
for (int o = 0; o < PlayerHandler.players[npcs[i].spawnedBy].barrowsNpcs.length; o++) {
if (npcs[i].npcType == PlayerHandler.players[npcs[i].spawnedBy].barrowsNpcs[o][0]) {
@@ -548,24 +647,16 @@ public class NpcHandler {
}
if (npcs[i].isDead) {
if (npcs[i].actionTimer == 0 && npcs[i].applyDead == false
&& npcs[i].needRespawn == false) {
if (npcs[i].actionTimer == 0 && npcs[i].applyDead == false && npcs[i].needRespawn == false) {
npcs[i].updateRequired = true;
npcs[i].facePlayer(0);
if (npcs[i].killedBy <= 0)
npcs[i].killedBy = NpcData.getNpcKillerId(i);
npcs[i].animNumber = NpcEmotes.getDeadEmote(i); // dead
// emote
Player c = (Client) PlayerHandler.players[npcs[i].killedBy];
if (c != null) {
if (CombatConstants.COMBAT_SOUNDS
&& NpcHandler.npcs[i].npcType < 3177
&& NpcHandler.npcs[i].npcType > 3180) {
c.getPacketSender()
.sendSound(
CombatSounds
.getNpcDeathSounds(npcs[i].npcType),
100, 0);
npcs[i].animNumber = NpcEmotes.getDeadEmote(c, i); // dead emote
if (CombatConstants.COMBAT_SOUNDS) {
c.getPacketSender().sendSound(CombatSounds.getNpcDeathSounds(npcs[i].npcType), 100, 0);
}
}
npcs[i].animUpdateRequired = true;
@@ -576,7 +667,7 @@ public class NpcHandler {
npcs[i].actionTimer = 4; // delete time
resetPlayersInCombat(i);
} else if (npcs[i].actionTimer == 0
&& npcs[i].applyDead == true
&& npcs[i].applyDead
&& npcs[i].needRespawn == false) {
npcs[i].needRespawn = true;
npcs[i].actionTimer = NpcData.getRespawnTime(i); // respawn
@@ -607,7 +698,7 @@ public class NpcHandler {
if (player.tutorialProgress == 24) {
handleratdeath(i);
} else if (player.tutorialProgress == 25
&& player.ratdied2 == true) {
&& player.ratdied2) {
handleratdeath2(i);
}
}
@@ -653,8 +744,7 @@ public class NpcHandler {
GameEngine.objectManager.removeObject(npcs[i].absX,
npcs[i].absY);
}
} else if (npcs[i].actionTimer == 0
&& npcs[i].needRespawn == true) {
} else if (npcs[i].actionTimer == 0 && npcs[i].needRespawn && npcs[i].npcType != 1158) {
if (npcs[i].spawnedBy > 0) {
npcs[i] = null;
} else {
@@ -735,6 +825,12 @@ public class NpcHandler {
public static boolean multiAttacks(int i) {
switch (npcs[i].npcType) {
case 1158: //kq
if (npcs[i].attackType == 2)
return true;
case 1160: //kq
if (npcs[i].attackType == 1)
return true;
case 2558:
return true;
case 2562:
@@ -871,7 +967,7 @@ public class NpcHandler {
// These npcs shouldn't have drops
return;
}
for (ItemDrop possible_drop : NPCDropsHandler.NPC_DROPS(getNpcListName(npcs[i].npcType).toLowerCase(), npcs[i].npcType)) {
for (ItemDrop possible_drop : NPCDropsHandler.NPC_DROPS(getNpcListName(npcs[i].npcType).toLowerCase().replace(" ", "_"), npcs[i].npcType)) {
if (Misc.random(possible_drop.getChance()) == 0) {
int amt = possible_drop.getAmount();
GameEngine.itemHandler.createGroundItem(c, possible_drop.getItemID(), npcs[i].absX, npcs[i].absY, amt, c.playerId);
@@ -1200,7 +1296,8 @@ public class NpcHandler {
}
public static void handleSpecialEffects(Player c, int i, int damage) {
if (npcs[i].npcType == 2892 || npcs[i].npcType == 2894) {
if (npcs[i].npcType == 2892 || npcs[i].npcType == 2894 || npcs[i].npcType == 1158
|| npcs[i].npcType == 1160) {
if (damage > 0) {
if (c != null) {
if (c.playerLevel[5] > 0) {
@@ -1226,6 +1323,8 @@ public class NpcHandler {
public static int getMaxHit(int i) {
switch (npcs[i].npcType) {
case 1158:
return 30;
case 2558:
if (npcs[i].attackType == 2) {
return 28;
@@ -1338,7 +1437,7 @@ public class NpcHandler {
for (int i = 0; i < maxListedNPCs; i++) {
if (NpcList[i] != null) {
if (NpcList[i].npcId == npcId) {
return NpcList[i].npcName;
return NpcList[i].npcName.replace("_", " ");
}
}
}
@@ -1408,6 +1507,9 @@ public class NpcHandler {
public boolean getNpcListAggressive(int npcId) {
return NPCDefinition.forId(npcId).isAggressive();
}
public int getNpcSize(int npcId) {
return NPCDefinition.forId(npcId).getSize();
}
}
@@ -1,91 +1,126 @@
package com.rebotted.game.npcs.impl;
import com.rebotted.GameEngine;
import com.rebotted.game.npcs.Npc;
import com.rebotted.game.npcs.NpcHandler;
import com.rebotted.game.players.Client;
import com.rebotted.game.players.Player;
import com.rebotted.game.players.PlayerSave;
import com.rebotted.world.clip.Region;
public class Pets {
public static final int RATS_NEEDED_TO_GROW = 10;
private final int[][] catArray = { { 3505, 7583 }, { 3506, 7584 },
{ 766, 1560 }, { 3507, 7585 }, { 765, 1559 }, { 764, 1558 },
{ 763, 1557 }, { 762, 1556 }, { 761, 1555 }, { 768, 1561 },
{ 769, 1562 }, { 770, 1563 }, { 771, 1564 }, { 772, 1565 },
{ 773, 1566 } };
//npc id, item id
private final static int[][] CATS = {
{ 3504, 7583 }, //hell kitten
{ 3506, 7584 }, //lazy hell kitten
{ 766, 1560 }, //pet kitten
{ 3507, 7585 }, //wily hellcat
{ 765, 1559 }, //pet kitten
{ 764, 1558 }, //pet kitten
{ 763, 1557 }, //pet kitten
{ 762, 1556 }, //pet kitten
{ 761, 1555 }, //pet kitten
{ 768, 1561 }, //pet cat
{ 769, 1562 }, //pet cat
{ 770, 1563 }, //pet cat
{ 771, 1564 }, //pet cat
{ 772, 1565 },//pet cat
{ 773, 1566 } //pet cat
};
public static final int[] CAT_ITEMS = { 1555, 1556, 1557, 1558, 1559, 1560,
1561, 1562, 1563, 1564, 1565, 7585, 7584 };
public void pickUp(Client c, int Type) {
for (Npc i : NpcHandler.npcs) {
if (i == null) {
continue;
public static final int[] CAT_ITEMS = {
1555, 1556, 1557, 1558, 1559, 1560,
1561, 1562, 1563, 1564, 1565, 7585, 7583, 7584
};
public static boolean isCatItem(int itemId) {
for (int i = 0; i < CAT_ITEMS.length; i++) {
if (itemId == CAT_ITEMS[i]) {
return true;
}
}
for (Npc i : NpcHandler.npcs) {
if (i != null) {
if (i.npcType == Type) {
if (i.spawnedBy == c.playerId && i.spawnedBy > 0) {
i.absX = 0;
i.absY = 0;
i = null;
break;
return false;
}
public static boolean isCat(int npcId) {
for (int i = 0; i < CATS.length; i++) {
if (npcId == CATS[i][0]) {
return true;
}
}
return false;
}
public static void dropPet(Player player, int itemId, int slot) {
if (player.hasNpc) {
player.getPacketSender().sendMessage("You already dropped your " + NpcHandler.getNpcListName(summonItemId(itemId)) + ".");
return;
}
player.getItemAssistant().deleteItem(itemId, slot, player.playerItemsN[slot]);
player.hasNpc = true;
player.getPacketSender().sendMessage("You drop your " + NpcHandler.getNpcListName(summonItemId(itemId)) + ".");
int offsetX = 0;
int offsetY = 0;
if (Region.getClipping(player.getX() - 1, player.getY(), player.heightLevel, -1, 0)) {
offsetX = -1;
} else if (Region.getClipping(player.getX() + 1, player.getY(), player.heightLevel, 1, 0)) {
offsetX = 1;
} else if (Region.getClipping(player.getX(), player.getY() - 1, player.heightLevel, 0, -1)) {
offsetY = -1;
} else if (Region.getClipping(player.getX(), player.getY() + 1, player.heightLevel, 0, 1)) {
offsetY = 1;
}
GameEngine.npcHandler.spawnNpc3(player, summonItemId(itemId), player.absX+offsetX, player.absY+offsetY, player.heightLevel, 0, 120, 25, 200, 200, false, false, true);
PlayerSave.saveGame(player);
}
public void quickPickup(Player player, int id) {
for (Npc i : NpcHandler.npcs) {
if (i == null) {
continue;
}
if (i.npcType == id) {
i.absX = 0;
i.absY = 0;
i = null;
}
}
}
public void pickUpPet(Player player, int id) {
if (player.getItemAssistant().hasFreeSlots(1)) {
for (Npc i : NpcHandler.npcs) {
if (i == null) {
continue;
}
if (i.npcType == id) {
player.startAnimation(827);
i.absX = 0;
i.absY = 0;
i = null;
for (int[] element : CATS) {
if (element[0] == id) {
player.getItemAssistant().addItem(element[1], 1);
}
}
}
}
} else {
player.getPacketSender().sendMessage("You do not have enough space in your inventory to do that.");
}
}
public void pickUpClean(Player c, int id) {
for (int[] element : catArray) {
if (element[0] == id) {
c.getItemAssistant().addItem(element[1], 1);
}
}
for (Npc i : NpcHandler.npcs) {
if (i == null) {
continue;
}
if (i.npcType == id) {
i.absX = 0;
i.absY = 0;
}
}
c.hasNpc = false;
}
public static int summonItemId(int itemId) {
if (itemId == 1555) {
return 761;
} else if (itemId == 1556) {
return 762;
} else if (itemId == 1557) {
return 763;
} else if (itemId == 1558) {
return 764;
} else if (itemId == 1559) {
return 765;
} else if (itemId == 1560) {
return 766;
} else if (itemId == 1561) {
return 768;
} else if (itemId == 1562) {
return 769;
} else if (itemId == 1563) {
return 770;
} else if (itemId == 1564) {
return 771;
} else if (itemId == 1565) {
return 772;
} else if (itemId == 1566) {
return 773;
} else if (itemId == 7585) {
return 3507;
} else if (itemId == 7584) {
return 3506;
} else if (itemId == 7583) {
return 3505;
for (int i = 0; i < CATS.length; i++) {
if (itemId == CATS[i][1]) {
return CATS[i][0];
}
}
return 0;
}
}
@@ -6,6 +6,7 @@ import com.rebotted.event.CycleEvent;
import com.rebotted.event.CycleEventContainer;
import com.rebotted.event.CycleEventHandler;
import com.rebotted.game.content.guilds.Guilds;
import com.rebotted.game.content.minigames.Dueling;
import com.rebotted.game.content.minigames.FightPits;
import com.rebotted.game.content.minigames.PestControl;
import com.rebotted.game.content.minigames.castlewars.CastleWarObjects;
@@ -66,10 +67,10 @@ public class ObjectsActions {
Webs.slashWeb(player, objectType, objectX, objectY);
return;
}
if (player.stopPlayerPacket == true) {
if (player.stopPlayerPacket) {
return;
}
LogCutting.resetFletching(player);
//LogCutting.resetFletching(player);
if (player.getGnomeStrongHold().gnomeCourse(objectType)) {
return;
}
@@ -907,8 +908,8 @@ public class ObjectsActions {
case 3015:
case 3016:
if (player.tutorialProgress == 7 || player.diedOnTut == true) {
if (player.diedOnTut == true) {
if (player.tutorialProgress == 7 || player.diedOnTut) {
if (player.diedOnTut) {
player.getPlayerAssistant().movePlayer(player.absX - 1,
player.absY, 0);
player.getPacketSender().createArrow(3078, 3084,
@@ -1080,7 +1081,7 @@ public class ObjectsActions {
}
break;
case 9299:
case 9299: //Lumbridge squeeze-through fence
if (player.absX == 3240) {
if (player.absY == 3191) {
player.getPlayerAssistant().walkTo(0, -1);
@@ -1117,7 +1118,7 @@ public class ObjectsActions {
case 3020:
case 3021:
if (player.diedOnTut == true && (player.getY() == 9502 || player.getY() == 9503)) {
if (player.diedOnTut && (player.getY() == 9502 || player.getY() == 9503)) {
player.getDialogueHandler()
.sendStatement2(
"You have died so now all you need to do is continue",
@@ -1171,8 +1172,8 @@ public class ObjectsActions {
case 3022:
if (player.tutorialProgress >= 24
&& (player.getY() == 9519 || player.getY() == 9518)
|| player.diedOnTut == true) {
if (player.diedOnTut == true) {
|| player.diedOnTut) {
if (player.diedOnTut) {
player.getDialogueHandler()
.sendStatement2("Be more careful this time",
"now continue to kill the rat and talk to the guide.");
@@ -1361,8 +1362,8 @@ public class ObjectsActions {
break;
case 3029:
if (player.tutorialProgress >= 14 || player.diedOnTut == true) {
if (player.diedOnTut == true) {
if (player.tutorialProgress >= 14 || player.diedOnTut) {
if (player.diedOnTut) {
player.startAnimation(828);
player.getPlayerAssistant().movePlayer(3088, 9520, 0);
player.getPacketSender().createArrow(3094, 9503,
@@ -1611,12 +1612,12 @@ public class ObjectsActions {
// PARTY ROOM START
case 2417: // 26193 if falador
player.inPartyRoom = true;
//player.inPartyRoom = true;
PartyRoom.open(player);
break;
case 2416:
player.inPartyRoom = true;
//player.inPartyRoom = true;
PartyRoom.dropAll();
break;
@@ -1689,7 +1690,9 @@ public class ObjectsActions {
case 2462:
RuneCraftingActions.handleRuneCrafting(player, objectType);
break;
case 3203:
Dueling.HandleForfeit(player);
break;
case 6481:
player.getPlayerAssistant().movePlayer(3233, 9317, 0);
break;
@@ -1781,7 +1784,7 @@ public class ObjectsActions {
NpcHandler.spawnNpc(player, 757, player.getX(), player.getY(), 0, 0, 50, 10, 30, 30, true, true);
player.getPacketSender().sendMessage("You will need a stake and hammer to attack count draynor.");
player.clickedVamp = true;
} else if (player.vampSlayer == 3 && player.clickedVamp == true) {
} else if (player.vampSlayer == 3 && player.clickedVamp) {
player.getPacketSender().sendMessage("You have already spawned the vampyre.");
return;
} else if (player.vampSlayer > 3) {
@@ -1820,7 +1823,7 @@ public class ObjectsActions {
case 2072: // crate
if (player.getItemAssistant().playerHasItem(1963, 10)
&& player.luthas == true) {
&& player.luthas) {
player.getItemAssistant().deleteItem(1963, 10);
player.getDialogueHandler().sendStatement(
"You pack your bananas in the crate...");
@@ -1859,7 +1862,7 @@ public class ObjectsActions {
case 2073: // Banana tree
case 4754:
if (System.currentTimeMillis() - player.waitTime > 2000) {
if (player.luthas == true) {
if (player.luthas) {
player.bananas += 1;
player.getItemAssistant().addItem(1963, 1);
player.waitTime = System.currentTimeMillis();
@@ -2554,11 +2557,9 @@ public class ObjectsActions {
player.faceUpdate(0);
player.clickObjectType = 0;
player.turnPlayerTo(obX, obY);
//if (!Region.objectExists(objectType, obX, obY, player.heightLevel) && player.playerRights > 1) {
// player.getPacketSender().sendMessage("[DEBUG] This object does not exist.");
// return;
//}
LogCutting.resetFletching(player);
if (!Region.objectExists(objectType, obX, obY, player.heightLevel)) {
return;
}
switch (objectType) {
case 6:
player.getCannon().loadCannon(obX, obY);
@@ -2814,10 +2815,9 @@ public class ObjectsActions {
if (player.playerRights == 3) {
player.getPacketSender().sendMessage("Object type: " + objectType);
}
//if (!Region.objectExists(objectType, obX, obY, player.heightLevel) && player.playerRights > 1) {
// player.getPacketSender().sendMessage("[DEBUG] This object does not exist.");
// return;
//}
if (!Region.objectExists(objectType, obX, obY, player.heightLevel)) {
return;
}
if (Stalls.isObject(objectType)) {
Stalls.attemptStall(player, objectType, obX, obY);
return;
@@ -2860,13 +2860,11 @@ public class ObjectsActions {
if (player.playerRights == 3) {
player.getPacketSender().sendMessage("Object type: " + objectType);
}
//if (!Region.objectExists(objectType, obX, obY, player.heightLevel) && player.playerRights > 1) {
// player.getPacketSender().sendMessage("[DEBUG] This object does not exist.");
// return;
//}
Farming.openGuide(player, player.objectId);
switch (objectType) {
if (!Region.objectExists(objectType, obX, obY, player.heightLevel)) {
return;
}
Farming.openGuide(player, player.objectId);
// switch (objectType) {
// }
}
}
@@ -25,7 +25,6 @@ public class Climbing {
CycleEventHandler.getSingleton().addEvent(client, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
client.resetWalkingQueue();
processClimbing(client);
client.getPlayerAssistant().requestUpdates();
container.stop();
@@ -45,76 +44,92 @@ public class Climbing {
case 9584:
if (client.objectX == 2932 && client.objectY == 3282) {
client.getPlayerAssistant().movePlayer(2933, 3282, 0);
client.resetWalkingQueue();
}
break;
case 272:
client.getPlayerAssistant().movePlayer(client.absX, client.absY, 1);
client.resetWalkingQueue();
break;
case 273:
client.getPlayerAssistant().movePlayer(client.absX, client.absY, 0);
client.resetWalkingQueue();
break;
case 245:
if (client.objectY == 3224) {
client.getPlayerAssistant().movePlayer(client.absX, client.absY+2, 2);
client.resetWalkingQueue();
} else if (client.objectY == 3139 || client.objectX == 2835 || client.objectX == 2963) {
client.getPlayerAssistant().movePlayer(client.absX+2, client.absY, 2);
client.resetWalkingQueue();
} else {
client.getPlayerAssistant().movePlayer(client.absX-2, client.absY, 2);
client.resetWalkingQueue();
}
break;
case 246:
if (client.objectY == 3224) {
client.getPlayerAssistant().movePlayer(client.absX, client.absY-2, 1);
client.resetWalkingQueue();
} else if (client.objectY == 3139 || client.objectX == 2835 || client.objectX == 2963) {
client.getPlayerAssistant().movePlayer(client.absX-2, client.absY, 1);;
client.getPlayerAssistant().movePlayer(client.absX-2, client.absY, 1);
client.resetWalkingQueue();
} else {
client.getPlayerAssistant().movePlayer(client.absX+2, client.absY, 1);
client.resetWalkingQueue();
}
break;
case 11888:
if (client.absX == 2908 && client.absY == 3336) {
climbUp(client);
client.resetWalkingQueue();
}
break;
case 4568:
if (client.objectX == 2506 && client.objectY == 3640) {
climbUp(client);
client.resetWalkingQueue();
}
break;
case 4569:
if (client.objectX == 2506 && client.objectY == 3640) {
handleLadder(client);
client.resetWalkingQueue();
}
break;
case 4570:
if (client.objectX == 2506 && client.objectY == 3641) {
climbDown(client);
client.resetWalkingQueue();
}
break;
case 11889:
if (client.absX == 2908 && client.absY == 3336) {
handleLadder(client);
client.resetWalkingQueue();
}
break;
case 11890:
if (client.absX == 2908 && client.absY == 3336) {
climbDown(client);
client.resetWalkingQueue();
}
break;
case 9582:
if (client.objectX == 2931 && client.objectY == 3282) {
client.getPlayerAssistant().movePlayer(2933, 3282, 1);
client.resetWalkingQueue();
}
break;
case 1722:
@@ -127,104 +142,140 @@ public class Climbing {
return;
} else if (client.absY == 3423) {
client.getPlayerAssistant().movePlayer(client.absX, 3419, 1);
client.resetWalkingQueue();
}
if (client.absX == 3098) {
client.getPlayerAssistant().movePlayer(3102, 3266, 1);
client.resetWalkingQueue();
} else if (client.absY == 3445) {
client.getPlayerAssistant().movePlayer(3260, 3449, 1);
client.resetWalkingQueue();
} else if (client.absY == 3358 && client.questPoints >= chapionsGuildRequiredQP) {
client.getPlayerAssistant().movePlayer(client.absX, 3354, 1);
client.resetWalkingQueue();
} else if (client.absY == 3358 && client.questPoints < chapionsGuildRequiredQP) {
client.getPacketSender().sendMessage("You need " + chapionsGuildRequiredQP + " quest points to use these stairs.");
} else if (client.absX == 3180) {
client.getPlayerAssistant().movePlayer(3176, client.absY, 1);
client.resetWalkingQueue();
} else if (client.absX == 3159) {
client.getPlayerAssistant().movePlayer(3155, 3435, 1);
client.resetWalkingQueue();
} else if (client.absX == 2661) {
client.getPlayerAssistant().movePlayer(2665, client.absY, 1);
client.resetWalkingQueue();
} else if (client.absY == 3083) {
client.getPlayerAssistant().movePlayer(client.absX, 3087, 2);
client.resetWalkingQueue();
} else if (client.absY == 3298) {
client.getPlayerAssistant().movePlayer(client.absX, 3294, 1);
client.resetWalkingQueue();
} else if (client.absY == 3472) {
client.getPlayerAssistant().movePlayer(client.absX, 3476, 1);
client.resetWalkingQueue();
}
break;
case 1723:
if (client.absX == 3102) {
client.getPlayerAssistant().movePlayer(3098, 3266, 0);
client.resetWalkingQueue();
} else if (client.absY == 3354 && client.questPoints >= chapionsGuildRequiredQP) {
client.getPlayerAssistant().movePlayer(client.absX, 3358, 0);
client.resetWalkingQueue();
} else if (client.absY == 3358 && client.questPoints < chapionsGuildRequiredQP) {
client.getPacketSender().sendMessage("You need " + chapionsGuildRequiredQP + " quest points to use these stairs");
} else if (client.absY == 3449) {
client.getPlayerAssistant().movePlayer(3259, 3445, 0);
client.resetWalkingQueue();
} else if (client.absX == 3155) {
client.getPlayerAssistant().movePlayer(3159, 3435, 0);
client.resetWalkingQueue();
} else if (client.absX == 2665) {
client.getPlayerAssistant().movePlayer(2661, client.absY, 0);
client.resetWalkingQueue();
} else if (client.absY == 3092) {
client.getPlayerAssistant().movePlayer(client.absX, 3088, 0);
client.resetWalkingQueue();
} else if (client.absY == 3087) {
client.getPlayerAssistant().movePlayer(client.absX, 3083, 1);
client.resetWalkingQueue();
} else if (client.absY == 3419) {
client.getPlayerAssistant().movePlayer(client.absX, 3423, 0);
client.resetWalkingQueue();
} else if (client.absX == 3176) {
client.getPlayerAssistant().movePlayer(3180, client.absY, 0);
client.resetWalkingQueue();
} else if (client.absY == 3321) {
client.getPlayerAssistant().movePlayer(client.absX, 3325, 0);
client.resetWalkingQueue();
} else if (client.absY == 3294) {
client.getPlayerAssistant().movePlayer(client.absX, 3298, 0);
client.resetWalkingQueue();
} else if (client.absY == 3476) {
client.getPlayerAssistant().movePlayer(client.absX, 3472, 0);
client.resetWalkingQueue();
}
break;
case 1733:
if (client.objectX == 2569 && client.objectY == 3122) {
client.getPlayerAssistant().movePlayer(2569, 9525, 0);
client.resetWalkingQueue();
} else if (client.absX == 3186) {
client.getPlayerAssistant().movePlayer(3190, 9834, 0);
client.resetWalkingQueue();
} else if (client.objectX == 2603 && client.objectY == 3078) {
client.getPlayerAssistant().feature("using this staircase");
client.resetWalkingQueue();
} else if (client.absX != 3186) {
client.getPlayerAssistant().movePlayer(client.absX,
client.absY + 6393, 0);
client.resetWalkingQueue();
}
break;
case 1734:
if (client.objectX == 2569 && client.objectY == 9522) {
client.getPlayerAssistant().movePlayer(2569, 3121, 0);
client.resetWalkingQueue();
} else if (client.absX == 3190) {
client.getPlayerAssistant().movePlayer(3186, 3434, 0);
client.resetWalkingQueue();
} else if (client.objectX == 3059 && client.objectY == 9776) {
client.getPlayerAssistant().movePlayer(3061,
client.absY - 6400, 0);
client.resetWalkingQueue();
} else if (client.absX != 3190) {
client.getPlayerAssistant().movePlayer(client.absX,
client.absY - 6396, 0);
client.resetWalkingQueue();
}
break;
case 1737:
if (client.absY == 3294) {
client.getPlayerAssistant().movePlayer(2661, 3291, 1);
client.resetWalkingQueue();
} else if (client.absY == 3302) {
client.getPlayerAssistant().movePlayer(2648, 3301, 1);
client.resetWalkingQueue();
} else if (client.absY == 3293) {
client.getPlayerAssistant().movePlayer(2649, 3296, 1);
client.resetWalkingQueue();
}
break;
case 1736:
if (client.absY == 3291) {
client.getPlayerAssistant().movePlayer(2662, 3294, 0);
client.resetWalkingQueue();
} else if (client.absY == 3301) {
client.getPlayerAssistant().movePlayer(2645, 3302, 0);
client.resetWalkingQueue();
} else if (client.absX == 2649) {
client.getPlayerAssistant().movePlayer(2648, 3293, 0);
client.resetWalkingQueue();
}
break;
@@ -232,18 +283,23 @@ public class Climbing {
if (client.objectX == 2445 && client.objectY == 3434) {
client.getPlayerAssistant().movePlayer(2445, 3433, 1);
client.startAnimation(CLIMB_UP);
client.resetWalkingQueue();
} else if (client.objectX == 2444 && client.objectY == 3414) {
client.getPlayerAssistant().movePlayer(2445, 3416, 1);
client.startAnimation(CLIMB_UP);
client.resetWalkingQueue();
} else if (client.objectX == 2455 && client.objectY == 3417) {
client.getPlayerAssistant().movePlayer(2457, 3417, 1);
client.startAnimation(CLIMB_UP);
client.resetWalkingQueue();
} else if (client.objectX == 2461 && client.objectY == 3416) {
client.getPlayerAssistant().movePlayer(2460, 3417, 1);
client.startAnimation(CLIMB_UP);
client.resetWalkingQueue();
} else if (client.objectX == 2440 && client.objectY == 3404) {
client.getPlayerAssistant().movePlayer(2440, 3403, 1);
client.startAnimation(CLIMB_UP);
client.resetWalkingQueue();
}
break;
@@ -251,31 +307,38 @@ public class Climbing {
if (client.objectX == 2445 && client.objectY == 3434) {
client.getPlayerAssistant().movePlayer(2445, 3433, 0);
client.startAnimation(CLIMB_DOWN);
client.resetWalkingQueue();
} else if (client.objectX == 2444 || client.objectX == 2445
&& client.objectY == 3415) {
client.getPlayerAssistant().movePlayer(2444, 3413, 0);
client.startAnimation(CLIMB_DOWN);
client.resetWalkingQueue();
} else if (client.objectX == 2456 && client.objectY == 3417) {
client.getPlayerAssistant().movePlayer(2457, 3417, 0);
client.startAnimation(CLIMB_DOWN);
client.resetWalkingQueue();
} else if (client.objectX == 2461 && client.objectY == 3417) {
client.getPlayerAssistant().movePlayer(2460, 3417, 0);
client.startAnimation(CLIMB_DOWN);
client.resetWalkingQueue();
} else if (client.objectX == 2440 && client.objectY == 3404) {
client.getPlayerAssistant().movePlayer(2440, 3403, 0);
client.startAnimation(CLIMB_DOWN);
client.resetWalkingQueue();
}
break;
case 7257:
client.getPlayerAssistant().movePlayer(3044, 4973, 1);
client.startAnimation(827);
client.getPacketSender().sendMessage("You climb down.");
client.resetWalkingQueue();
break;
case 6279:
if (client.getItemAssistant().playerHasItem(954, 1)) {
client.getPlayerAssistant().movePlayer(3206, 9379, 0);
client.startAnimation(827);
client.getPacketSender().sendMessage("You climb down.");
client.resetWalkingQueue();
} else {
client.getPacketSender().sendMessage(
"You need a rope to enter.");
@@ -285,20 +348,24 @@ public class Climbing {
case 6436:
UseOther.useUp(client, client.objectId);
client.resetWalkingQueue();
break;
case 6434:
case 5167:
UseOther.useDown(client, client.objectId);
client.resetWalkingQueue();
break;
case 1767:
if (client.objectX == 3069 && client.objectY == 3856) {
UseOther.useDown(client, client.objectId);
client.resetWalkingQueue();
}
break;
case 6439:
client.getPlayerAssistant().movePlayer(3309, 2963, 0);
client.getPacketSender().sendMessage("You climb up.");
client.resetWalkingQueue();
break;
case 2408:
@@ -311,97 +378,130 @@ public class Climbing {
client.getPlayerAssistant().movePlayer(2823, 9771, 0);
client.startAnimation(827);
client.getPacketSender().sendMessage("You climb down.");
client.resetWalkingQueue();
break;
case 2147:
client.getPlayerAssistant().movePlayer(3104, 9576, 0);
client.startAnimation(827);
client.getPacketSender().sendMessage("You climb down.");
client.resetWalkingQueue();
break;
case 2148:
client.getPlayerAssistant().movePlayer(3103, 3162, 0);
client.startAnimation(828);
client.getPacketSender().sendMessage("You climb up.");
client.resetWalkingQueue();
break;
case 4383:
client.getPlayerAssistant().movePlayer(2515, 10007, 0);
client.startAnimation(827);
client.getPacketSender().sendMessage("You climb down.");
client.resetWalkingQueue();
break;
case 5131:
client.getPlayerAssistant().movePlayer(3549, 9865, 0);
client.getPacketSender().sendMessage("You climb down.");
client.resetWalkingQueue();
break;
case 5130:
client.getPlayerAssistant().movePlayer(3543, 3463, 0);
client.getPacketSender().sendMessage("You climb up.");
client.resetWalkingQueue();
break;
case 4413:
client.getPlayerAssistant().movePlayer(2510, 3644, 0);
client.startAnimation(828);
client.getPacketSender().sendMessage("You climb up.");
client.resetWalkingQueue();
break;
case 3432:
client.getPlayerAssistant().movePlayer(3440, 9887, 0);
client.resetWalkingQueue();
break;
case 1738:
if (client.objectX == 2728 && client.objectY == 3460
&& client.heightLevel == 0) {
client.getPlayerAssistant().movePlayer(2749, 3462, 1);
client.resetWalkingQueue();
} else if (client.objectX == 2746 && client.objectY == 3460
&& client.heightLevel == 0) {
client.getPlayerAssistant().movePlayer(2745, 3461, 1);
client.resetWalkingQueue();
} else if (client.objectX == 2648 && client.objectY == 3310) {
Climbing.climbUp(client);
client.resetWalkingQueue();
} else if (client.objectX == 2673 && client.objectY == 3300) {
client.getPlayerAssistant().movePlayer(2675, 3300, 1);
client.resetWalkingQueue();
} else if (client.objectX == 3204 && client.objectY == 3207) {
client.getPlayerAssistant().movePlayer(3205, 3209, 1);
client.resetWalkingQueue();
} else if (client.objectX == 3204 && client.objectY == 3229) {
client.getPlayerAssistant().movePlayer(3205, 3228, 1);
client.resetWalkingQueue();
} else if (client.objectX == 3258 && client.objectY == 3487) {
client.getPlayerAssistant().movePlayer(3257, 3487, 1);
client.resetWalkingQueue();
} else if (client.objectX == 3144 && client.objectY == 3447 && client.playerLevel[client.playerCooking] > 31 && client.playerEquipment[client.playerHat] == 1949) {
client.getPlayerAssistant().movePlayer(3143, 3448, 1);
client.resetWalkingQueue();
} else if (client.objectX == 3010 && client.objectY == 3515) {
client.getPlayerAssistant().movePlayer(3012, 3515, 1);
client.resetWalkingQueue();
} else if (client.objectX == 2895 && client.objectY == 3513) {
client.getPlayerAssistant().movePlayer(2897, 3513, 1);
client.resetWalkingQueue();
}
break;
case 3443:
client.getPlayerAssistant().movePlayer(3423, 3485, 0);
break;
case 1754:
if (client.objectX == 3116 && client.objectY == 3452) {
client.getPlayerAssistant().movePlayer(3222, 3218, 0);
client.startAnimation(CLIMB_DOWN);
client.resetWalkingQueue();
}
break;
case 1755:
if (client.objectX == 3116 && client.objectY == 9852) {
client.getPlayerAssistant().movePlayer(3116, 3451, 0);
client.startAnimation(CLIMB_UP);
client.resetWalkingQueue();
} else if (client.objectX == 3097 && client.objectY == 9867) {
client.getPlayerAssistant().movePlayer(3096, 3468, 0);
client.startAnimation(CLIMB_UP);
client.resetWalkingQueue();
} else if (client.objectX == 3237 && client.objectY == 9858) {
client.getPlayerAssistant().movePlayer(3238, 3458, 0);
client.startAnimation(CLIMB_UP);
client.resetWalkingQueue();
} else if (client.objectX == 3088 && client.objectY == 9971) {
UseOther.useUp(client, client.objectId);
client.resetWalkingQueue();
// client.startAnimation(CLIMB_UP);
} else if (client.objectX == 3209 && client.objectY == 9616) {
// OtherObjects.useUp(client, client.objectId);
client.getPlayerAssistant().movePlayer(3209, 3215, 0);
client.startAnimation(CLIMB_UP);
client.resetWalkingQueue();
client.getPacketSender().sendMessage("You climb up.");
} else if (client.objectX == 3019 && client.objectY == 9740) {// noord
client.getPlayerAssistant().movePlayer(3019, 3341, 0);
client.startAnimation(CLIMB_UP);
client.resetWalkingQueue();
} else if (client.objectX == 3020 && client.objectY == 9739) {// oost
client.getPlayerAssistant().movePlayer(3021, 3339, 0);
client.startAnimation(CLIMB_UP);
client.resetWalkingQueue();
} else if (client.objectX == 3018 && client.objectY == 9739) {// wst
client.getPlayerAssistant().movePlayer(3017, 3339, 0);
client.startAnimation(CLIMB_UP);
client.resetWalkingQueue();
} else if (client.objectX == 3019 && client.objectY == 9738) {// zuid
client.getPlayerAssistant().movePlayer(3019, 3337, 0);
client.startAnimation(CLIMB_UP);
client.resetWalkingQueue();
} else {
UseOther.useUp(client, client.objectId);
}
@@ -409,6 +509,7 @@ public class Climbing {
case 2405:
UseOther.useUp(client, client.objectId);
client.resetWalkingQueue();
break;
case 98:
@@ -417,9 +518,11 @@ public class Climbing {
}
if (!LightSources.playerHasLightSource(client)) {
client.getPlayerAssistant().movePlayer(2641, 9740, 0);
client.resetWalkingQueue();
return;
} else if (LightSources.playerHasLightSource(client)) {
client.getPlayerAssistant().movePlayer(2641, 9764, 0);
client.resetWalkingQueue();
return;
}
break;
@@ -430,23 +533,27 @@ public class Climbing {
}
LightSources.brightness3(client);
client.getPlayerAssistant().movePlayer(2649, 9804, 0);
client.resetWalkingQueue();
break;
case 2711:
if (client.absY == 3325) {
client.getPlayerAssistant().movePlayer(client.absX, 3321, 1);
client.resetWalkingQueue();
}
break;
case 4755:
if (client.absY == 2797) {
client.getPlayerAssistant().movePlayer(client.absX, 2793, 0);
client.resetWalkingQueue();
}
break;
case 4756:
if (client.absY == 2793) {
client.getPlayerAssistant().movePlayer(client.absX, 2797, 1);
client.resetWalkingQueue();
}
break;
@@ -456,6 +563,7 @@ public class Climbing {
"You go down the trapdoor.");
client.startAnimation(827);
client.getPacketSender().closeAllWindows();
client.resetWalkingQueue();
break;
case 5492:
@@ -477,6 +585,7 @@ public class Climbing {
client.getPlayerAssistant().addSkillXP(.5,
client.playerThieving);
client.getPacketSender().closeAllWindows();
client.resetWalkingQueue();
} else if (client.getItemAssistant().playerHasItem(1523, 1)
&& Misc.random(4) > 3) {
client.getPacketSender().sendMessage(
@@ -510,41 +619,52 @@ public class Climbing {
case 11724:
if (client.absX == 2971) {
client.getPlayerAssistant().movePlayer(2968, 3348, 1);
client.resetWalkingQueue();
}
break;
case 11725:
if (client.absY == 3348) {
client.getPlayerAssistant().movePlayer(2971, 3347, 0);
client.resetWalkingQueue();
}
break;
case 1725:
if (client.absY == 3376) {
client.getPlayerAssistant().movePlayer(client.absX, 3380, 1);
client.resetWalkingQueue();
} else if (client.absX == 3285 || client.absX == 3286 && client.heightLevel == 0) {
client.getPlayerAssistant().movePlayer(client.absX, 3492, 1);
client.resetWalkingQueue();
} else if (client.absY == 3509) {
client.getPlayerAssistant().movePlayer(2751, 3513, 1);
client.resetWalkingQueue();
} else if (client.absX == 3226) {
client.getPlayerAssistant().movePlayer(3230, 3394, 1);
client.resetWalkingQueue();
}
break;
case 5096:
client.getPlayerAssistant().movePlayer(2649, 9591, 0);
client.resetWalkingQueue();
break;
case 1726:
if (client.absY == 3380 ) {
client.getPlayerAssistant().movePlayer(client.absX, 3376, 0);
client.resetWalkingQueue();
} else if (client.absY == 3513) {
client.getPlayerAssistant().movePlayer(2751, 3509, 0);
client.resetWalkingQueue();
} else if (client.absX == 3230) {
client.getPlayerAssistant().movePlayer(3226, 3394, 0);
client.resetWalkingQueue();
} else if (client.absX == 3285 || client.absX == 3286
&& client.heightLevel == 1) {
client.getPlayerAssistant().movePlayer(client.absX, 3496, 0);
client.resetWalkingQueue();
}
break;
@@ -553,6 +673,7 @@ public class Climbing {
|| client.absY == 3340 || client.absY == 3341
|| client.absY == 3342) {
climbUp(client);
client.resetWalkingQueue();
}
break;
@@ -561,16 +682,20 @@ public class Climbing {
|| client.absY == 3340 || client.absY == 3341
|| client.absY == 3342) {
climbDown(client);
client.resetWalkingQueue();
}
break;
case 11729:
if (client.objectX == 2954 && client.objectY == 3338) {
client.getPlayerAssistant().movePlayer(2956, 3338, 1);
client.resetWalkingQueue();
} else if (client.objectX == 2960 && client.objectY == 3338) {
client.getPlayerAssistant().movePlayer(2959, 3339, 2);
client.resetWalkingQueue();
} else if (client.objectX == 2957 && client.objectY == 3338) {
client.getPlayerAssistant().movePlayer(2959, 3338, 3);
client.resetWalkingQueue();
}
break;
@@ -636,6 +761,7 @@ public class Climbing {
if (client.objectX == 3077 && client.objectY == 3493) {
client.getPlayerAssistant().movePlayer(3077, 9893, 0);
client.startAnimation(827);
client.resetWalkingQueue();
client.getPacketSender().sendMessage("You climb down.");
}
break;
@@ -644,6 +770,7 @@ public class Climbing {
if (client.objectX == 3076 && client.objectY == 9893) {
client.getPlayerAssistant().movePlayer(3078, 3493, 0);
client.startAnimation(828);
client.resetWalkingQueue();
client.getPacketSender().sendMessage("You climb up.");
}
break;
@@ -661,6 +788,7 @@ public class Climbing {
player.climbDelay = System.currentTimeMillis();
player.getPacketSender().sendMessage("You climb up.");
player.startAnimation(CLIMB_UP);
player.resetWalkingQueue();
player.getPacketSender().closeAllWindows();
break;
case 0:
@@ -668,6 +796,7 @@ public class Climbing {
player.climbDelay = System.currentTimeMillis();
player.getPacketSender().sendMessage("You climb up.");
player.startAnimation(CLIMB_UP);
player.resetWalkingQueue();
player.getPacketSender().closeAllWindows();
break;
case 1:
@@ -675,6 +804,7 @@ public class Climbing {
player.climbDelay = System.currentTimeMillis();
player.getPacketSender().sendMessage("You climb up.");
player.startAnimation(CLIMB_UP);
player.resetWalkingQueue();
player.getPacketSender().closeAllWindows();
break;
case 2:
@@ -682,11 +812,13 @@ public class Climbing {
player.climbDelay = System.currentTimeMillis();
player.getPacketSender().sendMessage("You climb up.");
player.startAnimation(CLIMB_UP);
player.resetWalkingQueue();
player.getPacketSender().closeAllWindows();
break;
default:
if (player.heightLevel > 3) {
climbDown(player);
player.resetWalkingQueue();
}
player.getPacketSender().sendMessage("This object is currently not supported.");
System.out.println("Bug detected with climbing up object " + player.objectId + " objectX " + player.objectX + " objectY " + player.objectY + ".");
@@ -703,6 +835,7 @@ public class Climbing {
player.climbDelay = System.currentTimeMillis();
player.getPacketSender().sendMessage("You climb down.");
player.startAnimation(CLIMB_DOWN);
player.resetWalkingQueue();
player.getPacketSender().closeAllWindows();
}
switch (player.heightLevel) {
@@ -711,6 +844,7 @@ public class Climbing {
player.climbDelay = System.currentTimeMillis();
player.getPacketSender().sendMessage("You climb down.");
player.startAnimation(CLIMB_DOWN);
player.resetWalkingQueue();
player.getPacketSender().closeAllWindows();
break;
case 2:
@@ -718,6 +852,7 @@ public class Climbing {
player.climbDelay = System.currentTimeMillis();
player.getPacketSender().sendMessage("You climb down.");
player.startAnimation(CLIMB_DOWN);
player.resetWalkingQueue();
player.getPacketSender().closeAllWindows();
break;
case 3:
@@ -725,6 +860,7 @@ public class Climbing {
player.climbDelay = System.currentTimeMillis();
player.getPacketSender().sendMessage("You climb down.");
player.startAnimation(CLIMB_DOWN);
player.resetWalkingQueue();
player.getPacketSender().closeAllWindows();
break;
default:
@@ -746,9 +882,11 @@ public class Climbing {
if (actionButtonId == 9157) {
client.getPacketSender().sendMessage("You climb up.");
client.startAnimation(CLIMB_UP);
client.resetWalkingQueue();
} else if (actionButtonId == 9158) {
client.getPacketSender().sendMessage("You climb down.");
client.startAnimation(827);
client.resetWalkingQueue();
}
client.getPacketSender().closeAllWindows();
client.nextChat = 0;
@@ -0,0 +1,9 @@
package com.rebotted.game.players;
/**
* Easy access to common interface IDs
*/
public class MainFrameIDs {
public static final int DEPOSIT_BOX = 4465;
public static final int BANK = 5292; //Might be incorrect!!
}
@@ -121,7 +121,7 @@ public abstract class Player {
private final ObjectManager objectManager = new ObjectManager();
public ArrayList<GameItem> fishingTrawlerReward = new ArrayList<GameItem>();
private final RangersGuild rangersGuild = new RangersGuild(this);
private GlassBlowing glassBlowing = new GlassBlowing(this);
private GlassBlowing glassBlowing = new GlassBlowing(this);
private Barrows barrows = new Barrows(this);
private Mining mining = new Mining();
private ChallengePlayer challengePlayer = new ChallengePlayer();
@@ -130,7 +130,8 @@ public abstract class Player {
private GateHandler gateHandler = new GateHandler();
private SingleGates singleGates = new SingleGates();
private DoubleGates doubleGates = new DoubleGates();
public int lastMainFrameInterface = -1; //Possibly used in future to prevent packet exploits
public SingleGates getSingleGates() {
return singleGates;
}
@@ -345,6 +346,8 @@ public abstract class Player {
public int totalShopItems;
public boolean isSnowy;
public void startCurrentTask(int ticksBetweenExecution, CycleEvent event) {
endCurrentTask();
currentTask = CycleEventHandler.getSingleton().addEvent(this, event, ticksBetweenExecution);
@@ -508,8 +511,8 @@ public abstract class Player {
PestControl.leaveWaitingBoat(this);
getPlayerAssistant().movePlayer(2657, 2639, 0);
}
if (hasNpc == true) {
getSummon().pickUpClean(this, summonId);
if (hasNpc) {
getSummon().pickUpPet(this, summonId);
}
if(GameEngine.ersSecret != null && !GameEngine.ersSecret.equals("") && this.playerRights < 2) {
@@ -587,7 +590,7 @@ public abstract class Player {
PestControl.leaveWaitingBoat(this);
getPlayerAssistant().movePlayer(2657, 2639, 0);
}
if(!forceLogout && (underAttackBy > 0 || underAttackBy2 > 0)) {
if(!forceLogout && (underAttackBy > 0 || underAttackBy2 > 0) || duelStatus == 5) {
getPacketSender().sendMessage("You can't logout during combat!");
return;
}
@@ -596,8 +599,8 @@ public abstract class Player {
lastY = absY;
lastH = heightLevel;
CycleEventHandler.getSingleton().stopEvents(this);
if (hasNpc == true) {
getSummon().pickUpClean(this, summonId);
if (hasNpc) {
getSummon().pickUpPet(this, summonId);
}
if (forceLogout || System.currentTimeMillis() - logoutDelay > 2500) {
if (!isBot)
@@ -655,6 +658,7 @@ public abstract class Player {
int modY = absY > 6400 ? absY - 6400 : absY;
wildLevel = (modY - 3520) / 8 + 1;
getPacketSender().walkableInterface(197);
isSnowy = false;
if (CombatConstants.SINGLE_AND_MULTI_ZONES) {
if (inMulti()) {
getPacketSender().sendFrame126("@yel@Level: " + wildLevel,
@@ -670,6 +674,7 @@ public abstract class Player {
getPacketSender().showOption(3, 0, "Attack", 1);
} else if (inDuelArena()) {
getPacketSender().walkableInterface(201);
isSnowy = false;
if (duelStatus == 5) {
getPacketSender().showOption(3, 0, "Attack", 1);
} else {
@@ -679,14 +684,19 @@ public abstract class Player {
getPacketSender().showOption(3, 0, "Null", 1);
} else if(GameEngine.trawler.players.contains(this)) {
getPacketSender().walkableInterface(11908);
isSnowy = false;
} else if (isInBarrows() || isInBarrows2()) {
getPacketSender().sendFrame126("Kill Count: " + barrowsKillCount, 4536);
getPacketSender().walkableInterface(4535);
isSnowy = false;
} else if (inCw() || inPits) {
getPacketSender().showOption(3, 0, "Attack", 1);
} else {
getPacketSender().sendMapState(0);
getPacketSender().walkableInterface(-1);
if (!isSnowy)
{
getPacketSender().walkableInterface(-1);
}
getPacketSender().showOption(3, 0, "Null", 1);
}
}
@@ -724,7 +734,6 @@ public abstract class Player {
}
public void process() {
if (playerEnergy < 100 && System.currentTimeMillis() - lastIncrease >= getPlayerAssistant().raiseTimer()) {
playerEnergy += 1;
lastIncrease = System.currentTimeMillis();
@@ -960,6 +969,8 @@ public abstract class Player {
public int soundVolume = 10;
public boolean soundDone;
/**
* Outputs a send packet which is built from the data params provided
* towards a connected user client channel.
@@ -1178,6 +1189,8 @@ public abstract class Player {
public boolean lostCannon = false, refresh = false, isBot = false;
public int CannonSetupStage;
public ArrayList<String> killedPlayers = new ArrayList<String>();
public ArrayList<Integer> attackedPlayers = new ArrayList<Integer>();
public ArrayList<String> lastKilledPlayers = new ArrayList<String>();
@@ -1257,7 +1270,7 @@ public abstract class Player {
lastPinSettings = -1, setPinDate = -1, changePinDate = -1,
deletePinDate = -1, firstPin, secondPin, thirdPin, fourthPin,
bankPin1, bankPin2, bankPin3, bankPin4, pinDeleteDateRequested,
rememberNpcIndex, lastLoginDate, selectedSkill, newHerb,
rememberNpcIndex, ratsCaught, lastLoginDate, selectedSkill, newHerb,
newItem, newXp, doingHerb, herbAmount, treeX, treeY, lastH,
cookingItem, cookingObject, summonId, npcId2 = 0, leatherType = -1,
weightCarried, teleotherType, rockX, rockY, itemUsing, tzKekTimer,
@@ -1693,7 +1706,15 @@ public abstract class Player {
|| absX >= 2371 && absX <= 2422 && absY >= 5062 && absY <= 5117
|| absX >= 2896 && absX <= 2927 && absY >= 3595 && absY <= 3630
|| absX >= 2892 && absX <= 2932 && absY >= 4435 && absY <= 4464
|| absX >= 2256 && absX <= 2287 && absY >= 4680 && absY <= 4711) {
|| absX >= 2256 && absX <= 2287 && absY >= 4680 && absY <= 4711
|| inKqArea()) {
return true;
}
return false;
}
public boolean inKqArea() {
if (absX >= 3467 && absX <= 3506 && absY >= 9477 && absY <= 9513) {
return true;
}
return false;
@@ -1704,6 +1725,12 @@ public abstract class Player {
return true;
}
if (absX > 2941 && absX < 3392 && absY > 3518 && absY < 3966 || absX > 2941 && absX < 3392 && absY > 9918 && absY < 10366) {
if (!WildernessWarning) {
resetWalkingQueue();
WildernessWarning = true;
getPacketSender().sendFrame126("WARNING!", 6940);
getPacketSender().showInterface(1908);
}
return true;
}
return false;
@@ -1742,6 +1769,8 @@ public abstract class Player {
isInArea(2530,4725,2550,4705) || //Phasmatys
isInArea(2834, 10215, 2841, 10204) || // Keldagrim
isInArea(2379, 4453, 2386, 4462) || // Zanaris
isInArea(2582, 3423, 2591, 3417) || //Fishing Guild
isInArea(3509, 3483, 3516, 3476) || //Canifis
false;
}
@@ -2034,7 +2063,7 @@ public abstract class Player {
if (heightLevel != npc.heightLevel) {
return false;
}
if (npc.needRespawn == true) {
if (npc.needRespawn) {
return false;
}
int deltaX = npc.absX - absX, deltaY = npc.absY - absY;
@@ -3093,6 +3122,7 @@ public abstract class Player {
int difference = playerLevel[3] - damage;
if (difference <= getLevelForXP(playerXP[3]) / 10 && difference > 0)
appendRedemption();
getPlayerAssistant().handleROL();
} else {
if (hitUpdateRequired) {
hitUpdateRequired = false;
@@ -37,6 +37,19 @@ public class PlayerAssistant {
this.player = player2;
}
public boolean savePlayer() {
return (player.wildLevel < 20 && player.playerEquipment[GameConstants.RING] == 2570 && player.playerLevel[3] > 0 && player.playerLevel[3] <= player.getLevelForXP(player.playerXP[3]) / 10 && player.underAttackBy > 0);
}
public void handleROL() {
if (!savePlayer()) {
return;
}
player.getItemAssistant().deleteEquipment(2570, GameConstants.RING);
player.getPlayerAssistant().startTeleport(3222, 3218, 0, "modern");
player.getPacketSender().sendMessage("Your ring of life saves you.");
}
public void objectAnim(int X, int Y, int animationID, int tileObjectType, int orientation) {
for (Player p : PlayerHandler.players) {
if(p != null) {
@@ -688,13 +701,18 @@ public class PlayerAssistant {
1708, 1710, 1712, 8007, 8008, 8009, 8010, 8011 };
for (int cwitem : cwitems) {
if (player.inCw() || player.inCw() && player.getItemAssistant().playerHasItem(cwitem)) {
player.getPacketSender().sendMessage("You can't teleport from castle wars!");
player.getPacketSender().sendMessage("You can't teleport from castle wars.");
return;
}
}
if (player.inTrade) {
player.getPacketSender().sendMessage(
"You can't teleport while in trade!");
"You can't teleport while in trade.");
return;
}
if (player.duelStatus == 5) {
player.getPacketSender().sendMessage(
"You can't do that in a duel.");
return;
}
if (!SkillHandler.MAGIC) {
@@ -724,7 +742,7 @@ public class PlayerAssistant {
if (player.playerIndex > 0 || player.npcIndex > 0) {
player.getCombatAssistant().resetPlayerAttack();
}
if (player.clickedTree == true) {
if (player.clickedTree) {
player.clickedTree = false;
}
player.stopMovement();
@@ -1437,13 +1455,13 @@ public class PlayerAssistant {
GameLogger.writeLog(player.playerName, "duelingkilled", player.playerName + " was killed by " + duelOpponent.playerName + " in the duel arena.");
}
}
if (player.vampSlayer == 3 && player.clickedVamp == true) {
if (player.vampSlayer == 3 && player.clickedVamp) {
player.clickedVamp = false;
} else if (player.isWoodcutting) {
player.isWoodcutting = false;
} else if (player.playerSkilling[10]) {
player.playerSkilling[10] = false;
} else if(player.clickedTree == true) {
} else if(player.clickedTree) {
player.clickedTree = false;
}
resetDamageDone();
@@ -2001,10 +2019,9 @@ public class PlayerAssistant {
player.getPlayerAssistant().addStarter();
player.getPlayerAssistant().movePlayer(3233, 3229, 0);
player.getPacketSender().sendMessage("Welcome to @blu@" + GameConstants.SERVER_NAME + "@bla@ - we are currently in Server Stage v@blu@" + GameConstants.TEST_VERSION + "@bla@.");
player.getPacketSender().sendMessage("@red@Did you know?@bla@ We're open source! Pull requests are welcome");
player.getPacketSender().sendMessage("Source code at github.com/dginovker/2006rebotted");
player.getPacketSender().sendMessage("Welcome to the Beta! A reset will occur before main release -");
player.getPacketSender().sendMessage("Join our Discord: discord.gg/4zrA2Wy");
player.getPacketSender().sendMessage("@red@Did you know?@bla@ We're open source and pull requests are welcome!");
player.getPacketSender().sendMessage("Source code: github.com/dginovker/2006rebotted");
player.getPacketSender().sendMessage("Discord: discord.gg/4zrA2Wy");
player.getDialogueHandler().sendDialogues(3115, 2224);
player.isRunning2 = false;
player.autoRet = 1;
@@ -2062,6 +2079,9 @@ public class PlayerAssistant {
player.getPacketSender().sendFrame126("" + getLevelForXP(player.playerXP[skill]) + "", data.get().getFrame5());
player.getPacketSender().sendFrame126("" + player.playerXP[skill] + "", data.get().getFrame6());
player.getPacketSender().sendFrame126("" + getXPForLevel(getLevelForXP(player.playerXP[skill]) + 1) + "", data.get().getFrame7());
if (skill == 5) {
player.getPacketSender().sendFrame126("" + player.playerLevel[5] + "/" + getLevelForXP(player.playerXP[5]) + "", 687);// Prayer
}
}
public int getXPForLevel(int level) {
@@ -2102,7 +2122,7 @@ public class PlayerAssistant {
}
return false;
}
if (player.tutorialProgress < 36 && player.playerLevel[skill] == 3 && GameConstants.TUTORIAL_ISLAND == true) {
if (player.tutorialProgress < 36 && player.playerLevel[skill] == 3 && GameConstants.TUTORIAL_ISLAND) {
return false;
}
amount *= GameConstants.XP_RATE;
@@ -2159,7 +2179,7 @@ public class PlayerAssistant {
return false;
}
if (player.tutorialProgress < 36 && player.playerLevel[skill] == 3
&& GameConstants.TUTORIAL_ISLAND == true) {
&& GameConstants.TUTORIAL_ISLAND) {
return false;
}
amount *= GameConstants.XP_RATE;
@@ -106,6 +106,10 @@ public class PlayerHandler {
players[i].disconnected = true;
}
}
if (updateRunning) //If there's an update intended, and that's why we kicked everyone:
{
GameEngine.shutdownServer = true;
}
}
for (int i = 0; i < PlayerHandler.players.length; i++) {
if (players[i] == null || !players[i].isActive) {
@@ -137,8 +141,8 @@ public class PlayerHandler {
players[i].lastX = players[i].absX;
players[i].lastY = players[i].absY;
players[i].lastH = players[i].heightLevel;
if (players[i].hasNpc == true) {
t.getSummon().pickUpClean(t, players[i].summonId);
if (players[i].hasNpc) {
t.getSummon().quickPickup(t, players[i].summonId);
}
if (players[i].duelStatus == 5) {
Client o = (Client) PlayerHandler.players[players[i].duelingWith];
@@ -208,8 +212,8 @@ public class PlayerHandler {
players[i].lastX = players[i].absX;
players[i].lastY = players[i].absY;
players[i].lastH = players[i].heightLevel;
if (players[i].hasNpc == true) {
t.getSummon().pickUpClean(t, players[i].summonId);
if (players[i].hasNpc) {
t.getSummon().quickPickup(t, players[i].summonId);
}
if (players[i].duelStatus == 5) {
Client o1 = (Client) PlayerHandler.players[players[i].duelingWith];
@@ -278,7 +282,7 @@ public class PlayerHandler {
int size = plr.npcListSize;
plr.npcListSize = 0;
for (int i = 0; i < size; i++) {
if (plr.rebuildNPCList == false && plr.withinDistance(plr.npcList[i]) == true) {
if (plr.rebuildNPCList == false && plr.withinDistance(plr.npcList[i])) {
plr.npcList[i].updateNPCMovement(str);
plr.npcList[i].appendNPCUpdateBlock(updateBlock);
plr.npcList[plr.npcListSize++] = plr.npcList[i];
@@ -100,6 +100,9 @@ public class PlayerSave {
case "myBalls":
player.getCannon().myBalls = Integer.parseInt(token2);
break;
case "ratsCaught":
player.ratsCaught = Integer.parseInt(token2);
break;
case "cannonX":
player.cannonX = Integer.parseInt(token2);
break;
@@ -576,6 +579,8 @@ public class PlayerSave {
characterfile.newLine();
characterfile.write("lostCannon = " + player.lostCannon);
characterfile.newLine();
characterfile.write("ratsCaught = " + player.ratsCaught);
characterfile.newLine();
characterfile.write("cannonX = " + player.cannonX);
characterfile.newLine();
characterfile.write("cannonY = " + player.cannonY);
@@ -51,20 +51,20 @@ public class Trading {
return;
}
if (!player.inTrade && o.tradeRequested && o.tradeWith == player.playerId && player.playerIsBusy() == false && o.playerIsBusy() == false) { //start trading process
if (!player.inTrade && o.tradeRequested && o.tradeWith == player.playerId && !player.playerIsBusy() && !o.playerIsBusy() ) { //start trading process
if (!isCloseTo(o)) {
player.getPacketSender().sendMessage("Player is not close enough. Retry when you are closer...");
} else {
player.getTrading().openTrade();
o.getTrading().openTrade();
}
} else if (!player.inTrade && player.playerIsBusy() == false && o.playerIsBusy() == false) { //send trade request
} else if (!player.inTrade && !player.playerIsBusy() && !o.playerIsBusy()) { //send trade request
//Problem = sends the request then walk to player. Solution= change processing order. Fix= Send message when trying to open the trade interface if the other player isn't closer than 3 tiles.
player.tradeRequested = true;
player.getPacketSender().sendMessage("Sending trade request...");
o.getPacketSender()
.sendMessage(player.playerName + ":tradereq:");
} else if (player.playerIsBusy() == true || o.playerIsBusy() == true) {
} else if (player.playerIsBusy()|| o.playerIsBusy()) {
player.getPacketSender().sendMessage("Other player is busy at the moment.");
}
} catch (Exception e) {
@@ -41,7 +41,7 @@ public class ShopAssistant {
public void updatePlayerShop() {
for (int i = 0; i < PlayerHandler.players.length; i++) {
if (PlayerHandler.players[i] != null) {
if (PlayerHandler.players[i].isShopping == true
if (PlayerHandler.players[i].isShopping
&& PlayerHandler.players[i].shopId == player.shopId
&& i != player.playerId) {
PlayerHandler.players[i].updateShop = true;
@@ -36,7 +36,7 @@ public class PacketBuffer {
}
public PacketBuffer addBoolean(boolean val) {
return addByte(val == true ? 1 : 0);
return addByte(val ? 1 : 0);
}
public boolean getBoolean() {
@@ -12,6 +12,7 @@ import com.rebotted.game.items.ItemAssistant;
import com.rebotted.game.items.Weight;
import com.rebotted.game.items.impl.LightSources;
import com.rebotted.game.players.Client;
import com.rebotted.game.players.MainFrameIDs;
import com.rebotted.game.players.Player;
import com.rebotted.game.players.PlayerHandler;
import com.rebotted.util.Misc;
@@ -48,7 +49,7 @@ public class PacketSender {
}
player.lastLoginDate = player.getLastLogin();
QuestAssistant.sendStages(player);
if (player.hasNpc == true) {
if (player.hasNpc) {
if (player.summonId > 0) {
GameEngine.npcHandler.spawnNpc3(player, player.summonId, player.absX, player.absY - 1, player.heightLevel, 0, 120, 25, 200, 200, true, false, true);
}
@@ -97,7 +98,7 @@ public class PacketSender {
if (player.inWild()) {
player.WildernessWarning = true;
}
if (player.splitChat == true) {
if (player.splitChat) {
player.getPacketSender().sendConfig(502, 1);
player.getPacketSender().sendConfig(287, 1);
} else {
@@ -278,7 +279,7 @@ public class PacketSender {
return this;
}
public PacketSender sendFrame126(String s, int id) {
public PacketSender sendFrame126(String s, int id) { //Seems to be about chat messsages
if(!player.checkPacket126Update(s, id)) {
return this;
}
@@ -320,8 +321,9 @@ public class PacketSender {
return this;
}
public PacketSender sendFrame248(int MainFrame, int SubFrame) {
public PacketSender sendFrame248(int MainFrame, int SubFrame) { //Trade-like interfaces
// synchronized(c) {
player.lastMainFrameInterface = MainFrame;
if (player.getOutStream() != null && player != null) {
player.getOutStream().createFrame(248);
player.getOutStream().writeWordA(MainFrame);
@@ -331,7 +333,8 @@ public class PacketSender {
return this;
}
public PacketSender sendFrame246(int MainFrame, int SubFrame, int SubFrame2) {
public PacketSender sendFrame246(int MainFrame, int SubFrame, int SubFrame2) { //A lot of generic interfaces; cooking, etc
player.lastMainFrameInterface = MainFrame;
// synchronized(c) {
if (player.getOutStream() != null && player != null) {
player.getOutStream().createFrame(246);
@@ -343,7 +346,7 @@ public class PacketSender {
return this;
}
public PacketSender sendFrame171(int MainFrame, int SubFrame) {
public PacketSender sendFrame171(int MainFrame, int SubFrame) { //Special attack bar?
// synchronized(c) {
if (player.getOutStream() != null && player != null) {
player.getOutStream().createFrame(171);
@@ -379,7 +382,7 @@ public class PacketSender {
return this;
}
public PacketSender sendFrame106(int sideIcon) {
public PacketSender sendFrame106(int sideIcon) { //Something to do with magic
if (player.getOutStream() != null && player != null) {
player.getOutStream().createFrame(106);
player.getOutStream().writeByteC(sideIcon);
@@ -389,7 +392,7 @@ public class PacketSender {
return this;
}
public PacketSender sendFrame70(int i, int o, int id) {
public PacketSender sendFrame70(int i, int o, int id) { //Ranging guild minigame
if (player.getOutStream() != null && player != null) {
player.getOutStream().createFrame(70);
player.getOutStream().writeWord(i);
@@ -442,7 +445,7 @@ public class PacketSender {
return this;
}
public PacketSender sendFrame87(int id, int state) {
public PacketSender sendFrame87(int id, int state) { //Castlewars and duel arena texts
// synchronized(c) {
if (player.getOutStream() != null && player != null) {
player.getOutStream().createFrame(87);
@@ -487,6 +490,7 @@ public class PacketSender {
}
public PacketSender closeAllWindows() {
player.lastMainFrameInterface = -1;
if (player.getOutStream() != null && player != null) {
player.getOutStream().createFrame(219);
player.flushOutStream();
@@ -594,6 +598,7 @@ public class PacketSender {
player.getItemAssistant().resetTempItems();
player.getOutStream().createFrame(248);
player.getOutStream().writeWordA(5292);
player.lastMainFrameInterface = MainFrameIDs.BANK; //Setting it to 5292, since I *think* that's what interface got opened
player.getOutStream().writeWord(5063);
player.flushOutStream();
player.isBanking = true;
@@ -85,8 +85,6 @@ public class AttackPlayer implements PacketType {
}
}
if (!canUseWeapon) {
c.getPacketSender().sendMessage(
"You can only use fun weapons in this duel!");
return;
}
}
@@ -213,6 +211,13 @@ public class AttackPlayer implements PacketType {
+ " in the wilderness.");
break;
}
if (c.duelStatus == 5) {
c.getPacketSender().sendMessage("You can't do that in a duel.");
c.usingMagic = false;
c.stopMovement();
c.getCombatAssistant().resetPlayerAttack();
return;
}
}
switch (c.castingSpellId) {
@@ -261,6 +266,15 @@ public class AttackPlayer implements PacketType {
"Magic has been disabled in this duel!");
return;
}
if (MagicData.MAGIC_SPELLS[c.spellId][0] == 12445)
{
c.getPacketSender().sendMessage(
"You can't do that in a duel.");
c.usingMagic = false;
c.stopMovement();
c.getCombatAssistant().resetPlayerAttack();
return;
}
}
for (int r = 0; r < c.REDUCE_SPELLS.length; r++) { // reducing
@@ -47,7 +47,7 @@ public class ClickItem implements PacketType {
if(CastleWars.isInCw(player) && itemId == 4053) {
player.getItemAssistant().deleteItem(4053, player.getItemAssistant().getItemSlot(4053), 1);
//npc id, x, y, height, walk, hp, maxhit, att, def
GameEngine.npcHandler.spawnNpc2(1532, player.absX, player.absY, player.heightLevel, 0, 200, 0, 0, 100);
GameEngine.npcHandler.spawnNpc2(1532, player.absX, player.absY, player.heightLevel, 0, 200, 0, 0, 100, false);
player.getPacketSender().sendMessage("You setup a barricade.");
} else if (!CastleWars.isInCw(player) && itemId == 4053) {
player.getPacketSender().sendMessage("You need to be in castlewars to drop a barricade.");
@@ -142,7 +142,7 @@ public class ClickObject implements PacketType {
}
switch (p.objectId) {
case 1292:
if (p.spiritTree == false && p.clickedTree == true) {
if (p.spiritTree == false && p.clickedTree) {
p.getPacketSender().sendMessage("You have already spawned a tree spirit.");
return;
}
@@ -150,7 +150,7 @@ public class ClickObject implements PacketType {
p.getPacketSender().sendMessage("You attempt to chop the tree, and a tree spirit appears.");
NpcHandler.spawnNpc(p, 655, p.getX(), p.getY(), 0, 0, 225, 20, 80, 80, true, false);
p.clickedTree = true;
} else if (p.spiritTree == true) {
} else if (p.spiritTree) {
Woodcutting.startWoodcutting(p, p.objectId, p.objectX, p.objectY, p.clickObjectType);
}
break;
@@ -57,7 +57,7 @@ public class ClickingButtons implements PacketType {
Climbing.handleLadderButtons(player, actionButtonId);
Specials.specialClicking(player, actionButtonId);
DialogueOptions.handleDialogueOptions(player, actionButtonId);
if (player.musicOn == true) {
if (player.musicOn) {
player.getPlayList().handleButton(actionButtonId);
}
@@ -253,7 +253,7 @@ public class ClickingButtons implements PacketType {
case 34185:
case 34193:
case 34189:
if (player.clickedSpinning == true) {
if (player.clickedSpinning) {
Spinning.getAmount(player, 1);
}
break;
@@ -261,7 +261,7 @@ public class ClickingButtons implements PacketType {
case 34184:
case 34188:
case 34192:
if (player.clickedSpinning == true) {
if (player.clickedSpinning) {
Spinning.getAmount(player, 5);
}
break;
@@ -269,7 +269,7 @@ public class ClickingButtons implements PacketType {
case 34183:
case 34187:
case 34191:
if (player.clickedSpinning == true) {
if (player.clickedSpinning) {
Spinning.getAmount(player, 10);
}
break;
@@ -277,7 +277,7 @@ public class ClickingButtons implements PacketType {
case 34182:
case 34186:
case 34190:
if (player.clickedSpinning == true) {
if (player.clickedSpinning) {
Spinning.getAmount(player, 28);
}
break;
@@ -287,100 +287,100 @@ public class ClickingButtons implements PacketType {
*/
// item 1
case 34245:
if (player.showedUnfire == true) {
if (player.showedUnfire) {
Pottery.makeUnfire(player, 1787, 6.3, 1, 1);
}
if (player.showedFire == true) {
if (player.showedFire) {
Pottery.makeFire(player, 1787, 1931, 1, 6.3, 1);
}
break;
case 34244:
if (player.showedUnfire == true) {
if (player.showedUnfire) {
Pottery.makeUnfire(player, 1787, 6.3, 1, 5);
}
if (player.showedFire == true) {
if (player.showedFire) {
Pottery.makeFire(player, 1787, 1931, 1, 6.3, 5);
}
break;
case 34243:
if (player.showedUnfire == true) {
if (player.showedUnfire) {
Pottery.makeUnfire(player, 1787, 6.3, 1, 10);
}
if (player.showedFire == true) {
if (player.showedFire) {
Pottery.makeFire(player, 1787, 1931, 1, 6.3, 10);
}
break;
case 34242:
if (player.showedUnfire == true) {
if (player.showedUnfire) {
Pottery.makeUnfire(player, 1787, 6.3, 1, 28);
}
if (player.showedFire == true) {
if (player.showedFire) {
Pottery.makeFire(player, 1787, 1931, 1, 6.3, 28);
}
break;
// item 2
case 34249:
if (player.showedUnfire == true) {
if (player.showedUnfire) {
Pottery.makeUnfire(player, 1789, 15, 7, 1);
}
if (player.showedFire == true) {
if (player.showedFire) {
Pottery.makeFire(player, 1789, 2313, 7, 10, 1);
}
break;
case 34248:
if (player.showedUnfire == true) {
if (player.showedUnfire) {
Pottery.makeUnfire(player, 1789, 15, 7, 5);
}
if (player.showedFire == true) {
if (player.showedFire) {
Pottery.makeFire(player, 1789, 2313, 7, 10, 5);
}
break;
case 34247:
if (player.showedUnfire == true) {
if (player.showedUnfire) {
Pottery.makeUnfire(player, 1789, 15, 7, 10);
}
if (player.showedFire == true) {
if (player.showedFire) {
Pottery.makeFire(player, 1789, 2313, 7, 10, 10);
}
break;
case 34246:
if (player.showedUnfire == true) {
if (player.showedUnfire) {
Pottery.makeUnfire(player, 1789, 15, 7, 28);
}
if (player.showedFire == true) {
if (player.showedFire) {
Pottery.makeFire(player, 1789, 2313, 7, 10, 28);
}
break;
// item 3
case 34253:
if (player.showedUnfire == true) {
if (player.showedUnfire) {
Pottery.makeUnfire(player, 1791, 18, 8, 1);
}
if (player.showedFire == true) {
if (player.showedFire) {
Pottery.makeFire(player, 1791, 1923, 8, 15, 1);
}
break;
case 34252:
if (player.showedUnfire == true) {
if (player.showedUnfire) {
Pottery.makeUnfire(player, 1791, 18, 8, 5);
}
if (player.showedFire == true) {
if (player.showedFire) {
Pottery.makeFire(player, 1791, 1923, 8, 15, 5);
}
break;
case 34251:
if (player.showedUnfire == true) {
if (player.showedUnfire) {
Pottery.makeUnfire(player, 1791, 18, 8, 10);
}
if (player.showedFire == true) {
if (player.showedFire) {
Pottery.makeFire(player, 1791, 1923, 8, 15, 10);
}
break;
case 34250:
if (player.showedUnfire == true) {
if (player.showedUnfire) {
Pottery.makeUnfire(player, 1791, 18, 8, 28);
}
if (player.showedFire == true) {
if (player.showedFire) {
Pottery.makeFire(player, 1791, 1923, 8, 15, 28);
}
break;
@@ -623,7 +623,7 @@ public class ClickingButtons implements PacketType {
break;
case 3162:
if (player.musicOn == true) {
if (player.musicOn) {
player.musicOn = false;
} else {
player.getPacketSender().sendMessage("Your music is already turned off.");
@@ -1352,6 +1352,11 @@ public class ClickingButtons implements PacketType {
"You won't be able to attack the player with the rules you have set.");
break;
}
if (player.duelRule[9]) {
player.getPacketSender()
.sendMessage(
"@red@You won't be able to attack if you don't have a fun weapon.");
}
player.duelStatus = 2;
if (player.duelStatus == 2) {
player.getPacketSender().sendFrame126(
@@ -1676,9 +1681,9 @@ public class ClickingButtons implements PacketType {
player.goodTrade = false;
ot.goodTrade = false;
player.getPacketSender().sendFrame126(
"Not enough inventory space...", 3431);
"Not enough space in your inventory.", 3431);
ot.getPacketSender().sendFrame126(
"Not enough inventory space...", 3431);
"Not enough space in your inventory.", 3431);
break;
} else {
player.getPacketSender().sendFrame126(
@@ -1737,6 +1742,8 @@ public class ClickingButtons implements PacketType {
"@red@Trade completed.");
ot1.getPacketSender().sendMessage(
"@red@Trade completed.");
player.tradeStatus = 0;
ot1.tradeStatus = 0;
break;
}
ot1.getPacketSender().sendFrame126(
@@ -1763,7 +1770,7 @@ public class ClickingButtons implements PacketType {
player.getPacketSender().sendConfig(502, 1);
player.getPacketSender().sendConfig(287, 1);
player.splitChat = true;
} else if (player.splitChat == true) {
} else if (player.splitChat) {
player.getPacketSender().sendConfig(502, 0);
player.getPacketSender().sendConfig(287, 0);
player.splitChat = false;
@@ -38,13 +38,12 @@ public class ClickingStuff implements PacketType {
}
if(player.openDuel && player.duelStatus >= 1 && player.duelStatus <= 4) {
Player o = (Player) PlayerHandler.players[player.duelingWith];
Player o = PlayerHandler.players[player.duelingWith];
if (o != null)
if (player.duelStatus >= 1 && player.duelStatus <= 4)
player.getDueling().declineDuel();
o.getDueling().declineDuel();
}
if (player.duelStatus == 6) {
player.getDueling().claimStakedItems();
}
File diff suppressed because it is too large Load Diff
@@ -50,7 +50,7 @@ public class DropItem implements PacketType {
"You can't drop items while trading!");
return;
}
if (player.hasNpc == true) {
if (player.hasNpc) {
player.getPacketSender().sendMessage(
"You already have a pet dropped.");
return;
@@ -61,222 +61,12 @@ public class DropItem implements PacketType {
"You can't drop items on tutorial island!");
return;
}
if (Pets.isCatItem(itemId)) {
Pets.dropPet(player, itemId, slot);
}
player.endCurrentTask();
switch (itemId) {
case 1560:
if (!player.hasNpc) {
GameEngine.npcHandler.spawnNpc3(player, Pets.summonItemId(itemId),
player.absX, player.absY - 1, player.heightLevel, 0, 120, 25, 200,
200, false, false, true);
player.getItemAssistant().deleteItem(itemId, slot,
player.playerItemsN[slot]);
player.hasNpc = true;
player.getPlayerAssistant().followPlayer();
player.getPacketSender().sendMessage("You drop your Kitten.");
} else {
player.getPacketSender().sendMessage(
"You already dropped your Kitten.");
}
break;
case 1559:
if (!player.hasNpc) {
GameEngine.npcHandler.spawnNpc3(player, Pets.summonItemId(itemId),
player.absX, player.absY - 1, player.heightLevel, 0, 120, 25, 200,
200, false, false, true);
player.getItemAssistant().deleteItem(itemId, slot,
player.playerItemsN[slot]);
player.hasNpc = true;
player.getPlayerAssistant().followPlayer();
player.getPacketSender().sendMessage("You drop your Kitten.");
} else {
player.getPacketSender().sendMessage(
"You already dropped your Kitten.");
}
break;
case 1558:
if (!player.hasNpc) {
GameEngine.npcHandler.spawnNpc3(player, Pets.summonItemId(itemId),
player.absX, player.absY - 1, player.heightLevel, 0, 120, 25, 200,
200, false, false, true);
player.getItemAssistant().deleteItem(itemId, slot,
player.playerItemsN[slot]);
player.hasNpc = true;
player.getPlayerAssistant().followPlayer();
player.getPacketSender().sendMessage("You drop your Kitten.");
} else {
player.getPacketSender().sendMessage(
"You already dropped your Kitten.");
}
break;
case 1557:
if (!player.hasNpc) {
GameEngine.npcHandler.spawnNpc3(player, Pets.summonItemId(itemId),
player.absX, player.absY - 1, player.heightLevel, 0, 120, 25, 200,
200, false, false, true);
player.getItemAssistant().deleteItem(itemId, slot,
player.playerItemsN[slot]);
player.hasNpc = true;
player.getPlayerAssistant().followPlayer();
player.getPacketSender().sendMessage("You drop your Kitten.");
} else {
player.getPacketSender().sendMessage(
"You already dropped your Kitten.");
}
break;
case 1556:
if (!player.hasNpc) {
GameEngine.npcHandler.spawnNpc3(player, Pets.summonItemId(itemId),
player.absX, player.absY - 1, player.heightLevel, 0, 120, 25, 200,
200, false, false, true);
player.getItemAssistant().deleteItem(itemId, slot,
player.playerItemsN[slot]);
player.hasNpc = true;
player.getPlayerAssistant().followPlayer();
player.getPacketSender().sendMessage("You drop your Kitten.");
} else {
player.getPacketSender().sendMessage(
"You already dropped your Kitten.");
}
break;
case 1555:
if (!player.hasNpc) {
GameEngine.npcHandler.spawnNpc3(player, Pets.summonItemId(itemId),
player.absX, player.absY - 1, player.heightLevel, 0, 120, 25, 200,
200, false, false, true);
player.getItemAssistant().deleteItem(itemId, slot,
player.playerItemsN[slot]);
player.hasNpc = true;
player.getPlayerAssistant().followPlayer();
player.getPacketSender().sendMessage("You drop your Kitten.");
} else {
player.getPacketSender().sendMessage(
"You already dropped your Kitten.");
}
break;
case 1561:
if (!player.hasNpc) {
GameEngine.npcHandler.spawnNpc3(player, Pets.summonItemId(itemId),
player.absX, player.absY - 1, player.heightLevel, 0, 120, 25, 200,
200, false, false, true);
player.getItemAssistant().deleteItem(itemId, slot,
player.playerItemsN[slot]);
player.hasNpc = true;
player.getPlayerAssistant().followPlayer();
player.getPacketSender().sendMessage("You drop your Cat.");
} else {
player.getPacketSender().sendMessage(
"You already dropped your Cat.");
}
break;
case 1562:
if (!player.hasNpc) {
GameEngine.npcHandler.spawnNpc3(player, Pets.summonItemId(itemId),
player.absX, player.absY - 1, player.heightLevel, 0, 120, 25, 200,
200, false, false, true);
player.getItemAssistant().deleteItem(itemId, slot,
player.playerItemsN[slot]);
player.hasNpc = true;
player.getPlayerAssistant().followPlayer();
player.getPacketSender().sendMessage("You drop your Cat.");
} else {
player.getPacketSender().sendMessage(
"You already dropped your Cat.");
}
break;
case 1563:
if (!player.hasNpc) {
GameEngine.npcHandler.spawnNpc3(player, Pets.summonItemId(itemId),
player.absX, player.absY - 1, player.heightLevel, 0, 120, 25, 200,
200, false, false, true);
player.getItemAssistant().deleteItem(itemId, slot,
player.playerItemsN[slot]);
player.hasNpc = true;
player.getPlayerAssistant().followPlayer();
player.getPacketSender().sendMessage("You drop your Cat.");
} else {
player.getPacketSender().sendMessage(
"You already dropped your Cat.");
}
break;
case 1564:
if (!player.hasNpc) {
GameEngine.npcHandler.spawnNpc3(player, Pets.summonItemId(itemId),
player.absX, player.absY - 1, player.heightLevel, 0, 120, 25, 200,
200, false, false, true);
player.getItemAssistant().deleteItem(itemId, slot,
player.playerItemsN[slot]);
player.hasNpc = true;
player.getPlayerAssistant().followPlayer();
player.getPacketSender().sendMessage("You drop your Cat.");
} else {
player.getPacketSender().sendMessage(
"You already dropped your Cat.");
}
break;
case 1565:
if (!player.hasNpc) {
GameEngine.npcHandler.spawnNpc3(player, Pets.summonItemId(itemId),
player.absX, player.absY - 1, player.heightLevel, 0, 120, 25, 200,
200, false, false, true);
player.getItemAssistant().deleteItem(itemId, slot,
player.playerItemsN[slot]);
player.hasNpc = true;
player.getPlayerAssistant().followPlayer();
player.getPacketSender().sendMessage("You drop your Cat.");
} else {
player.getPacketSender().sendMessage(
"You already dropped your Cat.");
}
break;
case 7583:
if (!player.hasNpc) {
GameEngine.npcHandler.spawnNpc3(player, Pets.summonItemId(itemId),
player.absX, player.absY - 1, player.heightLevel, 0, 120, 25, 200,
200, false, false, true);
player.getItemAssistant().deleteItem(itemId, slot,
player.playerItemsN[slot]);
player.hasNpc = true;
player.getPlayerAssistant().followPlayer();
player.getPacketSender().sendMessage(
"You drop your Hell Kitten.");
} else {
player.getPacketSender().sendMessage(
"You already dropped your Hell Kitten.");
}
break;
case 1566:
if (!player.hasNpc) {
GameEngine.npcHandler.spawnNpc3(player, Pets.summonItemId(itemId),
player.absX, player.absY - 1, player.heightLevel, 0, 120, 25, 200,
200, false, false, true);
player.getItemAssistant().deleteItem(itemId, slot,
player.playerItemsN[slot]);
player.hasNpc = true;
player.getPlayerAssistant().followPlayer();
player.getPacketSender().sendMessage("You drop your Cat.");
} else {
player.getPacketSender().sendMessage(
"You already dropped your Cat.");
}
break;
case 7585:
if (!player.hasNpc) {
GameEngine.npcHandler.spawnNpc3(player, Pets.summonItemId(itemId),
player.absX, player.absY - 1, player.heightLevel, 0, 120, 25, 200,
200, false, false, true);
player.getItemAssistant().deleteItem(itemId, slot,
player.playerItemsN[slot]);
player.hasNpc = true;
player.getPlayerAssistant().followPlayer();
player.getPacketSender().sendMessage(
"You drop your Hell Kitten.");
} else {
player.getPacketSender().sendMessage(
"You already dropped your Hell Kitten.");
}
break;
case 4045:
if (CastleWars.isInCw(player)) {
int explosiveHit = 15;
@@ -294,22 +84,6 @@ public class DropItem implements PacketType {
player.getPacketSender().sendMessage("You can't do that! Your not in castle wars!");
}
break;
case 7584:
if (!player.hasNpc) {
GameEngine.npcHandler.spawnNpc3(player, Pets.summonItemId(itemId),
player.absX, player.absY - 1, player.heightLevel, 0, 120, 25, 200,
200, false, false, true);
player.getItemAssistant().deleteItem(itemId, slot,
player.playerItemsN[slot]);
player.hasNpc = true;
player.getPlayerAssistant().followPlayer();
player.getPacketSender().sendMessage(
"You drop your Hell Kitten.");
} else {
player.getPacketSender().sendMessage(
"You already dropped your Hell Kitten.");
}
break;
}
boolean droppable = true;
@@ -322,7 +96,7 @@ public class DropItem implements PacketType {
for (int p : Pets.CAT_ITEMS) {
if (p == itemId) {
if (player.hasNpc == true) {
if (player.hasNpc) {
droppable = false;
break;
}
@@ -357,7 +131,7 @@ public class DropItem implements PacketType {
}
} else {
player.getPacketSender().sendMessage(
"This items cannot be dropped.");
"This item cannot be dropped.");
}
}
}
@@ -23,7 +23,7 @@ public class ItemOnNpc implements PacketType {
player.getPacketSender().sendMessage("Your inventory is full.");
return;
}
if (player == null || player.disconnected == true || !player.getItemAssistant().playerHasItem(itemId, 1, slot) || NpcHandler.npcs[i] == null || NpcHandler.npcs[i].isDead || player.isDead || player.isTeleporting) {
if (player == null || player.disconnected || !player.getItemAssistant().playerHasItem(itemId, 1, slot) || NpcHandler.npcs[i] == null || NpcHandler.npcs[i].isDead || player.isDead || player.isTeleporting) {
return;
}
player.faceNpc(i);
@@ -1,5 +1,6 @@
package com.rebotted.net.packets.impl;
import com.rebotted.game.content.combat.range.DwarfCannon;
import com.rebotted.game.content.skills.cooking.Cooking;
import com.rebotted.game.content.skills.cooking.CookingTutorialIsland;
import com.rebotted.game.content.skills.crafting.JewelryMaking;
@@ -108,6 +109,9 @@ public class ItemOnObject implements PacketType {
/*} else if (itemId == SilverCrafting.SILVER_BAR) {
Menus.sendSkillMenu(c, "silverCrafting");*/
}
if (itemId == 2353 || itemId == 4) {
DwarfCannon.makeBall(player);
}
break;
case 2452:
@@ -27,6 +27,14 @@ public class PickupItem implements PacketType {
player.pItemY = player.getInStream().readSignedWordBigEndian();
player.pItemId = player.getInStream().readUnsignedWord();
player.pItemX = player.getInStream().readSignedWordBigEndian();
if (player.getItemAssistant().freeSlots() < 1)
{
if (!(player.getItemAssistant().playerHasItem(player.pItemId) && player.getItemAssistant().isStackable(player.pItemId)))
{
player.getPacketSender().sendMessage("Not enough space in your inventory.");
return;
}
}
if (Math.abs(player.getX() - player.pItemX) > 25 || Math.abs(player.getY() - player.pItemY) > 25) {
player.resetWalkingQueue();
return;
@@ -51,7 +59,7 @@ public class PickupItem implements PacketType {
return;
}
for (LogData logData : LogData.values()) {
if (player.isFiremaking == true && player.pItemId == logData.getLogId()) {
if (player.isFiremaking && player.pItemId == logData.getLogId()) {
player.getPacketSender().sendMessage("You can't do that!");
Firemaking.stopFiremaking = true;
return;
@@ -64,34 +72,35 @@ public class PickupItem implements PacketType {
}
SkillHandler.resetSkills(player);
player.getCombatAssistant().resetPlayerAttack();
if (player.getX() == player.pItemX && player.getY() == player.pItemY
|| player.getX() - 1 == player.pItemX && player.getY() == player.pItemY
|| player.getY() - 1 == player.pItemY && player.getX() == player.pItemX
|| player.getX() + 1 == player.pItemX && player.getY() == player.pItemY
|| player.getY() + 1 == player.pItemY && player.getX() == player.pItemX) {
GameEngine.itemHandler.removeGroundItem(player, player.pItemId, player.pItemX,
player.pItemY, true);
player.getPacketSender().sendSound(SoundList.ITEM_PICKUP, 100, 0);
GlobalDropsHandler.pickup(player, player.pItemId, player.pItemX, player.pItemY);
} else {
player.walkingToItem = true;
player.soundDone = false;
CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if (!player.walkingToItem) {
container.stop();
}
if (player.getX() == player.pItemX && player.getY() == player.pItemY && player.walkingToItem) {
GameEngine.itemHandler.removeGroundItem(player, player.pItemId, player.pItemX, player.pItemY, true);
if ((player.getX() == player.pItemX && player.getY() == player.pItemY
|| player.getX() - 1 == player.pItemX && player.getY() == player.pItemY
|| player.getY() - 1 == player.pItemY && player.getX() == player.pItemX
|| player.getX() + 1 == player.pItemX && player.getY() == player.pItemY
|| player.getY() + 1 == player.pItemY && player.getX() == player.pItemX
||player.getX() == player.pItemX && player.getY() == player.pItemY) && player.walkingToItem) {
container.stop();
}
}
@Override
public void stop() {
player.walkingToItem = false;
}
}, 1);
}
@Override
public void stop() {
player.walkingToItem = false;
GameEngine.itemHandler.removeGroundItem(player, player.pItemId, player.pItemX, player.pItemY, true);
GlobalDropsHandler.pickup(player, player.pItemId, player.pItemX, player.pItemY);
if (!player.soundDone)
{
player.soundDone = true;
player.getPacketSender().sendSound(SoundList.ITEM_PICKUP, 100, 0);
}
}
}, 1);
}
}
@@ -18,13 +18,16 @@ public class Walking implements PacketType {
public void processPacket(Player player, int packetType, int packetSize) {
player.getDueling().checkDuelWalk();
if (player.playerIsBusy()) {
player.playerIsBusy = false;
}
if (player.canChangeAppearance) { //|| c.performingAction) {
return;
}
if (player.getCannon().settingUp) {
return;
}
if (player.isTeleporting == true) {
if (player.isTeleporting) {
player.isTeleporting = false;
}
if (player.playerSkilling[10]) {// fishing
@@ -39,13 +42,13 @@ public class Walking implements PacketType {
if (player.playerStun) {
return;
}
if (player.stopPlayer == true) {
if (player.stopPlayer) {
return;
}
if (player.isFiremaking == true) {
if (player.isFiremaking) {
player.isFiremaking = false;
}
if (player.stopPlayerPacket == true) {
if (player.stopPlayerPacket) {
return;
}
if (player.inTrade) {
@@ -62,10 +65,10 @@ public class Walking implements PacketType {
if (player.closeTutorialInterface == false && player.tutorialProgress == 36) {
player.getDialogueHandler().sendDialogues(3116, player.npcType);
}
if (player.gliderOpen == true) {
if (player.gliderOpen) {
player.gliderOpen = false;
}
if (player.isBanking == true) {
if (player.isBanking) {
player.isBanking = false;
}
if (player.canWalkTutorial == false && player.tutorialProgress < 36) {
@@ -130,26 +133,25 @@ public class Walking implements PacketType {
player.mageAllowed = true;
}
if (player.WildernessWarning == false && player.wildLevel > 0) {
if (!player.WildernessWarning && player.wildLevel > 0) {
player.resetWalkingQueue();
player.WildernessWarning = true;
player.getPacketSender().sendFrame126("WARNING!", 6940);
player.getPacketSender().showInterface(1908);
}
if(player.openDuel) {
Client o = (Client) PlayerHandler.players[player.duelingWith];
if(o != null) {
o.getDueling().declineDuel();
}
player.getDueling().declineDuel();
}
if((player.duelStatus >= 1 && player.duelStatus <= 4) || player.duelStatus == 6) {
if(player.duelStatus == 6) {
player.getDueling().claimStakedItems();
}
return;
}
if (player.openDuel && player.duelStatus <= 3) {
Client o = (Client) PlayerHandler.players[player.duelingWith];
if (o != null) {
o.getDueling().declineDuel();
}
player.getDueling().declineDuel();
}
if ((player.duelStatus >= 1 && player.duelStatus <= 4) || player.duelStatus == 6) {
if (player.duelStatus == 6) {
player.getDueling().claimStakedItems();
}
return;
}
if (player.respawnTimer > 3) {
return;
@@ -160,6 +162,53 @@ public class Walking implements PacketType {
if (packetType == 248) {
packetSize -= 14;
}
//
// if (player.clickToTele) {
// player.newWalkCmdSteps = (packetSize - 5) / 2;
// if (++player.newWalkCmdSteps > player.walkingQueueSize) {
// player.newWalkCmdSteps = 0;
// return;
// }
// player.getNewWalkCmdX()[0] = player.getNewWalkCmdY()[0] = 0;
// int firstStepX, firstStepY;
// firstStepX = player.getInStream().readSignedWordBigEndianA();
// for (int i = 1; i < player.newWalkCmdSteps; i++) {
// player.getNewWalkCmdX()[i] = player.getInStream().readSignedByte();
// player.getNewWalkCmdY()[i] = player.getInStream().readSignedByte();
// }
// firstStepY = player.getInStream().readSignedWordBigEndian();
// player.setNewWalkCmdIsRunning(player.getInStream().readSignedByteC() == 1 && player.playerEnergy > 0);
// for (int i1 = 0; i1 < player.newWalkCmdSteps; i1++) {
// player.getPlayerAssistant().movePlayer(player.getNewWalkCmdX()[i1] + firstStepX, player.getNewWalkCmdY()[i1] + firstStepY, player.heightLevel);
// player.getNewWalkCmdX()[i1] += firstStepX;
// player.getNewWalkCmdY()[i1] += firstStepY;
// }
// }
// else {
// player.getNewWalkCmdX()[0] = player.getNewWalkCmdY()[0] = 0;
// int steps = (packetSize - 5) / 2;
//
// int[][] path = new int[steps][2];
// int firstStepX = player.getInStream().readSignedWordBigEndianA();
// for (int i = 0; i < steps; i++) {
// path[i][0] = player.getInStream().readSignedByte();
// path[i][1] = player.getInStream().readSignedByte();
// }
// int firstStepY = player.getInStream().readSignedWordBigEndian();
// int x = firstStepX;
// int y = firstStepY;
// player.setNewWalkCmdIsRunning(player.isRunning2 && player.playerEnergy > 0);
// for (int i = 0; i < steps; i++) {
// path[i][0] += firstStepX;
// path[i][1] += firstStepY;
// x = path[i][0];
// y = path[i][1];
// }
// //System.out.println("Player has requested to walk to: "+x+","+y);
// player.getPlayerAssistant().playerWalk(x, y);
// }
// }
//}
player.newWalkCmdSteps = (packetSize - 5) / 2;
if (++player.newWalkCmdSteps > player.walkingQueueSize) {
player.newWalkCmdSteps = 0;
@@ -0,0 +1,9 @@
package com.rebotted.util;
/**
* Easy access to common interface IDs
*/
public class MainFrameIDs {
public static final int DEPOSIT_BOX = 4465;
public static final int BANK = 5292; //Might be incorrect!!
}
@@ -150,7 +150,7 @@ public class GlobalDropsHandler {
* @param c
* cord y
*/
public static void pickup(Player player2, int a, int b, int c) {
public static void pickup(Player player, int a, int b, int c) {
GlobalDrop drop = itemExists(a, b, c);
if (drop == null) {
return;
@@ -158,16 +158,20 @@ public class GlobalDropsHandler {
if (drop.isTaken()) {
return;
}
if (player2.getItemAssistant().freeSlots() > 0) {
player2.getItemAssistant().addItem(drop.getId(), drop.getAmount());
drop.setTakenAt(System.currentTimeMillis());
drop.setTaken(true);
for (Player player : PlayerHandler.players) {
Client cl = (Client) player;
if (cl != null) {
cl.getPacketSender().removeGroundItem(drop.getId(), drop.getX(), drop.getY(), drop.getAmount());
spawnedDrops.remove(drop);
}
if (player.getItemAssistant().freeSlots() < 1) {
if (!(player.getItemAssistant().playerHasItem(player.pItemId) && player.getItemAssistant().isStackable(player.pItemId))) {
player.getPacketSender().sendMessage("Not enough space in your inventory.");
return;
}
}
player.getItemAssistant().addItem(drop.getId(), drop.getAmount());
drop.setTakenAt(System.currentTimeMillis());
drop.setTaken(true);
for (Player playerLoop : PlayerHandler.players) {
Client cl = (Client) playerLoop;
if (cl != null) {
cl.getPacketSender().removeGroundItem(drop.getId(), drop.getX(), drop.getY(), drop.getAmount());
spawnedDrops.remove(drop);
}
}
}
@@ -1,12 +1,8 @@
package com.rebotted.world;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import com.rebotted.GameEngine;
import com.rebotted.game.content.skills.core.Mining;
import com.rebotted.game.content.skills.core.Woodcutting;
@@ -15,6 +11,7 @@ import com.rebotted.game.players.Client;
import com.rebotted.game.players.Player;
import com.rebotted.game.players.PlayerHandler;
import com.rebotted.util.Misc;
import com.rebotted.world.clip.Region;
/**
* @author Sanity
@@ -28,7 +25,7 @@ public class ObjectHandler {
public static List<Objects> removedObjects = new ArrayList<Objects>();
public ObjectHandler() {
loadGlobalObjects("./data/cfg/global-objects.cfg");
}
public Objects getObjectByPosition(int x, int y) {
@@ -135,6 +132,7 @@ public class ObjectHandler {
* Creates the object for anyone who is within 60 squares of the object
**/
public void placeObject(Objects o) {
Region.addClipping(o.getObjectX(), o.getObjectY(), o.getObjectHeight(), 0);
for (Player p : PlayerHandler.players) {
if (p != null) {
Client person = (Client) p;
@@ -189,77 +187,6 @@ public class ObjectHandler {
}
}
public boolean loadGlobalObjects(String fileName) {
String line = "";
String token = "";
String token2 = "";
String token2_2 = "";
String[] token3 = new String[10];
boolean EndOfFile = false;
BufferedReader objectFile = null;
try {
objectFile = new BufferedReader(new FileReader("./" + fileName));
} catch (FileNotFoundException fileex) {
Misc.println(fileName + ": file not found.");
return false;
}
try {
line = objectFile.readLine();
} catch (IOException ioexception) {
Misc.println(fileName + ": error loading file.");
try {
objectFile.close();
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
while (EndOfFile == false && line != null) {
line = line.trim();
int spot = line.indexOf("=");
if (spot > -1) {
token = line.substring(0, spot);
token = token.trim();
token2 = line.substring(spot + 1);
token2 = token2.trim();
token2_2 = token2.replaceAll("\t\t", "\t");
token2_2 = token2_2.replaceAll("\t\t", "\t");
token2_2 = token2_2.replaceAll("\t\t", "\t");
token2_2 = token2_2.replaceAll("\t\t", "\t");
token2_2 = token2_2.replaceAll("\t\t", "\t");
token3 = token2_2.split("\t");
if (token.equals("object")) {
Objects object = new Objects(Integer.parseInt(token3[0]),
Integer.parseInt(token3[1]),
Integer.parseInt(token3[2]),
Integer.parseInt(token3[3]),
Integer.parseInt(token3[4]),
Integer.parseInt(token3[5]), 0);
addObject(object);
}
} else {
if (line.equals("[ENDOFOBJECTLIST]")) {
try {
objectFile.close();
} catch (IOException ioexception) {
}
//return true;
}
}
try {
line = objectFile.readLine();
} catch (IOException ioexception1) {
EndOfFile = true;
}
}
try {
objectFile.close();
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
public final int IN_USE_ID = 14825;
public boolean isObelisk(int id) {
@@ -184,11 +184,11 @@ public class ObjectManager {
public void loadCustomSpawns(Player c) {
c.getPacketSender().checkObjectSpawn(2474, 3233, 9312, 0, 10);
if (c.rope == true) {
if (c.rope) {
c.getPacketSender().object(3828, 3227, 3108, 0, 0, 10);
Region.addObject(3828, 3227, 3108, 0, 10, 0, false);
}
if (c.rope2 == true) {
if (c.rope2) {
c.getPacketSender().object(3828, 3509, 9497, 2, 0, 10);
Region.addObject(3828, 3509, 9497, 2, 10, 0, false);
}
@@ -62,6 +62,27 @@ public class Region {
clips[height][x - regionAbsX][y - regionAbsY] |= shift;
}
private void removeClip(int x, int y, int height) {
final int regionAbsX = (id >> 8) * 64;
final int regionAbsY = (id & 0xff) * 64;
if (clips[height] == null) {
clips[height] = new int[64][64];
}
clips[height][x - regionAbsX][y - regionAbsY] = 0;
}
public static void removeClipping(int x, int y, int height) {
final int regionX = x >> 3;
final int regionY = y >> 3;
final int regionId = ((regionX / 8) << 8) + (regionY / 8);
for (Region r : regions) {
if (r.id() == regionId) {
r.removeClip(x, y, height);
break;
}
}
}
private void addProjectileClip(int x, int y, int height, int shift) {
int regionAbsX = (id >> 8) * 64;
int regionAbsY = (id & 0xff) * 64;
@@ -268,7 +289,7 @@ public class Region {
return projectileClips[height][x - regionAbsX][y - regionAbsY];
}
private static void addClipping(int x, int y, int height, int shift) {
public static void addClipping(int x, int y, int height, int shift) {
int regionX = x >> 3;
int regionY = y >> 3;
int regionId = (regionX / 8 << 8) + regionY / 8;
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