SRL Archive - Reflection Help

Build #528 [Partial Hooks].


turbobk

2009-01-16 22:12:28

Hey, I was updating the hooks myself and well it takes FOREVER to do it manually! :(

So I only got it partially done, I have to go out now, so if anyone wanted to add on to it if they know what they're doing. I've updated about half of the hooks, it might even work again now, but not for somethings.

Try it..


//------------------------------------------------------------------\\
//-- Scar Non-Standard Resource Library --||
//-- ยป Reflection Routines - Hooks --||
//------------------------------------------------------------------//

const
// Build number
RSBuild = 528; // 527

// NPC
NPCDef = 'Pb';

// Player
CharName = 'Cc';
CharLevel = 'lc';

// RSString
StringBytes = 'q';

// Client
NPCIndexArray = 'rh.J'; // 'eb.b'
NPCArray = 'rh.x'; // 'ji.n'
NPCCount = 'mj.cb'; // 'oe.P'

PlayerIndArray = 'fe.R'; // 'o.R'
PlayerArray = 'p.Y'; // 'pk.a'
PlayerCount = 'nb.b'; // 'ub.x'
MyPlayer = 'of.l'; // 'cb.J'

BaseX = 'sj.n'; // 'he.O'
BaseY = 'od.pb'; // 'sk.l'

LoopCycle = 'hh.c'; // 'dd.R'

GroundHeights = 'ab.e'; // 'of.s'
GroundSettings = 'ca.gb'; // 'ee.a'
BaseLayer = 'bg.R'; // 'vf.x'

CamX = 'db'; // 'vd.h'
CamY = 'ph.p'; // 'bl.k'
CamZ = 'wd.Z'; // 'gf.k'
CamPitch = 'rj.B'; // 'ac.a'
CamYaw = 'me.tb'; // 'pd.R'

LoginIndex = 'sg.S'; // 'q.j'

SettingsArray = 'db.c'; // 'v.z'

MaxLevels = 'ca.X'; // 'mi.h'
CurrentLevels = 'nf.C'; // 'e.X'
Experiences = 'rh.z'; // 'ch.b'

MapOffsetAngle = 'fl.p';
CompassAngle = 'sb.o';

ChatMessages = 'mb.S'; // 'gb.N'
ChatTypes = 'gl.g'; // 'rb.W'
ChatNames = 'cd.N'; // 'ob.q'

MenuOptionsCount = 'nf.O'; // 'di.r'
MenuOpen = 'na.i'; // 'hh.Q'
MenuX = 'ja.d'; // 'dc.ab'
MenuY = 'ia.gb'; // 'ne.w'
MenuOptions = 'nd.q'; // 'sk.a'
MenuActions = 'si.R'; // 'mf.db'

FlagX = 'vg.l'; // 'qh.A'
FlagY = 'lf.b'; // 'jb.Z'

// Character
CharAnim = 'q';
CharMotion = 'V';
CurrentX = 'db';
CurrentY = 'W';
LoopCycleStatus = 'X';
CharHPRatio = 'K';
CharHeight = 'yb';
TurnDirection = 'S';
CharInteracting = 'A';

SelfInteracting = 'hd.m'; // 'ob.s'

// NPCDef
NPCName = 'Q';
NPCType = 'W';

//Ground Item Finding
GroundItemArray = 'ie.Rb';
GroundItemHead = 'i';
NextGroundItem = 'c';
GroundItem = 'V';
GroundItemID = 'o';
GroundItemStackSize = 'm';

GroundArray = 'me.F'; // 'mc.l'

// Object Hooks
Object1 = 'I';
Object2 = 'E';
Object3 = 'z';
Object4 = 'H';
Object5Array = 'O';

ObjectUID1 = 'l';
ObjectUID2 = 'i';
ObjectUID3 = 'a';
ObjectUID4 = 'j';
ObjectUID5 = 'j';

// Interface Hooks
// General
InterfaceCache = 'ta.a'; // 'ac.h'
ValidInterfaceArray = 'of.q'; // 'kb.j'
InterfaceChildren = 'gb';
InterfaceText = 'zb';
SelectedModelID = 'g';
NotSelectedModelID = 'R';
SelectedModelType = 'Lc';
NotSelectedModelType = 'Sc';

// Bank
BankItemID = 't';
BankItemStackSize = 'D';
BankItemName = 'y';
BankItemIndex = 'dd';

// Inventory
InventoryItemID = 'Ub';
InventoryItemStackSizes = 'sb';

NiCbaZ

2009-01-16 22:33:00

good work, il try and get some other ones.

lordsaturn

2009-01-16 22:43:13

You could have done this in seconds if you had just asked Method. :p

Sandstorm

2009-01-16 22:45:20

Method doesn't have it right now, apparently.

~Sandstorm

TViYH

2009-01-16 23:18:45

How do you get the hooks?

NiCbaZ

2009-01-16 23:35:29

From: lordsaturn
You could have done this in seconds if you had just asked Method. :p


Methods computer , the one the updater is on, is getting errors on startup.

TViYH

2009-01-16 23:36:54

NiCbaz, do you know where to get the hooks?

turbobk

2009-01-17 00:15:14

from Rsbot..

sirlaughsalot

2009-01-17 00:16:55

Reflection has been updated just a minute ago…

Edit : at least most of it

turbobk

2009-01-17 00:18:33

awesome let me check..

EDIT: aww i didnt even get any credit for finding most of the hooks.. :(

Widget

2009-01-17 01:16:00

Oh sorry, I did it manually myself :p

I still need the following though:
  // Bank
BankItemID = 't';
BankItemStackSize = 'D';
BankItemName = 'y';
BankItemIndex = 'dd';

// Inventory
InventoryItemID = 'C'; // maybe? public final int[] getInventory()

//Ground Item Finding
GroundItemArray = 'ie.Rb';
GroundItemHead = 'i';
NextGroundItem = 'c';
GroundItem = 'V';
GroundItemID = 'o';
GroundItemStackSize = 'm';

GroundArray = 'mc.l';

TViYH

2009-01-17 01:38:21

I'm asking where in RSBot can I get the hooks..

NiCbaZ

2009-01-17 05:57:03

From: TViYH
NiCbaz, do you know where to get the hooks?


Yes you can get them from RSBOT… as for making my own grabber? no, i only know the sytax of Java.

Edit Object Hooks not working?

sirlaughsalot

2009-01-17 06:50:44

From: NiCbaZ
Yes you can get them from RSBOT… as for making my own grabber? no, i only know the sytax of Java.

Edit Object Hooks not working?


I noticed the object hooks too…

Method

2009-01-17 10:16:37

You can't use the object hooks without the GroundArray, which Widget seemed to have missed. :p

I've got my updater backed up now and I'm planning on running my repair CD later today. Hopefully I'll be able to get you guys a full output.

TViYH

2009-01-17 11:52:40

Jesus Christ.

I know you get them from RSBot.

But where the hell at?

Method

2009-01-17 17:08:35

From: TViYH
Jesus Christ.

I know you get them from RSBot.

But where the hell at?


From the rs.jar file.

mormonman

2009-01-17 17:09:19

are the hooks completely updated yet?

Heysus

2009-01-17 19:22:52

From: mormonman
are the hooks completely updated yet?


I was running a reflection script a few hours ago and it was working fine but then I think rs updated again?? :(

Cowie`

2009-01-17 19:33:39

This might, or might not help you - Just thought I'd post it anyway:


Starting AutomatiX Updater.
Downloading Runescape.jar - Done.
Loading the classes from Runescape.jar. - Done
Runescape revision is #528
———————————–

[Transforms.RSString]:
* p implements interface com.rs2.automatix.accessors.RSString
* getBytes() - p field byte[] p.r
* getLength() - p field int p.s
* isEditable() - p field boolean p.E

[Transforms.NPC]:
* getNPCIndexArray() - client static int[] rh.J
* getNPCArray() - client static oc[] rh.x
* oc implements interface com.rs2.automatix.accessors.NPC
* getNPCDef() - oc field mi oc.Ob
* getNPCCount() - client static int mj.cb

[Transforms.NPCDef]:
* mi implements interface com.rs2.automatix.accessors.NPCDef
* getName() - mi field p mi.e
* getActions() - mi field p[] mi.T
* getType() - mi field int mi.yb

[Transforms.Player]:
* getPlayerIndexArray() - client static int[] fe.R
* getPlayerArray() - client static oe[] p.Y
* oe implements interface com.rs2.automatix.accessors.Player
* getPlayerCount() - client static int nb.b

[Transforms.PlayerDef]:
* getName() - oe field p oe.Kb
* ik implements interface com.rs2.automatix.accessors.Model
* getModel() - oe field ik oe.Sb
* rk implements interface com.rs2.automatix.accessors.Animable
* lj implements interface com.rs2.automatix.accessors.Stream
* getCurrentOffset() - lj field int lj.Z
* getPkHeadIcon() - oe field short oe.Qb
* getPrayerHeadIcon() - oe field short oe.Gb
* getTeam() - oe field short oe.Qb
* getLevel() - oe field int oe.Hb

[Transforms.Position]:
* getBaseX() - client static int sj.n
* getMyPlayer() - client static oe of.l
* getLocationY() - rf field int[] rf.db
* getLocationX() - rf field int[] rf.k
* getBaseY() - client static int od.pb

[Transforms.Character]:
* rf implements interface com.rs2.automatix.accessors.Character
* getMessage() - rf field p rf.p
* getAnimation() - rf field int rf.tb
* isMoving() - rf field int rf.I
* getX() - rf field int rf.l
* getY() - rf field int rf.j

[Transforms.Entity]:
* getPublicChatMode() - client static int il.i
* getLoopCycle() - client static int hh.c
* getLoopCycleStatus() - rf field int rf.bb
* getHPRatio() - rf field int rf.gb
* getHeight() - rf field int rf.C

[Transforms.InteractingEntity]:
* getInteracting() - rf field int rf.V
* getSelfInteracting() - client static int hd.m
* getTurnDirection() - rf field int rf.Db

[Transforms.GroundInt]:
* getGroundIntArray() - client static int[][][] ab.e

[Transforms.GroundByteArray]:
* getGroundByteArray() - client static byte[][][] ca.gb

[Transforms.Camera]:
* getPlane() - client static int bg.R
* getCamPosX() - client static int client.db
* getCamPosY() - client static int ph.p
* getCamPosZ() - client static int wd.Z
* getCameraCurveY() - client static int rj.B
* getCameraCurveX() - client static int me.tb

[Transforms.Interface]:
* ua implements interface com.rs2.automatix.accessors.Interface
* getMasterX() - ua field int ua.masterX
* getMasterY() - ua field int ua.masterY
* getCache() - ua field ua[] ua.e
* getValueIndexArray() - ua field int[][] ua.Mb
* getInventory() - ua field int[] ua.C
* getInventoryStackSizes() - ua field int[] ua.Nb
* getNotInterfaceSelectedModelID() - ua field int ua.gc
* getNotInterfaceSelectedModelType() - ua field int ua.lb
* getInterfaceSelectedModelType() - ua field int ua.U
* getInterfaceSelectedModelID() - ua field int ua.ed
* getType() - ua field int ua.s
* getActionType() - ua field int ua.tb
* getWidth() - ua field int ua.Pc
* getHeight() - ua field int ua.Tb
* getActions() - ua field p[] ua.mc
* isInventoryInterface() - ua field boolean ua.Ub
* getText() - ua field p ua.bd
* getBackgroundColor() - ua field int ua.Gc
* getTextColour() - ua field int ua.jb
* getInvSpritePadX() - ua field int ua.r
* getInvSpritePadY() - ua field int ua.p
* getSelectedActionName() - ua field p ua.Ac
* getSpellName() - ua field p ua.xc
* getToolTip() - ua field p ua.sb

[Transforms.InterfaceXY]:
* getX() - ua field int ua.O
* getY() - ua field int ua.L
* Hacked class j to set the fields masterX and masterY in the class ua

[Transforms.ValidInterfaceArray]:
* getValidInterfaceArray() - client static boolean[] of.q

[Transforms.Signlink]:
* getCurrentPassword() - client static p kk.i
* getCurrentUsername() - client static p kk.g
* getEventQueue() - ug field java.awt.EventQueue ug.l
* getGameApplet() - ug field java.applet.Applet ug.q

[Transforms.Client]:
* client implements interface com.rs2.automatix.accessors.Client
* getIdleTime() - client static int ac.I
* getMouse() - client static nb kh.k
* getKeyboard() - client static pd je.V
* getInterfaceCache() - client static ua[][] ta.a

[Transforms.Mouse]:
* getMouseX() - client static int lh.Y
* getMouseY() - client static int fg.S
* getMousePressX() - client static int sc.l
* getMousePressY() - client static int kb.A
* getMousePressButton() - client static int jg.Z
* getMousePressLastButton() - client static int lg.W
* getMousePressTime() - client static long qk.b

[Transforms.LoginIndex]:
* getLoginIndex() - client static int sg.S

[Transforms.SettingArray]:
* getSettingArray() - client static int[] db.c

[Transforms.Item]:
* getID() - eh field int eh.m
* getStackSize() - eh field int eh.p
* eh implements interface com.rs2.automatix.accessors.Item

[Transforms.WorldController]:
* getGroundArray() - client static sg[][][] me.F
* sg implements interface com.rs2.automatix.accessors.Ground
* l implements interface com.rs2.automatix.accessors.ObjectDefinition
* getUID() - l field long l.s
* sc implements interface com.rs2.automatix.accessors.ObjectDefinition
* getUID() - sc field long sc.e
* t implements interface com.rs2.automatix.accessors.ObjectDefinition
* getUID() - t field long t.m
* ek implements interface com.rs2.automatix.accessors.ObjectDefinition
* getUID() - ek field long ek.j
* sj implements interface com.rs2.automatix.accessors.ObjectDefinition
* getUID() - sj field long sj.o
* getObject3() - sg field sc sg.y
* getObject4() - sg field t sg.D
* getObject5Array() - sg field l[] sg.F
* getObject1() - sg field ek sg.J
* getObject2() - sg field sj sg.M

[Transforms.SkillExperiencesMax]:
* getSkillExperiencesMax() - client static int[] q.L

[Transforms.Skills]:
* getSkillLevelMaxes() - client static int[] ca.X
* getSkillLevels() - client static int[] nf.C
* getSkillExperiences() - client static int[] rh.z

[Transforms.Minimap]:
* getMinimapInt3() - client static int oe.Nb
* getCURVECOS() - client static int[] qj.c
* getCURVESIN() - client static int[] qj.g
* getMinimapInt2() - client static int lj.fb
* getMinimapInt1() - client static int ah.l

[Transforms.Node]:
* kb implements interface com.rs2.automatix.accessors.NodeSub
* il implements interface com.rs2.automatix.accessors.Node
* getID() - il field long il.m
* getNext() - il field il il.e
* getPrevious() - il field il il.n

[Transforms.NodeList]:
* getNodeListArray() - client static bb[][][] cg.j
* bb implements interface com.rs2.automatix.accessors.NodeList
* getHead() - bb field il bb.r
* getCurrent() - bb field il bb.x

[Transforms.CachedItem]:
* vb implements interface com.rs2.automatix.accessors.CachedItem
* getItem() - vb field eh vb.L

[Transforms.Chat]:
* getChatMessages() - client static p[] mb.S
* getChatNames() - client static p[] cd.N
* getChatTypes() - client static int[] gl.g

[Transforms.Menu]:
* getMenuOptionsCount() - client static int nf.O
* isMenuOpen() - client static boolean id.b
* getMenuX() - client static int ja.d
* getMenuY() - client static int ia.gb

[Transforms.MenuStringWrapper]:
* getMenuOptions() - client static p[] nd.q
* getMenuActions() - client static p[] si.R

[Transforms.ActionConstants]:
* getActionID() - client static short[] uj.c
* getActionCmd1() - client static long[] re.bb
* getActionCmd2() - client static int[] jl.p
* getActionCmd3() - client static int[] al.k

[Transforms.Flagged]:
* getSignlink() - client static ug u.h
* isFlagged() - client static boolean ij.ab

[Transforms.ScreenMenu3d]:
* isSpellSelected() - client static boolean rb.x
* getItemSelected() - client static int pa.f
* ob implements interface com.rs2.automatix.accessors.ObjectDef
* getChildrenIDs() - ob field int[] ob.x
* getSelectedItemName() - client static p je.cb
* getName() - ob field p ob.e
* spellUsableOn() - client static int jg.ab
* getActions() - ob field p[] ob.k
* getType() - ob field int ob.i
* me implements interface com.rs2.automatix.accessors.ItemDef
* getGroundActions() - me field p[] me.gb
* getSelectedSpellName() - client static p uc.e
* getName() - me field p me.kb

[Transforms.NodeClasses]:
* getObjectDefMRUNodes() - client static sb ad.h
* getItemDefMRUNodes() - client static sb jj.g
* sb implements interface com.rs2.automatix.accessors.MRUNodes
* na implements interface com.rs2.automatix.accessors.NodeSubList
* getList() - sb field na sb.k
* getInitialCount() - sb field int sb.m
* getSpaceLeft() - sb field int sb.g
* he implements interface com.rs2.automatix.accessors.NodeCache
* getNodeCache() - sb field he sb.s
* getCache() - he field il[] he.t
* getID() - me field int me.rb
* getCertTemplateID() - me field int me.T
* getCertID() - me field int me.m
* isMembers() - client static boolean sf.l
* isMembersObject() - me field boolean me.A
* getTeam() - me field int me.hb
* getActions() - me field p[] me.x

[Transforms.DrawMinimap]:
* eg implements interface com.rs2.automatix.accessors.Sprite
* getMinimapSprite() - client static de rh.w
* getMapDots() - client static de[] ud.D
* getFriendListAsLongs() - client static long[] sj.b
* getFriendNodeIDs() - client static int[] ej.M
* getFriendCount() - client static int gl.c
* getDestX() - client static int vg.l
* getDestY() - client static int lf.b
* getMapMarkers() - client static de[] ud.D

[Transforms.Sprite]:
* getPixels() - eg field int[] eg.D
* getWidth() - eg field int de.M
* getHeight() - eg field int de.S

[Transforms.CanReach]:
* getCost() - client static int[][] jf.Q
* getVia() - client static int[][] s.n
* pk implements interface com.rs2.automatix.accessors.GroundData
* getGroundDataArray() - client static pk[] ag.R
* getBlocks() - pk field int[][] pk.h

———————————–
Hooked 174 fields, defined 28 classes.
Repackaging the .jar file.

Heysus

2009-01-17 19:48:52

From: Cowie`
This might, or might not help you - Just thought I'd post it anyway:


I think we need #529

ZaSz

2009-01-17 19:50:08

How u get that?

Cowie`

2009-01-17 19:51:45

From: Heysus
I think we need #529


Not when the current revision is only #528 you don't.

From: zasz
How u get that?


It's my updater designed for a project me and a friend are working on, and in the current state of MethoD's computer - I thought I'd get an output as to see if it could benefit yourself, or any other user for that matter.

ZaSz

2009-01-17 19:56:46

Could u please send me the updater? Id love to learn from that.

Heysus

2009-01-17 19:57:26

Did u just get those now? I assumed we needed 529 because the last line in the reflection changelog says


1-17-09 Freddy1990:
- Updated bank hooks for #529

Cowie`

2009-01-17 20:01:20

From: zasz
Could u please send me the updater? Id love to learn from that.


That, I am sorry to say no to. I'm sure you could find a small updater that has the basic transforms so that you can expand on, but since the Updater plays a VITAL part in AutomatiX I cannot release it to the public.

From: Heysus
Did u just get those now? I assumed we needed 529 because the last line in the reflection changelog says


Yes, I just got the output - And both methods I'm using (BCEL to get the runescape.jar revision, and the Python method to "bruteforce" your way into getting the right revision), are both saying #528 - So I suppose Freddy could have just made a typo?

noidea

2009-01-17 20:16:56

Sweet, is AutomatiX a new bot your making..? If so, is it scriptable?

Cowie`

2009-01-17 20:33:26

From: noidea
Sweet, is AutomatiX a new bot your making..? If so, is it scriptable?


AutomatiX is a bot that myself, and Synt[a]x have in the works. It's only been functional for about 12 hours or so and we are currently building upon it, via adding new methods and such.

And yes - It is scriptable.

noidea

2009-01-17 20:48:18

From: Cowie`
AutomatiX is a bot that myself, and Synt[a]x have in the works. It's only been functional for about 12 hours or so and we are currently building upon it, via adding new methods and such.

And yes - It is scriptable.


Awsome! Scriptable in what language? Java, pascal/delphi(Like scar)?