RS2 317 Client (474 data, OSRS orbs, Perfect Aesthetics, Sound, Fog, Refactored)

Last updated: September 18, 2015

Base: http://"http://www.rune-server.org/runescape-development/rs2-client/downloads/599265-client-osrs-sprites-v4-now-includes-fullscreen-yay.html

Download: https://github.com/7winds/RS2-Client-Loading-474-Data-Refactored

Goal: Completely refactored 317 client loading 474 data with tons of toggle-able features.

I have been developing this client for a month now. This client is heavily influenced by Major’s 317 refactored client, found here. http://"http://www.rune-server.org/runescape-development/rs2-client/downloads/575183-almost-fully-refactored-317-client.html

Credits: to all these amazing people.

[ul][] Major: for using his Almost fully refactored 317 client which I used as a reference for some renaming.
[
] peterbjornx: & clienthax: and anyone else who contributed to rename317
[*] Zion: For his client which I used as a base.[/ul]

-UPDATED-

Large update. 31 classes are now fully refactored.

[SPOILER=Updates]
September 7, 2015

[ul][] Renamed NodeSubList -> Queue. Refactored Queue
[
] Refactored Cacheable
[] QueueNode -> Cacheable
[
] Goes with Renaming Node -> Linkable
[] Renamed NodeCache -> HashTable
[
] Renamed Node -> Linkable
[] Refactored more variables in Widget class
[
] Cache -> Renamed to Reference Cache
[] Renamed RSInterface -> Widget, refactored most of Widget class
[
] Renaming a few variables in Sprite class
[] DrawingArea -> Renamed to Raster
[
] Refactored majority of Npc class
[] Refactored most of the Entity class
[
] Renamed TextDrawingArea -> GameFont
[*] Xp drop sprite icons are now lined up perfectly with the text.[/ul]

September 8, 2015

[ul][] Most of drawInterface method is refactored.
[
] Can now toggle between 10 X hits. Added ids to right click ground items.[/ul]

September 9, 2015

[ul][] Refactored camera position variables
[
] Renamed ObjectManager -> MapRegion, renamed some methods in MapRegion
[] Renamed sendFrame method to -> writeOpCode
[
] Fixed all welcome screen messages.[/ul]

September 10, 2015

[ul][] Prevented some things from being used while welcome screen in open.
[
] Removed useless skill methods
[] Refactored most of ResourceProvider
[
] Renamed OnDemandNode -> Resource
[] Renamed Requester -> Provider
[
] Created a game constants class
[*] Renamed OnDemandRequester -> ResourceProvider[/ul]

September 11, 2015

[ul][] Orbs no longer show hover while they are off
[
] Fixed the positioning for modern spells
[*] Fixed some magic spell sprite positions on modern tab.[/ul]

September 15, 2015

[ul][] Renamed RSSocket -> BufferedConnection
[
] Renamed BZip2Context -> BZip2DecompressionState
[] Renamed BZip2 -> BZip2Decompressor, fully refactored BZip2Decompressor
[
] Fully refactored ResourceProvider
[*] Fully refactored ResourceProvider class[/ul]

September 18, 2015

[ul][] Redid packaging, changing name to RS2 Client loading 474 data
[
] Fully refactored IdentityKit class
[] Renamed reference cache variable names.
[
] Renamed methods in ReferenceCache, added Major’s documentation.
[] parseInterfaceOpcode renamed -> executeScript and has been refactored.
[
] Changed SkillConstant variable names to proper java conventions
[] Renamed TextClass -> StringUtils, Fully refactored StringUtils
[
] Renamed TextInput -> ChatMessageCodec, fully refactored ChatMessageCodec
[] Reduced the redundancy from Sound class names.
[
] More efficient way of doing 10 X HP and hits.
[] Refactored the entire appendPlayerUpdateMask method in Game class
[
] Refactored parts of SpawnObject, Game, CollisionMap, and SceneGraph
[] Tons of organizing classes, also renamed several classes.
[
] Renamed TileOverlay -> ShapedTile
[*] Renamed TileUnderlay -> SimpleTile[/ul]

[/SPOILER]

Features:

[ul][] Has support for sound effects
[
] Has support for music
[] Resizeable game modes (Fixed, Resize, Fullscreen)
[
] Tons of toggles (orbs, hp above heads, names above heads, censor, ids… etc)
[] Fully packaged
[
] All class names have been refactored
[] UUID and RSA Protection
[
] Decent Fog
[] Working music and world switch buttons
[
] 474 Magic Tab (normal, ancient, and lunar)
[] Original hitsplats (No messed up hitsplats)
[
] Clean Cache (No customs)
[] 31+ classes are fully renamed, the rest are currently in progress
[
] Heavily renamed
[*] Low memory usage, 100k-140k (with sounds)[/ul]

What I have done:

~ August 8, 2015
- repacked original hitsplats
- repacked 474 magic tab
- fixed sound effects and regional music both work perfectly
- fixed an issue with name when logging in
- added a depthbuffer (fog)

~ August 9, 2015
- Added the ability to toggle names above entities heads
- Added the ability to display health above entities heads
- Created a Configuration class with all the client's configuration options
- Did a lot of refactoring. Refactored all classes, refactored almost all methods in Client.java

~ August 10, 2014
- Created a new class PacketID I'm using to easily identify packets
- Refactored EntityDef readvalues
- More realistic fog
- can toggle orbs ::orbs

~ August 12, 2015
- Drew the music sprite on login screen
- Fully repackaged client, along with more refactored classes
- Administrators can now toggle ids for items, objects, and npcs (::ids)
- Added RSA and UUID protection

~ August 13, 2015
- Music and world switch buttons on login screen both work

~ August 19, 2015
- All items now have the correct color
- Refactored Image Producers
- Refactored parts of drawInterface method
- Both MarkMinimap and DrawMinimap methods have been refactored
- Added OS Buddies XP Drops (Thanks [user]_Sean[/user])
- Changed XP Counter position

~ August 22, 2015
- Fully refactored SpotAnimation
- Fully refactored ItemDefinitions

~ August 29, 2015
- Can now toggle roofs (use the roofs command ::roofs)
- A successful login now stops the startup music.
- Fully refactored SoundFilter
- Fully refactored SoundEnvelope
- SoundSample renamed -> SoundSynthesizer and has been fully refactored.
- Renamed Sounds -> SoundTrack, fully refactored SoundTrack
- Renamed EntityDefinition -> NpcDefinition, refactored NpcDefinition
- Renamed VarBit -> VariableBits
- Renamed Varp -> VariableParameter, refactored some methods
- Renamed Censor -> MessageCensor, refactored some of MessageCensor
- Renamed Texture -> Rasterizer

~ August 31, 2015
- More organizing
- Refactored some methods in CollisonMap
- Fully refactored Buffer class (Using RS2HD renaming, personally I think this is a lot easier to read)

~ August 30, 2015
- Began refactoring ObjectDefinitions
- Can now toggle RSA on or off in Configuration
- Refactored the login method

~ August 31, 2015
- More organizing
- Refactored some methods in CollisonMap
- Fully refactored Buffer class (Using RS2HD renaming, personally I think this is a lot easier to read)

~ September 6, 2015
- Reverted normal, ancient and lunar spellbooks back to 474 spell books.

~ September 7, 2015
- Cache -> Renamed to Reference Cache
- Renamed RSInterface -> Widget, refactored most of Widget class
- Renaming a few variables in Sprite class
- DrawingArea -> Renamed to Raster
- Refactored majority of Npc class
- Refactored most of the Entity class
- Renamed TextDrawingArea -> GameFont
- Xp drop sprite icons are now lined up perfectly with the text

~ September 8, 2015
- Most of drawInterface method is refactored.
- Can now toggle between 10 X hits. Added ids to right click ground items.

~ September 9, 2015
- Refactored camera position variables
- Renamed ObjectManager -> MapRegion, renamed some methods in MapRegion
- Renamed sendFrame method to -> writeOpCode
- Fixed all welcome screen messages.

~ September 10, 2015
- Prevented some things from being used while welcome screen in open.
- Removed useless skill methods
- Refactored most of ResourceProvider
- Renamed OnDemandNode -> Resource
- Renamed Requester -> Provider
- Created a game constants class
- Renamed OnDemandRequester -> ResourceProvider

~ September 11, 2015
- Orbs no longer show hover while they are off
- Fixed the positioning for modern spells
- Fixed some magic spell sprite positions on modern tab.

~ September 15, 2015
- Renamed RSSocket -> BufferedConnection
- Renamed BZip2Context -> BZip2DecompressionState
- Renamed BZip2 -> BZip2Decompressor, fully refactored BZip2Decompressor
- Fully refactored ResourceProvider
- Fully refactored ResourceProvider class

~ September 18, 2015
- Redid packaging, changing name to RS2 Client loading 474 data
- Fully refactored IdentityKit class
- Renamed reference cache variable names.
- Renamed methods in ReferenceCache, added Major's documentation.
- parseInterfaceOpcode renamed -> executeScript and has been refactored.
- Changed SkillConstant variable names to proper java conventions
- Renamed TextClass -> StringUtils, Fully refactored StringUtils
- Renamed TextInput -> ChatMessageCodec, fully refactored ChatMessageCodec
- Reduced the redundancy from Sound class names.
- More efficient way of doing 10 X HP and hits.
- Refactored the entire appendPlayerUpdateMask method in Game class
- Refactored parts of SpawnObject, Game, CollisionMap, and SceneGraph
- Tons of organizing classes, also renamed several classes.
- Renamed TileOverlay -> ShapedTile
- Renamed TileUnderlay -> SimpleTile

List of commands (Syntax: use as ::COMMAND)

[ul][] fps
[
] ids
[] finterface (used for fullscreen interfaces)
[
] music
[] 10xhp
[
] hp
[] names
[
] orbs
[] fog
[
] fixed
[] resize
[
] full
[] data
[
] noclip
[*] optab[/ul]

Packaged and refactored all classes (Updated September 18, 2015)

Loginscreen

Has many customize-able features; look in the configuration class for all the toggles

[SPOILER=More Media]

Fog

FullScreen

  • Reverted normal, ancient and lunar magic tabs back to 474.

Fullscreen interfaces (Fixed welcome screen interface)

Hitsplats are all fixed

Added OS Buddy XP Drops ([user]_Sean[/user])

Video from my project.
[video=youtube;0SDJzJF30Xw]https://www.youtube.com/watch?v=0SDJzJF30Xw[/video]

Video showing world switch and music button actually working, plays music on login as well.
[video]https://youtu.be/DqA_HsdhVBo[/video]
[/SPOILER]
Renaming List

Animable -> Renderable
Applet_Sub1 -> RSApplet -> GameShell
Cache -> ReferenceCache
Censor -> MessageCensor
Class3 -> Object4 -> ItemPile
Class4 -> ChunkUtil
Class6 -> SoundSample -> SoundSynthesizer
Class10 -> Object1 -> WallLock
Class11 -> CollisionMap
Class13 -> BZ2InputStream
Class18 -> SkinList
Class19 -> NodeList -> Deque
Class21 -> ModelHeader
Class26 -> Object2 -> WallDecoration
Class28 -> Object5 -> StaticObject
Class29 -> SoundEnvelope
Class30 -> Node
Class30_Sub1 -> TemporaryObject
Class30_Sub2_Sub4_Sub3 -> Animable_Sub3 -> SceneSpotAnim
Class30_Sub2_Sub4_Sub4 -> Animable_Sub4 -> SceneProjectile
Class30_Sub2_Sub4_Sub5 -> Animable_Sub5 -> SceneObject
Class32 -> BZip2Context
Class33 -> Vertex
Class36 -> FrameReader -> SequenceFrame
Class39 -> SoundFilter
Class40 -> TileOverlay
Class42_Sub1 -> OnDemandRequester
Class43 -> TileUnderlay
Class47 -> CullingCluster
Class49 -> GroundDecoration
Client -> Game
ClientFrame -> GameFrame
Ground -> Tile
Flo -> Floor
MRUNodes -> Cache
NodeSub -> QueueNode
Node -> Linkable
NodeCache -> HashTable
NodeSubList -> Queue
QueueNode -> Cacheable
Stream -> Buffer
StreamLoader -> CacheArchive
Sounds -> SoundTrack
Texture -> Rasterizer
TextDrawingArea -> GameFont
RSImageProducer -> ImageProducer
RSInterface -> Widget
VarBit -> VariableBits
Varp -> VariableParameter
WorldController -> SceneGraph

Thank you so much for this, too bad most will continue using badly decompiled clients…

Np, hopefully someone will have use for this.

-UPDATED-
August 19, 2015

[ul][] All items now have the correct color
[
] Refactored Image Producers
[] Refactored parts of drawInterface method
[
] Both MarkMinimap and DrawMinimap methods have been refactored
[] Added OS Buddies XP Drops (Thanks [user]_Sean[/user])
[
] Changed XP Counter position[/ul]

All items now have the correct color

Looks good, but links are dead??

Thanks for letting me know, I just fixed it.

Bump Again.

I’m using the client as a reference for my HTML5 game

What server did you use with this client?