Compare commits

..

66 Commits

Author SHA1 Message Date
dginovker 9272195db6 Merge branch 'master' of https://github.com/dginovker/2006rebotted 2020-01-01 17:58:04 -05:00
dginovker 3437877fb2 Made creating a new acc more obvious 2020-01-01 17:57:42 -05:00
MitchvanWijngaarden 33ef596bd3 Closes #343. Allows multiple players to steal from a stall at the same tick. (#344) 2020-01-01 12:51:12 -05:00
Mr Extremez d1c2150c60 Random stuff (#342)
- added poison arrows to usable arrows
- cleaned up some code
- changed ardougne tele to correct coords
- enabled pest control (although it needs a lot of work still)
- fixed some typos
- made beads drop a bit more often, so its more accurate like real rs
2019-12-31 12:42:53 -05:00
dginovker e8bfe7f88a Fix ::Stuck & stacktrace (regression) 2019-12-30 23:47:23 -05:00
Gptaqbc e88c5eaca8 Fixed the delay on banking a non stackable item (#341)
Brought back old code as what I previously did affected the time it takes to bank items.
2019-12-30 23:25:01 -05:00
DavidVarbit 1b5f185944 * Fix: Runes are consumed even if you cant tele from wildy after level 20 #337 (#340)
* Cleaned up Spell teleports
2019-12-30 18:53:09 -05:00
Gptaqbc c27e629da2 Bank stuff (#339)
* Fixed dcing on picking up items when inventory is full that I introduced

* Added Shantay Pass bank area and changed Jukats shop stock
2019-12-30 15:37:27 -05:00
dginovker bd97bdca3c Quick compile 2019-12-30 13:48:25 -05:00
Gptaqbc 6ce09f3091 Fixed dcing on picking up items when inventory is full that I introduced (#338) 2019-12-30 13:45:05 -05:00
dginovker e6e18efe34 December 30th update early :) 2019-12-29 20:28:42 -05:00
Daniel Ginovker c87f135e97 Fixed some items dcing client (#330) 2019-12-27 12:47:56 -05:00
dginovker 54dc827dfa Tee output so we can see if there's a server crash 2019-12-27 12:46:34 -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
dginovker 37322d4874 Latest updates 2019-12-12 23:11:24 -05:00
Josh Shippam b94157f01b Remove Accidentally Added Import (#285) 2019-12-13 02:34:23 +00:00
Danial c1a5cf449c Shop fixes (#284)
* Update ShopAssistant.java

* Fixup fish selling/buying

* fixup

* tidy up

* fixup 0 stock items being removed
2019-12-13 01:07:44 +00:00
Josh Shippam 23951e9af6 Implement Ring Of Forging (#283) 2019-12-13 01:05:25 +00:00
Danial 2d58593be9 Fixup smelting (#281)
* Fixup smelting

* Move iron fail check, show message

* revert

* More smithing refactoring
2019-12-13 00:37:13 +00:00
Danial 9b160452ad Update Commands (#280)
* Show commands in interface

* Update players command, add playershops command

* Remove null command

* Update Commands.class
2019-12-13 00:36:18 +00:00
dginovker f39993e3d9 Latest compile + jars 2019-12-12 04:54:04 -05:00
Mr Extremez 6ad9d1f7e9 Random fixes (#273)
- Cant open nest if you do not have space
- Added working yo yo
- Added monks robe spawns
- Added ability to make god pages
- Removed a few warnings

closes #265
closes #262
closes #259
closes #243
2019-12-12 04:32:56 -05:00
Danial 8ec8a92d20 Fix for boots of lightness (#272) 2019-12-12 04:32:06 -05:00
Gptaqbc c891e4741e Added Winter theme and fixed couple items that werent wore in the correct slot (#271)
Added Winter theme and fixed couple items that werent wore in the correct slot
2019-12-12 04:31:21 -05:00
Daniel Ginovker 64ae22188f Small shop QoL (#267)
* Shop command clarification

* small syntax
2019-12-11 00:43:58 -05:00
244 changed files with 3078 additions and 6412 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.
Binary file not shown.
@@ -34,6 +34,4 @@ public class ClientSettings {
public static final BigInteger RSA_MODULUS = new BigInteger("91553247461173033466542043374346300088148707506479543786501537350363031301992107112953015516557748875487935404852620239974482067336878286174236183516364787082711186740254168914127361643305190640280157664988536979163450791820893999053469529344247707567448479470137716627440246788713008490213212272520901741443");
public static final BigInteger RSA_EXPONENT = new BigInteger("65537");
}
+7
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,6 +28,10 @@ public final class Flo {
return;
} else if (i == 1) {
anInt390 = stream.read3Bytes();
Calendar date = new GregorianCalendar();
if ((date.get(Calendar.MONTH) + 1) == 12) {
anInt390 = 0xffffff;
}
method262(anInt390);
} else if (i == 2) {
anInt391 = stream.readUnsignedByte();
+9 -18
View File
@@ -393,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++;
}
@@ -4791,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);
@@ -5978,7 +5970,6 @@ public class Game extends RSApplet {
}
}
int j3 = j2;
int k3 = j1;
anIntArrayArray901[j2][j1] = 99;
@@ -9512,13 +9503,13 @@ public class Game extends RSApplet {
if (loginScreenState == 3) {
chatTextDrawingArea.method382(0xffff00, c / 2, "Create a free account", c1 / 2 - 60, true);
int k = c1 / 2 - 35;
chatTextDrawingArea.method382(0xffffff, c / 2, "To create a new account you need to", k, true);
chatTextDrawingArea.method382(0xffffff, c / 2, "To create a new account just click", k, true);
k += 15;
chatTextDrawingArea.method382(0xffffff, c / 2, "go back to the main " + ClientSettings.SERVER_NAME + " webpage", k, true);
chatTextDrawingArea.method382(0xffffff, c / 2, "\"Cancel\" below, and click \"Existing User\".", k, true);
k += 15;
chatTextDrawingArea.method382(0xffffff, c / 2, "and choose the red 'create account'", k, true);
chatTextDrawingArea.method382(0xffffff, c / 2, "Log in with any credentials you want and an", k, true);
k += 15;
chatTextDrawingArea.method382(0xffffff, c / 2, "button at the top right of that page.", k, true);
chatTextDrawingArea.method382(0xffffff, c / 2, "account will automatically be created for you.", k, true);
k += 15;
int j1 = c / 2;
int i2 = c1 / 2 + 50;
@@ -11536,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);
@@ -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]
@@ -11,6 +11,8 @@
1935:1:3211:3212
88:1:2654:9767
1931:1:3209:3214
542:1:3059:3488:1
544:1:3059:3487:1
1923:1:3208:3214
882:1:3205:3228
2313:1:3033:9849
+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
+1 -1
View File
@@ -103,7 +103,7 @@ shop = 102 Zanaris_General_Store 1 1 1931 30 1935 10 1735 10 1925 30 1923 10 590
shop = 103 Shantay_Store 2 2 1823 30 1831 30 1937 10 1921 10 1929 10 946 10 1833 10 1835 10 1837 10 2349 0 314 1000 2347 10 1925 30 1923 10 1935 10 954 100 1854 100
shop = 104 Varrock_Sword_Shop 2 2 1277 10 1279 10 1281 10 1283 10 1285 10 1287 10 1291 10 1293 10 1295 10 1297 10 1299 10 1301 10 1205 10 1203 10 1207 10 1209 10 1211 10
shop = 105 Taverly_Sword_Shop 2 2 1307 10 1309 10 1311 10 1313 10 1315 10 1317 10
shop = 106 Jukats_Sword_Shop 2 2 1305 10 1215 30
shop = 106 Jukats_Sword_Shop 2 2 1305 2 1215 2
shop = 107 Oziachs_Armour 2 2 1127 10 1135 10
shop = 108 Fur_Trader 2 2 948 10 958 10
shop = 109 Slayer_Shop 2 2 4155 10 4166 10 4161 20 6696 20 7051 10 4551 10 7159 10 6720 10 4168 10 4164 10 4158 10 4172 50000 4170 10 7432 10 7421 1000 4162 10 4156 10
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
+1 -1
View File
@@ -4,5 +4,5 @@ for i in {0..50}
do
rm -rf com/
cp -r ../CompiledServer/production/2006rebotted/com .
java -Xmx15G -cp ".:./libs/*" com.rebotted.GameEngine
java -Xmx15G -cp ".:./libs/*" com.rebotted.GameEngine | tee -a server_running_output.txt
done
@@ -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,11 +32,13 @@ 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;
}
player.getPacketSender().sendMessage("Shop commands- ::withdrawshop, ::closeshop");
Client playerShop = getPlayerShop(player);
if (playerShop == null) {
@@ -61,7 +61,10 @@ 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) {
if (PestControl.npcIsPCMonster(NpcHandler.npcs[i].npcType) || PestControl.isPCPortal(NpcHandler.npcs[i].npcType)) {
return;
}
c.getPacketSender().sendSound(CombatSounds.getNpcBlockSound(NpcHandler.npcs[c.oldNpcIndex].npcType), 100, 0);
}
NpcHandler.npcs[i].facePlayer(c.playerId);
@@ -152,7 +155,7 @@ public class CombatAssistant {
c.getPlayerAssistant().refreshSkill(4);
}
if (damage > 0) {
if (NpcHandler.npcs[i].npcType >= 3777 && NpcHandler.npcs[i].npcType <= 3780 || PestControl.npcIsPCMonster(NpcHandler.npcs[i].npcType)) {
if (PestControl.npcIsPCMonster(NpcHandler.npcs[i].npcType) || PestControl.isPCPortal(NpcHandler.npcs[i].npcType)) {
c.pcDamage += damage;
}
}
@@ -232,7 +235,7 @@ public class CombatAssistant {
c.getPlayerAssistant().refreshSkill(6);
if (damage > 0) {
if (NpcHandler.npcs[i].npcType >= 3777 && NpcHandler.npcs[i].npcType <= 3780 || PestControl.npcIsPCMonster(NpcHandler.npcs[i].npcType)) {
if (PestControl.npcIsPCMonster(NpcHandler.npcs[i].npcType) || PestControl.isPCPortal(NpcHandler.npcs[i].npcType)) {
c.pcDamage += damage;
}
}
@@ -353,7 +356,7 @@ public class CombatAssistant {
}
}
if (damage > 0) {
if (NpcHandler.npcs[i].npcType >= 3777 && NpcHandler.npcs[i].npcType <= 3780 || PestControl.npcIsPCMonster(NpcHandler.npcs[i].npcType)) {
if (PestControl.npcIsPCMonster(NpcHandler.npcs[i].npcType) || PestControl.isPCPortal(NpcHandler.npcs[i].npcType)) {
c.pcDamage += damage;
}
}
@@ -569,7 +572,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 +647,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 +2024,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 +2152,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;
@@ -2,15 +2,9 @@ package com.rebotted.game.content.combat.magic;
import com.rebotted.game.content.randomevents.RandomEventHandler;
import com.rebotted.game.players.Player;
import com.rebotted.util.Misc;
public class MagicTeleports {
public static final int AIR_RUNE = 556, FIRE_RUNE = 554,
WATER_RUNE = 555, EARTH_RUNE = 557,
LAW_RUNE = 563, BLOOD_RUNE = 565,
SOUL_RUNE = 566, BANANA = 1963;
public static void handleLoginText(Player player) {
player.getPacketSender().sendFrame126("Level 25: Varrock Teleport", 1300);
player.getPacketSender().sendFrame126("Level 31: Lumbridge Teleport", 1325);
@@ -24,402 +18,44 @@ public class MagicTeleports {
player.getPacketSender().sendFrame126("Level 78: Dareeyak Teleport", 13071);
}
/**
* Modern Teleports
*/
public static final int VARROCK_X = 3213, VARROCK_Y = 3423;
public static final int LUMBRIDGE_X = 3222, LUMBRIDGE_Y = 3218;
public static final int FALADOR_X = 2964, FALADOR_Y = 3378;
public static final int CAMELOT_X = 2757, CAMELOT_Y = 3479;
public static final int ARDOUGNE_X = 2662, ARDOUGNE_Y = 3305;
public static final int WATCHTOWER_X = 2547, WATCHTOWER_Y = 3112;
public static final int TROLLHEIM_X = 2910, TROLLHEIM_Y = 3612;
public static final int APE_ATOLL_X = 2754, APE_ATOLL_Y = 2784;
/**
* Ancient Teleports
*/
public static final int PADDEWWA_X = 3098, PADDEWWA_Y = 9884;
public static final int SENNTISTEN_X = 3321, SENNTISTEN_Y = 3335;
public static final int KHARYRLL_X = 3493, KHARYRLL_Y = 3472;
public static final int LASSAR_X = 3006, LASSAR_Y = 3471;
public static final int DAREEYAK_X = 3161, DAREEYAK_Y = 3671;
public static final int CARRALLANGAR_X = 3157, CARRALLANGAR_Y = 3669;
public static final int ANNAKARL_X = 3286, ANNAKARL_Y = 3884;
public static final int GHORROCK_X = 2977, GHORROCK_Y = 3873;
public static final boolean MAGIC_LEVEL_REQUIRED = true, RUNES_REQUIRED = true;
public static boolean teleportCheck(Player player) {
public static void handleSpellTeleport(Player player, SpellTeleport teleport) {
if (player.teleTimer > 0) {
return false;
return;
}
return true;
}
public static void paddewwaTeleport(Player player) {
if (!teleportCheck(player)) {
if (player.wildLevel > 20) {
player.getPacketSender().sendMessage("You can't teleport above level 20 wilderness.");
return;
}
if (player.playerLevel[player.playerMagic] < teleport.getRequiredLevel()) {
player.getPacketSender().sendMessage("You need a magic level of " + teleport.getRequiredLevel() + " to cast this spell.");
return;
}
if (!CastRequirements.hasRunes(player, teleport.getRequiredRunes())) {
player.getPacketSender().sendMessage("You don't have the required runes to cast this spell.");
return;
}
RandomEventHandler.addRandom(player);
if (RUNES_REQUIRED) {
if (!CastRequirements.hasRunes(player, new int[][]{{LAW_RUNE, 2}, {FIRE_RUNE, 1}, {AIR_RUNE, 1}})) {
player.getPacketSender().sendMessage("You don't have the required runes to cast this spell.");
return;
}
}
if (MAGIC_LEVEL_REQUIRED) {
if (player.playerLevel[player.playerMagic] < 54) {
player.getPacketSender().sendMessage("You need a magic level of 54 to cast this spell.");
return;
}
}
CastRequirements.deleteRunes(player, new int[][]{{LAW_RUNE, 2}, {FIRE_RUNE, 1}, {AIR_RUNE, 1}});
player.getPlayerAssistant().startTeleport(PADDEWWA_X + Misc.random(2), PADDEWWA_Y - Misc.random(2), 0, "ancient");
player.getPlayerAssistant().addSkillXP(64, player.playerMagic);
CastRequirements.deleteRunes(player, teleport.getRequiredRunes());
player.getPlayerAssistant().startTeleport(teleport.getDestX(), teleport.getDestY(), teleport.getDestZ(), teleport.getType());
player.getPlayerAssistant().addSkillXP(teleport.getExperienceGained(), player.playerMagic);
}
public static void senntisenTeleport(Player player) {
if (!teleportCheck(player)) {
return;
}
RandomEventHandler.addRandom(player);
if (RUNES_REQUIRED) {
if (!CastRequirements.hasRunes(player, new int[][]{{LAW_RUNE, 2}, {SOUL_RUNE, 1}})) {
player.getPacketSender().sendMessage("You don't have the required runes to cast this spell.");
return;
}
}
if (MAGIC_LEVEL_REQUIRED) {
if (player.playerLevel[player.playerMagic] < 60) {
player.getPacketSender().sendMessage("You need a magic level of 60 to cast this spell.");
return;
}
}
CastRequirements.deleteRunes(player, new int[][]{{LAW_RUNE, 2}, {SOUL_RUNE, 1}});
player.getPlayerAssistant().startTeleport(SENNTISTEN_X + Misc.random(1), SENNTISTEN_Y - Misc.random(1), 0, "ancient");
player.getPlayerAssistant().addSkillXP(70, player.playerMagic);
}
public static void kharyllTeleport(Player player) {
if (!teleportCheck(player)) {
return;
}
RandomEventHandler.addRandom(player);
if (RUNES_REQUIRED) {
if (!CastRequirements.hasRunes(player, new int[][]{{LAW_RUNE, 2}, {BLOOD_RUNE, 1}})) {
player.getPacketSender().sendMessage("You don't have the required runes to cast this spell.");
return;
}
}
if (MAGIC_LEVEL_REQUIRED) {
if (player.playerLevel[player.playerMagic] < 66) {
player.getPacketSender().sendMessage("You need a magic level of 66 to cast this spell.");
return;
}
}
CastRequirements.deleteRunes(player, new int[][]{{LAW_RUNE, 2}, {BLOOD_RUNE, 1}});
player.getPlayerAssistant().startTeleport(KHARYRLL_X, KHARYRLL_Y, 0, "ancient");
player.getPlayerAssistant().addSkillXP(76, player.playerMagic);
}
public static void lassarTeleport(Player player) {
if (!teleportCheck(player)) {
return;
}
RandomEventHandler.addRandom(player);
if (RUNES_REQUIRED) {
if (!CastRequirements.hasRunes(player, new int[][]{{LAW_RUNE, 2}, {WATER_RUNE, 4}})) {
player.getPacketSender().sendMessage("You don't have the required runes to cast this spell.");
return;
}
}
if (MAGIC_LEVEL_REQUIRED) {
if (player.playerLevel[player.playerMagic] < 72) {
player.getPacketSender().sendMessage("You need a magic level of 72 to cast this spell.");
return;
}
}
CastRequirements.deleteRunes(player, new int[][]{{LAW_RUNE, 2}, {WATER_RUNE, 4}});
player.getPlayerAssistant().startTeleport(LASSAR_X + Misc.random(2), LASSAR_Y - Misc.random(2), 0, "ancient");
player.getPlayerAssistant().addSkillXP(82, player.playerMagic);
}
public static void dareeyakTeleport(Player player) {
if (!teleportCheck(player)) {
return;
}
RandomEventHandler.addRandom(player);
if (RUNES_REQUIRED) {
if (!CastRequirements.hasRunes(player, new int[][]{{LAW_RUNE, 2}, {FIRE_RUNE, 3}, {AIR_RUNE, 2}})) {
player.getPacketSender().sendMessage("You don't have the required runes to cast this spell.");
return;
}
}
if (MAGIC_LEVEL_REQUIRED) {
if (player.playerLevel[player.playerMagic] < 78) {
player.getPacketSender().sendMessage("You need a magic level of 78 to cast this spell.");
return;
}
}
CastRequirements.deleteRunes(player, new int[][]{{LAW_RUNE, 2}, {FIRE_RUNE, 3}, {AIR_RUNE, 2}});
player.getPlayerAssistant().startTeleport(
DAREEYAK_X + Misc.random(1),
DAREEYAK_Y - Misc.random(1), 0, "ancient");
player.getPlayerAssistant().addSkillXP(88, player.playerMagic);
}
public static void carrallangarTeleport(Player player) {
if (!teleportCheck(player)) {
return;
}
RandomEventHandler.addRandom(player);
if (RUNES_REQUIRED) {
if (!CastRequirements.hasRunes(player, new int[][]{{LAW_RUNE, 2}, {SOUL_RUNE, 2}})) {
player.getPacketSender()
.sendMessage(
"You don't have the required runes to cast this spell.");
return;
}
}
if (MAGIC_LEVEL_REQUIRED) {
if (player.playerLevel[player.playerMagic] < 84) {
player.getPacketSender().sendMessage("You need a magic level of 84 to cast this spell.");
return;
}
}
CastRequirements.deleteRunes(player, new int[][]{{LAW_RUNE, 2}, {SOUL_RUNE, 2}});
player.getPlayerAssistant().startTeleport(CARRALLANGAR_X + Misc.random(2), CARRALLANGAR_Y - Misc.random(2), 0, "ancient");
player.getPlayerAssistant().addSkillXP(94, player.playerMagic);
}
public static void annakarlTeleport(Player player) {
if (!teleportCheck(player)) {
return;
}
RandomEventHandler.addRandom(player);
if (RUNES_REQUIRED) {
if (!CastRequirements.hasRunes(player, new int[][]{{LAW_RUNE, 2}, {BLOOD_RUNE, 2}})) {
player.getPacketSender().sendMessage("You don't have the required runes to cast this spell.");
return;
}
}
if (MAGIC_LEVEL_REQUIRED) {
if (player.playerLevel[player.playerMagic] < 90) {
player.getPacketSender().sendMessage("You need a magic level of 90 to cast this spell.");
return;
}
}
CastRequirements.deleteRunes(player, new int[][]{{LAW_RUNE, 2}, {BLOOD_RUNE, 2}});
player.getPlayerAssistant().startTeleport(ANNAKARL_X + Misc.random(1), ANNAKARL_Y - Misc.random(1), 0, "ancient");
player.getPlayerAssistant().addSkillXP(100, player.playerMagic);
}
public static void ghorrockTeleport(Player player) {
if (!teleportCheck(player)) {
return;
}
RandomEventHandler.addRandom(player);
if (RUNES_REQUIRED) {
if (!CastRequirements.hasRunes(player, new int[][]{{LAW_RUNE, 2}, {WATER_RUNE, 8}})) {
player.getPacketSender().sendMessage("You don't have the required runes to cast this spell.");
return;
}
}
if (MAGIC_LEVEL_REQUIRED) {
if (player.playerLevel[player.playerMagic] < 96) {
player.getPacketSender().sendMessage("You need a magic level of 96 to cast this spell.");
return;
}
}
CastRequirements.deleteRunes(player, new int[][]{{LAW_RUNE, 2}, {WATER_RUNE, 8}});
player.getPlayerAssistant().startTeleport(GHORROCK_X + Misc.random(3),
GHORROCK_Y - Misc.random(3), 0, "ancient");
player.getPlayerAssistant().addSkillXP(106, player.playerMagic);
}
public static void varrockTeleport(Player player) {
if (!teleportCheck(player)) {
return;
}
RandomEventHandler.addRandom(player);
if (RUNES_REQUIRED) {
if (!CastRequirements.hasRunes(player, new int[][]{{LAW_RUNE, 1}, {FIRE_RUNE, 1}, {AIR_RUNE, 3}})) {
player.getPacketSender().sendMessage("You don't have the required runes to cast this spell.");
return;
}
}
if (MAGIC_LEVEL_REQUIRED) {
if (player.playerLevel[player.playerMagic] < 25) {
player.getPacketSender().sendMessage("You need a magic level of 25 to cast this spell.");
return;
}
}
CastRequirements.deleteRunes(player, new int[][]{{LAW_RUNE, 1}, {FIRE_RUNE, 1}, {AIR_RUNE, 3}});
player.getPlayerAssistant().startTeleport(VARROCK_X + Misc.random(2), VARROCK_Y - Misc.random(2), 0, "modern");
player.getPlayerAssistant().addSkillXP(35, player.playerMagic);
}
public static void lumbridgeTeleport(Player player) {
if (!teleportCheck(player)) {
return;
}
RandomEventHandler.addRandom(player);
if (RUNES_REQUIRED) {
if (!CastRequirements.hasRunes(player, new int[][]{{LAW_RUNE, 1}, {EARTH_RUNE, 1}, {AIR_RUNE, 3}})) {
player.getPacketSender().sendMessage("You don't have the required runes to cast this spell.");
return;
}
}
if (MAGIC_LEVEL_REQUIRED) {
if (player.playerLevel[player.playerMagic] < 31) {
player.getPacketSender().sendMessage("You need a magic level of 31 to cast this spell.");
return;
}
}
CastRequirements.deleteRunes(player, new int[][]{{LAW_RUNE, 1}, {EARTH_RUNE, 1}, {AIR_RUNE, 3}});
player.getPlayerAssistant().startTeleport(LUMBRIDGE_X, LUMBRIDGE_Y, 0, "modern");
player.getPlayerAssistant().addSkillXP(35, player.playerMagic);
}
public static void faladorTeleport(Player player) {
/*if (!teleportCheck(player)) {
return;
}*/
RandomEventHandler.addRandom(player);
if (RUNES_REQUIRED) {
if (!CastRequirements.hasRunes(player, new int[][]{{LAW_RUNE, 1}, {WATER_RUNE, 1}, {AIR_RUNE, 3}})) {
player.getPacketSender().sendMessage("You don't have the required runes to cast this spell.");
return;
}
}
if (MAGIC_LEVEL_REQUIRED) {
if (player.playerLevel[player.playerMagic] < 37) {
player.getPacketSender().sendMessage("You need a magic level of 37 to cast this spell.");
return;
}
}
CastRequirements.deleteRunes(player, new int[][]{{LAW_RUNE, 1}, {WATER_RUNE, 1}, {AIR_RUNE, 3}});
player.getPlayerAssistant().startTeleport(FALADOR_X + Misc.random(4), FALADOR_Y - Misc.random(4), 0, "modern");
player.getPlayerAssistant().addSkillXP(48, player.playerMagic);
}
public static void camelotTeleport(Player player) {
if (!teleportCheck(player)) {
return;
}
RandomEventHandler.addRandom(player);
if (RUNES_REQUIRED) {
if (!CastRequirements.hasRunes(player, new int[][]{{LAW_RUNE, 1}, {AIR_RUNE, 5}})) {
player.getPacketSender().sendMessage("You don't have the required runes to cast this spell.");
return;
}
}
if (MAGIC_LEVEL_REQUIRED) {
if (player.playerLevel[player.playerMagic] < 45) {
player.getPacketSender().sendMessage("You need a magic level of 45 to cast this spell.");
return;
}
}
CastRequirements.deleteRunes(player, new int[][]{{LAW_RUNE, 1}, {AIR_RUNE, 5}});
// 2757, 3479
player.getPlayerAssistant().startTeleport(CAMELOT_X + Misc.random(1), CAMELOT_Y - Misc.random(1), 0, "modern");
player.getPlayerAssistant().addSkillXP(55.5, player.playerMagic);
}
public static void ardougneTeleport(Player player) {
if (!teleportCheck(player)) {
return;
}
RandomEventHandler.addRandom(player);
if (RUNES_REQUIRED) {
if (!CastRequirements.hasRunes(player, new int[][]{{LAW_RUNE, 2}, {WATER_RUNE, 2}})) {
player.getPacketSender().sendMessage("You don't have the required runes to cast this spell.");
return;
}
}
if (MAGIC_LEVEL_REQUIRED) {
if (player.playerLevel[player.playerMagic] < 51) {
player.getPacketSender().sendMessage("You need a magic level of 51 to cast this spell.");
return;
}
}
CastRequirements.deleteRunes(player, new int[][]{{LAW_RUNE, 2}, {WATER_RUNE, 2}});
player.getPlayerAssistant().startTeleport(ARDOUGNE_X + Misc.random(4),
ARDOUGNE_Y - Misc.random(4), 0, "modern");
player.getPlayerAssistant().addSkillXP(61, player.playerMagic);
}
public static void watchTowerTeleport(Player player) {
if (!teleportCheck(player)) {
return;
}
RandomEventHandler.addRandom(player);
if (RUNES_REQUIRED) {
if (!CastRequirements.hasRunes(player, new int[][]{{LAW_RUNE, 2}, {EARTH_RUNE, 2}})) {
player.getPacketSender().sendMessage("You don't have the required runes to cast this spell.");
return;
}
}
if (MAGIC_LEVEL_REQUIRED) {
if (player.playerLevel[player.playerMagic] < 58) {
player.getPacketSender().sendMessage(
"You need a magic level of 58 to cast this spell.");
return;
}
}
CastRequirements.deleteRunes(player, new int[][]{{LAW_RUNE, 2}, {EARTH_RUNE, 2}});
player.getPlayerAssistant().startTeleport(WATCHTOWER_X, WATCHTOWER_Y, 1, "modern");
player.getPlayerAssistant().addSkillXP(68, player.playerMagic);
}
public static void trollhiemTeleport(Player player) {
if (!teleportCheck(player)) {
return;
}
RandomEventHandler.addRandom(player);
if (RUNES_REQUIRED) {
if (!CastRequirements.hasRunes(player, new int[][]{{LAW_RUNE, 2}, {FIRE_RUNE, 2}})) {
player.getPacketSender().sendMessage("You don't have the required runes to cast this spell.");
return;
}
}
if (MAGIC_LEVEL_REQUIRED) {
if (player.playerLevel[player.playerMagic] < 61) {
player.getPacketSender().sendMessage("You need a magic level of 61 to cast this spell.");
return;
}
}
CastRequirements.deleteRunes(player, new int[][]{{LAW_RUNE, 2}, {FIRE_RUNE, 2}});
player.getPlayerAssistant().startTeleport(2892 + Misc.random(2),
3679 - Misc.random(2), 0, "modern");
player.getPlayerAssistant().addSkillXP(68, player.playerMagic);
}
public static void apeAtollTeleport(Player player) {
if (!teleportCheck(player)) {
return;
}
RandomEventHandler.addRandom(player);
if (RUNES_REQUIRED) {
if (!CastRequirements.hasRunes(player, new int[][]{{LAW_RUNE, 2}, {FIRE_RUNE, 2}, {WATER_RUNE, 2}}) || !player.getItemAssistant().playerHasItem(BANANA, 1)) {
player.getPacketSender().sendMessage("You don't have the required items to cast this spell.");
return;
}
}
if (player.questPoints < 19) {
player.getPacketSender().sendMessage("You need " + 19 + " quest points to teleport here.");
return;
}
if (MAGIC_LEVEL_REQUIRED) {
if (player.playerLevel[player.playerMagic] < 64) {
player.getPacketSender().sendMessage("You need a magic level of 64 to cast this spell.");
return;
}
}
CastRequirements.deleteRunes(player, new int[][]{{LAW_RUNE, 2}, {FIRE_RUNE, 2}, {WATER_RUNE, 2}});
player.getItemAssistant().deleteItem(BANANA, 1);
player.getPlayerAssistant().startTeleport(2798 + Misc.random(1), 2798 - Misc.random(1), 1, "modern");
player.getPlayerAssistant().addSkillXP(76, player.playerMagic);
}
}
@@ -0,0 +1,82 @@
package com.rebotted.game.content.combat.magic;
public enum SpellTeleport {
VARROCK(25, 4140, 35, 3213, 3422, 0, new int[][]{{563, 1}, {554, 1}, {556, 3}}, "modern"),
LUMBRIDGE(31,4143, 41, 3222, 3218, 0, new int[][]{{563, 1}, {557, 1}, {556, 3}}, "modern"),
FALADOR(37, 4146, 48, 2965, 3378, 0, new int[][]{{563, 1}, {555, 1}, {556, 3}}, "modern"),
CAMELOT(45, 4150, 55.5, 2757, 3479, 0, new int[][]{{563, 1}, {556, 5}}, "modern"),
ARDOUGNE(51, 6004, 61, 2662, 3304, 0, new int[][]{{563, 2}, {555, 2}}, "modern"),
WATCHTOWER(58, 6005, 68, 2547, 3112, 1, new int[][]{{563, 2}, {557, 2}}, "modern"),
TROLLHEIM(61, 29031, 68, 2893, 3679, 0, new int[][]{{563, 2}, {554, 2}}, "modern"),
APE_ATOLL(64, 72038, 74, 2798, 2798, 1, new int[][]{{563, 2}, {554, 2}, {555, 2}, {1963, 1}}, "modern"),
PADDEWWA(54, 50235, 64, 3098, 9884, 0, new int[][] {{563, 2}, {554, 1}, {556, 1}}, "ancient"),
SENNTISTEN(60, 50245, 70, 3321, 3335, 0, new int[][] {{566, 1}, {563, 2}}, "ancient"),
KHARYLL(66, 50253, 76, 3493, 3472, 0, new int[][] {{565, 1}, {563, 2}}, "ancient"),
LASSAR(72, 51005, 82, 3006, 3471, 0, new int[][] {{563, 2}, {555, 4}}, "ancient"),
DAREEYAK(78, 51013, 88, 3161, 3671, 0, new int[][] {{563, 2}, {554, 3}, {556, 2}}, "ancient"),
CARRALLANGAR(84, 51023, 94, 3157, 3669, 0, new int[][] {{566, 2}, {563, 2}}, "ancient"),
ANNAKARL(90, 51031, 100, 3286, 3884, 0, new int[][] {{565, 2}, {563, 2}}, "ancient"),
GHORROCK(96, 51039, 106, 2977, 3873, 0, new int[][] {{563, 2}, {555, 8}}, "ancient");
int requiredLevel, buttonId, destX, destY, destZ;
double experienceGained;
int[][] requiredRunes;
String type;
SpellTeleport(int requiredLevel, int buttonId, double experienceGained, int destX, int destY, int destZ, int[][] requiredRunes, String type) {
this.requiredLevel = requiredLevel;
this.buttonId = buttonId;
this.experienceGained = experienceGained;
this.destX = destX;
this.destY = destY;
this.destZ = destZ;
this.requiredRunes = requiredRunes;
this.type = type;
}
public int getRequiredLevel() {
return requiredLevel;
}
public int getButtonId() {
return buttonId;
}
public int getDestX() {
return destX;
}
public int getDestY() {
return destY;
}
public int getDestZ(){
return destZ;
}
public int[][] getRequiredRunes() {
return requiredRunes;
}
public double getExperienceGained() {
return experienceGained;
}
public String getType() {
return type;
}
public static SpellTeleport forButtonId(int id) {
for (SpellTeleport t : values()) {
if (t != null) {
if (t.getButtonId() == id) {
return t;
}
}
}
return null;
}
}
@@ -5,6 +5,7 @@ import com.rebotted.game.content.combat.CombatAssistant;
import com.rebotted.game.content.combat.CombatConstants;
import com.rebotted.game.content.combat.melee.MeleeData;
import com.rebotted.game.content.minigames.FightCaves;
import com.rebotted.game.content.minigames.PestControl;
import com.rebotted.game.content.music.sound.CombatSounds;
import com.rebotted.game.content.music.sound.SoundList;
import com.rebotted.game.npcs.NpcData;
@@ -182,14 +183,11 @@ public class NpcCombat {
NpcHandler.npcs[i].attackTimer = NpcData.getNpcDelay(i);
NpcHandler.npcs[i].hitDelayTimer = NpcData.getHitDelay(i);
NpcHandler.npcs[i].attackType = 0;
if (CombatConstants.COMBAT_SOUNDS
&& NpcHandler.npcs[i].npcType < 3177
&& NpcHandler.npcs[i].npcType > 3180) {
c.getPacketSender()
.sendSound(
CombatSounds
.getNpcAttackSounds(NpcHandler.npcs[i].npcType),
100, 0);
if (CombatConstants.COMBAT_SOUNDS) {
if (PestControl.npcIsPCMonster(NpcHandler.npcs[i].npcType) || PestControl.isPCPortal(NpcHandler.npcs[i].npcType)) {
return;
}
c.getPacketSender().sendSound(CombatSounds.getNpcAttackSounds(NpcHandler.npcs[i].npcType), 100, 0);
}
if (special) {
loadSpell2(i);
@@ -202,14 +200,11 @@ public class NpcCombat {
if (NpcHandler.multiAttacks(i)) {
multiAttackGfx(i, NpcHandler.npcs[i].projectileId);
NpcData.startAnimation(NpcEmotes.getAttackEmote(i), i);
if (CombatConstants.COMBAT_SOUNDS
&& NpcHandler.npcs[i].npcType < 3177
&& NpcHandler.npcs[i].npcType > 3180) {
c.getPacketSender()
.sendSound(
CombatSounds
.getNpcAttackSounds(NpcHandler.npcs[i].npcType),
100, 0);
if (CombatConstants.COMBAT_SOUNDS) {
if (PestControl.npcIsPCMonster(NpcHandler.npcs[i].npcType) || PestControl.isPCPortal(NpcHandler.npcs[i].npcType)) {
return;
}
c.getPacketSender().sendSound(CombatSounds.getNpcAttackSounds(NpcHandler.npcs[i].npcType), 100, 0);
}
NpcHandler.npcs[i].oldIndex = c.playerId;
return;
@@ -241,14 +236,11 @@ 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) {
c.getPacketSender()
.sendSound(
CombatSounds
.getNpcAttackSounds(NpcHandler.npcs[i].npcType),
100, 0);
if (CombatConstants.COMBAT_SOUNDS) {
if (PestControl.npcIsPCMonster(NpcHandler.npcs[i].npcType) || PestControl.isPCPortal(NpcHandler.npcs[i].npcType)) {
return;
}
c.getPacketSender().sendSound(CombatSounds.getNpcAttackSounds(NpcHandler.npcs[i].npcType), 100, 0);
}
c.getPacketSender().closeAllWindows();
}
@@ -282,6 +274,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 +581,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 +601,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 +623,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 +632,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 +673,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;
}
}
@@ -8,9 +8,7 @@ import com.rebotted.game.content.combat.CombatConstants;
import com.rebotted.game.npcs.Npc;
import com.rebotted.game.npcs.NpcHandler;
import com.rebotted.game.objects.Objects;
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;
@@ -33,6 +31,8 @@ public class DwarfCannon {
private final int ballsID = 2;
public final int steelBarID = 2353;
public boolean settingUp = false;
private int setUpStage = 0;
@@ -53,8 +53,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 +124,7 @@ public class DwarfCannon {
if (setUpStage >= 4) {
container.stop();
setUpStage = 0;
player.CannonSetupStage = setUpStage;
settingUp = false;
return;
}
@@ -102,6 +141,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 +155,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 +183,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 +244,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 +277,7 @@ public class DwarfCannon {
}
public void shoot() {
if (justClicked == true) {
if (justClicked) {
return;
}
rotating = true;
@@ -261,7 +296,7 @@ public class DwarfCannon {
rotating = false;
e.stop();
}
if (rotating == true) {
if (rotating) {
rotation += 1;
rotateCannon();
shootNpcs();
@@ -313,13 +348,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 +378,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);
}
@@ -7,7 +7,7 @@ public class RangeData {
public final static int[] BOWS = { 9185, 839, 845, 847, 851, 855, 859, 841,
843, 849, 853, 857, 861, 4212, 4214, 4215, 11235, 4216, 4217, 4218,
4219, 4220, 4221, 4222, 4223, 6724, 4734, 4934, 4935, 4936, 4937 };
public final static int[] ARROWS = { 882, 884, 886, 888, 890, 892, 4740,
public final static int[] ARROWS = { 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 4740,
11212, 9140, 9141, 4142, 9143, 9144, 9240, 9241, 9242, 9243, 9244,
9245, 4150, 4160, 4172 };
public final static int[] NO_ARROW_DROP = { 4212, 4214, 4215, 4216, 4217,
@@ -50,10 +50,8 @@ public class RangeData {
case 3202:
case 3204:
return true;
default:
return false;
}
return false;
}
public static int correctBowAndArrows(Player c) {
@@ -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();
}
@@ -1,7 +1,6 @@
package com.rebotted.game.content.minigames;
import java.util.concurrent.CopyOnWriteArrayList;
import com.rebotted.GameConstants;
import com.rebotted.GameEngine;
import com.rebotted.game.content.combat.prayer.PrayerDrain;
@@ -51,12 +50,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 +138,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);
@@ -410,7 +403,9 @@ public class Dueling {
public void confirmDuel() {
Client o = (Client) PlayerHandler.players[player.duelingWith];
if (o == null) {
if (o == null || ((o.getDueling().stakedItems.size() + o.getDueling().otherStakedItems.size()) > player.getItemAssistant().freeSlots())) {
player.getPacketSender().sendMessage("Not enough inventory spaces.");
o.getPacketSender().sendMessage("Not enough inventory spaces.");
declineDuel();
return;
}
@@ -577,6 +572,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 +597,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 +623,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 +688,6 @@ public class Dueling {
resetDuel();
resetDuelItems();
PlayerSave.saveGame(player);
player.duelStatus = 0;
}
public void declineDuel() {
@@ -701,8 +702,10 @@ public class Dueling {
}
player.getPacketSender().closeAllWindows();
player.duelStatus = 0;
o.duelStatus = 0;
player.openDuel = false;
o.openDuel = false;
player.duelingWith = 0;
player.duelSpaceReq = 0;
player.duelRequested = false;
@@ -717,9 +720,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 +728,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();
@@ -52,6 +52,7 @@ public class PestControl {
public int ravager = 3742 + Misc.random(4);
public int torcher = 3752 + Misc.random(7);
public int splater = 3727 + Misc.random(4);
private final int[][] pcNPCData = { { 3777, 2628, 2591 }, // portal
{ 3778, 2680, 2588 }, // portal
@@ -150,40 +151,6 @@ public class PestControl {
}
}
/*
* private void setBoatInterface() { try { for (Client c :
* waitingBoat.keySet()) { if (c != null) { try { if (gameStarted) {
* c.getPlayerAssistant().sendString("Next Departure: " + (waitTimer +
* gameTimer)/60 + " minutes", 21120); } else {
* c.getPlayerAssistant().sendString("Next Departure: " + waitTimer + "",
* 21120); } c.getPlayerAssistant().sendString("Players Ready: " +
* playersInBoat() + "", 21121); c.getPlayerAssistant().sendString("(Need "
* + PLAYERS_REQUIRED + " to 25 players)", 21122);
* c.getPlayerAssistant().sendString("Points: " + c.pcPoints + "", 21123);
* switch (waitTimer) { case 60: c.getPacketDispatcher
* ().sendMessage("Next game will start in: 60 seconds."); break; case 30:
* c.
* getPacketDispatcher().sendMessage("Next game will start in: 30 seconds."
* ); break; } } catch (RuntimeException e) { // TODO Auto-generated catch
* block e.printStackTrace(); } } } } catch (RuntimeException e) {
* System.out.println("Failed to set interfaces"); e.printStackTrace(); } }
*/
/*
* private void setGameInterface() { for (Client player :
* gamePlayers.keySet()) { if (player != null) { for (int i = 0; i <
* portalHealth.length; i++) { if (portalHealth[i] > 0) {
* player.getPlayerAssistant().sendString("" + portalHealth[i] + "", 21111 +
* i); } else player.getPlayerAssistant().sendString("Dead", 21111 + i); }
* player.getPlayerAssistant().sendString("" + KNIGHTS_HEALTH, 21115);
* player.getPlayerAssistant().sendString("" + player.pcDamage, 21116); if
* (gameTimer > 60) {
* player.getPlayerAssistant().sendString("Time remaining: " +
* (gameTimer/60) + " minutes", 21117); } else {
* player.getPlayerAssistant().sendString("Time remaining: " + gameTimer +
* " seconds", 21117); } } } }
*/
/***
* Moving players to arena if there's enough players
*/
@@ -208,10 +175,10 @@ public class PestControl {
}
player.getPlayerAssistant().movePlayer(2656 + Misc.random3(3), 2614 - Misc.random3(4), 0);
player.getDialogueHandler().sendDialogues(599, 3790);
player.getPacketSender().sendMessage("The Pest Control Game has begun!");
player.getPacketSender().sendMessage("The Pest Control game has begun!");
player.npcCanAttack = true;
gamePlayers.put(player, team);
}
waitingBoat.clear();
}
@@ -322,14 +289,12 @@ public class PestControl {
player.poisonDamage = 0;
PrayerDrain.resetPrayers(player);
for (int i = 0; i < 24; i++) {
player.playerLevel[i] = player.getPlayerAssistant()
.getLevelForXP(player.playerXP[i]);
player.playerLevel[i] = player.getPlayerAssistant().getLevelForXP(player.playerXP[i]);
player.getPlayerAssistant().refreshSkill(i);
}
player.specAmount = 10;
player.pcDamage = 0;
player.getItemAssistant().addSpecialBar(
player.playerEquipment[player.playerWeapon]);
player.getItemAssistant().addSpecialBar(player.playerEquipment[player.playerWeapon]);
}
}
@@ -425,17 +390,21 @@ public class PestControl {
}
public static boolean npcIsPCMonster(int npcType) {
return npcType >= 3727 && npcType <= 3776;
return (npcType >= 3727 && npcType <= 3776);
}
public static boolean isPCPortal(int npcType) {
return (npcType >= 3777 && npcType <= 3780);
}
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, 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, 50, 20, 75, 50, true);
}
}
}
@@ -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)
@@ -13,10 +13,10 @@ public class BlackKnightsFortress {
client.getPacketSender().sendFrame126("I can start this quest by speaking to Sir Amik Varze in", 8147);
client.getPacketSender().sendFrame126("Falador Castle.", 8148);
client.getPacketSender().sendFrame126("", 8149);
client.getPacketSender().sendFrame126("QUEST REQUIREMENTS:", 8150);
client.getPacketSender().sendFrame126("Quest Requirements:", 8150);
client.getPacketSender().sendFrame126("12 Quest Points", 8151);
} else if (client.blackKnight == 1) {
client.getPacketSender().sendFrame126("@str@I've Talked with Sir Amik Varze", 8147);
client.getPacketSender().sendFrame126("@str@I've talked with Sir Amik Varze", 8147);
client.getPacketSender().sendFrame126("He wants me to kill 30 Black Knights and", 8148);
client.getPacketSender().sendFrame126("collect their notes.", 8149);
client.getPacketSender().sendFrame126("", 8150);
@@ -24,7 +24,7 @@ public class PiratesTreasure {
client.getPacketSender().sendFrame126("Port Sarim", 8148);
client.getPacketSender().sendFrame126("", 8149);
client.getPacketSender().sendFrame126(
"There are no minimum requirments.", 8150);
"There are no minimum requirements.", 8150);
} else if (client.pirateTreasure == 1) {
client.getPacketSender().sendFrame126("Pirate's Treasure", 8144);
client.getPacketSender().sendFrame126(
@@ -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();
}
@@ -25,16 +25,15 @@ public class Smelting extends SkillHandler {
* Handles Smelting data.
*/
public static int[][] data = {
// index ,lvl required, XP, item required, item2, COAL AMOUNT,
// Final item(BAR)
{ 1, 1, 6, COPPER, TIN, -1, 2349 }, // Bronze
// index ,lvl required, XP, primary item required, secondary item required, secondary item amount, output item(BAR)
{ 1, 1, 6, COPPER, TIN, 1, 2349 }, // Bronze
{ 2, 15, 12, IRON, -1, -1, 2351 }, // iron
{ 3, 20, 17, IRON, COAL, 2, 2353 }, // Steel
{ 4, 50, 30, MITH, COAL, 4, 2359 }, // Mith
{ 5, 70, 37, ADDY, COAL, 6, 2361 }, // Addy
{ 6, 85, 50, RUNE, COAL, 8, 2363 }, // Rune
{ 7, 20, 13, SILVER, -1, -1, 2355 }, // Silver
{ 8, 40, 22, GOLD, -1, -1, 2357 } // GOLD
{ 8, 40, 22, GOLD, -1, -1, 2357 }, // GOLD
};
/**
@@ -44,8 +43,7 @@ public class Smelting extends SkillHandler {
*/
public static void startSmelting(Player c, int object) {
for (int j = 0; j < SMELT_FRAME.length; j++) {
c.getPacketSender().sendFrame246(SMELT_FRAME[j], 150,
SMELT_BARS[j]);
c.getPacketSender().sendFrame246(SMELT_FRAME[j], 150, SMELT_BARS[j]);
}
c.getPacketSender().sendChatInterface(2400);
c.isSmelting = true;
@@ -70,30 +68,22 @@ public class Smelting extends SkillHandler {
private static void smeltBar(final Player c, int bartype) {
for (int i = 0; i < data.length; i++) {
if (bartype == data[i][0]) {
// Check player has the correct smithing level
if (c.playerLevel[c.playerSmithing] < data[i][1]) { // Smithing level
c.getDialogueHandler().sendStatement("You need a smithing level of at least "+ data[i][1] + " in order smelt this bar.");
return;
}
if (data[i][3] > 0 && data[i][4] > 0) { // All OTHER bars
if (!c.getItemAssistant().playerHasItem(data[i][3]) || !c.getItemAssistant().playerHasItem(data[i][4])) {
c.getPacketSender().sendMessage("You need an " + ItemAssistant.getItemName(data[i][3]).toLowerCase() + " and " + data[i][5] + " " + ItemAssistant.getItemName(data[i][4]).toLowerCase() + " to make this bar.");
c.getPacketSender().closeAllWindows();
return;
}
}
if (data[i][4] < 0) { // Iron bar, Gold & Silver requirements
// Check the player has all required items
if (data[i][4] <= 0) { // Bars with only a primary requirement
if (!c.getItemAssistant().playerHasItem(data[i][3])) {
c.getPacketSender().sendMessage("You need an " + ItemAssistant.getItemName(data[i][3]).toLowerCase() + " to make this bar.");
c.getPacketSender().sendMessage("You need " + ItemAssistant.getItemName(data[i][3]).toLowerCase() + " to make this bar.");
c.getPacketSender().closeAllWindows();
return;
}
}
if (data[i][5] > 0) { // Bars with more than 1 coal requirement
if (!c.getItemAssistant().playerHasItem(data[i][4], data[i][5])) {
c.getPacketSender().sendMessage("You need an " + ItemAssistant.getItemName(data[i][3]).toLowerCase() + " and " + data[i][5] + " coal ores to make this bar.");
} else { // Bars with a secondary requirement
if (!c.getItemAssistant().playerHasItem(data[i][3]) || !c.getItemAssistant().playerHasItem(data[i][4], data[i][5])) {
c.getPacketSender().sendMessage("You need 1 " + ItemAssistant.getItemName(data[i][3]).toLowerCase() + " and " + data[i][5] + " " + ItemAssistant.getItemName(data[i][4]).toLowerCase() + " to make this bar.");
c.getPacketSender().closeAllWindows();
return;
}
@@ -109,10 +99,10 @@ public class Smelting extends SkillHandler {
c.playerSkillProp[13][0] = data[i][0];// index
c.playerSkillProp[13][1] = data[i][1];// Level required
c.playerSkillProp[13][2] = data[i][2];// XP
c.playerSkillProp[13][3] = data[i][3];// item required
c.playerSkillProp[13][4] = data[i][4];// item required 2
c.playerSkillProp[13][5] = data[i][5];// coal amount
c.playerSkillProp[13][6] = data[i][6];// Final Item
c.playerSkillProp[13][3] = data[i][3];// primary item required
c.playerSkillProp[13][4] = data[i][4];// secondary item required
c.playerSkillProp[13][5] = data[i][5];// secondary item amount
c.playerSkillProp[13][6] = data[i][6];// output item
c.getPacketSender().closeAllWindows();
c.startAnimation(899);
@@ -122,45 +112,40 @@ public class Smelting extends SkillHandler {
@Override
public void execute(CycleEventContainer container) {
deleteTime(c);
// Remove primary item
c.getItemAssistant().deleteItem(c.playerSkillProp[13][3], 1);
if (c.playerSkillProp[13][5] == -1) {
c.getItemAssistant().deleteItem(c.playerSkillProp[13][4], 1);
}
if (c.playerSkillProp[13][5] > 0) {// if coal amount is > 0
// Check if required and remove secondary items
if (c.playerSkillProp[13][4] > 0 && c.playerSkillProp[13][5] > 0) {
c.getItemAssistant().deleteItem(c.playerSkillProp[13][4], c.playerSkillProp[13][5]);
}
if (c.playerSkillProp[13][3] == IRON && c.playerSkillProp[13][4] == -1 && Misc.random(100) >= 50) {
c.getPlayerAssistant().addSkillXP(c.playerSkillProp[13][2], c.playerSmithing);
c.getItemAssistant().addItem(c.playerSkillProp[13][6], 1);// item
c.getPacketSender().sendMessage("You receive an " + ItemAssistant.getItemName(c.playerSkillProp[13][6]).toLowerCase() + ".");
}
if (c.playerSkillProp[13][3] == IRON && c.playerSkillProp[13][4] == -1) {
// Ring of forging
if (c.playerEquipment[c.playerRing] == 2568) {
c.getPlayerAssistant().addSkillXP(c.playerSkillProp[13][2], c.playerSmithing);
c.getItemAssistant().addItem(c.playerSkillProp[13][6], 1);// item
c.getPacketSender().sendMessage("You receive an " + ItemAssistant.getItemName(c.playerSkillProp[13][6]).toLowerCase() + ".");
if (c.playerSkillProp[13][3] == GOLD && c.playerSkillProp[13][4] == -1 && c.playerEquipment[c.playerHands] == 776) {
c.getPacketSender().sendMessage("You receive an " + ItemAssistant.getItemName(c.playerSkillProp[13][6]).toLowerCase() + ".");
} else {
if (Misc.random(100) >= 50) {
c.getPlayerAssistant().addSkillXP(c.playerSkillProp[13][2], c.playerSmithing);
c.getItemAssistant().addItem(c.playerSkillProp[13][6], 1);// item
c.getPacketSender().sendMessage("You receive an " + ItemAssistant.getItemName(c.playerSkillProp[13][6]).toLowerCase() + ".");
} else {
c.getPacketSender().sendMessage("You failed to smelt the iron bar.");
}
}
} else if (c.playerSkillProp[13][3] == GOLD && c.playerEquipment[c.playerHands] == 776) {
c.getPacketSender().sendMessage("You receive a " + ItemAssistant.getItemName(c.playerSkillProp[13][6]).toLowerCase() + ".");
c.getPlayerAssistant().addSkillXP(56.2, c.playerSmithing);
c.getItemAssistant().addItem(c.playerSkillProp[13][6], 1);// item
} else {
if (c.playerSkillProp[13][3] != IRON) {
c.getPacketSender().sendMessage("You receive an " + ItemAssistant.getItemName(c.playerSkillProp[13][6]).toLowerCase() + ".");
c.getPlayerAssistant().addSkillXP(c.playerSkillProp[13][2], c.playerSmithing);
c.getItemAssistant().addItem(c.playerSkillProp[13][6], 1);// item
}
c.getPacketSender().sendMessage("You receive a " + ItemAssistant.getItemName(c.playerSkillProp[13][6]).toLowerCase() + ".");
c.getPlayerAssistant().addSkillXP(c.playerSkillProp[13][2], c.playerSmithing);
c.getItemAssistant().addItem(c.playerSkillProp[13][6], 1);// item
}
// ///////////////////////////////CHECKING//////////////////////
if (!c.getItemAssistant().playerHasItem(c.playerSkillProp[13][3], 1)) {
c.getPacketSender().sendMessage("You don't have enough ores to continue smelting!");
resetSmelting(c);
container.stop();
}
if (c.playerSkillProp[13][4] > 0) {
if (!c.getItemAssistant().playerHasItem(c.playerSkillProp[13][4], 1)) {
c.getPacketSender().sendMessage("You don't have enough ores to continue smelting!");
resetSmelting(c);
container.stop();
}
}
////////////////////// CHECKING //////////////////////
if (c.doAmount <= 0) {
resetSmelting(c);
container.stop();
@@ -173,6 +158,18 @@ public class Smelting extends SkillHandler {
resetSmelting(c);
container.stop();
}
if (!c.getItemAssistant().playerHasItem(c.playerSkillProp[13][3], 1)) {
c.getPacketSender().sendMessage("You don't have enough ores to continue smelting!");
resetSmelting(c);
container.stop();
}
if (c.playerSkillProp[13][4] > 0) {
if (!c.getItemAssistant().playerHasItem(c.playerSkillProp[13][4], c.playerSkillProp[13][5])) {
c.getPacketSender().sendMessage("You don't have enough ores to continue smelting!");
resetSmelting(c);
container.stop();
}
}
}
@@ -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");
@@ -10,7 +10,6 @@ import com.rebotted.game.content.skills.SkillHandler;
import com.rebotted.game.items.ItemAssistant;
import com.rebotted.game.items.ItemList;
import com.rebotted.game.npcs.NpcHandler;
import com.rebotted.game.objects.Object;
import com.rebotted.game.players.Player;
import com.rebotted.util.Misc;
@@ -18,30 +17,30 @@ public class Stalls {
public static enum stallData {
VEGETABLE_STALL(4706, 2, 10, 0, new int[] { 1965, 1 }),
BAKER_STALL(2561, 5, 16, 3, new int[] { 2309, 1 }, new int[] { 1891, 1 }, new int[] { 1895, 1 }),
TEA_STALL(635, 5, 16, 0, new int[] {712, 1 }),
SILK_STALL(2560, 20, 24, 2, new int[] { 950, 1 }),
WINE_STALL(14011, 22, 27, 0, new int[] { 1935, 1 }, new int[] {i("jug of water"), 1 }, new int[] { i("jug of wine"), 1 },
new int[] { i("grapes"), 1 }), SEED_STALL(7053, 27, 10, 0, new int[] { i("potato seed"), 1 }, new int[] {i("onion seed"), 1 },
new int[] { i("cabbage seed"), 1 }, new int[] {i("tomato seed"), 1 }, new int[] { i("sweetcorn seed"), 1 }, new int[] { i("strawberry seed"), 1 },
new int[] {i("watermelon seed"), 1 }, new int[] {i("barley seed"), 1 }, new int[] { i("jute seed"), 1 }, new int[] { i("marigold seed"), 1 },
new int[] {i("rosemary seed"), 1 }, new int[] {i("hammerstone seed"), 1 }, new int[] {i("asgarnain seed"), 1 }, new int[] {i("yanillian seed"), 1 },
new int[] {i("krandorian seed"), 1 }, new int[] {i("wildblood seed"), 1 }), FUR_STALL(2563, 35, 36, 0, new int[] { 6814, 1 }, new int[] { 958, 1 }),
FUR_STALL2(4278, 35, 36, 0, new int[] { 6814, 1 }, new int[] { 958, 1 }),
FISH_STALL(4705, 42, 42, 0, new int[] { 359, 1 }),
FISH_STALL2(4277, 42, 42, 0, new int[] { 359, 1 }),
SILVER_STALL(2565, 50, 54, 2, new int[] { 442, 1 }, new int[] { 2355, 1 }),
VEGETABLE_STALL(4706, 2, 10, 0, new int[] { 1965, 1 }),
BAKER_STALL(2561, 5, 16, 3, new int[] { 2309, 1 }, new int[] { 1891, 1 }, new int[] { 1895, 1 }),
TEA_STALL(635, 5, 16, 0, new int[] {712, 1 }),
SILK_STALL(2560, 20, 24, 2, new int[] { 950, 1 }),
WINE_STALL(14011, 22, 27, 0, new int[] { 1935, 1 }, new int[] {i("jug of water"), 1 }, new int[] { i("jug of wine"), 1 },
new int[] { i("grapes"), 1 }), SEED_STALL(7053, 27, 10, 0, new int[] { i("potato seed"), 1 }, new int[] {i("onion seed"), 1 },
new int[] { i("cabbage seed"), 1 }, new int[] {i("tomato seed"), 1 }, new int[] { i("sweetcorn seed"), 1 }, new int[] { i("strawberry seed"), 1 },
new int[] {i("watermelon seed"), 1 }, new int[] {i("barley seed"), 1 }, new int[] { i("jute seed"), 1 }, new int[] { i("marigold seed"), 1 },
new int[] {i("rosemary seed"), 1 }, new int[] {i("hammerstone seed"), 1 }, new int[] {i("asgarnain seed"), 1 }, new int[] {i("yanillian seed"), 1 },
new int[] {i("krandorian seed"), 1 }, new int[] {i("wildblood seed"), 1 }), FUR_STALL(2563, 35, 36, 0, new int[] { 6814, 1 }, new int[] { 958, 1 }),
FUR_STALL2(4278, 35, 36, 0, new int[] { 6814, 1 }, new int[] { 958, 1 }),
FISH_STALL(4705, 42, 42, 0, new int[] { 359, 1 }),
FISH_STALL2(4277, 42, 42, 0, new int[] { 359, 1 }),
SILVER_STALL(2565, 50, 54, 2, new int[] { 442, 1 }, new int[] { 2355, 1 }),
SPICE_STALL(2564, 65, 81.3, 0, new int[] { 2007, 1 }, new int[] { 946, 1 }, new int[] { 1550, 1 }), GEM_STALL(2562, 75, 160, 3,
new int[] { 1617, 1 }, new int[] { 1619, 1 }, new int[] { 1621, 1 }, new int[] { 1623, 1 }),
new int[] { 1617, 1 }, new int[] { 1619, 1 }, new int[] { 1621, 1 }, new int[] { 1623, 1 }),
MAGIC_STALL(4877, 65, 100, 0, new int[] {i("air rune"), 1}, new int[] {i("water rune"), 1}, new int[] {i("fire rune"), 1}, new int[] {i("law rune"), 1}),
SCIMITAR_STALL(4878, 65, 100, 0, new int[] {i("iron scimitar"), 1}, new int[] {i("steel scimitar"), 1});
private int objectId, levelReq, face;
private int[][] stalls;
private double xp;
private long respawnTime;
private stallData(final int objectId, final int levelReq, final double xp, final int face, final int[]... stalls) {
this.objectId = objectId;
this.levelReq = levelReq;
@@ -72,7 +71,7 @@ public class Stalls {
}
}
public static int r(int random) {
return Misc.random(random);
}
@@ -121,8 +120,13 @@ public class Stalls {
if(objectId == s.getObject()) {
// Wait for respawn
if (System.currentTimeMillis() < s.respawnTime) {
p.getPacketSender().sendMessage("You need to wait longer before you can thieve this stall!");
return;
long timeFirstStealFromStall = s.respawnTime - (GameConstants.CYCLE_TIME * getRespawnTime(s.objectId));
// If stealing from stall at the same tick as another player
if(p.hasThievedStall() || System.currentTimeMillis() - timeFirstStealFromStall >= GameConstants.CYCLE_TIME) {
p.getPacketSender().sendMessage("You need to wait longer before you can thieve this stall!");
return;
}
}
// Thieving level too low
if (p.playerLevel[p.playerThieving] < s.getLevel()) {
@@ -144,11 +148,13 @@ public class Stalls {
s.respawnTime = System.currentTimeMillis() + (respawnTime * GameConstants.CYCLE_TIME);
p.getPacketSender().sendMessage("You steal a " + ItemAssistant.getItemName(random[0]) + " from the stall.");
p.getItemAssistant().addItem(random[0], random[1]);
p.setHasThievedStall(true);
CycleEventHandler.getSingleton().addEvent(p, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
GameEngine.objectHandler.createAnObject(p, s.getObject(), x, y, s.getFace());
//new Object(objectId, x, y, 0, s.getFace(), 10, j, getRespawnTime(objectId));
p.setHasThievedStall(false);
container.stop();
}
@Override
@@ -194,7 +200,7 @@ public class Stalls {
if (NpcHandler.npcs[i] != null) {
if (NpcHandler.npcs[i].npcType == 32 || NpcHandler.npcs[i].npcType == 1317 || NpcHandler.npcs[i].npcType == 2236 || NpcHandler.npcs[i].npcType == 2571) {
if (p.goodDistance(p.absX, p.absY, NpcHandler.npcs[i].absX, NpcHandler.npcs[i].absY, 7)
&& p.heightLevel == NpcHandler.npcs[i].heightLevel) {
&& p.heightLevel == NpcHandler.npcs[i].heightLevel) {
if (!NpcHandler.npcs[i].underAttack) {
NpcHandler.npcs[i].forceChat("What do you think you're doing?!?");
NpcHandler.npcs[i].underAttack = true;
@@ -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.",
@@ -519,7 +520,7 @@ public class DialogueHandler {
player.getItemAssistant().deleteItem(436, 4);
player.getItemAssistant().deleteItem(440, 2);
player.doricQuest = 2;
sendNpcChat2("You brought me everything i need.", "Thank You!",
sendNpcChat2("You brought me everything I need.", "Thank You!",
player.talkingNpc, "Doric");
player.nextChat = 87;
break;
@@ -1007,7 +1008,7 @@ public class DialogueHandler {
break;
case 215:
sendNpcChat3(
"I need time to study this, " + player.playerName + ".",
"I need time to study this, " + Misc.capitalize(player.playerName) + ".",
"Can you please do me this task while I study this talisman you have brought me?",
"In the mighty town of Varrock, which", player.talkingNpc,
"Sedridor");
@@ -1045,7 +1046,7 @@ public class DialogueHandler {
player.nextChat = 220;
break;
case 220:
sendNpcChat2("Do this thing for me " + player.playerName + ".",
sendNpcChat2("Do this thing for me " + Misc.capitalize(player.playerName) + ".",
" Be rewarded in a way you can never imagine.",
player.talkingNpc, "Sedridor");
player.nextChat = 222;
@@ -1151,7 +1152,7 @@ public class DialogueHandler {
player.nextChat = 239;
break;
case 239:
sendNpcChat2("Ah, " + player.playerName + ". How goes your quest?",
sendNpcChat2("Ah, " + Misc.capitalize(player.playerName) + ". How goes your quest?",
"Have you delivered the research notes to my friend yet?",
player.talkingNpc, "Sedridor");
player.nextChat = 240;
@@ -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;
@@ -3045,7 +3046,7 @@ public class DialogueHandler {
break;
case 590:
sendNpcChat1("Hello " + player.playerName + ".", player.talkingNpc,
sendNpcChat1("Hello " + Misc.capitalize(player.playerName) + ".", player.talkingNpc,
"Gnome Pilot");
player.nextChat = 591;
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.");
@@ -4284,7 +4285,7 @@ public class DialogueHandler {
break;
case 1237:
sendNpcChat2("You have been assigned " + player.taskAmount + " " + player.getSlayer().getTaskName(player.slayerTask) + ",",
"Good luck " + player.playerName + ".",
"Good luck " + Misc.capitalize(player.playerName) + ".",
player.talkingNpc,
NpcHandler.getNpcListName(player.talkingNpc));
player.nextChat = 0;
@@ -4439,7 +4440,7 @@ public class DialogueHandler {
case 1318:
if (player.getSlayer().hasTask()) {
sendNpcChat3(
"Hello " + player.playerName + ".",
"Hello " + Misc.capitalize(player.playerName) + ".",
"You currently need to kill "
+ player.taskAmount
+ " more "
@@ -4475,7 +4476,7 @@ public class DialogueHandler {
case 1320:
if (player.getSlayer().hasTask()) {
sendNpcChat2(
"Hello " + player.playerName + ".",
"Hello " + Misc.capitalize(player.playerName) + ".",
"I am located in "
+ player.getSlayer().getMasterLocation(
player.SlayerMaster) + ".",
@@ -4494,7 +4495,7 @@ public class DialogueHandler {
break;
case 1322:
sendNpcChat2("Hello " + player.playerName + ".", "Are you interested in buying anything?", player.talkingNpc, NpcHandler.getNpcListName(player.talkingNpc));
sendNpcChat2("Hello " + Misc.capitalize(player.playerName) + ".", "Are you interested in buying anything?", player.talkingNpc, NpcHandler.getNpcListName(player.talkingNpc));
player.nextChat = 1323;
break;
@@ -4526,7 +4527,7 @@ public class DialogueHandler {
break;
case 1329:
sendNpcChat2("Hello " + player.playerName + ".",
sendNpcChat2("Hello " + Misc.capitalize(player.playerName) + ".",
"Are you interested in buying anything?",
player.talkingNpc,
NpcHandler.getNpcListName(player.talkingNpc));
@@ -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");
@@ -4855,7 +4856,7 @@ public class DialogueHandler {
case 1368:
sendNpcChat2("You have been assigned " + player.taskAmount + " "
+ player.getSlayer().getTaskName(player.slayerTask) + ",",
"Good luck " + player.playerName + ".", player.talkingNpc,
"Good luck " + Misc.capitalize(player.playerName) + ".", player.talkingNpc,
NpcHandler.getNpcListName(player.talkingNpc));
player.nextChat = 0;
break;
@@ -4894,7 +4895,7 @@ public class DialogueHandler {
break;
case 1373:
sendNpcChat2("Hello " + player.playerName + ".",
sendNpcChat2("Hello " + Misc.capitalize(player.playerName) + ".",
"Are you interested in buying anything?",
player.talkingNpc,
NpcHandler.getNpcListName(player.talkingNpc));
@@ -4927,7 +4928,7 @@ public class DialogueHandler {
break;
case 1378:
sendNpcChat2("Hello " + player.playerName + ".",
sendNpcChat2("Hello " + Misc.capitalize(player.playerName) + ".",
"Are you interested in buying a candle for 1k?",
player.talkingNpc, "Candle Seller");
player.nextChat = 1379;
@@ -6122,7 +6123,7 @@ public class DialogueHandler {
break;
case 3118:
sendNpcChat2("Hello " + player.playerName + ".",
sendNpcChat2("Hello " + Misc.capitalize(player.playerName) + ".",
"Are you interested in buying any beer?",
player.talkingNpc,
NpcHandler.getNpcListName(player.talkingNpc));
@@ -6382,7 +6383,7 @@ public class DialogueHandler {
break;
case 3158:
sendNpcChat1("Hello, " + player.playerName + " what would you like to do?", player.talkingNpc, "Wyson the Gardener");
sendNpcChat1("Hello, " + Misc.capitalize(player.playerName) + " what would you like to do?", player.talkingNpc, "Wyson the Gardener");
player.nextChat = 3159;
break;
@@ -6732,29 +6733,8 @@ public class DialogueHandler {
player.dialogueAction = 3205;//187
break;
/*case 3206:
if (Constants.HALLOWEEN == false) {
sendNpcChat2("The halloween event is now over,", "what would you like?", 945, "" + Constants.SERVER_NAME + " Guide");
client.nextChat = 3207;
} else if (client.recievedMask == false && Constants.HALLOWEEN) {
sendNpcChat2("Thank you so much for voting!", "Enjoy your mask!", 945, "" + Constants.SERVER_NAME + " Guide");
client.getItemAssistant().addOrDropItem(client.getPlayerAssistant().randomReward(), 1);
VotingHandler.setAsReceived(client.playerName);
client.recievedMask = true;
client.nextChat = 0;
} else if (client.recievedMask == true && Constants.HALLOWEEN) {
sendNpcChat2("You have already recieved a halloween mask.", "What reward would you like?", 945, "" + Constants.SERVER_NAME + " Guide");
client.nextChat = 3207;
}
break;
case 3207:
sendOption3("Experience Lamp (Depends on Level of Skill)", "Coins (1-4k)", "Energy Lamp");
client.dialogueAction = 188;
break;*/
case 3208:
sendNpcChat1("Hello, " + player.playerName + " what would you like to do?", 958, "Fadli");
sendNpcChat1("Hello, " + Misc.capitalize(player.playerName) + " what would you like to do?", 958, "Fadli");
player.nextChat = 3209;
break;
@@ -6823,7 +6803,7 @@ public class DialogueHandler {
break;
case 3221://28
sendStatement("Congratulations, " + player.playerName + ". You've completed the barrows challenge & your reward has been delivered.");
sendStatement("Congratulations, " + Misc.capitalize(player.playerName) + ". You've completed the barrows challenge & your reward has been delivered.");
player.nextChat = 0;
break;
@@ -6843,7 +6823,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 +6833,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++) {
@@ -6918,7 +6898,7 @@ public class DialogueHandler {
player.nextChat = 3509;
break;
case 3509:
sendNpcChat1("Thank you so much " + player.playerName + "!", player.talkingNpc, "Sir Amik Varze");
sendNpcChat1("Thank you so much " + Misc.capitalize(player.playerName) + "!", player.talkingNpc, "Sir Amik Varze");
player.nextChat = 0;
break;
case 3510:
@@ -6932,7 +6912,7 @@ public class DialogueHandler {
}
break;
case 3511:
sendNpcChat1("Thank you very much " + player.playerName + "!",
sendNpcChat1("Thank you very much " + Misc.capitalize(player.playerName) + "!",
player.talkingNpc, "Sir Amik Varze");
player.nextChat = 3512;
break;
@@ -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);
@@ -141,11 +141,11 @@ public class Item {
private static String[] fullhat = { "med helm", "coif", "Dharok's helm",
"hood", "Initiate helm", "Coif", "Helm of neitiznot",
"Armadyl helmet", "Berserker helm", "Archer helm", "Farseer helm",
"Warrior helm", "Void" };
"Warrior helm", "Void"};
/* Fullmask covers your entire head. */
private static String[] fullmask = { "full helm(t)", "full helm(g)", "full helm", "mask", "Verac's helm",
"Guthan's helm", "Karil's coif", "mask", "Torag's helm", "Void", "helmet",
"sallet", "Facemask" };
"sallet", "Facemask", "Bearhead"};
public static boolean isFullBody(int itemId) {
String weapon = getItemName(itemId);
@@ -276,6 +276,8 @@ public class Item {
case 1167:
case 5525:
case 4168:
case 4502:
case 1037:
case 1025:
case 7112:
case 7124:
@@ -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;
@@ -60,9 +61,9 @@ public class ItemAssistant {
addItem(5075, 1);
c.getPacketSender().sendMessage("You find a " + getItemName(reward) + ".");
}
private final int[] SEEDS = { 5291, 5292, 5293, 5294, 5295, 5296, 5297, 298, 5299, 5300, 5301, 5302, 5303, 5304 };
public void handleNonTreeSeeds(int itemId) {
c.getPacketSender().sendMessage("You search the nest...");
final int reward = SEEDS[Misc.random(SEEDS.length)];
@@ -82,12 +83,12 @@ public class ItemAssistant {
addItem(5075, 1);
c.getPacketSender().sendMessage("You find a " + getItemName(reward) + ".");
}
public void updateInventory() {
this.resetItems(3214);
}
public void destroyInterface(int itemId) {
public void updateInventory() {
this.resetItems(3214);
}
public void destroyInterface(int itemId) {
itemId = c.droppedItem;
String itemName = getItemName(c.droppedItem);
String[][] info = {
@@ -97,7 +98,7 @@ public class ItemAssistant {
{ itemName, "14184" } };// make some kind of c.getItemInfo
c.getPacketSender().sendFrame34(itemId, 0, 14171, 1);
for (int i = 0; i < info.length; i++)
c.getPacketSender().sendFrame126(info[i][0], Integer.parseInt(info[i][1]));
c.getPacketSender().sendFrame126(info[i][0], Integer.parseInt(info[i][1]));
c.getPacketSender().sendChatInterface(14170);
}
@@ -133,13 +134,13 @@ public class ItemAssistant {
public boolean hasFreeSlots(int slots) {
return freeSlots() >= slots;
}
public void replaceItem(int itemToReplace, int replaceWith) {
if(playerHasItem(itemToReplace)) {
deleteItem(itemToReplace, 1);
addItem(replaceWith, 1);
}
}
public void replaceItem(int itemToReplace, int replaceWith) {
if(playerHasItem(itemToReplace)) {
deleteItem(itemToReplace, 1);
addItem(replaceWith, 1);
}
}
public static int getTotalAmountEquipment(Client c) {
int total = 0;
@@ -378,19 +379,19 @@ public class ItemAssistant {
deleteItem(c.playerItems[i] - 1, getItemSlot(c.playerItems[i] - 1), c.playerItemsN[i]);
}
}
/**
* Clear Bank
*/
public void clearBank() {
try {
for (int i = 0; i < c.bankItems[i]; i++) {
c.bankItems[i] = 0;
c.bankItemsN[i] = 0;
}
resetTempItems();
resetBank();
try {
for (int i = 0; i < c.bankItems[i]; i++) {
c.bankItems[i] = 0;
c.bankItemsN[i] = 0;
}
resetTempItems();
resetBank();
} catch (Exception e) {
e.printStackTrace();
}
@@ -455,25 +456,25 @@ public class ItemAssistant {
public int getUntradePrice(int item) {
switch (item) {
case 2518:
case 2524:
case 2526:
return 100000;
case 2520:
case 2522:
return 150000;
case 2518:
case 2524:
case 2526:
return 100000;
case 2520:
case 2522:
return 150000;
}
return 0;
}
public boolean specialCase(int itemId) {
switch (itemId) {
case 2518:
case 2520:
case 2522:
case 2524:
case 2526:
return true;
case 2518:
case 2520:
case 2522:
case 2524:
case 2526:
return true;
}
return false;
}
@@ -605,29 +606,29 @@ public class ItemAssistant {
newWeapon = newWeapon.trim();
if (weaponName.equals("Unarmed")) {
c.getPacketSender().setSidebarInterface(0, 5855); // punch,
// kick,
// block
// kick,
// block
c.getPacketSender().sendFrame126(weaponName, 5857);
} else if (weaponName.endsWith("whip")) {
c.getPacketSender().setSidebarInterface(0, 12290); // flick,
// lash,
// deflect
// lash,
// deflect
c.getPacketSender().sendFrame246(12291, 200, weapon);
c.getPacketSender().sendFrame126(weaponName, 12293);
} else if (weaponName.endsWith("bow") || weaponName.endsWith("10")
|| weaponName.endsWith("full")
|| weaponName.startsWith("seercull")) {
c.getPacketSender().setSidebarInterface(0, 1764); // accurate,
// rapid,
// longrange
// rapid,
// longrange
c.getPacketSender().sendFrame246(1765, 200, weapon);
c.getPacketSender().sendFrame126(weaponName, 1767);
} else if (weaponName.startsWith("Staff")
|| weaponName.endsWith("staff") || weaponName.endsWith("wand")) {
c.getPacketSender().setSidebarInterface(0, 328); // spike,
// impale,
// smash,
// block
// impale,
// smash,
// block
c.getPacketSender().sendFrame246(329, 200, weapon);
c.getPacketSender().sendFrame126(weaponName, 331);
} else if (newWeapon.startsWith("dart")
@@ -635,50 +636,50 @@ public class ItemAssistant {
|| newWeapon.startsWith("javelin")
|| weaponName.equalsIgnoreCase("toktz-xil-ul")) {
c.getPacketSender().setSidebarInterface(0, 4446); // accurate,
// rapid,
// longrange
// rapid,
// longrange
c.getPacketSender().sendFrame246(4447, 200, weapon);
c.getPacketSender().sendFrame126(weaponName, 4449);
} else if (newWeapon.startsWith("dagger")
|| newWeapon.contains("sword")) {
c.getPacketSender().setSidebarInterface(0, 2276); // stab,
// lunge,
// slash,
// block
// lunge,
// slash,
// block
c.getPacketSender().sendFrame246(2277, 200, weapon);
c.getPacketSender().sendFrame126(weaponName, 2279);
} else if (newWeapon.startsWith("pickaxe")) {
c.getPacketSender().setSidebarInterface(0, 5570); // spike,
// impale,
// smash,
// block
// impale,
// smash,
// block
c.getPacketSender().sendFrame246(5571, 200, weapon);
c.getPacketSender().sendFrame126(weaponName, 5573);
} else if (newWeapon.startsWith("axe")
|| newWeapon.startsWith("battleaxe")) {
c.getPacketSender().setSidebarInterface(0, 1698); // chop,
// hack,
// smash,
// block
// hack,
// smash,
// block
c.getPacketSender().sendFrame246(1699, 200, weapon);
c.getPacketSender().sendFrame126(weaponName, 1701);
} else if (newWeapon.startsWith("halberd")) {
c.getPacketSender().setSidebarInterface(0, 8460); // jab,
// swipe,
// fend
// swipe,
// fend
c.getPacketSender().sendFrame246(8461, 200, weapon);
c.getPacketSender().sendFrame126(weaponName, 8463);
} else if (newWeapon.startsWith("Scythe")) {
c.getPacketSender().setSidebarInterface(0, 8460); // jab,
// swipe,
// fend
// swipe,
// fend
c.getPacketSender().sendFrame246(8461, 200, weapon);
c.getPacketSender().sendFrame126(weaponName, 8463);
} else if (newWeapon.startsWith("spear")) {
c.getPacketSender().setSidebarInterface(0, 4679); // lunge,
// swipe,
// pound,
// block
// swipe,
// pound,
// block
c.getPacketSender().sendFrame246(4680, 200, weapon);
c.getPacketSender().sendFrame126(weaponName, 4682);
} else if (newWeapon.toLowerCase().contains("mace")) {
@@ -688,14 +689,14 @@ public class ItemAssistant {
} else if (c.playerEquipment[c.playerWeapon] == 4153) {
c.getPacketSender().setSidebarInterface(0, 425); // war hamer
// equip.
// equip.
c.getPacketSender().sendFrame246(426, 200, weapon);
c.getPacketSender().sendFrame126(weaponName, 428);
} else {
c.getPacketSender().setSidebarInterface(0, 2423); // chop,
// slash,
// lunge,
// block
// slash,
// lunge,
// block
c.getPacketSender().sendFrame246(2424, 200, weapon);
c.getPacketSender().sendFrame126(weaponName, 2426);
}
@@ -872,241 +873,241 @@ public class ItemAssistant {
}
switch (itemId) {
case 8839:
case 8840:
case 8842:
case 11663:
case 11664:
case 11665:
c.attackLevelReq = 42;
c.rangeLevelReq = 42;
c.strengthLevelReq = 42;
c.magicLevelReq = 42;
c.defenceLevelReq = 42;
return;
case 10551:
case 2503:
case 2501:
case 2499:
case 1135:
c.defenceLevelReq = 40;
return;
case 1133:
c.defenceLevelReq = 20;
c.rangeLevelReq = 20;
return;
case 11235:
case 6522:
c.rangeLevelReq = 60;
break;
case 1097:
c.rangeLevelReq = 20;
break;
case 864:
case 863:
c.rangeLevelReq = 1;
break;
case 865:
c.rangeLevelReq = 5;
break;
case 866:
c.rangeLevelReq = 20;
break;
case 867:
c.rangeLevelReq = 30;
break;
case 868:
c.rangeLevelReq = 40;
break;
case 6524:
c.defenceLevelReq = 60;
break;
case 11284:
c.defenceLevelReq = 75;
return;
case 6889:
case 6914:
c.magicLevelReq = 60;
break;
case 10828:
c.defenceLevelReq = 55;
break;
case 11724:
case 11726:
case 11728:
c.defenceLevelReq = 65;
break;
case 847:
case 849:
c.rangeLevelReq = 20;
break;
case 843:
case 845:
c.rangeLevelReq = 5;
break;
case 851:
case 853:
c.rangeLevelReq = 30;
break;
case 855:
case 857:
c.rangeLevelReq = 40;
break;
case 859:
case 861:
c.rangeLevelReq = 50;
break;
case 3749:
case 3751:
case 3755:
case 3753:
c.defenceLevelReq = 45;
break;
case 8839:
case 8840:
case 8842:
case 11663:
case 11664:
case 11665:
c.attackLevelReq = 42;
c.rangeLevelReq = 42;
c.strengthLevelReq = 42;
c.magicLevelReq = 42;
c.defenceLevelReq = 42;
return;
case 10551:
case 2503:
case 2501:
case 2499:
case 1135:
c.defenceLevelReq = 40;
return;
case 1133:
c.defenceLevelReq = 20;
c.rangeLevelReq = 20;
return;
case 11235:
case 6522:
c.rangeLevelReq = 60;
break;
case 1097:
c.rangeLevelReq = 20;
break;
case 864:
case 863:
c.rangeLevelReq = 1;
break;
case 865:
c.rangeLevelReq = 5;
break;
case 866:
c.rangeLevelReq = 20;
break;
case 867:
c.rangeLevelReq = 30;
break;
case 868:
c.rangeLevelReq = 40;
break;
case 6524:
c.defenceLevelReq = 60;
break;
case 11284:
c.defenceLevelReq = 75;
return;
case 6889:
case 6914:
c.magicLevelReq = 60;
break;
case 10828:
c.defenceLevelReq = 55;
break;
case 11724:
case 11726:
case 11728:
c.defenceLevelReq = 65;
break;
case 847:
case 849:
c.rangeLevelReq = 20;
break;
case 843:
case 845:
c.rangeLevelReq = 5;
break;
case 851:
case 853:
c.rangeLevelReq = 30;
break;
case 855:
case 857:
c.rangeLevelReq = 40;
break;
case 859:
case 861:
c.rangeLevelReq = 50;
break;
case 3749:
case 3751:
case 3755:
case 3753:
c.defenceLevelReq = 45;
break;
case 7462:
case 7461:
c.defenceLevelReq = 40;
break;
case 8846:
c.defenceLevelReq = 5;
break;
case 8847:
c.defenceLevelReq = 10;
break;
case 8848:
c.defenceLevelReq = 20;
break;
case 8849:
c.defenceLevelReq = 30;
break;
case 8850:
c.defenceLevelReq = 40;
break;
case 7462:
case 7461:
c.defenceLevelReq = 40;
break;
case 8846:
c.defenceLevelReq = 5;
break;
case 8847:
c.defenceLevelReq = 10;
break;
case 8848:
c.defenceLevelReq = 20;
break;
case 8849:
c.defenceLevelReq = 30;
break;
case 8850:
c.defenceLevelReq = 40;
break;
case 7460:
c.defenceLevelReq = 40;
break;
case 7460:
c.defenceLevelReq = 40;
break;
case 837:
c.rangeLevelReq = 61;
break;
case 837:
c.rangeLevelReq = 61;
break;
case 4151: // if you don't want to use names
c.attackLevelReq = 70;
return;
case 4151: // if you don't want to use names
c.attackLevelReq = 70;
return;
case 6724: // seercull
c.rangeLevelReq = 60; // idk if that is correct
return;
case 6523:
case 6525:
case 6527:
c.attackLevelReq = 60;
return;
case 6526:
c.attackLevelReq = 60;
c.magicLevelReq = 60;
return;
case 4156:
c.defenceLevelReq = 20;
c.slayerLevelReq = 25;
return;
case 1391:
case 1393:
case 1395:
case 1397:
case 1399:
case 3053:
c.attackLevelReq = 30;
c.magicLevelReq = 30;
return;
case 4158:
c.slayerLevelReq = 55;
c.attackLevelReq = 50;
return;
case 4153:
c.attackLevelReq = 50;
c.strengthLevelReq = 50;
return;
case 6528:
c.strengthLevelReq = 60;
return;
case 4161:
c.slayerLevelReq = 20;
return;
case 4168:
c.slayerLevelReq = 60;
return;
case 6696:
c.slayerLevelReq = 22;
return;
case 8923:
c.slayerLevelReq = 35;
return;
case 7159:
c.slayerLevelReq = 37;
return;
case 6708:
c.slayerLevelReq = 42;
return;
case 4170:
c.slayerLevelReq = 55;
return;
case 4162:
c.slayerLevelReq = 75;
return;
case 7421:
case 7422:
case 7423:
case 7424:
case 7425:
case 7426:
case 7427:
case 7428:
case 7429:
case 7430:
case 7431:
case 7432:
c.slayerLevelReq = 57;
return;
case 4212:
case 4214:
case 4215:
case 4216:
case 4217:
case 4218:
case 4219:
case 4220:
case 4221:
case 4222:
case 4223:
c.agilityLevelReq = 50;
c.rangeLevelReq = 70;
return;
case 4150:
case 4160:
case 4172:
case 4174:
c.slayerLevelReq = 55;
return;
case 1015:
c.defenceLevelReq = 1;
return;
case 6664:
c.slayerLevelReq = 32;
return;
case 4551:
c.defenceLevelReq = 5;
return;
case 7051:
c.slayerLevelReq = 33;
return;
case 4166:
c.slayerLevelReq = 15;
return;
case 4164:
c.slayerLevelReq = 10;
return;
case 6724: // seercull
c.rangeLevelReq = 60; // idk if that is correct
return;
case 6523:
case 6525:
case 6527:
c.attackLevelReq = 60;
return;
case 6526:
c.attackLevelReq = 60;
c.magicLevelReq = 60;
return;
case 4156:
c.defenceLevelReq = 20;
c.slayerLevelReq = 25;
return;
case 1391:
case 1393:
case 1395:
case 1397:
case 1399:
case 3053:
c.attackLevelReq = 30;
c.magicLevelReq = 30;
return;
case 4158:
c.slayerLevelReq = 55;
c.attackLevelReq = 50;
return;
case 4153:
c.attackLevelReq = 50;
c.strengthLevelReq = 50;
return;
case 6528:
c.strengthLevelReq = 60;
return;
case 4161:
c.slayerLevelReq = 20;
return;
case 4168:
c.slayerLevelReq = 60;
return;
case 6696:
c.slayerLevelReq = 22;
return;
case 8923:
c.slayerLevelReq = 35;
return;
case 7159:
c.slayerLevelReq = 37;
return;
case 6708:
c.slayerLevelReq = 42;
return;
case 4170:
c.slayerLevelReq = 55;
return;
case 4162:
c.slayerLevelReq = 75;
return;
case 7421:
case 7422:
case 7423:
case 7424:
case 7425:
case 7426:
case 7427:
case 7428:
case 7429:
case 7430:
case 7431:
case 7432:
c.slayerLevelReq = 57;
return;
case 4212:
case 4214:
case 4215:
case 4216:
case 4217:
case 4218:
case 4219:
case 4220:
case 4221:
case 4222:
case 4223:
c.agilityLevelReq = 50;
c.rangeLevelReq = 70;
return;
case 4150:
case 4160:
case 4172:
case 4174:
c.slayerLevelReq = 55;
return;
case 1015:
c.defenceLevelReq = 1;
return;
case 6664:
c.slayerLevelReq = 32;
return;
case 4551:
c.defenceLevelReq = 5;
return;
case 7051:
c.slayerLevelReq = 33;
return;
case 4166:
c.slayerLevelReq = 15;
return;
case 4164:
c.slayerLevelReq = 10;
return;
}
}
@@ -1147,78 +1148,78 @@ public class ItemAssistant {
public void addSpecialBar(int weapon) {
switch (weapon) {
case 4151: // whip
c.getPacketSender().sendFrame171(0, 12323);
specialAmount(weapon, c.specAmount, 12335);
break;
case 4151: // whip
c.getPacketSender().sendFrame171(0, 12323);
specialAmount(weapon, c.specAmount, 12335);
break;
case 859: // magic bows
case 861:
case 11235:
c.getPacketSender().sendFrame171(0, 7549);
specialAmount(weapon, c.specAmount, 7561);
break;
case 859: // magic bows
case 861:
case 11235:
c.getPacketSender().sendFrame171(0, 7549);
specialAmount(weapon, c.specAmount, 7561);
break;
case 4587: // dscimmy
c.getPacketSender().sendFrame171(0, 7599);
specialAmount(weapon, c.specAmount, 7611);
break;
case 4587: // dscimmy
c.getPacketSender().sendFrame171(0, 7599);
specialAmount(weapon, c.specAmount, 7611);
break;
case 3204: // d hally
c.getPacketSender().sendFrame171(0, 8493);
specialAmount(weapon, c.specAmount, 8505);
break;
case 3204: // d hally
c.getPacketSender().sendFrame171(0, 8493);
specialAmount(weapon, c.specAmount, 8505);
break;
case 1377: // d battleaxe
c.getPacketSender().sendFrame171(0, 7499);
specialAmount(weapon, c.specAmount, 7511);
break;
case 1377: // d battleaxe
c.getPacketSender().sendFrame171(0, 7499);
specialAmount(weapon, c.specAmount, 7511);
break;
case 4153: // gmaul
c.getPacketSender().sendFrame171(0, 7474);
specialAmount(weapon, c.specAmount, 7486);
break;
case 4153: // gmaul
c.getPacketSender().sendFrame171(0, 7474);
specialAmount(weapon, c.specAmount, 7486);
break;
case 1249: // dspear
c.getPacketSender().sendFrame171(0, 7674);
specialAmount(weapon, c.specAmount, 7686);
break;
case 1249: // dspear
c.getPacketSender().sendFrame171(0, 7674);
specialAmount(weapon, c.specAmount, 7686);
break;
case 1215:// dragon dagger
case 1231:
case 5680:
case 5698:
case 1305: // dragon long
case 11694:
case 11698:
case 11700:
case 11730:
case 11696:
c.getPacketSender().sendFrame171(0, 7574);
specialAmount(weapon, c.specAmount, 7586);
break;
case 1215:// dragon dagger
case 1231:
case 5680:
case 5698:
case 1305: // dragon long
case 11694:
case 11698:
case 11700:
case 11730:
case 11696:
c.getPacketSender().sendFrame171(0, 7574);
specialAmount(weapon, c.specAmount, 7586);
break;
case 1434: // dragon mace
c.getPacketSender().sendFrame171(0, 7624);
specialAmount(weapon, c.specAmount, 7636);
break;
case 1434: // dragon mace
c.getPacketSender().sendFrame171(0, 7624);
specialAmount(weapon, c.specAmount, 7636);
break;
default:
c.getPacketSender().sendFrame171(1, 7624); // mace
// interface
c.getPacketSender().sendFrame171(1, 7474); // hammer, gmaul
c.getPacketSender().sendFrame171(1, 7499); // axe
c.getPacketSender().sendFrame171(1, 7549); // bow interface
c.getPacketSender().sendFrame171(1, 7574); // sword
// interface
c.getPacketSender().sendFrame171(1, 7599); // scimmy sword
// interface,
// for most
// swords
c.getPacketSender().sendFrame171(1, 8493);
c.getPacketSender().sendFrame171(1, 12323); // whip
// interface
break;
default:
c.getPacketSender().sendFrame171(1, 7624); // mace
// interface
c.getPacketSender().sendFrame171(1, 7474); // hammer, gmaul
c.getPacketSender().sendFrame171(1, 7499); // axe
c.getPacketSender().sendFrame171(1, 7549); // bow interface
c.getPacketSender().sendFrame171(1, 7574); // sword
// interface
c.getPacketSender().sendFrame171(1, 7599); // scimmy sword
// interface,
// for most
// swords
c.getPacketSender().sendFrame171(1, 8493);
c.getPacketSender().sendFrame171(1, 12323); // whip
// interface
break;
}
}
@@ -1249,33 +1250,33 @@ public class ItemAssistant {
public void updateSpecialBar() {
if (c.usingSpecial) {
c.getPacketSender().sendFrame126(
""
+ (c.specAmount >= 2 ? "@yel@S P"
: "@bla@S P")
+ ""
+ (c.specAmount >= 3 ? "@yel@ E"
: "@bla@ E")
+ ""
+ (c.specAmount >= 4 ? "@yel@ C I"
: "@bla@ C I")
+ ""
+ (c.specAmount >= 5 ? "@yel@ A L"
: "@bla@ A L")
+ ""
+ (c.specAmount >= 6 ? "@yel@ A"
: "@bla@ A")
+ ""
+ (c.specAmount >= 7 ? "@yel@ T T"
: "@bla@ T T")
+ ""
+ (c.specAmount >= 8 ? "@yel@ A"
: "@bla@ A")
+ ""
+ (c.specAmount >= 9 ? "@yel@ C"
: "@bla@ C")
+ ""
+ (c.specAmount >= 10 ? "@yel@ K"
: "@bla@ K"), c.specBarId);
""
+ (c.specAmount >= 2 ? "@yel@S P"
: "@bla@S P")
+ ""
+ (c.specAmount >= 3 ? "@yel@ E"
: "@bla@ E")
+ ""
+ (c.specAmount >= 4 ? "@yel@ C I"
: "@bla@ C I")
+ ""
+ (c.specAmount >= 5 ? "@yel@ A L"
: "@bla@ A L")
+ ""
+ (c.specAmount >= 6 ? "@yel@ A"
: "@bla@ A")
+ ""
+ (c.specAmount >= 7 ? "@yel@ T T"
: "@bla@ T T")
+ ""
+ (c.specAmount >= 8 ? "@yel@ A"
: "@bla@ A")
+ ""
+ (c.specAmount >= 9 ? "@yel@ C"
: "@bla@ C")
+ ""
+ (c.specAmount >= 10 ? "@yel@ K"
: "@bla@ K"), c.specBarId);
} else {
c.getPacketSender().sendFrame126(
"@bla@S P E C I A L A T T A C K", c.specBarId);
@@ -1440,6 +1441,10 @@ public class ItemAssistant {
}
}
if (wearID == 4079) {
c.startAnimation(1458);
return false;
}
switch (wearID) {
// Dragon daggers/sword
case 1215:
@@ -1800,6 +1805,12 @@ public class ItemAssistant {
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;
}
@@ -2061,11 +2072,11 @@ public class ItemAssistant {
public int freeBankSlots() {
int freeS = 0;
for (int i = 0; i < GameConstants.BANK_SIZE; i++) {
if (c.bankItems[i] <= 0) {
freeS++;
}
for (int i = 0; i < GameConstants.BANK_SIZE; i++) {
if (c.bankItems[i] <= 0) {
freeS++;
}
}
return freeS;
}
@@ -2082,11 +2093,16 @@ 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))
{
for (int i = 0; i <= 27;i++)
if (c.getItemAssistant().playerHasItem(itemID))
{
for (int i = 0; i <= 27;i++)
{
if (itemID == c.playerItems[i] || (itemID == 995 && c.playerItems[i] - 1 == 995))
{
@@ -2097,7 +2113,7 @@ public class ItemAssistant {
}
}
}
}
}
if (!cantWithdrawCuzMaxStack)
{
if (!c.takeAsNote) {
@@ -2619,5 +2635,5 @@ public class ItemAssistant {
}
return NewID;
}
}
@@ -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;
}
/**
@@ -13,6 +13,7 @@ import com.rebotted.game.content.skills.fletching.Stringing;
import com.rebotted.game.content.skills.herblore.GrindingAction;
import com.rebotted.game.content.skills.herblore.Herblore;
import com.rebotted.game.items.impl.CapeDye;
import com.rebotted.game.items.impl.GodPages;
import com.rebotted.game.items.impl.WeaponPoison;
import com.rebotted.game.npcs.impl.MilkCow;
import com.rebotted.game.objects.impl.CrystalChest;
@@ -98,7 +99,7 @@ public class UseItem {
}
public static void ItemonItem(Player player, int itemUsed, int useWith) {
public static void itemOnItem(Player player, int itemUsed, int useWith) {
LogCuttingInterface.handleItemOnItem(player, itemUsed, useWith);
ArrowMaking.makeArrow(player, itemUsed, useWith);
Stringing.StringBow(player, itemUsed, useWith);
@@ -111,6 +112,7 @@ public class UseItem {
}
GrindingAction.init(player, itemUsed, useWith);
CapeDye.dyeItem(player, itemUsed, useWith);
GodPages.itemOnItemHandle(player, useWith, itemUsed);
if (Herblore.isIngredient(itemUsed) || Herblore.isIngredient(useWith)) {
Herblore.setupPotion(player, itemUsed, useWith);
}
@@ -174,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.");
}
}
@@ -8,73 +8,62 @@ import com.rebotted.game.players.Player;
*/
public class Weight extends ItemDefinitions {
/**
* Calculates the weight when doing actions
*
* @param c
* @param item
* @param action
* - deleteitem, additem, equip, unequip.
*/
public static void calcWeight(Player c, int item, String action) {
if (action.equalsIgnoreCase("deleteitem")) {
if (getWeight(item) > 99.20) {
c.weight -= getWeight(item) / 100;
if (c.weight < 0) {
c.weight = 0.0;
}
c.getPacketSender().writeWeight((int) c.weight);
return;
}
c.weight -= getWeight(item) / 10;
if (c.weight < 0) {
c.weight = 0.0;
}
c.getPacketSender().writeWeight((int) c.weight);
} else if (action.equalsIgnoreCase("additem")) {
if (getWeight(item) > 99.20) {
c.weight += getWeight(item) / 100;
c.getPacketSender().writeWeight((int) c.weight);
return;
}
c.weight += getWeight(item) / 10;
c.getPacketSender().writeWeight((int) c.weight);
}
}
/**
* Calculates the weight when doing actions
*
* @param c
* @param item
* @param action
* - deleteitem, additem, equip, unequip.
*/
public static void calcWeight(Player c, int item, String action) {
if (action.equalsIgnoreCase("deleteitem")) {
if (getWeight(item) > 99.20) {
c.weight -= getWeight(item) / 100;
if (c.weight < 0) {
c.weight = 0.0;
}
c.getPacketSender().writeWeight((int) c.weight);
return;
}
c.weight -= getWeight(item) / 10;
if (c.weight < 0) {
c.weight = 0.0;
}
c.getPacketSender().writeWeight((int) c.weight);
} else if (action.equalsIgnoreCase("additem")) {
if (getWeight(item) > 99.20) {
c.weight += getWeight(item) / 100;
c.getPacketSender().writeWeight((int) c.weight);
return;
}
c.weight += getWeight(item) / 10;
c.getPacketSender().writeWeight((int) c.weight);
}
}
/**
* Updates the weight for inventory and equipment.
*
* @param player
*/
public static void updateWeight(Player player) {
if (player != null) {
player.getPacketSender().writeWeight((int) player.weight);
// Inventory items
for (int playerItem : player.playerItems) {
if (playerItem > -1) {// inventory
for (ItemList i1 : GameEngine.itemHandler.ItemList) {
if (i1 != null) {
if (i1.itemId == playerItem) {
calcWeight(player, playerItem, "addItem");
}
}
}
}
}
// Equiped items
for (int element : player.playerEquipment) {
if (element > -1) {// equipment
for (ItemList i1 : GameEngine.itemHandler.ItemList) {
if (i1 != null) {
if (i1.itemId == element) {
calcWeight(player, element, "addItem");
}
}
}
}
}
}
player.getPacketSender().writeWeight((int) player.weight);
}
/**
* Updates the weight for inventory and equipment.
*
* @param player
*/
public static void updateWeight(Player player) {
if (player != null) {
player.weight = 0;
// Inventory items
for (int playerItem : player.playerItems) {
if (playerItem > -1) {// inventory
calcWeight(player, playerItem, "addItem");
}
}
// Equiped items
for (int element : player.playerEquipment) {
if (element > -1) {// equipment
if (element == 88) player.weight -= 4.5;
else calcWeight(player, element, "addItem");
}
}
}
player.getPacketSender().writeWeight((int) player.weight);
}
}
@@ -0,0 +1,40 @@
package com.rebotted.game.items.impl;
import com.rebotted.game.players.Player;
public class GodPages {
public static void fillBook(Player player, int oldBook, int newBook, int page1, int page2, int page3) {
if (player.getItemAssistant().playerHasItem(oldBook, 1) && player.getItemAssistant().playerHasItem(page1, 1) && player.getItemAssistant().playerHasItem(page2, 1) && player.getItemAssistant().playerHasItem(page3, 1)) {
player.getItemAssistant().deleteItem(oldBook, player.getItemAssistant().getItemSlot(oldBook), 1);
player.getItemAssistant().deleteItem(page1, player.getItemAssistant().getItemSlot(page1), 1);
player.getItemAssistant().deleteItem(page2, player.getItemAssistant().getItemSlot(page2), 1);
player.getItemAssistant().deleteItem(page3, player.getItemAssistant().getItemSlot(page3), 1);
player.getItemAssistant().addItem(newBook, 1);
} else {
player.getPacketSender().sendMessage("You need all 3 pages to fill the book!");
}
}
public static void itemOnItemHandle(Player player, int useWith, int itemUsed) {
if ((useWith == 3827) || (useWith == 3827) || (useWith == 3827) && (itemUsed == 3839)) { // sara
fillBook(player, 3839, 3840, 3827, 3828, 3829);
}
if ((itemUsed == 3827) || (itemUsed == 3828) || (itemUsed == 3829) || (useWith == 3839)) {// sara
fillBook(player, 3839, 3840, 3827, 3828, 3829);
}
if ((useWith == 3831) || (useWith == 3832) || (useWith == 3833) && (itemUsed == 3841)) { // zam
fillBook(player, 3841, 3842, 3831, 3832, 3833);
}
if ((itemUsed == 3831) || (itemUsed == 3832) || (itemUsed == 3833) || (useWith == 3841)) { // zam
fillBook(player, 3841, 3842, 3831, 3832, 3833);
}
if ((useWith == 3835) || (useWith == 3836) || (useWith == 3837) && (itemUsed == 3843)) { // guth
fillBook(player, 3843, 3844, 3835, 3836, 3837);
}
if ((itemUsed == 3835) || (itemUsed == 3836) || (itemUsed == 3837) || (useWith == 3843)) { // guth
fillBook(player, 3843, 3844, 3835, 3836, 3837);
}
}
}
@@ -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:
@@ -4,9 +4,11 @@ import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
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 +21,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 +36,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 +237,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 +290,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 +314,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 +448,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 +484,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 +492,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 +646,18 @@ 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
npcs[i].killedBy = NpcData.getNpcKillerId(i);
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) {
if (PestControl.npcIsPCMonster(NpcHandler.npcs[i].npcType) || PestControl.isPCPortal(NpcHandler.npcs[i].npcType)) {
return;
}
c.getPacketSender().sendSound(CombatSounds.getNpcDeathSounds(npcs[i].npcType), 100, 0);
}
}
npcs[i].animUpdateRequired = true;
@@ -576,7 +668,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 +699,7 @@ public class NpcHandler {
if (player.tutorialProgress == 24) {
handleratdeath(i);
} else if (player.tutorialProgress == 25
&& player.ratdied2 == true) {
&& player.ratdied2) {
handleratdeath2(i);
}
}
@@ -653,8 +745,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 +826,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 +968,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 +1297,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 +1324,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 +1438,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 +1508,9 @@ public class NpcHandler {
public boolean getNpcListAggressive(int npcId) {
return NPCDefinition.forId(npcId).isAggressive();
}
public int getNpcSize(int npcId) {
return NPCDefinition.forId(npcId).getSize();
}
}
@@ -2012,10 +2012,10 @@ public class NPCDrops extends NPCDropsHandler {
public static final ItemDrop[] imp = {
new ItemDrop(i("ashes"), 1, ALWAYS),
new ItemDrop(i("red bead"), 1, UNCOMMON),
new ItemDrop(i("yellow bead"), 1, UNCOMMON),
new ItemDrop(i("black bead"), 1, UNCOMMON),
new ItemDrop(i("white bead"), 1, UNCOMMON),
new ItemDrop(i("red bead"), 1, COMMON),
new ItemDrop(i("yellow bead"), 1, COMMON),
new ItemDrop(i("black bead"), 1, COMMON),
new ItemDrop(i("white bead"), 1, COMMON),
new ItemDrop(i("tinderbox"), 1, UNCOMMON),
new ItemDrop(i("ball of wool"), 1, COMMON),
new ItemDrop(i("hammer"), 1, COMMON),
@@ -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,
@@ -1461,7 +1462,7 @@ public class ObjectsActions {
break;
case 14315:
if (!PestControl.waitingBoat.containsKey(player) && player.absX == 2657 && player.absY > 2638 && player.absY < 264) {
if (!PestControl.waitingBoat.containsKey(player) && player.absX == 2657 && player.absY > 2638 && player.absY < 2640) {
PestControl.addToWaitRoom(player);
} else {
if (player.absX == 2657 && player.absY > 2638 && player.absY < 2641) {
@@ -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!!
}
@@ -75,7 +75,7 @@ import com.rebotted.util.Stream;
import com.rebotted.world.ObjectManager;
public abstract class Player {
public byte buffer[] = null;
public Stream inStream = null, outStream = null;
public IoSession session;
@@ -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,15 +130,16 @@ 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;
}
public DoubleGates getDoubleGates() {
return doubleGates;
}
public GateHandler getGateHandler() {
return gateHandler;
}
@@ -154,19 +155,19 @@ public abstract class Player {
public Mining getMining() {
return mining;
}
public Barrows getBarrows() {
return barrows;
}
public GlassBlowing getGlassBlowing() {
return glassBlowing;
}
public RangersGuild getRangersGuild() {
return rangersGuild;
}
public ObjectManager getObjectManager() {
return objectManager;
}
@@ -250,7 +251,7 @@ public abstract class Player {
public PlayerAction getPlayerAction() {
return playeraction;
}
public Desert getDesert() {
return desert;
}
@@ -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);
@@ -362,16 +365,16 @@ public abstract class Player {
}
private Map<Integer, TinterfaceText> interfaceText = new HashMap<Integer, TinterfaceText>();
public class TinterfaceText {
public int id;
public String currentState;
public TinterfaceText(String s, int id) {
this.currentState = s;
this.id = id;
}
}
public boolean checkPacket126Update(String text, int id) {
@@ -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)
@@ -623,7 +626,7 @@ public abstract class Player {
}
@Override
public void stop() {
}
}, 200);
}
@@ -641,7 +644,7 @@ public abstract class Player {
public boolean isBusy() {
return isBusy;
}
public int getLastLogin() {
Calendar cal = new GregorianCalendar();
int day = cal.get(Calendar.DAY_OF_MONTH);
@@ -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,10 +969,12 @@ 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.
*
*
* @param id
* The identification number of the sound.
* @param volume
@@ -989,7 +1000,7 @@ public abstract class Player {
/**
* Outputs a send packet which is built from the data params provided
* towards a connected user client channel.
*
*
* @param id
* The identification number of the sound.
* @param volume
@@ -1002,7 +1013,7 @@ public abstract class Player {
/**
* Outputs a send packet which is built from the data params provided
* towards a connected user client channel.
*
*
* @param id
* The identification number of the sound.
*/
@@ -1012,7 +1023,7 @@ public abstract class Player {
/**
* Play sounds
*
*
* @param SOUNDID
* : ID
* @param delay
@@ -1063,14 +1074,14 @@ public abstract class Player {
}
@Override
public void stop() {
}
}, 16);
}
}
}
}
public void trawlerFade(final int x, final int y, final int height) {
if (System.currentTimeMillis() - lastAction > 5000) {
lastAction = System.currentTimeMillis();
@@ -1104,7 +1115,7 @@ public abstract class Player {
}, 1);
}
}
public void fade(final int x, final int y, final int height) {
if (System.currentTimeMillis() - lastAction > 5000) {
lastAction = System.currentTimeMillis();
@@ -1155,7 +1166,7 @@ public abstract class Player {
/**
* Sets the option clicked
*
*
* @param i
* the option clicked
*/
@@ -1163,25 +1174,27 @@ public abstract class Player {
public void setOptionClicked(int i) {
optionClicked = i;
}
public String statedInterface = "";
public String getStatedInterface() {
return statedInterface;
}
public void setStatedInterface(String statedInterface) {
this.statedInterface = statedInterface;
}
public String slayerMaster;
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>();
public int[][] barrowCrypt = {
{4921, 0},
{2035, 0}
@@ -1229,7 +1242,7 @@ public abstract class Player {
canWalkTutorial, closeTutorialInterface, isCrafting, showedUnfire,
showedFire, isPotCrafting, isFiremaking, playerIsFletching, milking,
stopPlayerPacket, spiritTree = false, isSmelting,
isSmithing, hasPaid, canTeleport, magicCharge,
isSmithing, hasPaid, canTeleport, magicCharge,
clickedVamp = false, allowFading, otherBank = false,
recievedReward = false, poison, golemSpawned = false, zombieSpawned = false, shadeSpawned = false,
treeSpiritSpawned = false, chickenSpawned = false, clickedTree = false, filter = true,
@@ -1257,10 +1270,10 @@ 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,
weightCarried, teleotherType, rockX, rockY, itemUsing, tzKekTimer,
bananas, flourAmount, grain, questPoints, questStages,
teleGrabItem, teleGrabX, teleGrabY, duelCount, underAttackBy,
underAttackBy2, wildLevel, teleTimer, respawnTimer, saveTimer = 0,
@@ -1368,11 +1381,11 @@ public abstract class Player {
public boolean[] killedPheasant = new boolean[5];
public boolean playerHasRandomEvent;
public boolean canLeaveArea;
public int pieSelect = 0, getPheasent, kebabSelect = 0, breadID,
chocSelect = 0, bagelSelect = 0, triangleSandwich = 0,
squareSandwich = 0, breadSelect = 0;
public String properName;
public int lastX, lastY;
public int[] voidStatus = new int[5];
@@ -1569,8 +1582,18 @@ public abstract class Player {
public int XremoveSlot, XinterfaceID, XremoveID, Xamount;
public boolean isMining;
public boolean hasThievedStall;
public boolean hasThievedStall() {
return hasThievedStall;
}
public void setHasThievedStall(boolean hasThievedStall) {
this.hasThievedStall = hasThievedStall;
}
public boolean antiFirePot = false;
public boolean underWater = false;
public boolean prevRunning2;
public int prevPrevPlayerRunIndex;
@@ -1584,7 +1607,7 @@ public abstract class Player {
public Client asClient() {
return (Client) this;
}
private Player player;
public Player asPlayer() {
return (Player) player;
@@ -1596,7 +1619,7 @@ public abstract class Player {
}
return false;
}
public boolean inTrawlerGame() {
if(inArea(2808, 2811,3415,3425)) {
return true;
@@ -1693,7 +1716,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 +1735,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 +1779,9 @@ 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
isInArea(3297, 3133, 3311, 3115) || //Shantay Pass
false;
}
@@ -1773,23 +1813,23 @@ public abstract class Player {
}
return false;
}
public boolean playerIsBusy() {
if(isShopping || inTrade || openDuel || isBanking || duelStatus == 1) {
return true;
}
return false;
}
public boolean isInBarrows() {
public boolean isInBarrows() {
if(absX > 3543 && absX < 3584 && absY > 3265 && absY < 3311) {
return true;
}
return false;
}
public boolean isInBarrows2() {
public boolean isInBarrows2() {
if(absX > 3529 && absX < 3581 && absY > 9673 && absY < 9722) {
return true;
}
@@ -1815,7 +1855,7 @@ public abstract class Player {
return isInAreaxxyy(3090, 3099, 3487, 3500) || isInAreaxxyy(3089, 3090, 3492, 3498) || isInAreaxxyy(3249, 3258, 3413, 3428) || isInAreaxxyy(3180, 3191, 3432, 3448) || isInAreaxxyy(2945, 2948, 3365, 3374) ||
isInAreaxxyy(2943, 2948, 3367, 3374) || isInAreaxxyy(2945, 2950, 3365, 3370) || isInAreaxxyy(3009, 3018, 3352, 3359) || isInAreaxxyy(3017, 3022, 3353, 3357);
}
public boolean inLumbBuilding() {
return isInAreaxxyy(3205, 3216, 3209, 3228) || isInAreaxxyy(3229, 3233, 3206, 3208) || isInAreaxxyy(3228, 3233, 3201, 3205) || isInAreaxxyy(3230, 3237, 3195, 3198) || isInAreaxxyy(3238, 3229, 3209, 3211) ||
isInAreaxxyy(3240, 3247, 3204, 3215) || isInAreaxxyy(3247, 3252, 3190, 3195) || isInAreaxxyy(3227, 3230, 3212, 3216) || isInAreaxxyy(3227, 3230, 3221, 3225) || isInAreaxxyy(3229, 3232, 3236, 3241) ||
@@ -2034,7 +2074,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;
@@ -2095,7 +2135,7 @@ public abstract class Player {
walkingQueueY[wQueueWritePtr] = y;
wQueueWritePtr = next;
}
public boolean goodDistance(int objectX, int objectY, int playerX, int playerY, int distance) {
return ((objectX-playerX <= distance && objectX-playerX >= -distance) && (objectY-playerY <= distance && objectY-playerY >= -distance));
}
@@ -3058,11 +3098,11 @@ public abstract class Player {
}
public void setInStreamDecryption(ISAACRandomGen inStreamDecryption) {
}
public void setOutStreamDecryption(ISAACRandomGen outStreamDecryption) {
}
public boolean samePlayer() {
@@ -3085,7 +3125,7 @@ public abstract class Player {
logoutDelay = System.currentTimeMillis();
singleCombatDelay = System.currentTimeMillis();
}
public void dealDamage(int damage) {
if (teleTimer <= 0) {
@@ -3093,6 +3133,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;
@@ -3102,7 +3143,7 @@ public abstract class Player {
}
}
}
public void appendRedemption() {
Client c = (Client) PlayerHandler.players[playerId];
if (c.getPrayer().prayerActive[22]) {
@@ -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) {
@@ -680,6 +693,13 @@ public class PlayerAssistant {
player.getPacketSender().sendMessage("You can't teleport from a Fight pits Game!");
return;
}
if (player.inWild() && player.wildLevel > GameConstants.NO_TELEPORT_WILD_LEVEL) {
player.getPacketSender().sendMessage(
"You can't teleport above level "
+ GameConstants.NO_TELEPORT_WILD_LEVEL
+ " in the wilderness.");
return;
}
if (player.tutorialProgress < 36) {
player.getPacketSender().sendMessage("You can't teleport from tutorial island!");
return;
@@ -688,27 +708,24 @@ 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) {
player.getPacketSender().sendMessage("This feature is curently disabled.");
return;
}
if (player.inWild()
&& player.wildLevel > GameConstants.NO_TELEPORT_WILD_LEVEL) {
player.getPacketSender().sendMessage(
"You can't teleport above level "
+ GameConstants.NO_TELEPORT_WILD_LEVEL
+ " in the wilderness.");
return;
}
if (System.currentTimeMillis() - player.teleBlockDelay < player.teleBlockLength) {
player.getPacketSender().sendMessage(
"You are teleblocked and can't teleport.");
@@ -724,7 +741,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 +1454,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 +2018,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 +2078,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 +2121,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 +2178,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;
@@ -13,7 +13,7 @@ import com.rebotted.world.GlobalDropsHandler;
public class PlayerHandler {
public static Player players[] = new Player[GameConstants.MAX_PLAYERS];
public static int playerCount = 0, playerBotCount = 0;
public static int playerCount = 0, playerShopCount = 0;
public static String playersCurrentlyOn[] = new String[GameConstants.MAX_PLAYERS];
public static boolean updateAnnounced;
public static boolean updateRunning;
@@ -54,18 +54,18 @@ public class PlayerHandler {
return playerCount;
}
public static int getPlayerBotCount() {
return playerBotCount;
public static int getPlayerShopCount() {
return playerShopCount;
}
public void updatePlayerNames() {
playerBotCount = 0;
playerShopCount = 0;
playerCount = 0;
for (int i = 0; i < GameConstants.MAX_PLAYERS; i++) {
if (players[i] != null) {
playersCurrentlyOn[i] = players[i].playerName;
if (players[i].isBot)
playerBotCount++;
playerShopCount++;
else
playerCount++;
} else {
@@ -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;
@@ -276,32 +276,32 @@ public class ShopAssistant {
String itemName = ItemAssistant.getItemName(unNotedItemID);
for (int i : GameConstants.ITEM_SELLABLE) {
if (unNotedItemID == i) {
player.getPacketSender().sendMessage("You can't sell " + ItemAssistant.getItemName(removeId).toLowerCase() + ".");
player.getPacketSender().sendMessage("You can't sell " + itemName + ".");
return;
}
}
boolean IsIn = false;
boolean canSellItem = false;
switch (ShopHandler.shopSModifier[player.shopId]) {
// Only buys what is in stock
case 2:
for (int j = 0; j <= ShopHandler.shopItemsStandard[player.shopId]; j++) {
if (unNotedItemID == (ShopHandler.shopItems[player.shopId][j] - 1)) {
IsIn = true;
canSellItem = true;
break;
}
}
break;
// General store
case 1:
IsIn = true;
canSellItem = true;
break;
// Player owns this store
case 0:
IsIn = ShopHandler.playerOwnsStore(player.shopId, player);
canSellItem = ShopHandler.playerOwnsStore(player.shopId, player);
break;
}
if (IsIn == false) {
if (canSellItem == false) {
player.getPacketSender().sendMessage("You can't sell " + ItemAssistant.getItemName(removeId).toLowerCase() + " to this store.");
} else {
int ShopValue = (int) Math.floor(getItemShopValue(unNotedItemID, 1, true));
@@ -468,7 +468,7 @@ public class ShopAssistant {
private static int getUnNoted(int itemID){
String itemName = ItemAssistant.getItemName(itemID).toLowerCase();
String ItemNameUnNotedItem = ItemAssistant.getItemName(itemID - 1).toLowerCase();
if (itemName.contains(ItemNameUnNotedItem)) {
if (itemName.equalsIgnoreCase(ItemNameUnNotedItem)) {
itemID--; //Replace the noted item by it's un-noted version.
}
return itemID;
@@ -477,7 +477,7 @@ public class ShopAssistant {
private static int getNoted(int itemID){
String itemName = ItemAssistant.getItemName(itemID).toLowerCase();
String ItemNameUnNotedItem = ItemAssistant.getItemName(itemID + 1).toLowerCase();
if (itemName.contains(ItemNameUnNotedItem)) {
if (itemName.equalsIgnoreCase(ItemNameUnNotedItem)) {
itemID++; //Replace the item by it's noted version.
}
return itemID;
@@ -16,9 +16,9 @@ public class ShopHandler {
public static int MAX_SHOP_ITEMS = 40;
public static int SHOW_DELAY = 2;
public static int SHOW_DELAY = 1; // Restock 1 item every tick
public static int SPECIAL_DELAY = 60;
public static int SPECIAL_DELAY = 60; // Remove overstocked items after 60 ticks
public static int totalshops = 0;
@@ -106,11 +106,13 @@ public class ShopHandler {
shopItemsN[shopID][ArrayID] -= 1;
if (shopItemsN[shopID][ArrayID] <= 0) {
shopItemsN[shopID][ArrayID] = 0;
ResetItem(shopID, ArrayID);
if (shopItemsStandard[shopID] <= ArrayID)
ResetItem(shopID, ArrayID);
}
}
private static void ResetItem(int shopID, int ArrayID) {
if (shopItemsStandard[shopID] > ArrayID) return;
shopItems[shopID][ArrayID] = 0;
shopItemsN[shopID][ArrayID] = 0;
shopItemsDelay[shopID][ArrayID] = 0;
@@ -143,19 +145,19 @@ public class ShopHandler {
token = line.substring(0, spot);
token = token.trim();
token2 = line.substring(spot + 1);
token2 = token2.trim();
token2_2 = token2.replaceAll("\t+", "\t");
token3 = token2_2.split("\t");
token3 = token2.trim().split("\t+");
if (token.equals("shop")) {
int shopID = Integer.parseInt(token3[0]);
shopName[shopID] = token3[1].replaceAll("_", " ");
shopSModifier[shopID] = Integer.parseInt(token3[2]);
shopBModifier[shopID] = Integer.parseInt(token3[3]);
for (int i = 0; i < ((token3.length - 4) / 2); i++) {
if (token3[(4 + (i * 2))] != null) {
shopItems[shopID][i] = (Integer.parseInt(token3[(4 + (i * 2))]) + 1);
shopItemsN[shopID][i] = Integer.parseInt(token3[(5 + (i * 2))]);
shopItemsSN[shopID][i] = Integer.parseInt(token3[(5 + (i * 2))]);
int itemID = Integer.parseInt(token3[(4 + (i * 2))]);
int itemAmount = Integer.parseInt(token3[(5 + (i * 2))]);
if (itemID > 0) {
shopItems[shopID][i] = itemID + 1;
shopItemsN[shopID][i] = itemAmount;
shopItemsSN[shopID][i] = itemAmount;
shopItemsStandard[shopID]++;
} else {
break;
@@ -164,7 +166,7 @@ public class ShopHandler {
totalshops++;
}
} else {
if (line.equals("[ENDOFshopLIST]")) {
if (line.equalsIgnoreCase("[ENDOFSHOPLIST]")) {
try {
characterfile.close();
} catch (IOException ioexception) {
@@ -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;
@@ -794,6 +799,7 @@ public class PacketSender {
if (player.getOutStream() == null) return this;
player.outStream.createFrame(240);
DecimalFormat twoDForm = new DecimalFormat("#.##");
weight = Math.max(0, weight);
player.outStream.writeWord(Integer.valueOf(twoDForm.format(weight)));
return this;
}
@@ -1062,7 +1068,8 @@ public class PacketSender {
*/
public PacketSender sendSong(int id) {
if (player.getOutStream() == null) return this;
if (player.getOutStream() == null)
return this;
if (player != null && id != -1) {
player.getOutStream().createFrame(74);
player.getOutStream().writeWordBigEndian(id);
@@ -1075,7 +1082,8 @@ public class PacketSender {
*/
public PacketSender sendQuickSong(int id, int songDelay) {
if (player.getOutStream() == null) return this;
if (player.getOutStream() == null)
return this;
if (player != null) {
player.getOutStream().createFrame(121);
player.getOutStream().writeWordBigEndian(id);
@@ -1090,7 +1098,8 @@ public class PacketSender {
*/
public PacketSender sendSound(int id, int type, int delay, int volume) {
if (player.getOutStream() == null) return this;
if (player.getOutStream() == null)
return this;
if (player != null && id != -1) {
player.getOutStream().createFrame(174);
player.getOutStream().writeWord(id);
@@ -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
@@ -1,6 +1,5 @@
package com.rebotted.net.packets.impl;
import com.rebotted.GameConstants;
import com.rebotted.game.content.random.PartyRoom;
import com.rebotted.game.items.GameItem;
import com.rebotted.game.items.Item;
@@ -4,7 +4,6 @@ import com.rebotted.GameConstants;
import com.rebotted.GameEngine;
import com.rebotted.game.content.music.Music;
import com.rebotted.game.globalworldobjects.Doors;
import com.rebotted.game.players.Client;
import com.rebotted.game.players.Player;
import com.rebotted.net.packets.PacketType;
import com.rebotted.world.GlobalDropsHandler;
@@ -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.");
@@ -72,7 +72,9 @@ public class ClickItem implements PacketType {
return;
}
switch (itemId) {
case 4079:
player.startAnimation(1457);
break;
case 407:
if (Misc.random(1) == 0) {
player.getItemAssistant().addItem(409, 1);
@@ -182,25 +184,37 @@ public class ClickItem implements PacketType {
// break;
case 5070:
player.getPacketSender().sendMessage("You search the nest.");
player.getItemAssistant().addItem(5076, 1);
player.getItemAssistant().deleteItem(itemId, 1);
player.getItemAssistant().addItem(5075, 1);
if (player.getItemAssistant().freeSlots() >= 2) {
player.getPacketSender().sendMessage("You search the nest.");
player.getItemAssistant().addItem(5076, 1);
player.getItemAssistant().deleteItem(itemId, 1);
player.getItemAssistant().addItem(5075, 1);
} else {
player.getPacketSender().sendMessage("You do not have enough inventory space to do that.");
}
break;
case 5071:
if (player.getItemAssistant().freeSlots() >= 2) {
player.getPacketSender().sendMessage("You search the nest.");
player.getItemAssistant().addItem(5078, 1);
player.getItemAssistant().deleteItem(itemId, 1);
player.getItemAssistant().addItem(5075, 1);
break;
} else {
player.getPacketSender().sendMessage("You do not have enough inventory space to do that.");
}
break;
case 5072:
player.getPacketSender().sendMessage("You search the nest.");
player.getItemAssistant().addItem(5077, 1);
player.getItemAssistant().deleteItem(itemId, 1);
player.getItemAssistant().addItem(5075, 1);
break;
if (player.getItemAssistant().freeSlots() >= 2) {
player.getPacketSender().sendMessage("You search the nest.");
player.getItemAssistant().addItem(5077, 1);
player.getItemAssistant().deleteItem(itemId, 1);
player.getItemAssistant().addItem(5075, 1);
} else {
player.getPacketSender().sendMessage("You do not have enough inventory space to do that.");
}
break;
case 5073:
player.getItemAssistant().handleTreeSeeds(itemId);
@@ -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;
@@ -2,14 +2,13 @@ package com.rebotted.net.packets.impl;
import com.rebotted.game.content.combat.CombatConstants;
import com.rebotted.game.content.combat.Specials;
import com.rebotted.game.content.combat.magic.CastOnOther;
import com.rebotted.game.content.combat.magic.MagicData;
import com.rebotted.game.content.combat.magic.MagicTeleports;
import com.rebotted.game.content.combat.magic.*;
import com.rebotted.game.content.combat.prayer.ActivatePrayers;
import com.rebotted.game.content.music.Music;
import com.rebotted.game.content.music.sound.SoundList;
import com.rebotted.game.content.quests.QuestAssistant;
import com.rebotted.game.content.random.PartyRoom;
import com.rebotted.game.content.randomevents.RandomEventHandler;
import com.rebotted.game.content.randomevents.SandwhichLady;
import com.rebotted.game.content.skills.cooking.Cooking;
import com.rebotted.game.content.skills.cooking.CookingTutorialIsland;
@@ -57,7 +56,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);
}
@@ -92,73 +91,30 @@ public class ClickingButtons implements PacketType {
player.droppedItem = -1;
break;
case 50235:
MagicTeleports.paddewwaTeleport(player);
break;
case 50245:
MagicTeleports.senntisenTeleport(player);
break;
/**
* Spellbook Teleports
*/
case 50253:
MagicTeleports.kharyllTeleport(player);
break;
case 50235:
case 50245:
case 50253:
case 51005:
case 51013:
case 51023:
case 51031:
case 51039:
case 4140:
case 4143:
case 4146:
case 4150:
case 6004:
case 6005:
case 29031:
case 72038:
MagicTeleports.handleSpellTeleport(player, SpellTeleport.forButtonId(actionButtonId));
break;
case 51005:
MagicTeleports.lassarTeleport(player);
break;
case 51013:
MagicTeleports.dareeyakTeleport(player);
break;
case 51023:
MagicTeleports.carrallangarTeleport(player);
break;
case 51031:
MagicTeleports.annakarlTeleport(player);
break;
case 51039:
MagicTeleports.ghorrockTeleport(player);
break;
case 4140:
MagicTeleports.varrockTeleport(player);
break;
case 4143:
MagicTeleports.lumbridgeTeleport(player);
break;
case 4146:
MagicTeleports.faladorTeleport(player);
break;
case 4150:
MagicTeleports.camelotTeleport(player);
break;
case 6004:
MagicTeleports.ardougneTeleport(player);
break;
case 6005:
MagicTeleports.watchTowerTeleport(player);
break;
case 29031:
MagicTeleports.trollhiemTeleport(player);
break;
case 72038:
MagicTeleports.apeAtollTeleport(player);
break;
/**
* End of Modern Teleports
*/
case 4135:
if (player.inTrade) {
@@ -253,7 +209,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 +217,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 +225,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 +233,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 +243,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 +579,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 +1308,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(
@@ -1404,7 +1365,7 @@ public class ClickingButtons implements PacketType {
player.getPacketSender().sendFrame126(
"Waiting for other player...", 6571);
o1.getPacketSender().sendFrame126(
"Other player has accepted", 6571);
"Other player has accepted.", 6571);
}
} else {
Client o = (Client) PlayerHandler.players[player.duelingWith];
@@ -1646,7 +1607,7 @@ public class ClickingButtons implements PacketType {
}
player.getPacketSender().sendFrame126(
"Waiting for other player...", 3431);
ot.getPacketSender().sendFrame126("Other player has accepted",
ot.getPacketSender().sendFrame126("Other player has accepted.",
3431);
player.goodTrade = true;
ot.goodTrade = true;
@@ -1676,15 +1637,15 @@ public class ClickingButtons implements PacketType {
player.goodTrade = false;
ot.goodTrade = false;
player.getPacketSender().sendFrame126(
"Not enough inventory space...", 3431);
"Not enough inventory spaces.", 3431);
ot.getPacketSender().sendFrame126(
"Not enough inventory space...", 3431);
"Not enough inventory spaces.", 3431);
break;
} else {
player.getPacketSender().sendFrame126(
"Waiting for other player...", 3431);
ot.getPacketSender().sendFrame126(
"Other player has accepted", 3431);
"Other player has accepted.", 3431);
player.goodTrade = true;
ot.goodTrade = true;
}
@@ -1737,6 +1698,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 +1726,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.");
}
}
}
@@ -27,6 +27,9 @@ public class ItemClick2 implements PacketType {
}
switch (itemId) {
case 4079:
c.startAnimation(1459);
break;
}
}
@@ -33,7 +33,10 @@ public class ItemClick3 implements PacketType {
player.endCurrentTask();
switch (itemId) {
case 4079:
player.startAnimation(1460);
break;
case 2552:
case 2554:
case 2556:
@@ -16,7 +16,7 @@ public class ItemOnItem implements PacketType {
return;
}
player.endCurrentTask();
UseItem.ItemonItem(player, itemUsed, useWith);
UseItem.itemOnItem(player, itemUsed, useWith);
}
}

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