Compare commits

...

81 Commits

Author SHA1 Message Date
ipkpjersi 7f1dc47c98 Fixed drawing plane higher than 0 (#662) 2024-12-28 13:56:17 +00:00
ipkpjersi 45b85d728f Updated login server error message (#663) 2024-12-28 13:55:03 +00:00
ipkpjersi d2fe8b0769 Refactoring follow player/NPC variables and NPC magic numbers (#659)
* Refactoring follow player/NPC variables

* Magic number refactoring

* Added more NPC refactoring

* More NPC refactoring

* More refactoring and removed GWD NPCs

GWD was added in 2007, not 2006, so there's absolutely no reason why this code should exist in the server.

* Removed more GWD NPCs

* Refactored remaining NPC IDs
2024-12-06 15:43:34 +00:00
ipkpjersi 20ccc2399a Added HQ logo (#651)
Pazaz sent me the cache with the updated HQ logo for the login screen so it no longer has artifacts/a pink pixel, I'm creating a new branch with this even though I don't know if this is the right location for the cache, oh well. I think this also contains missing models/midis.
2024-09-21 22:30:06 +01:00
ipkpjersi af522dbe1b Added custom print stream logging (#645)
* Added custom print stream

* Fixed custom print stream stack trace detection

* Implement custom print stream

* Fixed formatting

* Fixed custom info print stream

* Improved custom PrintStream
2024-09-21 18:45:17 +01:00
ipkpjersi db696431e6 Added cycle logging (#646)
* Added cycle logging

* Use properties for cycle logging

We may not want it since it can be kinda spammy, so we can toggle this feature. We probably want it though.

* Improved cycle logging
2024-09-21 18:36:45 +01:00
ipkpjersi 43775016ba Added uptime command and utility functions (#648)
* Added uptime command and utility functions

* Don't use NumberFormat it's slower
2024-09-21 04:22:26 +01:00
ipkpjersi 4fe3f446a4 Fixed stuck command and added home teleport command (#647)
With my custom print stream PR, this will also automatically log the player stuck command usage to a log file.
2024-09-21 04:20:51 +01:00
ipkpjersi 0120892521 Added automatic screenshots (#657)
* Added automatic screenshots

This branch is based off of the screenshots branch, but it will also require the develop branch to be merged first to not cause a git conflict with adding more QoL options to ClientSettings.java, so we'll want to pull the develop branch onto this branch eventually (or, I suppose, the master branch after it's merged).

In other words, we can add 2 new QoL settings to ClientSettings at a later time (after my develop branch fixes/improvements PR is merged).

* Fixed params for auto screenshots

* Added auto screenshots toggle

* Fixed auto screenshots var typo
2024-09-21 04:14:45 +01:00
ipkpjersi e404eadb3b Added NPC kill counts with message display (#644)
* Added kill counts with message display

* Fixed barrows chest count

* Preserve insertion order of NPC IDs for Constants

* Added KC command and interfaces

* Added more robustness to KC command

* Added alias and documentation to new commands

* Added more aliases for new commands

* Merged slayer KC interface names

* Preserve slayerkc nameToKills insertion order and formatting fix

* Updated comment

* Added missing boss NPC id

* Moved giant mole up in set

* Emptied out quest interface properly for kc

* Fixed whitespace

* Fixed formatting

* Hide boss KC messages by default
2024-09-21 02:40:58 +01:00
ipkpjersi fd731242dd Added Screenshots (#656)
* Added ability to take screenshots

Since we have a screenshots folder in the 2006Scape folder in the home path, we might as well make use of it.

* Removed duplicate screenshot warning message

We don't need a warning message for duplicate screenshots, if it takes screenshots that's good enough.

* Added subfolders option for screenshots

This allows for much more flexibility when it comes to screenshots because we can choose any number of levels of subfolders.

* Removed unused code

* Added check for screenshots

* Fixed screenshots NPE when logged out

* Added Local to titlebar when running locally

* Added sendMessage param for screenshots

* Default to send messages for screenshots

* Use the sendMessage variable

Oops lol

* Added ability to take screenshots

Since we have a screenshots folder in the 2006Scape folder in the home path, we might as well make use of it.

* Removed duplicate screenshot warning message

We don't need a warning message for duplicate screenshots, if it takes screenshots that's good enough.

* Added subfolders option for screenshots

This allows for much more flexibility when it comes to screenshots because we can choose any number of levels of subfolders.

* Removed unused code

* Added check for screenshots

* Fixed screenshots NPE when logged out

* Added Local to titlebar when running locally

* Added sendMessage param for screenshots

* Default to send messages for screenshots

* Use the sendMessage variable

Oops lol

* Added screenshots QOL option

* Use server name var for screenshots
2024-09-21 02:30:53 +01:00
ipkpjersi 86e7b93b3b Fixed magic attacks running up to NPCs and Players (#642)
* Fixed magic attacks running up to NPCs

* Fixed player running up to players when casting magic

* Updated comment
2024-09-21 01:39:27 +01:00
ipkpjersi cad090d8fe Various fixes and improvements (#640)
* Added more client settings for winter and hide roofs

* Removed unnecessary local var and added Javadoc comment

* Fixed dark wizards casting magic in melee range

* Added AttackType enum

* Removed extra asterisk

* Removed attackType magic numbers

* Enabled snow toggles by default

* Combined snow month into one variable

* Added option for fixes without custom settings

Added option for fixes (and QoL tab) without overriding specific features.

* Added more main args

* Fixed typo

* Added player sound saving

We have it for music, so why not for sounds too?

* Fixed typos

* Added closed client exception to ignores

* Fixed NPC definitions not loading

* Replaced NPC definitions XML with JSON

* Replaced NPCDefinition Array with HashMap

* Use err for early exit output

* Fixed KQ death causing client crash

It had the wrong anims.

* Added zoom level to debug info

* Added zoom level messages option

* Added fire breath attack type enum

* Replaced remaining fire breath attack types

* Fixed client lag

This should technically not be necessary, but it's more of a workaround due to server inefficiencies (if you kill a bunch of cows, your client will start to lag and you will even stack hits, I suspect it's due to the ground items) until we fix the server inefficiencies. There's not really any downsides in changing this from 5 to 100, so it's a good change for now.

* Make definitions private

* Fixed dark wizards not attacking back

* Improved comments

* Removed extra giant mole spawns

* Added mole lair rope action

* Only send yes chat head when talking to NPC

* Fixed removing item does not reset autocast

* Fixed picking up stackable items with full inv

* Fixed lvl 7 dark wizard anims

* Added confirm param to xprate command and fixed players command

* Removed usages of Misc.println

This hides which file the println is actually called from, so it's actually better to remove this helper.

* Don't move player when clicking on barrows check

This is both unauthentic and unnecessary.

* Removed unnecessary commented out code

We don't even need it commented out tbh.

* Fixed incorrect barrows NPC attack anims

* Improved slayer points message

* Fixed slayer task message cut off

* Might as well make this naming consistent

* Fixed typo

* Fixed stronghold slayer dungeon getting stuck in wall

* Require control key for zooming

It's too easy to accidentally zoom in/out with the scroll wheel, so let's make it so you need the control key held to scroll wheel zoom in/out.

* Added option for control key zooming

This way, it's off by default so it works the way it always did by default.

* Added alias for control key zoom

* Fixed quest interface not emptying out completely

* Updated slayer point dialogue to be more accurate

* Fixed compile error

* Fixed formatting

* More formatting fixes

* Added 5th click object handling (fixes pick-lock crash)

* Fixed lower level NPCs always hitting 0

* Fixed NPCs having incorrect max hit

Chickens were hitting 3's, ouch...

* Fixed NPCs still hitting 0s

This is much better now. Combat feels good.

* Fixed boss max hits

* Fixed al-kharid gate talking option

* Copied over max hits from spawns.json to npcDefinitions.json

This fixes a lot of NPCs. Many NPCs already seem to be correct.

* Added workaround preventing players stuck in level 28 wildy

* Changed comment to TODO

* Added control key zoom toggle

* Extracted config option to ClientSettings

* added message for control key zooming
2024-09-21 01:30:57 +01: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
1859 changed files with 213952 additions and 458622 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
@@ -2,49 +2,144 @@ import java.math.BigInteger;
/**
* ClientSettings
*
* @author Andrew (I'm A Boss on Rune-Server and Mr Extremez on Mopar & Runelocus)
*/
public class ClientSettings {
/**
* @QoL
* Require control key to zoom the client
*/
public static boolean CONTROL_KEY_ZOOMING = false;
/**
* @QoL
* Show zoom level messages in chat when changing zoom levels
*/
public static boolean SHOW_ZOOM_LEVEL_MESSAGES = false;
/**
* @QoL
* Hide roofs
*/
public static boolean HIDE_ROOFS = false;
/**
* @QoL
* Hide buggy varrock sword shop snow
*/
public static boolean HIDE_BUGGY_VARROCK_SWORD_SHOP_SNOW = true;
/**
* @QoL
* Forces Server-Wide Snow floor
*/
public static boolean SNOW_FLOOR_FORCE_ENABLED = false;
/**
* @QoL
* Toggles Server-Wide Snow floor (for the designated month)
*/
public static boolean SNOW_FLOOR_ENABLED = true;
/**
* @QoL
* Forces Server-Wide Snow overlay
*/
public static boolean SNOW_OVERLAY_FORCE_ENABLED = false;
/**
* @QoL
* Toggles Server-Wide Snow overlay (for the designated month)
*/
public static boolean SNOW_OVERLAY_ENABLED = false;
/**
* @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 = "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 = "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;
/**
* 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;
/**
* 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;
/**
* @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;
/**
* @QoL
* Enables the ability to take screenshots
*/
public static boolean SCREENSHOTS_ENABLED = false;
/**
* @QoL
* Enables the ability to take automatic screenshots on stats tab click and bank open
* This is a poor man's player exports.
*/
public static boolean AUTOMATIC_SCREENSHOTS_ENABLED = false;
/**
* 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");
/**
* 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;
}
+1 -1
View File
@@ -35,7 +35,7 @@ public final class Flo {
} else if (i == 1) {
anInt390 = stream.read3Bytes();
Calendar date = new GregorianCalendar();
if ((date.get(Calendar.MONTH) + 1) == 12) {
if (ClientSettings.SNOW_FLOOR_FORCE_ENABLED || (ClientSettings.SNOW_FLOOR_ENABLED && (date.get(Calendar.MONTH) + 1) == Integer.parseInt(ClientSettings.SNOW_MONTH.substring(1)))) {
anInt390 = 0xffffff;
}
method262(anInt390);
+151 -25
View File
@@ -3,12 +3,14 @@
* THIS IS TO ALLOW LOCAL PARABOT TO CONTINUE TO WORK
*/
import javax.imageio.ImageIO;
import javax.swing.*;
import java.applet.AppletContext;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyEvent;
import java.awt.event.MouseWheelEvent;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.EOFException;
@@ -23,6 +25,7 @@ import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.zip.CRC32;
@@ -1808,7 +1811,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;
@@ -1830,10 +1833,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) { }
}
}
@@ -2972,7 +2978,11 @@ public class Game extends RSApplet {
if (anInt1011 > 0) {
anInt1011--;
}
for (int j = 0; j < 5; j++) {
//TODO: Technically, this loop should be < 5 for authenticity, but until we reduce server inefficiencies
//(for example killing a bunch of cows results in client lag,
//likely from all the items on the ground for example), < 100 is fine.
//OSRS uses < 100 and there are no drawbacks from having this < 100.
for (int j = 0; j < 100; j++) {
if (!parsePacket()) {
break;
}
@@ -3755,7 +3765,7 @@ public class Game extends RSApplet {
worldController.method312(k - 4, j - 4);
}
}
if (l == 1062) {
if (l == 1062) { //Fifth click
anInt924 += baseX;
if (anInt924 >= 113) {
stream.createFrame(183);
@@ -4672,7 +4682,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;
@@ -4813,9 +4826,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;
}
@@ -5031,6 +5041,10 @@ public class Game extends RSApplet {
if (inputString.equals("::gfxtgl") || inputString.equals("::tglgfx") || inputString.equals("::togglerender") || inputString.equals("::togglegfx")) {
graphicsEnabled = !graphicsEnabled;
}
if (inputString.equals("::crtlkeyzoom") || inputString.equals("::controlkeyzoom")) {
ClientSettings.CONTROL_KEY_ZOOMING = !ClientSettings.CONTROL_KEY_ZOOMING;
pushMessage("Your control key zooming is now: " + (ClientSettings.CONTROL_KEY_ZOOMING ? "enabled" : "disabled"), 0, "");
}
if (myPrivilege >= 2) {
if (inputString.equals("::noclip"))
for (int k1 = 0; k1 < 4; k1++)
@@ -5576,7 +5590,51 @@ public class Game extends RSApplet {
}
}
public void screenshot(boolean sendMessage, String... subfolders) {
try {
Window window = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusedWindow();
if (window == null) {
return;
}
Point point = window.getLocationOnScreen();
int x = (int) point.getX();
int y = (int) point.getY();
int w = window.getWidth();
int h = window.getHeight();
Robot robot = new Robot(window.getGraphicsConfiguration().getDevice());
Rectangle captureSize = new Rectangle(x, y, w, h);
BufferedImage bufferedimage = robot.createScreenCapture(captureSize);
// Format the current date and time
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy_MM_dd-HH_mm_ss");
String dateTime = dateFormat.format(new Date());
// Update the file path and naming
String fileExtension = myUsername != null && !myUsername.isEmpty() ? myUsername : ClientSettings.SERVER_NAME;
String subfolderPath = String.join(File.separator, subfolders);
if (!subfolderPath.isEmpty()) {
subfolderPath += File.separator;
}
String screenshotDir = System.getProperty("user.home") + File.separatorChar + ClientSettings.SERVER_NAME + File.separatorChar + "screenshots" + File.separatorChar + subfolderPath;
File dir = new File(screenshotDir);
if (!dir.exists()) {
dir.mkdirs(); // Create the directory if it doesn't exist
}
File file = new File(screenshotDir, fileExtension + "_" + dateTime + ".png");
if (!file.exists()) {
ImageIO.write(bufferedimage, "png", file);
if (sendMessage) {
pushMessage("A picture has been saved in your screenshots folder.", 0, "");
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void pushMessage(String s, int i, String s1) {
if (i == 0 && dialogID != -1) {
aString844 = s;
@@ -5607,12 +5665,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) {
@@ -5625,6 +5684,16 @@ public class Game extends RSApplet {
needDrawTabArea = true;
tabID = 1;
tabAreaAltered = true;
if(ClientSettings.SCREENSHOTS_ENABLED && ClientSettings.AUTOMATIC_SCREENSHOTS_ENABLED) {
java.util.Timer timer = new java.util.Timer();
java.util.TimerTask delayedScreenshot = new java.util.TimerTask() {
@Override
public void run() {
screenshot(false, "stats");
}
};
timer.schedule(delayedScreenshot, 300);
}
}
if (super.saveClickX >= 597 && super.saveClickX <= 627 && super.saveClickY >= 168 && super.saveClickY < 205 && tabInterfaceIDs[2] != -1) {
needDrawTabArea = true;
@@ -5651,7 +5720,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;
@@ -5690,7 +5759,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;
@@ -5724,6 +5793,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;
}
}
}
}
@@ -6144,7 +6220,7 @@ public class Game extends RSApplet {
return;
}
if (k == 11) {
loginMessage2 = "Login server rejected session.";
loginMessage1 = "Login server rejected session.";
loginMessage2 = "Please try again.";
return;
}
@@ -7971,7 +8047,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) {
@@ -7993,7 +8069,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)) {
@@ -9031,7 +9107,14 @@ public class Game extends RSApplet {
return;
}
if (k == 3) {
boolean debugPlanes = false;
if (debugPlanes) {
System.out.println("plane is " + plane);
}
plane = stream.readBits(2);
if (debugPlanes) {
System.out.println("plane is now " + plane);
}
int j1 = stream.readBits(1);
int i2 = stream.readBits(1);
if (i2 == 1) {
@@ -9040,6 +9123,15 @@ public class Game extends RSApplet {
int k2 = stream.readBits(7);
int l2 = stream.readBits(7);
myPlayer.setPos(l2, k2, j1 == 1);
//Handle plane changes, higher planes need the roof drawing checks disabled, and we need to manually update ObjectManager's anInt131 (plane) then manually call method22 to let the ObjectManaegr know we're on a different plane. This makes plane changes draw properly. Coords for testing this: lumb: 3207 3227 and varrock: 3209, 3392 and gnome agil: 2474, 3427
ObjectManager.hideRoofs = ClientSettings.HIDE_ROOFS;
ObjectManager.hideBuggyVarrockSwordShopSnow = ClientSettings.HIDE_BUGGY_VARROCK_SWORD_SHOP_SNOW;
if (plane > 0) {
ObjectManager.hideRoofs = false;
ObjectManager.hideBuggyVarrockSwordShopSnow = false;
}
ObjectManager.anInt131 = plane;
method22();
}
}
@@ -11236,6 +11328,16 @@ public class Game extends RSApplet {
tabAreaAltered = true;
aBoolean1149 = false;
pktType = -1;
if (ClientSettings.SCREENSHOTS_ENABLED && ClientSettings.AUTOMATIC_SCREENSHOTS_ENABLED && i5 == 5292) {
java.util.Timer timer = new java.util.Timer();
java.util.TimerTask delayedScreenshot = new java.util.TimerTask() {
@Override
public void run() {
screenshot(false, "bank");
}
};
timer.schedule(delayedScreenshot, 600);
}
return true;
}
if (pktType == 79) {
@@ -11560,7 +11662,7 @@ public class Game extends RSApplet {
// 15774 = Good/Bad Password
// 15767 = Drama Type
if (l7 == 15244) {
if (Flo.getTodaysDate().contains(ClientSettings.SNOW_MONTH)) {
if (ClientSettings.SNOW_OVERLAY_FORCE_ENABLED || (ClientSettings.SNOW_OVERLAY_ENABLED && Flo.getTodaysDate().contains(ClientSettings.SNOW_MONTH))) {
openInterfaceID = 15819;
} else {
openInterfaceID = 15801;
@@ -11803,8 +11905,8 @@ public class Game extends RSApplet {
draw3dScreen();
if (showInfo) {
int debugX = 0;
int debugY = 249;
int debugItems = 4;
int debugY = 234;
int debugItems = 5;
int debugWidth = 140;
int debugHeight = 25 + (debugItems * 15);
int fill = 0x5d5447;
@@ -11831,6 +11933,8 @@ public class Game extends RSApplet {
chatTextDrawingArea.textRightShadow(true, debugX + debugWidth - 4, Color.YELLOW.hashCode(), (myPlayer.smallX[0] + baseX) + ", " + (myPlayer.smallY[0] + baseY), debugY);
chatTextDrawingArea.textLeftShadow(true, debugX + 4, Color.WHITE.hashCode(), "Interface:", debugY += 15);
chatTextDrawingArea.textRightShadow(true, debugX + debugWidth - 4, Color.YELLOW.hashCode(), "" + openInterfaceID, debugY);
chatTextDrawingArea.textLeftShadow(true, debugX + 4, Color.WHITE.hashCode(), "Zoom level:", debugY += 15);
chatTextDrawingArea.textRightShadow(true, debugX + debugWidth - 4, Color.YELLOW.hashCode(), "" + zoom, debugY);
}
if (customSettingShowExperiencePerHour) {
@@ -12608,12 +12712,20 @@ public class Game extends RSApplet {
tabAreaAltered = true;
break;
case KeyEvent.VK_PAGE_UP:
if (zoom > -1)
if (zoom > -1) {
zoom--;
if (ClientSettings.SHOW_ZOOM_LEVEL_MESSAGES) {
pushMessage("Your zoom level is now: " + zoom, 0, "");
}
}
break;
case KeyEvent.VK_PAGE_DOWN:
if (zoom < (WorldController.drawDistance / 3))
if (zoom < (WorldController.drawDistance / 3)) {
zoom++;
if (ClientSettings.SHOW_ZOOM_LEVEL_MESSAGES) {
pushMessage("Your zoom level is now: " + zoom, 0, "");
}
}
break;
case KeyEvent.VK_V:
if (keyevent.isControlDown()) {
@@ -12625,6 +12737,9 @@ public class Game extends RSApplet {
}
}
if (ClientSettings.SCREENSHOTS_ENABLED && keyevent.getKeyCode() == KeyEvent.VK_PRINTSCREEN && keyevent.isControlDown()) {
screenshot(true);
}
}
public long calculateTotalExp() {
@@ -12772,7 +12887,7 @@ public class Game extends RSApplet {
inputTaken = true;
}
if (interfaceID == 15244) {
if (Flo.getTodaysDate().contains(ClientSettings.SNOW_MONTH)) {
if (ClientSettings.SNOW_OVERLAY_FORCE_ENABLED || (ClientSettings.SNOW_OVERLAY_ENABLED && Flo.getTodaysDate().contains(ClientSettings.SNOW_MONTH))) {
openInterfaceID = 15819;
} else {
openInterfaceID = 15801;
@@ -12795,14 +12910,25 @@ public class Game extends RSApplet {
public final void mouseWheelMoved(MouseWheelEvent e) {
int notches = e.getWheelRotation();
if (ClientSettings.CONTROL_KEY_ZOOMING && !e.isControlDown()) {
return;
}
// If mouse over main game screen, without anything else opened
if (openInterfaceID == -1 && mouseX < 515 && mouseY < 340) {
if (notches < 0) {
if (zoom > -1)
if (zoom > -1) {
zoom--;
if (ClientSettings.SHOW_ZOOM_LEVEL_MESSAGES) {
pushMessage("Your zoom level is now: " + zoom, 0, "");
}
}
} else {
if (zoom < (WorldController.drawDistance / 3))
if (zoom < (WorldController.drawDistance / 3)) {
zoom++;
if (ClientSettings.SHOW_ZOOM_LEVEL_MESSAGES) {
pushMessage("Your zoom level is now: " + zoom, 0, "");
}
}
}
}
}
+37 -1
View File
@@ -13,7 +13,7 @@ public final class Main {
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" :
@@ -26,6 +26,42 @@ public final class Main {
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;
ClientSettings.CONTROL_KEY_ZOOMING = true;
break;
case "-no-nav":
case "-disable-nav":
ClientSettings.SHOW_NAVBAR = false;
break;
case"-no-snow":
case"-hide-snow":
case"-disable-snow":
ClientSettings.SNOW_FLOOR_ENABLED = false;
ClientSettings.SNOW_FLOOR_FORCE_ENABLED = false;
ClientSettings.SNOW_OVERLAY_FORCE_ENABLED = false;
ClientSettings.SNOW_OVERLAY_ENABLED = false;
break;
case"-no-roofs":
case"-hide-roofs":
case"-disable-roofs":
ClientSettings.HIDE_ROOFS = true;
break;
case"-show-zoom":
ClientSettings.SHOW_ZOOM_LEVEL_MESSAGES = true;
break;
case"-screenshots":
case"-enable-screenshots":
ClientSettings.SCREENSHOTS_ENABLED = true;
break;
case"-auto-screenshots":
case"-enable-auto-screenshots":
ClientSettings.AUTOMATIC_SCREENSHOTS_ENABLED = true;
break;
}
if (args[i].startsWith("-") && (i + 1) < args.length && !args[i + 1].startsWith("-")) {
switch(args[i]) {
@@ -146,7 +146,7 @@ final class ObjectManager {
k15 -= anIntArray127[k18];
k16 -= anIntArray128[k18];
}
if (k17 >= 1 && k17 < anInt147 - 1 && (!lowMem || (aByteArrayArrayArray149[0][l6][k17] & 2) != 0 || (aByteArrayArrayArray149[l][l6][k17] & 0x10) == 0 && method182(k17, l, l6) == anInt131)) {
if (k17 >= 1 && k17 < anInt147 - 1 && ((!hideBuggyVarrockSwordShopSnow && !hideRoofs && !lowMem) || (aByteArrayArrayArray149[0][l6][k17] & 2) != 0 || (aByteArrayArrayArray149[l][l6][k17] & 0x10) == 0 && method182(k17, l, l6) == anInt131)) {
if (l < anInt145) {
anInt145 = l;
}
@@ -456,7 +456,7 @@ final class ObjectManager {
}
private void method175(int i, WorldController worldController, CollisionMap class11, int j, int k, int l, int i1, int j1) {
if (lowMem && (aByteArrayArrayArray149[0][l][i] & 2) == 0) {
if ((hideRoofs || lowMem) && (aByteArrayArrayArray149[0][l][i] & 2) == 0) {
if ((aByteArrayArrayArray149[k][l][i] & 0x10) != 0) {
return;
}
@@ -1355,6 +1355,10 @@ final class ObjectManager {
private final byte[][][] aByteArrayArrayArray148;
private final byte[][][] aByteArrayArrayArray149;
static boolean lowMem = true;
static boolean hideRoofs = ClientSettings.HIDE_ROOFS;
static boolean hideBuggyVarrockSwordShopSnow = ClientSettings.HIDE_BUGGY_VARROCK_SWORD_SHOP_SNOW; //There is some buggy snow near Varrock sword shop, let's hide it. I know, this is not ideal, but it does work.
private static final int anIntArray152[] = {1, 2, 4, 8};
}
@@ -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 -23
View File
@@ -6,33 +6,23 @@ import java.awt.*;
final class RSFrame extends Frame {
public RSFrame(RSApplet RSApplet_, int i, int j) {
rsApplet = RSApplet_;
setTitle(ClientSettings.SERVER_NAME + " World: " + ClientSettings.SERVER_WORLD);
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 + ((ClientSettings.SERVER_IP.equals("localhost") || ClientSettings.SERVER_IP.equals("127.0.0.1")) ? " [Local]" : ""));
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

+7 -1
View File
@@ -1,8 +1,12 @@
{
"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,
@@ -19,5 +23,7 @@
"timeout": 60,
"item_requirements": true,
"max_players": 200,
"website_integration": false
"website_integration": false,
"cycle_logging": true,
"cycle_logging_tick": 10
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
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
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,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