Compare commits

...

83 Commits

Author SHA1 Message Date
dependabot[bot] 1a92aea8a1 Bump json from 20190722 to 20230227 in /2006Scape Server
Bumps [json](https://github.com/douglascrockford/JSON-java) from 20190722 to 20230227.
- [Release notes](https://github.com/douglascrockford/JSON-java/releases)
- [Changelog](https://github.com/stleary/JSON-java/blob/master/docs/RELEASES.md)
- [Commits](https://github.com/douglascrockford/JSON-java/commits)

---
updated-dependencies:
- dependency-name: org.json:json
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-14 17:58:44 +00:00
halogod35 0e484985ad Update globaldrops.json (#634) 2023-03-21 02:41:16 +00:00
Josh Shippam e293bde96f Misc Changes (#633)
* Fix Weight Calculation For Add/Remove Item In ItemAssistant

* Re-Add Simple Stuck Command That Logs To Discord To Prevent Abuse

* Update Discord Log Chanel Var

* Fix int/interface Command

* Add World ID Check To DiscordBot Link Command

* Fix Java Warnings in DiscordBot Link Command
2023-03-20 23:35:25 +00:00
Josh Shippam d155a57380 Recalculate Weight When Buying/Selling Items (#632) 2023-03-02 00:25:55 +00:00
Josh Shippam a2d24978a4 Fix Firemaking in Dwarven Areas (#630)
Boundary Coords by @HaloGod35
2023-02-24 19:28:49 +00:00
Josh Shippam af7ae6185e Tag QoL Changes in ClientSettings.java With @QoL (#625) 2023-02-24 19:28:28 +00:00
halogod35 e679891a2d White Wolf Mountain fix (#629)
* Update spawns.json

* Update npc.json

* Update NpcEmotes.java

* Update spawns.json
2023-02-24 13:52:55 +00:00
Josh Shippam 48d3f64795 GameLogger Create Dir If Doesn't Exist (#628) 2023-02-24 02:45:34 +00:00
halogod35 83b2c119b3 Update Firemaking.java (#627) 2023-02-24 02:43:30 +00:00
halogod35 d4179ca6b7 Lumbridge Cow Pen update + Bug fixes (#626)
* Update npc.json

* Update spawns.json

* Update shops.json

* Update Shops.java

* Update Pickpocket.java
2023-02-24 01:26:33 +00:00
Josh Shippam 6fecac4b55 Fix Some NPC's Turning When Clicked That Shouldn't (#624)
* Fix Some NPC's That Shouldn't Turn When Clicked

* Fix Some NPC's That Shouldn't Turn When Clicked

* Make immobileNpcs private

* Npc.java IntelliJ Code Format
2023-02-23 04:18:57 +00:00
Josh Shippam 566d04744c Fix Variable XP Rates(Thanks Advo) (#620) 2023-02-21 06:28:17 +00:00
Josh Shippam 4f6afe496c Fixed Fridgeir and Styrmir "Walking" Around (#623) 2023-02-19 15:00:32 +00:00
Josh Shippam fc0782104b Fix Some Helmets (#622)
* Fix Some More Full Helms

* Fix Leather Cowl
2023-02-19 04:34:21 +00:00
Josh Shippam 9e285b96c5 Single Player changes (#621)
* Enabled GUI By Default For SinglePlayer

* GH Actions: Update Output File Name

* GH Actions: Update Workflow Actions To Latest Versions

* GH Actions: Cache Maven Deps
2023-02-19 01:58:06 +00:00
Josh Shippam 94026b854f Magic num nums (#619)
* Update Libs

* Replaced Some Magic Numbers

* Rename DWARF_REMAINS to NULL_0

* Food.java Rename DWARF_REMAINS to NULL_0

* Kebabs.java static import

* Kebabs.java IntelliJ Code Format

* Fix some fullmask item names

* Potions.java Replace Magic Numbers

* Potions.java IntelliJ Code Format

* BattleStaffs.java Replaced Magic numbers

* BattleStaffs.java IntelliJ Code Format

* CraftingData.java Replaced Some Magic Numbers & Fixed Some Enums?

* CraftingData.java IntelliJ Code Format
2023-02-18 04:39:47 +00:00
MatthewBishop 0105314d04 Add exception fallback to support more java (#618)
* Add exception fallback to support more java

* dark is lazy

* Update Food.java
2023-02-09 20:52:26 +00:00
MatthewBishop 58796561a3 Enum replacer (#617)
* Constants

* Update Enchanting.java

* Update Beverages.java

* Create ConstantReplacer.java
2023-02-09 19:48:17 +00:00
Josh Shippam 55ca851d07 Various Changes (#614)
* Clean Old Log Files

* Various Changes

* Moved minutes.log to log folder
* Made SERVER_LOG_DIR constant
* Moved FILE_SYSTEM_DIR to GameConstants & Deleted org.apollo.jagcached.Constants
* Removed unused minutes.log from data/data
* Removed Duplicate RSAKeyGen
* Moved RSAKeyGen from com.rs2.net.rsa to com.rs2.util.rsa

* Removed data/net.xml & Created Moved NetworkConstants.java

* Add HTTP & Jaggrab Port's to ConfigLoader

* IntelliJ Reformat ConfigLoader.java

* Fix Mistake

* Attempt #2

* Woops, wrong port
2023-02-09 01:05:06 +00:00
Dark98 88a9562e03 Revert "Revert "Bump jackson-databind from 2.10.5.1 to 2.12.7.1 in /2006Scape Server (#537)" (#613)"
This reverts commit 5d6827d82b.
2023-02-07 22:20:26 +00:00
dependabot[bot] 491a7db451 Bump gson from 2.8.6 to 2.8.9 in /2006Scape Server (#528)
Bumps [gson](https://github.com/google/gson) from 2.8.6 to 2.8.9.
- [Release notes](https://github.com/google/gson/releases)
- [Changelog](https://github.com/google/gson/blob/master/CHANGELOG.md)
- [Commits](https://github.com/google/gson/compare/gson-parent-2.8.6...gson-parent-2.8.9)

---
updated-dependencies:
- dependency-name: com.google.code.gson:gson
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-07 21:46:37 +00:00
Josh Shippam 5d6827d82b Revert "Bump jackson-databind from 2.10.5.1 to 2.12.7.1 in /2006Scape Server (#537)" (#613)
This reverts commit a26d5cf7eb.
2023-02-07 21:41:30 +00:00
Josh Shippam 0721314a6d Remove Unused MySQL Library (#612) 2023-02-07 21:16:20 +00:00
MatthewBishop e6ff7550f5 Fix getLevelforXP methods (#611)
* Use single method for level for XP

These methods are functionally identical. This was done via test from 0->13034431 and they always returned the same value.

* redundant access

* New xp and level methods

* Removed test command
2023-02-07 20:59:50 +00:00
dependabot[bot] a26d5cf7eb Bump jackson-databind from 2.10.5.1 to 2.12.7.1 in /2006Scape Server (#537)
Bumps [jackson-databind](https://github.com/FasterXML/jackson) from 2.10.5.1 to 2.12.7.1.
- [Release notes](https://github.com/FasterXML/jackson/releases)
- [Commits](https://github.com/FasterXML/jackson/commits)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-07 04:54:46 +00:00
Josh Shippam 572c80b32e Fix Parabot Keyboard Input (#610) 2023-02-07 04:12:36 +00:00
MatthewBishop fad41f9947 Merge pull request #609
* tokkul pricing
2023-02-07 02:08:48 +00:00
Pazaz 9c5ea6ec1d Merge pull request #608
* fix: Remove Oracle JRE dependency for sound effects
2023-02-07 02:06:54 +00:00
MatthewBishop 81e6344dd8 Bug fixes (#603)
* Update Boundary.java

* fix xp to level up

* tomato shop

* fix longsword attack anim

* Update MeleeData.java

* fix dagger/longsword/shortsword anims

* Update MeleeData.java

* obby maul and warhammer interfaces and halberd anims

* Pickaxe anims

randomly uses the anim for either stab str or crush str. Cheaphax before system redesign

* adds razmires builder shop

* pom.xml update
2023-02-06 18:43:27 +00:00
Josh Shippam 67efff663e Fix GroundItem Value Setting (#590) 2023-02-06 02:47:11 +00:00
Josh Shippam 64f9654377 Changes to make Updating the Live Server easier (#589)
* Update Default Server IP to Live

* Add RSAKeyGen.java
2023-02-06 02:11:31 +00:00
MatthewBishop 2da0029a41 fix null session on bots (#588)
* Emergency Fix

* fix crash

* Update Player.java
2023-02-06 02:00:39 +00:00
MatthewBishop 9d5d1c57ac Emergency Fix (#587) 2023-02-06 01:06:37 +00:00
Josh Shippam 5db6da334d Kotlin -> Java (#586)
* Convert All Plugins To Java

* Convert Rest Of Kt To Java & Remove Kt From Maven
2023-02-05 22:30:52 +00:00
MatthewBishop eab153ee3f Def cleanup (#585)
* Object definition cleanup

* Update ShopAssistant.java

* stackables

* notables

* unused files

* more junk

* almost done

* working

* moving old methods to deprecated

* update

* fixed pickpocket typos

* Update Pickpocket.java

* Remove redundant method. Fix stall stealing

* Documentation for deprecated methods

* WIP commit partial removal. Has test and dump classes

* Final cleanup

* Move definitions from data folder to cfg

* Temporarily moving definition loaders to GameEngine

This is until loading can be done asynchronously.

* Correct indentation.
2023-02-05 22:30:29 +00:00
Josh Shippam b2212d357e Add New Kotlin Dir To Maven POM (#584) 2023-02-05 04:25:25 +00:00
Josh Shippam a5df216be9 Move Kotlin Files To src/main/kotlin (#583) 2023-02-05 04:13:38 +00:00
Josh Shippam 1a2a7e2b9b Fix Darks Mistakes (#580)
Co-authored-by: MatthewBishop <55411296+matthewbishop@users.noreply.github.com>
2023-02-04 07:02:44 +00:00
Josh Shippam 42727bde11 Suppress "unused" Warnings in StaticLists (#579)
warnings bug me
2023-02-04 06:54:25 +00:00
Josh Shippam f59e396359 Block anim fixes (#578)
* Fix Shield & Staff Block Anims

* IntelliJ Code Format MeleeData.java
2023-02-04 06:38:20 +00:00
Josh Shippam c42dc29f73 Only Enable Custom Settings Tab If "-qol/-fixes" Arg Is Used (#575) 2023-02-03 00:30:56 +00:00
Josh Shippam 628d8b98da Magic numbers & removed some dead specials (#574)
* Replace Magic Numbers in Specials.java

* Removed Dbow, Hand Cannon & Morrigans Ranged Specs

Released after 2006

* RangeData.java Convert Magic Numbers

* DwarfCannon.java Convert Magic Numbers
2023-02-02 06:56:44 +00:00
Josh Shippam 209dae48a6 Fix X11 Error On Headless Servers With GUI Disabled (#573) 2023-02-02 05:00:54 +00:00
halogod35 fa7418929e Various Additions and Fixes (#571)
* Updated and Added various drops

Added global drops to Al-Kharid and Lumbridge

* Added Uglug and Roachey

* Update npc.json

* Update shops.json

* Update Shops.java
2023-02-02 02:48:04 +00:00
halogod35 d7a70fdfdc Various Fixes (#570)
* Grammatical fixes

* Fixed longsword combat styles
2023-02-01 02:44:02 +00:00
Josh Shippam ec77731ff5 Fix NoSuchElementException In Discord Link Command (#569) 2023-02-01 02:43:45 +00:00
MatthewBishop 64d4990c99 Farming task (#567)
* Firemaking: Fix some text (#548)

* Network cleanup (#552)

* Replaced packetType/Size with packet

* Replace Instream with Packet

Read data directly from packet to ease future network upgrade

* Update Packet.java

Removed unused methods to ease netty migration and network rewrite.

* Moved packet sizes.

* Removed unused stream methods

* Added readhex method for buttons

* preparing to replace mina

* Packet->GamePacket for refactoring

* Netty 3.6.6

* formatting

* formatting

* Apollo core

* Update net.xml

Added variables for 2006scape

* Netty 4 migration. Jagcached replaced with Apollo Core

* Porting network into apollo

* WIP Packet Changes

Do not merge. This is broken.

* Packet read methods converted to netty buffer

* Replacing game network and login with apollo

* Netty 4

* Cleanup

* Same port for update and game server.

* Cleanup login for integration with apollo

* Login works. fixing packets

* Running on apollo netcode.

* Server runs

* Update apollo-core.jar

* Disable encoder. write outstream directly to channel.

* Update RS2ProtocolDecoder.java

Added apollo decoder

* Add constant

* Synchronization not needed

* Update apollo-core.jar

* Better performance.

* Commit pre PR

* Update apollo-core.jar

* Fixup Port Binding Based On World

* Apollo files

* Additional Commit

---------

Co-authored-by: Dark98 <darkaidz98@gmail.com>

* Redo StaticNpcList constants (#553)

* Redo StaticNpcList constants

* Added items and objects

* Update NpcAggressive.java

* Bump netty-all from 4.0.34.Final to 4.1.42.Final in /2006Scape Server (#555)

Bumps [netty-all](https://github.com/netty/netty) from 4.0.34.Final to 4.1.42.Final.
- [Release notes](https://github.com/netty/netty/releases)
- [Commits](https://github.com/netty/netty/compare/netty-4.0.34.Final...netty-4.1.42.Final)

---
updated-dependencies:
- dependency-name: io.netty:netty-all
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Converted FarmingTask to CycleEvent

* Removed redundant tick system.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Josh Shippam <darkaidz98@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-01 02:43:30 +00:00
Josh Shippam 0754b24aa7 Implemented & Adapted RobGob69's Server ControlPanel (#568) 2023-01-30 22:27:20 +00:00
halogod35 32947bbd15 Shop update (#566)
* Updated shops

* Updated shops

* Updated shops

* Updated shops

* Updated shops

forgot to beautify

* Updated Shops

Replaced IDs with NPC IDs (Credit: Matthew Bishop)
2023-01-30 19:36:47 +00:00
halogod35 d5490bd39d Updated general stores to buy and sell all items (#565)
* Updated all shops to correct quanities

* fixed shop quantities

Fixed Diango, Keldagrim, Lighthouse, Ape Atoll, and Mage Arena

* Updated shop items, quantities, and names

Updated Castle Wars, Lletya, Void Knight Outpost, and Mos Le' Harmless

* Updated shop names, items, and quantities

touchups

* Updated general stores to buy and sell all items

* Updated general shops to buy and sell all items

* Updated general stores to buy and sell all items
2023-01-30 00:40:09 +00:00
Josh Shippam aab9cfe951 Replace a bunch of magic numbers & Fix Mackerel Spelling (#559)
* Convert Some NPCActions Magic Numbers

* IntelliJ Reformat NpcActions.java

* Convert Magic Numbers In Dye.java

* Convert More Magic Numbers In NpcActions.java

* Convert More NpcActions.java Magic Numbers

* Plugins: Replace Magic Numbers

* Skills: Cooking: Replaced all Item/Object Magic Numbers & Fixed Mackerel spelling

* Food: Fixed Mackerel spelling

* Skills: Fishing: Replace Magic Numbers

* Skills: Mining: Replace Magic Numbers

* IntelliJ Code Reformat Changed Files
2023-01-30 00:11:12 +00:00
halogod35 15d6b9f35a Added Shop assistants, Fixed #551 and #563 (#564)
* Updated all shops to correct quanities

* fixed shop quantities

Fixed Diango, Keldagrim, Lighthouse, Ape Atoll, and Mage Arena

* Updated shop items, quantities, and names

Updated Castle Wars, Lletya, Void Knight Outpost, and Mos Le' Harmless

* Updated shop names, items, and quantities

touchups

* Added shop assistants, fixed issues #551 and #563

Added shop assistants to Al-Kharid, Edgeville, Falador, Karamja, Lumbridge, Rimmington, Varrock, and Zanaris.
Changed Lumbridge assistant to Varrock Swordshop assistant
Changed Varrock assistant's shop from Lumby to Varrock

* Added shop assistants, fixed issues #551 and #563

Added shop assistants to Al-Kharid, Edgeville, Falador, Karamja, Lumbridge, Rimmington, Varrock, and Zanaris.
Changed Lumbridge assistant to Varrock Swordshop assistant
Changed Varrock assistant's shop from Lumby to Varrock
2023-01-29 21:57:46 +00:00
halogod35 ccf628f0b1 Updated shops to have era accurate names, items, and quantities (#562)
* Updated all shops to correct quanities

* fixed shop quantities

Fixed Diango, Keldagrim, Lighthouse, Ape Atoll, and Mage Arena

* Updated shop items, quantities, and names

Updated Castle Wars, Lletya, Void Knight Outpost, and Mos Le' Harmless

* Updated shop names, items, and quantities

touchups
2023-01-29 19:24:32 +00:00
Josh Shippam da8471673f JFrame Links to Vars & Add Some Args (#561)
* Changed JFrame Links to Variables in ClientSettings.java
* -qol/-fixes sets true BILINEAR_MINIMAP_FILTERING, FIX_TRANSPARENCY_OVERFLOW & FULL_512PX_VIEWPORT
* -no-nav/-disable-nav sets false SHOW_NAVBAR
2023-01-28 23:27:03 +00:00
Pazaz 62b26c5585 Functional navbar (toggleable in ClientSettings) (#560)
* Fixed client frame offsets/padding

* Functional navbar (toggleable in ClientSettings)
2023-01-28 22:06:05 +00:00
Pazaz e517be1bfb 3 configurable graphics fixes in ClientSettings (#558) 2023-01-28 20:39:12 +00:00
Pazaz afdf369104 Fixed client frame offsets/padding (#557) 2023-01-28 20:37:33 +00:00
dependabot[bot] 8e750096cd Bump netty-all from 4.0.34.Final to 4.1.42.Final in /2006Scape Server (#555)
Bumps [netty-all](https://github.com/netty/netty) from 4.0.34.Final to 4.1.42.Final.
- [Release notes](https://github.com/netty/netty/releases)
- [Commits](https://github.com/netty/netty/compare/netty-4.0.34.Final...netty-4.1.42.Final)

---
updated-dependencies:
- dependency-name: io.netty:netty-all
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-28 05:36:50 +00:00
Josh Shippam 7f79dff665 Random Fixes (#554)
* Shops: Fixed stock amount in "Nurmof's Pickaxe Shop"

* ConfigLoader:Fix server_debug key/value

* Fix "players" Command Text
2023-01-28 05:32:52 +00:00
MatthewBishop 6e69dea45a Redo StaticNpcList constants (#553)
* Redo StaticNpcList constants

* Added items and objects

* Update NpcAggressive.java
2023-01-28 05:32:32 +00:00
MatthewBishop e46b7142c3 Network cleanup (#552)
* Replaced packetType/Size with packet

* Replace Instream with Packet

Read data directly from packet to ease future network upgrade

* Update Packet.java

Removed unused methods to ease netty migration and network rewrite.

* Moved packet sizes.

* Removed unused stream methods

* Added readhex method for buttons

* preparing to replace mina

* Packet->GamePacket for refactoring

* Netty 3.6.6

* formatting

* formatting

* Apollo core

* Update net.xml

Added variables for 2006scape

* Netty 4 migration. Jagcached replaced with Apollo Core

* Porting network into apollo

* WIP Packet Changes

Do not merge. This is broken.

* Packet read methods converted to netty buffer

* Replacing game network and login with apollo

* Netty 4

* Cleanup

* Same port for update and game server.

* Cleanup login for integration with apollo

* Login works. fixing packets

* Running on apollo netcode.

* Server runs

* Update apollo-core.jar

* Disable encoder. write outstream directly to channel.

* Update RS2ProtocolDecoder.java

Added apollo decoder

* Add constant

* Synchronization not needed

* Update apollo-core.jar

* Better performance.

* Commit pre PR

* Update apollo-core.jar

* Fixup Port Binding Based On World

* Apollo files

* Additional Commit

---------

Co-authored-by: Dark98 <darkaidz98@gmail.com>
2023-01-28 05:31:19 +00:00
Josh Shippam aa6dbba8e2 Firemaking: Fix some text (#548) 2023-01-26 03:31:05 +00:00
Josh Shippam 66a554aeeb Update README & Start Converting Java To Kotlin (#539)
* Rename .java to .kt

* DiscordBot Java -> Kotlin

* Rename .java to .kt

* ConfigLoader Java -> Kotlin

* Update ReadMe For Latest Using Parabot Locally

* Rename .java to .kt

* GameConstants Java -> Kotlin

* Add Missing "server_test_version" Field To ServerConfig.Sample.json
2023-01-26 02:15:33 +00:00
MatthewBishop 8cf8a4db2c Bugfix: NPC Combat and Damage Application (#541) 2023-01-26 01:48:54 +00:00
MatthewBishop 1ad531d244 Replace clipping files with loading straight from the cache. (#540)
* Archive decompression from apollo

* Removed unused object definition fields

* Add more options to IndexedFileSystem

New methods are to read directly to a bytearray rather than allocating a large number of ByteBuffers on server startup for map loading. decompress is from client and will be depre

* Fix opcode 19 of object defs

* Initial commit of loading maps from cache

* Removed deprecated methods

Methods were in IndexedFileSystem for testing to ensure the getFileBytes method worked correctly.

* Some code cleanup to fix packaging.

#TODO review methods in CompressionUtil to use the best Gzip decompression

* map_index loading from cache

* Update pom.xml

Added commons compress dependency from maven for bzip2 decompression

* Renaming some object definition values.

* Update ObjectDefinition.java

Removed rest of unused variables

* Update ObjectDefinition.java

* Object Definitions loading from cache

* Remove dead code

* Remove unneeded files

Maps/Definitions now load from in the cache.

* Firemaking clipping
2023-01-25 19:15:31 +00:00
AugustasK f56402845b Implemented functionality where user can search for traps in some chests (#534)
* Initial commit

* Implemented cooldown timer and added ardougne castle chest

* Refactoring

* Removing unused variable
2023-01-20 16:48:45 +00:00
Dark98 9fd4b470c8 Setup GH Actions For Windows Single-Player 2022-08-22 05:44:54 +01:00
Josh Shippam 5dea59f903 Various Changes (#533)
* Add Shield Blocking Emote For Two NPC's

* Fix KARAMBWAN HP Restore Amount

* Add Link Command To Discord Bot

* Github Actions Update
2022-08-22 05:22:00 +01:00
Olivier 7514826803 Merge pull request #527
* Various Fixes

* Sea Turtle can be cooked, fixed xp received when cooking Manta Ray
* Al kharid warrior has correct emote when fighting
* Drop tables only roll once for items that do not have 100% drop rate (Prevents multiple items from rolling and dropping on same npc)
* Nerfed Tree Spirit (Lost City) max hit (From 20 to 10)
* Nerfed Abyssal Demon max hit (From 16 to 8)
2022-04-19 03:40:19 +01:00
darkaidz98@gmail.com 81cd126a33 Revert Library Updates To Fix Server 2022-01-29 10:45:52 +00:00
Josh Shippam 54a3e5cdec Various Changes (#523)
* Discord Bot Update

Updated JavaCord To Latest
Changed Some Commands To No Longer Be World Specific
Added An "AdminCommands" Command

* Update Some Server Libs

* Added Purge & Pin/Un-Pin To Commands Discord Bot

* Fixed -dev & -no-crc Client Args

* Add Discord User ID Linking Support(Useless For Now)

* Added Support For User's Kicking Own Accounts Through Discord Bot

* Merge Website Integration Stuff Into One Var
2022-01-27 01:32:17 +00:00
Teddy 63055f9181 East falador staircase was falling into the last if which was teleporting the player to a void (#522)
Co-authored-by: Sad Emu <wcpro111@gmail.com>
2022-01-22 03:32:48 +00:00
Teddy 9a3cf5867a Added jad ranged attack projectile (#521)
Co-authored-by: Sad Emu <wcpro111@gmail.com>
2022-01-20 23:53:19 +00:00
Dark98 c5c4471a4f Added Current World To Client Title 2022-01-08 01:54:00 +00:00
Dark98 500441d551 Added/Fixed Right Click Banking For Fadli(Duel Arena Banker) 2022-01-08 00:46:56 +00:00
Dark98 803346323b Fix Discord Bot Derp 2022-01-08 00:18:35 +00:00
Josh Shippam e1a8d85408 Second World Setup (#518)
* Start Setting Up Second World

Added World Number To Login Message
Added World Number To Login Interface
Made World 2 Listen On Different Port
Made Client Connect To 43597 For World 2

* Small Cleanup For World 2 Support

Calculate Port For World Based On World Number
Use Existing World int For World In Server

* Woops Wrong Ports

* Set Server Port After Loading Config

* Add xpRate Var & Include With XPRate Calculations

* Add -w/-world arg to client

* Add XP Rate Multiplier For Non-Bot Worlds

* More Multi World Stuff

Update Integrations(Discord Bot/Website Stuff) For Multiple Worlds
Added More XP Rate Dialogue Stuff

* Add Kick Command To Discord Bot & Fix Type In ConfigLoader

* Create/Use commandPrefix Var For Discord Bot

* Small Fixup For World 2

Renamed BOT_WORLD to VARIABLE_XP_RATE
Fixed Dialogue/Message grammar
Added a check for VARIABLE_XP_RATES to ::xprate command

* More Discord Commands(GameKick, MoveHome & Update)

*GameKick kicks A player if their client froze but acc stayed logged in
*MoveHome removes the need for ::stuck which removes potential for abuse
*Update schedules A server update

* Minor fixup

* 43597 → 43598

* Fix XP Rate Multiplier & add ::xprate to cooamnds list if enabled

* Use Either VARIABLE_SKILL_RATE OR XP_RATE Not Both

TODO(Convert Player.xpRate Into An Array For Easier Rate Changes)

* Create/Use PLAYER_XP_RATES For Easier Rate Changes

* Fixed Abusive Client Command Privileges & Added myxprate/checkxprate

* Allow Loading VARIABLE_XP_RATES & PLAYER_XP_RATES From Config

* Properly Update Client Title Logo

If The Cache Has Already Been Downloaded You Will Need To Delete It & Let The Client ReDownload It

* Fix Cache CRC Checks For The Client(Allows Cache To Actually Check For Updates)

* Add -no-crc & -dev Arguments To Client

* Fix Naming For Some Vars

* Make CHECK_CRC Description More Descriptive

* Fix More Var Descriptions

* Cleanup Unused GameConstants Vars & Add More Vars To ConfigLoader

Co-authored-by: Danial <admin@redsparr0w.com>
2021-12-31 03:47:48 +00:00
Josh Shippam 1c5b400f00 Merge The File&Game Servers Into One Module (#519)
* Merge The File&Game Servers Into One Module

* Make SettingsLoader A GameConstants ConfigLoader
If A Config File Isn't Used, The Server Will Fall Back To The Defaults Set In GameConstants.java

Config Files Can Be Loaded With The "-c/-config configfilelocation.json"
Added A Default Prefilled ServerConfig.json

* Update ConfigLoader

* Bring Back Independant "Secrets" Loader For External Password Stuff
* Added A Bunch More Vars To The ConfigLoader
* Included A Sample "Server Config"
* Also Updated README.md As Parabot Is No Longer Maintained & We No Longer Have A FileServer Module

* Bundle FileServer with Server (docker)

* Remove /udp and http port

* Update .gitignore

* Move FileServer from `org.apollo.jagcached` → `org/apollo/jagcached`

* Tidy GameConstants & Add More Vars To ConfigLoader

* Organised Up GameConstants A Little To Separate ConfigLoader Vars From The Rest
* Added Some More Variables To Be Loaded Through The ConfigLoader

* Fix A Derp Caused By Laziness

* Add -c/-config arg to README.md

* Enable FileServer By Default

Co-authored-by: Danial <admin@redsparr0w.com>
2021-11-23 00:29:25 +00:00
Dark98 ba7f84fc45 Only Print Loaded Plugins When Debug Enabled
(cherry picked from commit 2629186cc0)
2021-11-09 02:07:21 +00:00
Dark98 f30a936ff6 Revert "Update Client Title Logo"
woops this broke the cache
This reverts commit 97f1eb72e4.

(cherry picked from commit 7a2a6d362b)
2021-11-09 02:06:54 +00:00
Dark98 abe34d86b1 Add Plugins/Kotlin Support To Maven
(cherry picked from commit 546669ead0)
2021-11-09 02:06:49 +00:00
Danial d23b176a28 Make file server optional if cache already downloaded (#514)
(cherry picked from commit 669573c660)
2021-11-09 02:06:46 +00:00
Danial c1202e8989 Couple of fixups (#513)
* Show preference state

* Fixup multiple of the same item on the ground.

* Fixup combat

* Fixup yell, decrease delay

* Tidy up yell

* use jdk8

(cherry picked from commit 1fe76d739e)
2021-11-09 02:06:42 +00:00
1853 changed files with 78230 additions and 323965 deletions
+21 -7
View File
@@ -1,4 +1,4 @@
# This workflow will build a Java project with Maven
# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
name: Java CI with Maven
@@ -11,14 +11,28 @@ on:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Set up JDK 1.8
uses: actions/setup-java@v1
uses: actions/setup-java@v2
with:
java-version: 1.8
distribution: 'zulu'
java-version: '8'
cache: 'maven'
- name: Build with Maven
run: mvn -B clean install
id: build
run: |
mvn -B clean package
mkdir -p ~/artifacts
cp "2006Scape Client/target/client-1.0-jar-with-dependencies.jar" ~/artifacts/Client.jar
cp "2006Scape Server/target/server-1.0-jar-with-dependencies.jar" ~/artifacts/Server.jar
cp "2006Scape Server/ServerConfig.Sample.json" ~/artifacts/ServerConfig.json
cp SinglePlayer.bat ~/artifacts/
cp -r "2006Scape Server/plugins" ~/artifacts/
cp -r "2006Scape Server/data" ~/artifacts/
- name: Publish build to GH Actions
uses: actions/upload-artifact@v3
with:
path: ~/artifacts/*
name: 2006Scape-SinglePlayer
+3
View File
@@ -12,3 +12,6 @@
2006Scape Client/bin/
*.prefs
*.classpath
# Ignore any json files in the server root (should only be config files, the sample file should still be updated)
2006Scape Server/*.json
@@ -1,11 +1,16 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.6
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
org.eclipse.jdt.core.compiler.processAnnotations=disabled
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.8
@@ -2,37 +2,90 @@ import java.math.BigInteger;
/**
* ClientSettings
*
* @author Andrew (I'm A Boss on Rune-Server and Mr Extremez on Mopar & Runelocus)
*/
public class ClientSettings {
public static String SNOW_MONTH = ".12";
/**
* The Servers Name
*/
public final static String SERVER_NAME = "2006Scape";
/**
* The Servers Website
*/
public final static String SERVER_WEBSITE = "www.2006Scape.org";
/**
* The Servers Ip
*
* You don't have to change this, the client will automatically connect to the server
* on localhost (Assuming you're running Client and LocalGame respectively)
*
*/
public static String SERVER_IP = "www.2006Scape.org";
/**
* The Npc Bits for the Server
*/
public final static int NPC_BITS = 12;
/**
* The Servers Uid
*/
public final static int UID = 314268572;
public static final BigInteger RSA_MODULUS = new BigInteger("91553247461173033466542043374346300088148707506479543786501537350363031301992107112953015516557748875487935404852620239974482067336878286174236183516364787082711186740254168914127361643305190640280157664988536979163450791820893999053469529344247707567448479470137716627440246788713008490213212272520901741443");
public static final BigInteger RSA_EXPONENT = new BigInteger("65537");
/**
* @QoL
* Enables Server-Wide Snow In The Designated Month
*/
public static String SNOW_MONTH = ".12";
/**
* The Servers Name
*/
public final static String SERVER_NAME = "2006Scape";
/**
* The Servers Website
*/
public final static String SERVER_WEBSITE = "https://2006Scape.org/";
/**
* The Servers Ip
* You don't have to change this, the client will automatically connect to the server
* on localhost (Assuming you're running Client and LocalGame respectively)
*/
public static String SERVER_IP = "server.2006scape.org";
/**
* The Servers World
* This Determines The Port The Server Will Connect On
* World 1 Will Connect On Port 43594
* World 2 Will Connect On Port 43598
*/
public static int SERVER_WORLD = 1;
/**
* @QoL
* If false, the client will run the on demand fetcher based on SERVER_WORLD. If true it will
* only connect to the server on world 1/Port 43594.
*/
public static boolean SINGLE_ONDEMAND = true;
public static boolean SHOW_NAVBAR = true;
public static final String NAV_MAINMENU_LINK = SERVER_WEBSITE;
public static final String NAV_WORLDMAP_LINK = SERVER_WEBSITE + "img/worldmap.jpg";
public static final String NAV_MANUAL_LINK = SERVER_WEBSITE;
public static final String NAV_RULES_LINK = SERVER_WEBSITE + "kbase/rules.php";
/**
* @QoL
* Enables A Custom Tab With Various QoL Changes
*/
public static boolean CUSTOM_SETTINGS_TAB = false;
/**
* @QoL
* Enables Bilinear Minimap Filtering Which Smooths Out Lines And Sprites On The Minimap
*/
public static boolean BILINEAR_MINIMAP_FILTERING = false;
/**
* @QoL
* fixes overlapping lines drawn on transparent objects by post-incrementing the offset
* note: there's 2 other instances that haven't been updated in Texture.java (misnamed) because rarely used like this
*/
public static boolean FIX_TRANSPARENCY_OVERFLOW = false;
/**
* @QoL
* render the game to 512px instead of 511px (black line on right side)
*/
public static boolean FULL_512PX_VIEWPORT = false;
/**
* @QoL
* Enables/Disables FileServer CRC Checking For Cache Updates
* FileServer Must Be Running Before Starting The Client If This Is True
*/
public static boolean CHECK_CRC = true;
/**
* The Npc Bits for the Server
*/
public final static int NPC_BITS = 12;
/**
* The Servers Uid
*/
public final static int UID = 314268572;
public static final BigInteger RSA_MODULUS = new BigInteger("91553247461173033466542043374346300088148707506479543786501537350363031301992107112953015516557748875487935404852620239974482067336878286174236183516364787082711186740254168914127361643305190640280157664988536979163450791820893999053469529344247707567448479470137716627440246788713008490213212272520901741443");
public static final BigInteger RSA_EXPONENT = new BigInteger("65537");
}
@@ -16,7 +16,11 @@ public class DrawingArea extends NodeSub {
topY = 0;
bottomX = width;
bottomY = height;
centerX = bottomX - 1;
if (ClientSettings.FULL_512PX_VIEWPORT) {
centerX = bottomX;
} else {
centerX = bottomX - 1;
}
centerY = bottomX / 2;
}
@@ -37,7 +41,11 @@ public class DrawingArea extends NodeSub {
topY = l;
bottomX = k;
bottomY = i;
centerX = bottomX - 1;
if (ClientSettings.FULL_512PX_VIEWPORT) {
centerX = bottomX;
} else {
centerX = bottomX - 1;
}
centerY = bottomX / 2;
anInt1387 = bottomY / 2;
}
+60 -36
View File
@@ -25,6 +25,7 @@ import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Calendar;
import java.util.Date;
import java.util.zip.CRC32;
/**
* NOTICE: IF YOU CHANGE ANYTHING IN GAME.JAVA, PLEASE COPY-PASTE THE WHOLE CLASS OVER TO LOCALGAME.JAVA
@@ -1807,7 +1808,7 @@ public class Game extends RSApplet {
invBack.method361(0, 0);
if (invOverlayInterfaceID == -1) {
if (tabInterfaceIDs[tabID] != -1) {
if (tabID == 7) {
if (tabID == 7 && ClientSettings.CUSTOM_SETTINGS_TAB) {
try {
int centerX = 95;
int currentY = 10;
@@ -1829,10 +1830,13 @@ public class Game extends RSApplet {
aTextDrawingArea_1271.textCenterShadow(Color.WHITE.hashCode(), centerX, WorldController.drawDistance + " tiles", currentY + textBottom, true);
drawButton(customSettingShowExperiencePerHour, centerX - 73, currentY += 40, 146);
aTextDrawingArea_1271.textCenterShadow(customSettingShowExperiencePerHour ? Color.YELLOW.hashCode() : Color.YELLOW.hashCode(), centerX, "show exp info", currentY + textMiddle, true);
aTextDrawingArea_1271.textCenterShadow(Color.YELLOW.hashCode(), centerX, "show exp info", currentY + textMiddle, true);
drawButton(showInfo, centerX - 73, currentY += 40, 146);
aTextDrawingArea_1271.textCenterShadow(showInfo ? Color.YELLOW.hashCode() : Color.YELLOW.hashCode(), centerX, "show debug info", currentY + textMiddle, true);
aTextDrawingArea_1271.textCenterShadow(Color.YELLOW.hashCode(), centerX, "show debug info", currentY + textMiddle, true);
drawButton(customSettingVisualFixes, centerX - 73, currentY += 40, 146);
aTextDrawingArea_1271.textCenterShadow(Color.YELLOW.hashCode(), centerX, "visual fixes", currentY + textMiddle, true);
} catch (Exception e) { }
}
}
@@ -3429,11 +3433,12 @@ public class Game extends RSApplet {
}
} catch (Exception _ex) {
}
if (abyte0 != null) {
// aCRC32_930.reset();
// aCRC32_930.update(abyte0);
// int i1 = (int)aCRC32_930.getValue();
// if(i1 != j)
if(abyte0 != null && ClientSettings.CHECK_CRC) {
aCRC32_930.reset();
aCRC32_930.update(abyte0);
int i1 = (int)aCRC32_930.getValue();
if(i1 != j)
abyte0 = null;
}
if (abyte0 != null) {
StreamLoader streamLoader = new StreamLoader(abyte0);
@@ -3480,12 +3485,20 @@ public class Game extends RSApplet {
} catch (Exception _ex) {
decompressors[0] = null;
}
/*
* if(abyte0 != null) { aCRC32_930.reset();
* aCRC32_930.update(abyte0); int i3 =
* (int)aCRC32_930.getValue(); if(i3 != j) { abyte0 = null;
* j1++; s2 = "Checksum error: " + i3; } }
*/
if(abyte0 != null && ClientSettings.CHECK_CRC)
{
aCRC32_930.reset();
aCRC32_930.update(abyte0);
int i3 = (int)aCRC32_930.getValue();
if(i3 != j)
{
abyte0 = null;
j1++;
s2 = "Checksum error: " + i3;
}
}
} catch (IOException ioexception) {
if (s2.equals("Unknown error")) {
s2 = "Connection error";
@@ -4662,7 +4675,10 @@ public class Game extends RSApplet {
mouseDetection.running = false;
}
mouseDetection = null;
onDemandFetcher.disable();
if (onDemandFetcher != null) {
// prevent an exception if the client hasn't connected but tries to close the client, so it will actually close
onDemandFetcher.disable();
}
onDemandFetcher = null;
aStream_834 = null;
stream = null;
@@ -4803,9 +4819,6 @@ public class Game extends RSApplet {
Component getGameComponent() {
if (Signlink.mainapp != null) {
return Signlink.mainapp;
}
if (super.gameFrame != null) {
return super.gameFrame;
} else {
return this;
}
@@ -5021,12 +5034,12 @@ public class Game extends RSApplet {
if (inputString.equals("::gfxtgl") || inputString.equals("::tglgfx") || inputString.equals("::togglerender") || inputString.equals("::togglegfx")) {
graphicsEnabled = !graphicsEnabled;
}
if (myPrivilege >= 0) {
if(inputString.equals("::noclip"))
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 (myPrivilege >= 2) {
if (inputString.equals("::noclip"))
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.equals("::clientdrop")) {
dropClient();
}
@@ -5060,6 +5073,7 @@ public class Game extends RSApplet {
onDemandFetcher.method563((byte) 1, 2, j1);
}
}
}
if (inputString.startsWith("::dd")) {
String[] args = inputString.split(" ");
int distance = 25;
@@ -5078,7 +5092,6 @@ public class Game extends RSApplet {
if (inputString.equals("::dataon")) {
showInfo = !showInfo;
}
}
if (inputString.startsWith("::")) {
stream.createFrame(103);
stream.writeWordBigEndian(inputString.length() - 1);
@@ -5597,12 +5610,13 @@ public class Game extends RSApplet {
}
int customTabAction = 0;
boolean customSettingVisiblePlayerNames = true;
int customSettingMinItemValue = 1000;
static boolean customSettingVisiblePlayerNames = false;
static int customSettingMinItemValue = Integer.MAX_VALUE;
boolean customSettingShowExperiencePerHour = false;
long customSettingShowExperiencePerHourStartExp = 0;
long customSettingShowExperiencePerHourStart = System.currentTimeMillis();
int customSettingShowExperiencePerHourStartLevels = 0;
boolean customSettingVisualFixes = true;
public void processTabClick() {
if (super.clickMode3 == 1) {
@@ -5641,7 +5655,7 @@ public class Game extends RSApplet {
tabID = 6;
tabAreaAltered = true;
}
if (super.saveClickX >= 540 && super.saveClickX <= 574 && super.saveClickY >= 466 && super.saveClickY < 502 && tabInterfaceIDs[7] != -1) {
if (super.saveClickX >= 540 && super.saveClickX <= 574 && super.saveClickY >= 466 && super.saveClickY < 502 && tabInterfaceIDs[7] != -1 && ClientSettings.CUSTOM_SETTINGS_TAB) {
/* Unused tab bottom left */
needDrawTabArea = true;
tabID = 7;
@@ -5680,7 +5694,7 @@ public class Game extends RSApplet {
if (invOverlayInterfaceID == -1) {
if (tabInterfaceIDs[tabID] != -1) {
// Handle our custom tab
if (tabID == 7 && super.saveClickX >= 575 && super.saveClickX <= 720 && super.saveClickY >= 210 && super.saveClickY <= 465) {
if (tabID == 7 && ClientSettings.CUSTOM_SETTINGS_TAB && super.saveClickX >= 575 && super.saveClickX <= 720 && super.saveClickY >= 210 && super.saveClickY <= 465) {
int startY = 217 + 3;
if (super.saveClickY >= startY && super.saveClickY <= (startY + 30)) {
customSettingVisiblePlayerNames = !customSettingVisiblePlayerNames;
@@ -5714,6 +5728,13 @@ public class Game extends RSApplet {
if (super.saveClickY >= startY && super.saveClickY <= (startY + 30)) {
showInfo= !showInfo;
}
startY += 40;
if (super.saveClickY >= startY && super.saveClickY <= (startY + 30)) {
customSettingVisualFixes = !customSettingVisualFixes;
ClientSettings.BILINEAR_MINIMAP_FILTERING = !ClientSettings.BILINEAR_MINIMAP_FILTERING;
ClientSettings.FIX_TRANSPARENCY_OVERFLOW = !ClientSettings.FIX_TRANSPARENCY_OVERFLOW;
ClientSettings.FULL_512PX_VIEWPORT = !ClientSettings.FULL_512PX_VIEWPORT;
}
}
}
}
@@ -5927,7 +5948,7 @@ public class Game extends RSApplet {
loginMessage2 = "Connecting to server...";
drawLoginScreen(true);
}
socketStream = new RSSocket(this, openSocket(43594 + portOff));
socketStream = new RSSocket(this, openSocket((ClientSettings.SERVER_WORLD == 1) ? 43594 : 43596 + ClientSettings.SERVER_WORLD + portOff));
long l = TextClass.longForName(s);
int i = (int) (l >> 16 & 31L);
stream.currentOffset = 0;
@@ -6849,8 +6870,10 @@ public class Game extends RSApplet {
}
catch(IOException _ex)
{
s = "Connection problem -- Make sure FileServer is running!!";
expectedCRCs[8] = 0;
s = "FileServer Connection problem";
// Check if we already have cache files, if so then allow the client to load anyway
String cacheDir = Signlink.findcachedir();
expectedCRCs[8] = new File(cacheDir + "main_file_cache.dat").length() > 0 ? 1 : 0;
}
catch(Exception _ex)
{
@@ -6870,7 +6893,7 @@ public class Game extends RSApplet {
l = 10;
} else
{
drawLoadingText(10, s + " - Will retry in " + l + " secs.");
drawLoadingText(10, s + " - retry in " + l + " secs.");
}
try
{
@@ -7959,7 +7982,7 @@ public class Game extends RSApplet {
backBase2.method361(0, 0);
if (invOverlayInterfaceID == -1) {
if (tabInterfaceIDs[tabID] != -1) {
if (tabID == 7) {
if (tabID == 7 && ClientSettings.CUSTOM_SETTINGS_TAB) {
redStone1_3.method361(42, 0);
}
if (tabID == 8) {
@@ -7981,7 +8004,7 @@ public class Game extends RSApplet {
redStone1_4.method361(229, 0);
}
}
if (tabInterfaceIDs[7] != -1 && (anInt1054 != 7 || loopCycle % 20 < 10)) {
if (tabInterfaceIDs[7] != -1 && (anInt1054 != 7 || loopCycle % 20 < 10) && ClientSettings.CUSTOM_SETTINGS_TAB) {
sideIcons[10].method361(47, 2);
}
if (tabInterfaceIDs[8] != -1 && (anInt1054 != 8 || loopCycle % 20 < 10)) {
@@ -12044,8 +12067,9 @@ public class Game extends RSApplet {
bigX = new int[4000];
bigY = new int[4000];
anInt1289 = -1;
aCRC32_930 = new CRC32();
}
public CRC32 aCRC32_930;
public static String server;
public int ignoreCount;
public long aLong824;
+30 -4
View File
@@ -8,16 +8,38 @@ public final class Main {
DEAR DEVELOPER!
If you want to run the client locally, the easiest way to do that is run the class "Client.java" instead!
If you REALLY want to use this class, add program arguments "-s localhost".
But seriously, Client.java is just a copy-paste of this class and does it locally. Use that instead!
*/
public static void main(String[] args) {
try {
// Process server/ip address to connect to
// Process client arguments to connect to
for (int i = 0; i < args.length; i++) {
switch(args[i]) {
case "-dev" :
case "-local":
case "-offline":
ClientSettings.SERVER_IP = "localhost";
ClientSettings.CHECK_CRC = false;
break;
case "-no-crc":
case "-no-cache-crc":
ClientSettings.CHECK_CRC = false;
break;
case "-qol":
case "-fixes":
ClientSettings.CUSTOM_SETTINGS_TAB = true;
ClientSettings.BILINEAR_MINIMAP_FILTERING = true;
ClientSettings.FIX_TRANSPARENCY_OVERFLOW = true;
ClientSettings.FULL_512PX_VIEWPORT = true;
Game.customSettingVisiblePlayerNames = true;
Game.customSettingMinItemValue = 1000;
break;
case "-no-nav":
case"-disable-nav":
ClientSettings.SHOW_NAVBAR = false;
break;
}
if (args[i].startsWith("-") && (i + 1) < args.length && !args[i + 1].startsWith("-")) {
switch(args[i]) {
case "-s":
@@ -45,6 +67,10 @@ public final class Main {
case "-password":
game.myPassword = args[++i];
break;
case "-w":
case "-world":
ClientSettings.SERVER_WORLD = Integer.parseInt(args[++i]);
break;
}
}
}
@@ -235,7 +235,7 @@ public final class OnDemandFetcher extends OnDemandFetcherParent implements Runn
return;
}
openSocketTime = l;
socket = clientInstance.openSocket(43596 + Game.portOff);
socket = clientInstance.openSocket((ClientSettings.SINGLE_ONDEMAND || ClientSettings.SERVER_WORLD == 1) ? 43594 : 43596 + ClientSettings.SERVER_WORLD + Game.portOff);
inputStream = socket.getInputStream();
outputStream = socket.getOutputStream();
outputStream.write(15);
+206 -31
View File
@@ -5,17 +5,10 @@
import javax.swing.*;
import java.applet.Applet;
import java.awt.*;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener;
import java.awt.event.MouseMotionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.awt.event.*;
import java.awt.font.TextAttribute;
import java.net.URI;
import java.util.Map;
@SuppressWarnings("serial")
public class RSApplet extends Applet implements Runnable, MouseListener, MouseWheelListener, MouseMotionListener, KeyListener, FocusListener, WindowListener {
@@ -29,10 +22,209 @@ public class RSApplet extends Applet implements Runnable, MouseListener, MouseWh
final void createClientFrame(int i, int j) {
myWidth = j;
myHeight = i;
gameFrame = new RSFrame(this, myWidth, myHeight);
this.setPreferredSize(new Dimension(this.myWidth, this.myHeight));
gameFrame = new RSFrame(this);
graphics = getGameComponent().getGraphics();
fullGameScreen = new RSImageProducer(myWidth, myHeight, getGameComponent());
if (ClientSettings.SHOW_NAVBAR) {
try {
java.awt.Font arial = new java.awt.Font("Arial", java.awt.Font.PLAIN, 11);
Map attributes = arial.getAttributes();
attributes.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON);
JLayeredPane layers = new JLayeredPane();
layers.setPreferredSize(new Dimension(765, 25));
ImageIcon backgroundImg = new ImageIcon(this.getClass().getResource("navbar.gif"));
ImageIcon menuImg = new ImageIcon(this.getClass().getResource("navbar_mainmenu.gif"));
ImageIcon companyImg = new ImageIcon(this.getClass().getResource("navbar_jagex.gif"));
ImageIcon worldmapImg = new ImageIcon(this.getClass().getResource("navbar_worldmap.gif"));
ImageIcon manualImg = new ImageIcon(this.getClass().getResource("navbar_manual.gif"));
ImageIcon rulesImg = new ImageIcon(this.getClass().getResource("navbar_rules.gif"));
// set up containers
JLabel background = new JLabel(backgroundImg);
background.setBounds(0, 0, backgroundImg.getIconWidth(), backgroundImg.getIconHeight());
JLabel company = new JLabel(companyImg);
company.setBounds(5, 0, companyImg.getIconWidth(), companyImg.getIconHeight());
JLabel mainMenu = new JLabel(menuImg);
mainMenu.setBounds(126, 0, menuImg.getIconWidth(), menuImg.getIconHeight());
mainMenu.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
try {
Desktop.getDesktop().browse(URI.create(ClientSettings.NAV_MAINMENU_LINK));
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
JLabel mainMenuText = new JLabel();
mainMenuText.setForeground(Color.WHITE);
mainMenuText.setFont(arial.deriveFont(attributes));
mainMenuText.setBounds(126 + menuImg.getIconWidth() + 4, 0, 75, 25);
mainMenuText.setText("Main Menu");
mainMenuText.addMouseListener(mainMenu.getMouseListeners()[0]);
mainMenuText.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
mainMenuText.setForeground(Color.LIGHT_GRAY);
mainMenuText.setCursor(new Cursor(Cursor.HAND_CURSOR));
}
@Override
public void mouseExited(MouseEvent e) {
mainMenuText.setForeground(Color.WHITE);
mainMenuText.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
});
JLabel worldSelect = new JLabel(menuImg);
worldSelect.setBounds(250, 0, menuImg.getIconWidth(), menuImg.getIconHeight());
worldSelect.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
// TODO: world select popup? redirect to launcher?
}
});
JLabel worldSelectText = new JLabel();
worldSelectText.setForeground(Color.WHITE);
worldSelectText.setFont(arial.deriveFont(attributes));
worldSelectText.setBounds(250 + menuImg.getIconWidth() + 4, 0, 75, 25);
worldSelectText.setText("World Select");
worldSelectText.addMouseListener(worldSelect.getMouseListeners()[0]);
worldSelectText.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
worldSelectText.setForeground(Color.LIGHT_GRAY);
worldSelectText.setCursor(new Cursor(Cursor.HAND_CURSOR));
}
@Override
public void mouseExited(MouseEvent e) {
worldSelectText.setForeground(Color.WHITE);
worldSelectText.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
});
JLabel worldmap = new JLabel(worldmapImg);
worldmap.setBounds(387, 0, worldmapImg.getIconWidth(), worldmapImg.getIconHeight());
worldmap.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
try {
Desktop.getDesktop().browse(URI.create(ClientSettings.NAV_WORLDMAP_LINK));
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
JLabel worldmapText = new JLabel();
worldmapText.setForeground(Color.WHITE);
worldmapText.setFont(arial.deriveFont(attributes));
worldmapText.setBounds(387 + worldmapImg.getIconWidth() + 4, 0, 75, 25);
worldmapText.setText("World Map");
worldmapText.addMouseListener(worldmap.getMouseListeners()[0]);
worldmapText.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
worldmapText.setForeground(Color.LIGHT_GRAY);
worldmapText.setCursor(new Cursor(Cursor.HAND_CURSOR));
}
@Override
public void mouseExited(MouseEvent e) {
worldmapText.setForeground(Color.WHITE);
worldmapText.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
});
JLabel manual = new JLabel(manualImg);
manual.setBounds(520, 0, manualImg.getIconWidth(), manualImg.getIconHeight());
manual.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
try {
Desktop.getDesktop().browse(URI.create(ClientSettings.NAV_MANUAL_LINK));
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
JLabel manualText = new JLabel();
manualText.setForeground(Color.WHITE);
manualText.setFont(arial.deriveFont(attributes));
manualText.setBounds(520 + manualImg.getIconWidth() + 4, 0, 50, 25);
manualText.setText("Manual");
manualText.addMouseListener(manual.getMouseListeners()[0]);
manualText.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
manualText.setForeground(Color.LIGHT_GRAY);
manualText.setCursor(new Cursor(Cursor.HAND_CURSOR));
}
@Override
public void mouseExited(MouseEvent e) {
manualText.setForeground(Color.WHITE);
manualText.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
});
JLabel rules = new JLabel(rulesImg);
rules.setBounds(636, 0, rulesImg.getIconWidth(), rulesImg.getIconHeight());
rules.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
try {
Desktop.getDesktop().browse(URI.create(ClientSettings.NAV_RULES_LINK));
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
JLabel rulesText = new JLabel();
rulesText.setForeground(Color.WHITE);
rulesText.setFont(arial.deriveFont(attributes));
rulesText.setBounds(636 + rulesImg.getIconWidth() + 4, 0, 100, 25);
rulesText.setText("Rules & Security");
rulesText.addMouseListener(rules.getMouseListeners()[0]);
rulesText.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
rulesText.setForeground(Color.LIGHT_GRAY);
rulesText.setCursor(new Cursor(Cursor.HAND_CURSOR));
}
@Override
public void mouseExited(MouseEvent e) {
rulesText.setForeground(Color.WHITE);
rulesText.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
});
// layer images
layers.add(background, 0);
layers.add(company, 0);
layers.add(mainMenu, 0);
layers.add(mainMenuText, 0);
layers.add(worldSelect, 0);
layers.add(worldSelectText, 0);
layers.add(worldmap, 0);
layers.add(worldmapText, 0);
layers.add(manual, 0);
layers.add(manualText, 0);
layers.add(rules, 0);
layers.add(rulesText, 0);
gameFrame.add(layers, BorderLayout.NORTH);
gameFrame.pack();
gameFrame.setLocationRelativeTo(null); // re-center based on the new size
} catch (Exception ex) {
ex.printStackTrace();
}
}
startRunnable(this, 1);
this.requestFocus();
}
final void initClientFrame(int i, int j) {
@@ -183,7 +375,7 @@ public class RSApplet extends Applet implements Runnable, MouseListener, MouseWh
public final void destroy() {
anInt4 = -1;
try {
Thread.sleep(5000L);
Thread.sleep(1000L);
} catch (Exception _ex) {
}
if (anInt4 == -1) {
@@ -215,10 +407,6 @@ public class RSApplet extends Applet implements Runnable, MouseListener, MouseWh
public final void mousePressed(MouseEvent mouseevent) {
int i = mouseevent.getX();
int j = mouseevent.getY();
if (gameFrame != null) {
i -= 4;
j -= 22;
}
idleTime = 0;
clickX = i;
clickY = j;
@@ -265,11 +453,6 @@ public class RSApplet extends Applet implements Runnable, MouseListener, MouseWh
public final void mouseDragged(MouseEvent e) {
int x = e.getX();
int y = e.getY();
if(gameFrame != null) {
Insets insets = gameFrame.getInsets();
x -= insets.left;//4
y -= insets.top;//22
}
if (mouseWheelDown) {
y = mouseWheelX - e.getX();
int k = mouseWheelY - e.getY();
@@ -290,10 +473,6 @@ public class RSApplet extends Applet implements Runnable, MouseListener, MouseWh
public void mouseMoved(MouseEvent mouseevent) {
int i = mouseevent.getX();
int j = mouseevent.getY();
if (gameFrame != null) {
i -= 4;
j -= 22;
}
idleTime = 0;
mouseX = i;
mouseY = j;
@@ -498,11 +677,7 @@ public class RSApplet extends Applet implements Runnable, MouseListener, MouseWh
}
Component getGameComponent() {
if (gameFrame != null) {
return gameFrame;
} else {
return this;
}
return this;
}
public void startRunnable(Runnable runnable, int priority) {
+13 -24
View File
@@ -4,36 +4,25 @@
import java.awt.*;
@SuppressWarnings("serial")
final class RSFrame extends Frame {
public RSFrame(RSApplet RSApplet_, int i, int j) {
rsApplet = RSApplet_;
setTitle(ClientSettings.SERVER_NAME);
setResizable(false);
setMinimumSize(new Dimension(i + 8, j + 28));
setVisible(true);
toFront();
setSize(i + 8, j + 28);
setLocationRelativeTo(null);
}
public RSFrame(RSApplet applet) {
rsApplet = applet;
@Override
public Graphics getGraphics() {
Graphics g = super.getGraphics();
g.translate(4, 24);
return g;
}
setTitle(ClientSettings.SERVER_NAME + " World: " + ClientSettings.SERVER_WORLD);
this.setResizable(false);
this.setBackground(Color.BLACK);
@Override
public void update(Graphics g) {
rsApplet.update(g);
}
this.setLayout(new BorderLayout());
this.add(applet, BorderLayout.CENTER);
this.pack();
@Override
public void paint(Graphics g) {
rsApplet.paint(g);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.toFront();
this.transferFocus();
}
private final RSApplet rsApplet;
}
+26 -16
View File
@@ -1,23 +1,18 @@
import java.io.IOException;
import java.io.InputStream;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.FloatControl;
import sun.audio.AudioPlayer; //Note! If you see a compile error here, make sure you set your JDK to Java 8!
import javax.sound.sampled.*;
public class SoundPlayer implements Runnable {
private AudioInputStream stream;
private DataLine.Info info;
private Clip sound;
private SourceDataLine sound;
private InputStream soundStream;
private Thread player;
private int delay;
private int soundLevel;
private InputStream arg0;
public static int volume;
/**
@@ -42,22 +37,37 @@ public class SoundPlayer implements Runnable {
*/
public void run() {
try {
AudioPlayer.player.start(arg0);
stream = AudioSystem.getAudioInputStream(soundStream);
info = new DataLine.Info(Clip.class, stream.getFormat());
sound = (Clip) AudioSystem.getLine(info);
sound.open(stream);
AudioFormat format = stream.getFormat();
info = new DataLine.Info(SourceDataLine.class, format);
sound = (SourceDataLine) AudioSystem.getLine(info);
sound.open(format);
FloatControl volume = (FloatControl) sound.getControl(FloatControl.Type.MASTER_GAIN);
volume.setValue(getDecibels(soundLevel - getVolume()));
if (delay > 0) {
Thread.sleep(delay);
}
sound.start();
while (sound.isActive()) {
Thread.sleep(250);
int nBytesRead = 0;
int EXTERNAL_BUFFER_SIZE = 524288;
byte[] abData = new byte[EXTERNAL_BUFFER_SIZE];
try {
while (nBytesRead != -1) {
nBytesRead = stream.read(abData, 0, abData.length);
if (nBytesRead >= 0) {
sound.write(abData, 0, nBytesRead);
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
sound.drain();
sound.close();
}
Thread.sleep(10000);
sound.close();
stream.close();
player.interrupt();
} catch (Exception e) {
+24 -1
View File
@@ -366,7 +366,30 @@ public final class Sprite extends DrawingArea {
int k4 = j3 + i3 * i4;
int l4 = k3 - l2 * i4;
for (k1 = -ai[j1]; k1 < 0; k1++) {
DrawingArea.pixels[j4++] = pixels[(k4 >> 16) + (l4 >> 16) * width];
if (ClientSettings.BILINEAR_MINIMAP_FILTERING) {
int x1 = k4 >> 16;
int y1 = l4 >> 16;
int x2 = x1 + 1;
int y2 = y1 + 1;
int sampleColor1 = pixels[x1 + y1 * width];
int sampleColor2 = pixels[x2 + y1 * width];
int sampleColor3 = pixels[x1 + y2 * width];
int sampleColor4 = pixels[x2 + y2 * width];
int x1Distance = (k4 >> 8) - (x1 << 8);
int y1Distance = (l4 >> 8) - (y1 << 8);
int x2Distance = (x2 << 8) - (k4 >> 8);
int y2Distance = (y2 << 8) - (l4 >> 8);
int sampleAlpha1 = x2Distance * y2Distance;
int sampleAlpha2 = x1Distance * y2Distance;
int sampleAlpha3 = x2Distance * y1Distance;
int sampleAlpha4 = x1Distance * y1Distance;
int red = (sampleColor1 >> 16 & 0xff) * sampleAlpha1 + (sampleColor2 >> 16 & 0xff) * sampleAlpha2 + (sampleColor3 >> 16 & 0xff) * sampleAlpha3 + (sampleColor4 >> 16 & 0xff) * sampleAlpha4 & 0xff0000;
int green = (sampleColor1 >> 8 & 0xff) * sampleAlpha1 + (sampleColor2 >> 8 & 0xff) * sampleAlpha2 + (sampleColor3 >> 8 & 0xff) * sampleAlpha3 + (sampleColor4 >> 8 & 0xff) * sampleAlpha4 >> 8 & 0xff00;
int blue = (sampleColor1 & 0xff) * sampleAlpha1 + (sampleColor2 & 0xff) * sampleAlpha2 + (sampleColor3 & 0xff) * sampleAlpha3 + (sampleColor4 & 0xff) * sampleAlpha4 >> 16;
DrawingArea.pixels[j4++] = red | green | blue;
} else {
DrawingArea.pixels[j4++] = pixels[(k4 >> 16) + (l4 >> 16) * width];
}
k4 += i3;
l4 -= l2;
}
+81 -30
View File
@@ -730,22 +730,47 @@ final class Texture extends DrawingArea {
} else {
int j2 = anInt1465;
int l2 = 256 - anInt1465;
while (--k >= 0) {
j = anIntArray1482[j1 >> 8];
j1 += l1;
j = ((j & 0xff00ff) * l2 >> 8 & 0xff00ff) + ((j & 0xff00) * l2 >> 8 & 0xff00);
ai[i++] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00);
ai[i++] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00);
ai[i++] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00);
ai[i++] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00);
}
k = i1 - l & 3;
if (k > 0) {
j = anIntArray1482[j1 >> 8];
j = ((j & 0xff00ff) * l2 >> 8 & 0xff00ff) + ((j & 0xff00) * l2 >> 8 & 0xff00);
do {
if (ClientSettings.FIX_TRANSPARENCY_OVERFLOW) {
while (--k >= 0) {
j = anIntArray1482[j1 >> 8];
j1 += l1;
j = ((j & 0xff00ff) * l2 >> 8 & 0xff00ff) + ((j & 0xff00) * l2 >> 8 & 0xff00);
ai[i] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00);
i++;
ai[i] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00);
i++;
ai[i] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00);
i++;
ai[i] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00);
i++;
}
k = i1 - l & 3;
if (k > 0) {
j = anIntArray1482[j1 >> 8];
j = ((j & 0xff00ff) * l2 >> 8 & 0xff00ff) + ((j & 0xff00) * l2 >> 8 & 0xff00);
do {
ai[i] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00);
i++;
} while (--k > 0);
}
} else {
while (--k >= 0) {
j = anIntArray1482[j1 >> 8];
j1 += l1;
j = ((j & 0xff00ff) * l2 >> 8 & 0xff00ff) + ((j & 0xff00) * l2 >> 8 & 0xff00);
ai[i++] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00);
} while (--k > 0);
ai[i++] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00);
ai[i++] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00);
ai[i++] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00);
}
k = i1 - l & 3;
if (k > 0) {
j = anIntArray1482[j1 >> 8];
j = ((j & 0xff00ff) * l2 >> 8 & 0xff00ff) + ((j & 0xff00) * l2 >> 8 & 0xff00);
do {
ai[i++] = j + ((ai[i] & 0xff00ff) * j2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j2 >> 8 & 0xff00);
} while (--k > 0);
}
}
}
return;
@@ -777,12 +802,22 @@ final class Texture extends DrawingArea {
}
int k2 = anInt1465;
int i3 = 256 - anInt1465;
do {
j = anIntArray1482[j1 >> 8];
j1 += i2;
j = ((j & 0xff00ff) * i3 >> 8 & 0xff00ff) + ((j & 0xff00) * i3 >> 8 & 0xff00);
ai[i++] = j + ((ai[i] & 0xff00ff) * k2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * k2 >> 8 & 0xff00);
} while (--k > 0);
if (ClientSettings.FIX_TRANSPARENCY_OVERFLOW) {
do {
j = anIntArray1482[j1 >> 8];
j1 += i2;
j = ((j & 0xff00ff) * i3 >> 8 & 0xff00ff) + ((j & 0xff00) * i3 >> 8 & 0xff00);
ai[i] = j + ((ai[i] & 0xff00ff) * k2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * k2 >> 8 & 0xff00);
i++;
} while (--k > 0);
} else {
do {
j = anIntArray1482[j1 >> 8];
j1 += i2;
j = ((j & 0xff00ff) * i3 >> 8 & 0xff00ff) + ((j & 0xff00) * i3 >> 8 & 0xff00);
ai[i++] = j + ((ai[i] & 0xff00ff) * k2 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * k2 >> 8 & 0xff00);
} while (--k > 0);
}
}
public static void method376(int i, int j, int k, int l, int i1, int j1, int k1) {
@@ -1125,16 +1160,32 @@ final class Texture extends DrawingArea {
int j1 = anInt1465;
int k1 = 256 - anInt1465;
j = ((j & 0xff00ff) * k1 >> 8 & 0xff00ff) + ((j & 0xff00) * k1 >> 8 & 0xff00);
while (--k >= 0) {
ai[i++] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
ai[i++] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
ai[i++] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
ai[i++] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
if (ClientSettings.FIX_TRANSPARENCY_OVERFLOW) {
while (--k >= 0) {
ai[i] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
i++;
ai[i] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
i++;
ai[i] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
i++;
ai[i] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
i++;
}
for (k = i1 - l & 3; --k >= 0;) {
ai[i] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
i++;
}
} else {
while (--k >= 0) {
ai[i++] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
ai[i++] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
ai[i++] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
ai[i++] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
}
for (k = i1 - l & 3; --k >= 0;) {
ai[i++] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
}
}
for (k = i1 - l & 3; --k >= 0;) {
ai[i++] = j + ((ai[i] & 0xff00ff) * j1 >> 8 & 0xff00ff) + ((ai[i] & 0xff00) * j1 >> 8 & 0xff00);
}
}
public static void method378(int i, int j, int k, int l, int i1, int j1, int k1, int l1, int i2, int j2, int k2, int l2, int i3, int j3, int k3, int l3, int i4, int j4, int k4) {
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 978 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

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

Before

Width:  |  Height:  |  Size: 12 KiB

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

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