PDA

View Full Version : [OSR]Reflection Include



Pages : [1] 2 3 4

Kyle
01-06-2014, 08:37 PM
OSR Reflection


Please view the Reflection forum for any info regarding relfection or these includes: https://villavu.com/forum/forumdisplay.php?f=661

Hoodz
01-06-2014, 09:33 PM
Borland im sure you can help them!

if you guys got flawless random solvers im going to make a slayer script for osr!

Borland
01-06-2014, 10:10 PM
Definitely interested. I have been playing around with reflection these last 2 days managed to get together a few functions and made some headway with NPCs today, I'll be back on that tomorrow.

How do I get involved with this officially?

Kyle
01-06-2014, 10:36 PM
Add me on Skype and we can talk. Its just my villavu name.

Solar
01-07-2014, 08:34 AM
Add me on Skype and we can talk. Its just my villavu name.

How would one go about using the new reflection files instead of the other mini one? Would you just add the line you gave and that would be enough?

Also, congrats on the reflection developer cup. :)

Justin
01-07-2014, 09:11 AM
How would one go about using the new reflection files instead of the other mini one? Would you just add the line you gave and that would be enough?

Also, congrats on the reflection developer cup. :)

The include is extremely basic at the moment.

Solar
01-07-2014, 09:52 AM
How do you get the most recent hooks? I tried looking on javahacking but have no idea what I'm looking at or for.

Flight
01-07-2014, 10:26 AM
How do you get the most recent hooks? I tried looking on javahacking but have no idea what I'm looking at or for.

n3ss3s made a nifty little hook-grabber, you can find it here (http://villavu.com/forum/showthread.php?t=105915).

Solar
01-07-2014, 10:44 AM
n3ss3s made a nifty little hook-grabber, you can find it here (http://villavu.com/forum/showthread.php?t=105915).

OK, so I ran the bat file and that updated the Fields (I think). Still not sure how to use what I have?

Borland
01-07-2014, 12:49 PM
Teaser :)


Name: rat
ID: 1372
Combat: 1
Pos X: 3207
Pos Y: 3208
LoopCycle: 194992
MoveSpeed: 1

Hoodz
01-07-2014, 01:22 PM
Teaser :)


Name: rat
ID: 1372
Combat: 1
Pos X: 3207
Pos Y: 3208
LoopCycle: 194992
MoveSpeed: 1


pm me :P

rj
01-07-2014, 01:22 PM
Teaser :)


Name: rat
ID: 1372
Combat: 1
Pos X: 3207
Pos Y: 3208
LoopCycle: 194992
MoveSpeed: 1


Ooo Very nice

Kyle
01-07-2014, 02:27 PM
How would one go about using the new reflection files instead of the other mini one? Would you just add the line you gave and that would be enough?

Also, congrats on the reflection developer cup. :)

Thanks! Uh yeah just like I was saying in the main thread, just download the .zip, extract it and place it inside you sr-osr/srl folder and rename in to Reflection. You don't need to change the hooks or anything, they are up to date!

Justin
01-07-2014, 02:53 PM
Teaser :)


Name: rat
ID: 1372
Combat: 1
Pos X: 3207
Pos Y: 3208
LoopCycle: 194992
MoveSpeed: 1


Nice work! Any chance you want to share?

Solar
01-07-2014, 03:36 PM
Thanks! Uh yeah just like I was saying in the main thread, just download the .zip, extract it and place it inside you sr-osr/srl folder and rename in to Reflection. You don't need to change the hooks or anything, they are up to date!

I have done all of that like you said in the OP.
I just wanted to know how I can manually update hooks, and if possible, can someone tell me what a hook actually is?
I got n3ss3s's updater and ran the bat file but don't know what to do after that.

Kyle
01-07-2014, 03:44 PM
I have done all of that like you said in the OP.
I just wanted to know how I can manually update hooks, and if possible, can someone tell me what a hook actually is?
I got n3ss3s's updater and ran the bat file but don't know what to do after that.

Add me On Skype. elfyyy
Same Profile Pic

Hoodz
01-07-2014, 10:12 PM
elfyyy

im going to help, getting members asap.

edit: you have to include
{$I SRL-OSR/SRL/misc/SmartGraphics.simba}
before you include reflection.

edit: you can remove var me: Integer; @ C:\Simba\Includes\SRL-OSR\SRL\Reflection\Core\Player.simba(118:3)

NKN
01-07-2014, 10:44 PM
Started working on my updater again, along with helping the group out with code.




Analyzing has started!
Class Hook: Node fz
Class Hook: CacheableNode fa
Class Hook: Renderable cx
Class Hook: Model do
Class Hook: Actor aw
Class Hook: NodeHashTable fu
Class Hook: Player o
Field Hook: o.m PlayerModel Ldo; -1
Field Hook: o.j PlayerName Ljava/lang/String -1
Class Hook: NPC e
Field Hook: e.j NPCDefinition Lak; -1
Class Hook: NPCDefinition ak
Field Hook: z NPCActions [Ljava/lang/String; -1
Field Hook: a NPCName Ljava/lang/String; -1
Class Hook: Client client
Field Hook: f.fo CameraPitch I 1424438993
Field Hook: client.bj NPCArray [Le; -1
Field Hook: client.gi PlayerArray [Lo; -1
Field Hook: q.fi CameraYaw I -1409161417

Borland
01-08-2014, 10:50 PM
Moar teasers :D

Grabs all the local NPCs that match either on Name or ID (in this case 'rat') and fills a record with each ones information for easy looping after.


######## Result 0 ########
Index: 12506
Name: rat
Tile: (3204, 3210)
Combat: 1
HitPoints: 0
Actions: ['Attack']
ID: 1372
Animation: -1
WalkSpeed: 1
WalkQueueX: 44
WalkQueueY: 50
Interacting: -1
Orientation: 180
##########################
######## Result 1 ########
Index: 12507
Name: rat
Tile: (3201, 3208)
Combat: 1
HitPoints: 0
Actions: ['Attack']
ID: 1372
Animation: -1
WalkSpeed: 2
WalkQueueX: 41
WalkQueueY: 49
Interacting: -1
Orientation: 254
##########################
######## Result 2 ########
Index: 12508
Name: rat
Tile: (3205, 3217)
Combat: 1
HitPoints: 0
Actions: ['Attack']
ID: 1372
Animation: -1
WalkSpeed: 0
WalkQueueX: 45
WalkQueueY: 57
Interacting: -1
Orientation: 142
##########################
######## Result 3 ########
Index: 12509
Name: rat
Tile: (3207, 3208)
Combat: 1
HitPoints: 0
Actions: ['Attack']
ID: 1372
Animation: -1
WalkSpeed: 0
WalkQueueX: 47
WalkQueueY: 48
Interacting: -1
Orientation: 142
##########################
######## Result 4 ########
Index: 12510
Name: rat
Tile: (3201, 3219)
Combat: 1
HitPoints: 0
Actions: ['Attack']
ID: 1372
Animation: -1
WalkSpeed: 0
WalkQueueX: 41
WalkQueueY: 59
Interacting: -1
Orientation: 254
##########################
######## Result 5 ########
Index: 12511
Name: rat
Tile: (3213, 3212)
Combat: 1
HitPoints: 0
Actions: ['Attack']
ID: 1372
Animation: -1
WalkSpeed: 0
WalkQueueX: 53
WalkQueueY: 52
Interacting: -1
Orientation: 180
##########################
######## Result 6 ########
Index: 12514
Name: rat
Tile: (3205, 3201)
Combat: 1
HitPoints: 0
Actions: ['Attack']
ID: 1372
Animation: -1
WalkSpeed: 2
WalkQueueX: 47
WalkQueueY: 41
Interacting: -1
Orientation: 216
##########################
######## Result 7 ########
Index: 12515
Name: rat
Tile: (3212, 3204)
Combat: 1
HitPoints: 0
Actions: ['Attack']
ID: 1372
Animation: -1
WalkSpeed: 2
WalkQueueX: 51
WalkQueueY: 43
Interacting: -1
Orientation: 236
##########################
######## Result 8 ########
Index: 12537
Name: rat
Tile: (3221, 3223)
Combat: 1
HitPoints: 0
Actions: ['Attack']
ID: 1372
Animation: -1
WalkSpeed: 0
WalkQueueX: 61
WalkQueueY: 63
Interacting: -1
Orientation: 160
##########################

Flight
01-09-2014, 12:24 AM
As a piece of advice you guys don't need AL_Functions to be included, just replace my mouse stuff with SRL's stock mouse procedures. Also, have you all considered upgrading to Lape?

Kyle
01-09-2014, 05:14 AM
Yeah Brandon. I know, didn't mean to Push them yet as i'm not done with the npc's yet. Thanks though!

slacky
01-09-2014, 04:55 PM
While at it, why not make it Lape compatible (it seems it's not)? There are only small changes needed for it to compile under lape (so it seems).

Kyle
01-09-2014, 05:03 PM
While at it, why not make it Lape compatible (it seems it's not)? There are only small changes needed for it to compile under lape (so it seems).

Yeah, a lot of people have been talking about that. But for know, there's no reason to, until OSR is rewritten with lape.

EDIT- Hooks updated!
Got everyone other than a few Npc's, should have it uploaded within the hour!

EDIT2- Minireflection has been updated

EDIT3- This Include is completely updated with new hooks! :)

Brandon
01-10-2014, 08:13 AM
Hooking ground items.. I wrote it in java. Someone translate it :l Too lazy..


Node:


package osrs;

import java.lang.reflect.Field;

/**
*
* @author Brandon
*/
public class Node {
private Object nodelist;
private ClassLoader loader;

public Node(Object nodelist, ClassLoader loader) {
this.nodelist = nodelist;
this.loader = loader;
}

public Object currentNode() {
return nodelist;
}

public Node getNext() {
try {
Field f = loader.loadClass("fc").getDeclaredField("dt");
f.setAccessible(true);
return new Node(f.get(this.nodelist), loader);
} catch(ClassNotFoundException | NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace();
}
return null;
}

public Node getPrevious() {
try {
Field f = loader.loadClass("fc").getDeclaredField("ef");
f.setAccessible(true);
return new Node(f.get(this.nodelist), loader);
} catch(ClassNotFoundException | NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace();
}
return null;
}

public long getID() {
try {
Field f = loader.loadClass("fc").getDeclaredField("dg");
f.setAccessible(true);
return f.getLong(this.nodelist);
} catch(ClassNotFoundException | NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace();
}
return -1;
}
}


Linked-List:

package osrs;

import java.lang.reflect.Field;

/**
*
* @author Brandon
*/
public class LinkedList {
private Object obj;
private ClassLoader loader;

public LinkedList(Object obj, ClassLoader loader) {
this.obj = obj;
this.loader = loader;
}

public Node getHead() {
try {
Field f = loader.loadClass("fj").getDeclaredField("e");
f.setAccessible(true);
Object head = f.get(obj);
return new Node(head, loader);
} catch(ClassNotFoundException | NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace();
}
return null;
}

public Node getTail() {
try {
Field f = loader.loadClass("fj").getDeclaredField("b");
f.setAccessible(true);
Object tail = f.get(obj);
return new Node(tail, loader);
} catch(ClassNotFoundException | NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace();
}
return null;
}
}



Item:

package osrs;

import java.lang.reflect.Field;

/**
*
* @author Brandon
*/
public class Item {
private Object obj;
private ClassLoader loader;

public Item(Object obj, ClassLoader loader) {
this.obj = obj;
this.loader = loader;
}

public int getID() {
try {
Field f = loader.loadClass("x").getDeclaredField("b");
f.setAccessible(true);
return f.getInt(obj) * 766650721;
} catch(ClassNotFoundException | NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace();
}
return -1;
}

public int getQuantity() {
try {
Field f = loader.loadClass("x").getDeclaredField("e");
f.setAccessible(true);
return f.getInt(obj) * -374023265;
} catch(ClassNotFoundException | NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace();
}
return -1;
}

public String getName() {
try {
Field f = loader.loadClass("az").getDeclaredField("l");
f.setAccessible(true);
//return (String) f.get(obj);
return null;
} catch(Exception e) {
e.printStackTrace();
}
return null;
}
}


OSRS:

import java.lang.reflect.Field;
import javax.swing.JFrame;

/**
*
* @author Brandon
*/
public class OSRS {


public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
JFrame Frame = new JFrame("Test-Bot");
Frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);

ClientApplet applet = new ClientApplet("http://oldschool38.runescape.com", "", 765, 503);
applet.start();
Frame.add(applet);
Frame.setVisible(true);
Frame.pack();

try {
System.in.read();
} catch(Exception e) {

}

ClassLoader loader = applet.getClassLoader();
Field GroundItemsLinkedList = loader.loadClass("client").getDeclaredField("hi");
GroundItemsLinkedList.setAccessible(true);

//Item = x, id = b * 766650721, quantity = e * -374023265
//ItemDef = az, name = l
//Linked-List = fj, head = e, tail = b.
//Node = fc, next = dt, prev = ef, id = dg.

Object[][][] glist = (Object[][][])GroundItemsLinkedList.get(null);

for (int i = 0; i < glist.length; ++i) { //always 4.
for (int j = 0; j < glist[i].length; ++j) { //always 104.
for (int k = 0; k < glist[i][j].length; ++k) { //always 104.
Object linked_list = glist[i][j][k];
if (linked_list != null) {
LinkedList l = new LinkedList(linked_list, loader);
Node n = l.getTail();
Object first = n.currentNode();

while(first != (n = n.getNext()).currentNode()) {
Item item = new Item(n.currentNode(), loader);
System.out.println("ID: " + item.getID() + " Quantity: " + item.getQuantity());
System.out.println("Name: " + item.getName());
}
}
}
}
}
}
}



Prints:

ID: 1619 Quantity: 1
Name: null


which is correct because I dropped a ruby on the floor. In a crowded area, it prints every single item on the floor/ground item. So the above is one way of getting ground items. There HAS to be a better way than iterating the 4x104x104 linked list all the way (check the old includes or something for a hash or index algo iirc).. Oh.. Wasn't sure why my getName wasn't working but the ID and Quantity works.

Someone translate that to PS. I'm tired.

Krazy_Meerkat
01-10-2014, 05:59 PM
Thank you very much Brandon, any help is good help. It looks like you have some nice stuff there, we'll have it translated to PS soon enough.
I've heavily modified the auto-updater, now it will update the entire reflection include straight from the google source-code whenever there is a new IncludeRevision instead of just the hooks (which used to be updated via pastebin). The hooks will update if the ReflectionRevision or the IncludeRevision version changes.
Also modified R_TileToMs(); to improve accuracy on the player tile, went from 80% accurate to 99.99%. Rarely inaccurate due to rounding issues which couldn't be corrected. Next update will improve accuracy of tiles surrounding the player.
Elfyyy hasn't stated in the OP, but you need to call SetupReflection; at the start of your script for auto-updating to work. Everyone should re-download the include from: https://code.google.com/p/osrreflection/source/browse/ because the auto-updater changes are very important.

Kyle
01-16-2014, 04:11 PM
Hooks Are updated to latest Revision 35. The Npc Index hook isn't working correctly so for the time being, Npc functions will not work. Will post back when squared away

dog_
01-16-2014, 04:59 PM
good job ;)

jagexwillneverwin
01-18-2014, 12:51 AM
Just curious, are you guys planning on incorporating things that would help solve randoms into this eventually?

Kyle
01-18-2014, 12:55 AM
Just curious, are you guys planning on incorporating things that would help solve randoms into this eventually?

Oh yeah! That's definitely the goal!

jagexwillneverwin
01-18-2014, 01:30 AM
Oh yeah! That's definitely the goal!

Cool! I'll be looking forward to it! :)

Kyle
01-19-2014, 03:03 PM
Ok, so we got the npc's up and working again using a little bit different method. The functions should still be all the same. We have also just started working on antirandoms and hopefully will have enough of them working soon to be able to call them in scripts!

yayovio10
01-22-2014, 01:57 AM
thank you guys for working on this, it will help a lot of people including me, i'll be looking forward for the antirandoms too, best of luck!

NKN
01-22-2014, 02:01 AM
Helping with Object detection for once.

Where would they be without me?

samerdl
01-23-2014, 05:54 PM
hooks are outdated from today's update, please update ;_)?

Solar
01-23-2014, 06:56 PM
hooks are outdated from today's update, please update ;_)?

Apparently the update messed with the updater somehow so it might take some more time than usual.

NKN
01-23-2014, 07:15 PM
Updaters were released just like normal.


Hold on tight everyone, we'll be back later today.

Krazy_Meerkat
01-24-2014, 11:23 AM
Sorry for the delay all, timezones were a bit unfair to us on this occasion.. I updated our hooks about an hour ago. Happy scripting everyone :)

Solar
01-24-2014, 12:12 PM
Sorry for the delay all, timezones were a bit unfair to us on this occasion.. I updated our hooks about an hour ago. Happy scripting everyone :)

elfyyy said in his Pest Control thread that something was different with this Runescape update. Care to elaborate?
Of course, thank you for the update too.

Krazy_Meerkat
01-24-2014, 12:33 PM
I'm not too sure, haridos posted on JH "Loads broke/wrong on this update, camera pitch is completely wrong" We don't use the pitch hook, in-fact we only use a few of the actual hooks in our include. I assume something was different in the way OSR handles some methods so most people couldn't get their updaters to run at the time of update (including ours).. When I came on skype today, I saw the hook update and our updater was working fine, so I updated.. Normally elfyyy does it, but he'd gone offline when it was fixed.. Btw, if you run the include, you will now get this message: "Massive thanks to Magorium, Dang, Hyperion, Swipe, dog_ and hexagon for supplying hooks and multipliers when we were in a tight spot!"
We want to give credit to those members of JH who have contributed hooks during the time we were unable to get our own.
@#27 <333

Hoodz
01-24-2014, 11:23 PM
I'm not too sure, haridos posted on JH "Loads broke/wrong on this update, camera pitch is completely wrong" We don't use the pitch hook, in-fact we only use a few of the actual hooks in our include. I assume something was different in the way OSR handles some methods so most people couldn't get their updaters to run at the time of update (including ours).. When I came on skype today, I saw the hook update and our updater was working fine, so I updated.. Normally elfyyy does it, but he'd gone offline when it was fixed.. Btw, if you run the include, you will now get this message: "Massive thanks to Magorium, Dang, Hyperion, Swipe, dog_ and hexagon for supplying hooks and multipliers when we were in a tight spot!"
We want to give credit to those members of JH who have contributed hooks during the time we were unable to get our own.
@#27 <333
they are awesome! and thanks for the update krazy

yayovio10
01-27-2014, 09:32 PM
hello,just wondering why you commented this line
//{$include SRL-OSR/SRL/Reflection/AntiRandoms/Antirandoms.simba}

Kyle
01-27-2014, 09:38 PM
hello,just wondering why you commented this line
//{$include SRL-OSR/SRL/Reflection/AntiRandoms/Antirandoms.simba}

Because as of now we only have a few randoms solved and haven't uploaded them to the googlecode. So we just commented the line out to make it easy for us to test the randoms.

samerdl
01-29-2014, 03:06 PM
Hey i been looking around at the include and saw a file for npcs, my question is how can i use to make my client click on npcs?

This worked:


var
bbd: tnpc;

begin
playerSetup;
setupsrl;
SetupReflection;
wait(1000);
//ProjectTiles; // i thought this is going to draw boxes/id's on my screen, like osbot.. But it didn't do anything really.
//R_GetNpcs('Name'); didn't work just caused a memory leak and froze the client + simba.
bbd := R_InteractingNpc; // worked.
writeln(bbd);
writeln('//////.,.,');
end.


Result was:

('hring hring', (2399, 3797), 11346, 0, 1237, -1, 0, 33679, 0)
//////.,.,

It would only work if i clicked to interact and had the script repeat the function, didn't work when i was just in-convo screen with the npc.

So how can i make it click on npcs or items?, i think it would make my scripts a lot more powerful and not just that.. it would also make simba 100x more useful for botting on 07scape.

Kyle
01-29-2014, 03:46 PM
Hey i been looking around at the include and saw a file for npcs, my question is how can i use to make my client click on npcs?

This worked:


var
bbd: tnpc;

begin
playerSetup;
setupsrl;
SetupReflection;
wait(1000);
//ProjectTiles; // i thought this is going to draw boxes/id's on my screen, like osbot.. But it didn't do anything really.
//R_GetNpcs('Name'); didn't work just caused a memory leak and froze the client + simba.
bbd := R_InteractingNpc; // worked.
writeln(bbd);
writeln('//////.,.,');
end.


Result was:

('hring hring', (2399, 3797), 11346, 0, 1237, -1, 0, 33679, 0)
//////.,.,

It would only work if i clicked to interact and had the script repeat the function, didn't work when i was just in-convo screen with the npc.

So how can i make it click on npcs or items?, i think it would make my scripts a lot more powerful and not just that.. it would also make simba 100x more useful for botting on 07scape.

Uh if you go the the tutorial I have linked, under the NPC section there is an example of just that :). Do note however, tile to ms is not 100% accurate as of now, so its best to use the point given and make a box from it to look for the NPC colors. :)

Unfold
01-30-2014, 05:37 PM
R_IsAnimating doesn't work with fishing, it always says im not in animating...

Kyle
01-30-2014, 05:43 PM
R_IsAnimating doesn't work with fishing, it always says im not in animating...

Hooks just updated. Gimmee a bit...

Solar
01-30-2014, 08:11 PM
Do you manually type in the new hooks or does your updater do it for you?
No offense but sometimes it takes a while to update them after a RS update, but I find it odd when Krazy_Meerkat said he updated and uploaded the updated hooks within 10 minutes of finding it out.

Unfold
01-30-2014, 10:23 PM
Do you manually type in the new hooks or does your updater do it for you?
No offense but sometimes it takes a while to update them after a RS update, but I find it odd when Krazy_Meerkat said he updated and uploaded the updated hooks within 10 minutes of finding it out.

They have to manually do it, its much faster than those bot like osbot, they take a while to update their bot.

Sk1nyNerd
01-30-2014, 10:40 PM
what is meant by "tile"? like spaces your character stands when walking? points on the rs screen?

Krazy_Meerkat
01-31-2014, 02:42 AM
We manually update them with our logs, but our hook updater seems completely ruined this update.. We are currently taking a look at what's available on JH and testing a few hooks.. It's a slow and difficult process..
I did claim that we could update within 10 mins, because 2 updates ago, the hooks updated and we had them parsed and uploaded within 10 mins of the update, the time before that we had them done within half an hour.. This time something changed and we couldn't get hooks..
The tile is the in-game location (co-ordinates) of a player, npc or object. It is always static to that area (eg. lumby will always have the same co-ords).
samerdl, ProjectTile does draw a single box on your screen, you need to include smartgraphics to call it. There is normally a description for the method (located in tiles.simba), but some lack explanation. A better-suited function for drawing the ms tile-grid is:

function ProjectTiles;
Draws the mainscreen tile grid on screen
The ProjectTiles method was just used for testing Tiletoms (and trying to write something for height/distance differences).. It relies on smartgraphics if you want to call it so don't forget to include this:

{$I SRL-OSR\SRL\misc\SmartGraphics.simba}

Finally, I see some confusion about how to call the npc functions.. There are several functions you can use, but you must know that npc's are returned in a TNPC format. So it is always wise to declare a variable as a TNPC or TNPCArray;

var
man: TNPC;
men: TNPCArray;
So now, when using npc functions, you can store the npc. There are a few npc functions and they don't all work the same..
men:= R_GetNpcs('man'); //returns a TNPCArray of all npc's named 'man' in the area (sorted by player distance), I stored it into men for this example.
if R_FindNpc('man', man) then //looks for npcs named 'man' and stores the closest one in the TNPC man. Boolean function, returns true if found, false if not.
man:= R_FindFreeNpc('man'); //looks for the closest npc named 'man' which isn't in combat and returns the TNPC (I stored this into man).
R_InteractingNpc //returns the tnpc of any npc your player is interacting with, this means you can use it like R_InteractingNpc.HitPoints

Finally, when you want to call record information from your npc, you treat the TNPC array as an array of npcs as follows:
for i:= 0 to high(men) do
if men[i].Animation > 0 then
man:= men[i];
The TNPC is treated as singular, so you can just call the record info:
R_TileToMs(man.tile);


When you use the npc functions for the first time in script runtime, be prepared for a lag-spike of about 2-8 seconds depending on cpu speed. Same goes for a new area, if you're making a script which has banking as an example, you will get a lag spike when you search for the banker the 1st time and if you go to far away from the banker's area and do another npc search (for a 'goblin' as an example), you will get another lag spike. These spikes are only going to happen once per area searched since starting the script, so don't be worried about it, think of it as "setting up" the npc database.

kingarabian
01-31-2014, 08:34 AM
@Krazy_Meerkat

Any ETA's?

Also, do you think it's possible to show other members how to obtain hooks? That way it could maybe relief yourself and Elfyyy from that burden?

Justin
01-31-2014, 10:39 AM
@Krazy_Meerkat

Any ETA's?

Also, do you think it's possible to show other members how to obtain hooks? That way it could maybe relief yourself and Elfyyy from that burden?


ETA's don't exist in SRL like they did in other communities. Want a faster update? Help out with updating, otherwise just gotta wait it out.

There you go

kingarabian
01-31-2014, 07:28 PM
There you go
"There you go" what?

I understand the ETA rule completely, but if you noticed, in the latter parts of my post I asked how can we fellow SRL members, can assist in updating the hooks. Unless there's a tutorial somewhere that I cannot find...

Solar
01-31-2014, 09:22 PM
I changed my hooks file using the updater by n3ss3s; http://villavu.com/forum/showthread.php?t=105915&highlight=
Seems to be working okay up to now. Here are my new hooks file contents:

const

ReflectionRevision = '36';

{*Node*}
Node = 'fn';
Node_id = 'do';
Node_previous = 'dc';
Node_next = 'ea';

{*CacheableNode*}
CacheableNode = 'fe';
CacheableNode_next = 'cd';
CacheableNode_previous = 'co';

{*Stream*}
Stream = 'ds';
Stream_getUnsignedByte = 'ds.aj';
Stream_getUnsignedLEShort = 'ds.ac';
Stream_getShort = 'ds.ab';

{*Renderable*}
Renderable = 'cy';
Renderable_height = 'bh';

{*Renderable Multipliers*}
Renderable_height_Multiplier = 85503229;


{*Actor*}
Actor = 'af';
Actor_hitDamages = 'al';
Actor_activeText = 'aw';
Actor_pathY = 'bc';
Actor_pathX = 'ba';
Actor_localY = 't';
Actor_localX = 'k';
Actor_animation = 'ad';
Actor_maxHealth = 'ag';
Actor_health = 'aq';
Actor_interacting = 'aj';

{*Actor Multipliers*}
Actor_localY_Multiplier = 2096975085;
Actor_localX_Multiplier = -1527045191;
Actor_animation_Multiplier = 1578023687;
Actor_maxHealth_Multiplier = -1774361849;
Actor_health_Multiplier = -473763318;
Actor_interacting_Multiplier = 1447246719;


{*CacheableNodeQueue*}
CacheableNodeQueue = 'fa';
CacheableNodeQueue_getHead = 'p';

{*NodeHashTable*}
NodeHashTable = 'fd';
NodeHashTable_getNodes = 'l';
NodeHashTable_getSize = 'o';

{*NodeQueue*}
NodeQueue = 'fm';
NodeQueue_getHead = 'p';
NodeQueue_getCurrent = 'l';

{*NodeCache*}
NodeCache = 'fq';
NodeCache_cacheableNode = 'p';
NodeCache_hashTable = 'x';
NodeCache_queue = 'o';
NodeCache_remaining = 'd';
NodeCache_size = 'o';

{*Model*}
Model = 'dl';
Model_trianglesX = 'm';
Model_trianglesY = 'u';
Model_trianglesZ = 's';
Model_verticesX = 'a';
Model_verticesY = 'w';
Model_verticesZ = 'k';

{*StringStorage*}
StringStorage = 'ey';
StringStorage_ = 'ic';

{*ItemDefinition*}
ItemDefinition = 'as';
ItemDefinition_groundActions = 'j';
ItemDefinition_inventoryActions = 'q';
ItemDefinition_isMembers = 'h';
ItemDefinition_name = 'm';

{*Item*}
Item = 'c';
Item_id = 'p';
Item_stackSize = 'l';

{*Item Multipliers*}
Item_id_Multiplier = 1247617319;
Item_stackSize_Multiplier = 1153687903;


{*ObjectDefinition*}
ObjectDefinition = 'ae';
ObjectDefinition_name = 's';
ObjectDefinition_actions = 'ah';

{*NpcDefinition*}
NpcDefinition = 'aa';
NpcDefinition_actions = 't';
NpcDefinition_name = 'a';
NpcDefinition_id = 'o';
NpcDefinition_level = 'y';

{*NpcDefinition Multipliers*}
NpcDefinition_id_Multiplier = -1550313271;
NpcDefinition_level_Multiplier = -1977773035;


{*Npc*}
Npc = 'q';
Npc_definition = 'p';

{*PlayerDefinition*}
PlayerDefinition = 'fr';
PlayerDefinition_getAppearanceIndices = 'u';
PlayerDefinition_getAppearance = 'p';

{*Player*}
Player = 'd';
Player_name = 'p';
Player_model = 'e';
Player_definition = 'l';
Player_level = 'o';

{*Player Multipliers*}
Player_level_Multiplier = 479505669;


{*Region*}
Region = 'cr';
Region_sceneObjects = 'y';
Region_sceneTiles = 'a';

{*Widget*}
Widget = 'fi';
Widget_getRelativeX = 'b';
Widget_getRelativeY = 'x';
Widget_isHidden = 'bs';
Widget_getActions = 'bm';
Widget_getID = 's';
Widget_getText = 'by';
Widget_getItems = 'dh';
Widget_getStackSizes = 'df';

{*Widget Multipliers*}
Widget_getRelativeX_Multiplier = -47615529;
Widget_getRelativeY_Multiplier = -857103235;
Widget_isHidden_Multiplier = 0;
Widget_getID_Multiplier = -493717361;


{*client*}
client = 'client';
client_menuCount = 'client.io';
client_menuActions = 'l.c';
client_menuOptions = 'bt.g';
client_groundSettings = 'u.t';
client_groundHeights = 'u.f';
client_npcIndices = 'client.bq';
client_chat_senders = 'client.lc';
client_chat_messages = 'client.lk';
client_widgets = 'de.p';
client_login_state = 'client.v';
client_player = 'ai.ha';
client_compassAngle = 'client.dy';
client_map_offset = 'client.dw';
client_map_scale = 'client.fp';
client_menuX = 'client.he';
client_menuY = 'client.hx';
client_menuWidth = 'client.hy';
client_menuHeight = 'client.hs';
client_isMenuOpen = 'client.hh';
client_packetStream = 'client.cj';
client_groundItems = 'client.hw';
client_levels = 'client.hf';
client_real_levels = 'client.hp';
client_experiences = 'client.hd';
client_run_energy = 'client.jj';
client_weight = 'client.jd';
client_cameraPitch = 'ec.fi';
client_cameraYaw = 'dd.fk';
client_cameraY = 'ek.ez';
client_cameraX = 'e.fs';
client_cameraZ = 'bk.fx';
client_baseX = 'di.cs';
client_baseY = 's.cq';
client_plane = 'x.hc';
client_players = 'client.gs';
client_npcs = 'client.bc';
client_settings = 'ff.t';
client_addChatMessage = 'h.dk';
client_getItemDefinition = 'bu.f';

{*client Multipliers*}
client_menuCount_Multiplier = -2010021751;
client_login_state_Multiplier = -370572591;
client_compassAngle_Multiplier = 983287781;
client_map_offset_Multiplier = -1834812991;
client_map_scale_Multiplier = -1670744727;
client_menuX_Multiplier = -1080942703;
client_menuY_Multiplier = 2054832625;
client_menuWidth_Multiplier = -1794773983;
client_menuHeight_Multiplier = -360908199;
client_run_energy_Multiplier = 532068423;
client_weight_Multiplier = -14992182;
client_cameraPitch_Multiplier = -1358330977;
client_cameraYaw_Multiplier = 2000037285;
client_cameraY_Multiplier = 1129828653;
client_cameraX_Multiplier = -1767149505;
client_cameraZ_Multiplier = -1182982455;
client_baseX_Multiplier = -863779709;
client_baseY_Multiplier = -2126815013;
client_plane_Multiplier = 253983849;


Edit: I should add, I haven't updated all hooks because the updater doesn't give me everything I need for this include.

Also, walking isn't walking with these hooks.

Kyle
01-31-2014, 11:33 PM
Ok guys. We have had quite the battle trying to either fix our updater, or find another way of updating hooks, and it looks like we have! Dang from javahacking will now be providing the hooks for the reflection include. I just pushed an update on the hooks so you will get a new hooks.simba next time you run. For the most part, all the Player and map walk functions should work. I just wanted to get most of the main functions working. We are now working on a parser for the hooks and we should get the full hooks updated soon. Sorry for the massive delay, hopefully it won't happen again!!!

Solar That updater has been outdated for a while now, most if not all are broken unfortunately.

Sk1nyNerd
02-01-2014, 12:11 AM
what are hooks?

Kyle
02-01-2014, 12:40 AM
what are hooks?

Well in the most basic way possible... Hooks are to reflection as Color is to Simba :p
It's what allows us to access the variables that the data is stored under.

kingarabian
02-01-2014, 01:57 AM
Ok guys. We have had quite the battle trying to either fix our updater, or find another way of updating hooks, and it looks like we have! Dang from javahacking will now be providing the hooks for the reflection include. I just pushed an update on the hooks so you will get a new hooks.simba next time you run. For the most part, all the Player and map walk functions should work. I just wanted to get most of the main functions working. We are now working on a parser for the hooks and we should get the full hooks updated soon. Sorry for the massive delay, hopefully it won't happen again!!!

Solar That updater has been outdated for a while now, most if not all are broken unfortunately.

Thank you very much for the update.

Kyle
02-01-2014, 03:37 AM
Ok, just finished working on the rest of the hooks. Other than run energy and npc Id they should all be working! :) We are gonna get that parser going and then we shouldn't have this happen again...

Krazy_Meerkat
02-01-2014, 03:41 AM
Thanks to elfyyy and Dang for implementing the latest hooks :) There was a problem with one of the multipliers but it's updated now.

We're all learning about hooks at the moment, I'd recommend looking here: http://javahacking.org/forum/index.php?/topic/106-tut-asm-updater-part-1/ if you want to help get them, but it does involve pretty much making your own updater..

Solar
02-01-2014, 12:28 PM
Was just trying to help out a little. My personal update got hoodz ghoul killer to work as long as you were at the right spot and it didn't need to run.

Thanks for the update though, very much appreciated.

Sk1nyNerd
02-02-2014, 04:56 AM
whats the link to that smart thinger where you turn it on and off and it lets you know what your tile is? forgot who made it and where it was

Kyle
02-02-2014, 05:08 AM
whats the link to that smart thinger where you turn it on and off and it lets you know what your tile is? forgot who made it and where it was

Read the guide I have posted... The Tool that's made by Turpinator is in the include tools folder.

Sk1nyNerd
02-02-2014, 05:16 AM
Read the guide I have posted... The Tool that's made by Turpinator is in the include tools folder.

the walkingpath threw me off-didnt think thats what i was looking for, my bad. thanks.

Solar
02-02-2014, 09:06 AM
With the latest hooks when using hoodz; ghoul script, walking to the bank works alright, but when it reaches the bank or gets very close, like one more click away, it will seem to skip part of the script.

Anyone know if the Runescape update could have changed the map tiles or something like that?

Krazy_Meerkat
02-14-2014, 03:21 AM
Hooks now updated, thanks everyone for being patient.
Tiletoms height-correction removed cause it was too glitchy, try to use it only on flat areas..

wthomas
02-15-2014, 12:42 PM
This looks beautiful, makes me look at my old projects with good hopes.

Kyle
02-16-2014, 05:31 PM
This looks beautiful, makes me look at my old projects with good hopes.

Thanks a lot man! And also glad to see that you came back! You should definitely update you older scripts now :)

wthomas
02-19-2014, 07:23 PM
If I knew how, I would help update the hooks, and also try to hook the actual map rotation as the compass and the MM become very much so misaligned to the point where walking to a max range point can put you 5 tiles out :(

Kyle
02-19-2014, 07:46 PM
If I knew how, I would help update the hooks, and also try to hook the actual map rotation as the compass and the MM become very much so misaligned to the point where walking to a max range point can put you 5 tiles out :(

We have all that hooked already. The only reason that the walking can be inaccurate like that is due to the fact that there is a delay from the time you mouse moves to the spot on the map and when it actually clicks. You can test this by walking to a tile when standing still, it will be within the one tile. The TileToMM function is about as perfect as possible. :)

wthomas
02-19-2014, 08:01 PM
We have all that hooked already. The only reason that the walking can be inaccurate like that is due to the fact that there is a delay from the time you mouse moves to the spot on the map and when it actually clicks. You can test this by walking to a tile when standing still, it will be within the one tile. The TileToMM function is about as perfect as possible. :)

Hmm my scripts still have issues on a path that is only made of 3 tiles, a start middle point and end point, I shall try and investigate more though.

Sk1nyNerd
02-19-2014, 09:55 PM
Hmm my scripts still have issues on a path that is only made of 3 tiles, a start middle point and end point, I shall try and investigate more though.

mine do too, tiletoms will sometimes click the corner of the tile thus resulting in it walking to the tile next to the one i clicked on. then minimap walking is generally right on but sometimes it is off by a few tiles

this weekend imma try to write a function to right click walk here if a object is on the tile so you dont click on npc's or objects when using tiletoms

Kyle
02-19-2014, 10:26 PM
Woah der guys. If you are talking about tile to mainscreen, then yes that is most definitely NOT 100% accurate at the moment. Frement is currently working on making a more accurate one. But yeah the tile tile minimap is accurate as much as possible due to the small tiles. Just make sure to put the tiles in the path close to each other, say 2 per mini map screen and it should work fine!

Krazy_Meerkat
02-20-2014, 09:01 AM
Hmm my scripts still have issues on a path that is only made of 3 tiles, a start middle point and end point, I shall try and investigate more though.
R_PerfectPath(TPointArray); is what I use for all my walking and I haven't had any of the issues I've had with R_WalkPath(TPA); (skipping points in the array, spam-clicking, failing to walk the whole path)
R_PerfectPath will blind-walk to any path point which isn't visible on the minimap.

mine do too, tiletoms will sometimes click the corner of the tile thus resulting in it walking to the tile next to the one i clicked on. then minimap walking is generally right on but sometimes it is off by a few tiles

this weekend imma try to write a function to right click walk here if a object is on the tile so you dont click on npc's or objects when using tiletoms
You shouldn't be using R_TileToMs for any walking functions, it's intention is to provide a starting point for object/npc scanning. It does work quite well compared to other methods, if you don't like it then don't use it.
Frement has been taking a very long time with the new function, beginning to wonder if he still is actually working on it..

Sk1nyNerd
02-20-2014, 03:08 PM
You shouldn't be using R_TileToMs for any walking functions, it's intention is to provide a starting point for object/npc scanning. It does work quite well compared to other methods, if you don't like it then don't use it.
Frement has been taking a very long time with the new function, beginning to wonder if he still is actually working on it..

i didnt say i didnt like it, simply there was/is no walking method for you to use when you dont need the minimap to walk. theres no point on clicking the minimap to walk somewhere when youre destination is 3tiles away.

ill check out the includes again, didnt realize new walking methods where added, thanks

Krazy_Meerkat
02-20-2014, 03:45 PM
i didnt say i didnt like it, simply there was/is no walking method for you to use when you dont need the minimap to walk. theres no point on clicking the minimap to walk somewhere when youre destination is 3tiles away.

ill check out the includes again, didnt realize new walking methods where added, thanks
You can stay up-to-date using this link: https://code.google.com/p/osrreflection/source/list
I know what you mean, but using the mainscreen to walk hasn't been very successful, there is a lot of stuff which can get in the way, or it could just walk to the wrong tile (due to screen shifting, the tile grid won't always line up with the map).. In either case, I'd suggest using the minimap, even to walk only 3 tiles. R_ChooseOptionTileUptext or R_ChooseOptionTileColour might be worth looking at if you're trying to perform an action on the tile..

Kyle
02-21-2014, 12:28 AM
Hooks updated to Revision 41

Sk1nyNerd
02-23-2014, 09:48 PM
can i make a recommendation to replace all the functions that have (option: string, blahblah); with (button: variant, blahblah);

example1: change

R_ChooseOptionTile(Option: String; Tile: TPoint): Boolean;

to

R_ChooseOptionTile(button: variant; Tile: TPoint): Boolean;

it makes more sense to allow the freedom of the user to choose if they want to click left or right and if they right click they can just use the chooseoptions function.

prevents repetitive right clicking and option choosing when the user just wants to click left.

(sorry for the double post elfyyy and krazy, didnt think to put in the thread)

Krazy_Meerkat
02-24-2014, 11:32 AM
I answered this in your PM, @Sk1nyNerd
R_ChooseOptionTile is named as such, because it is only intended for ChooseOption.. Scripters should be capable of making a clicktile function using the resources we have provided.

http://www.emotiyou.com/galerie/tv/dessins-animes/futurama/farnsworth//201201311653CRP.gif
Good news everyone! As of 2 hours ago, I uploaded our first official AntiRandom support. I made solvers for the Mime and Forester randoms using reflection, we have detection using reflection for a few more. The way it works, is instead of calling FindNormalRandom; for randoms, you simply call R_SolveRandoms; and any randoms which aren't solved in reflection will use the SRL solvers.

Frement
02-24-2014, 11:49 AM
Good news everyone! As of 2 hours ago, I uploaded our first official AntiRandom support. I made solvers for the Mime and Forester randoms using reflection, we have detection using reflection for a few more. The way it works, is instead of calling FindNormalRandom; for randoms, you simply call R_SolveRandoms; and any randoms which aren't solved in reflection will use the SRL solvers.

Just keep the name as R_FindNormalRandoms and R_FindNonInventoryRandoms. And random solving from reflection include shouldn't call anything from SRL-OSR regarding randoms, make scripters call both functions.

Krazy_Meerkat
02-24-2014, 12:01 PM
Just keep the name as R_FindNormalRandoms and R_FindNonInventoryRandoms. And random solving from reflection include shouldn't call anything from SRL-OSR regarding randoms, make scripters call both functions.

SRL must be included anyway (The aim of this include is NOT to be seperate from SRL). For the hooks to be checked, the SMART window must already be open. If I had made scripters call both functions, we would be having complaints about the SRL solvers interfering with the reflection solvers. Tbh, most people wouldn't even bother with using randoms if it meant they had to design their own AntiRandom framework.

Frement
02-24-2014, 12:22 PM
SRL must be included anyway (The aim of this include is NOT to be seperate from SRL). For the hooks to be checked, the SMART window must already be open. If I had made scripters call both functions, we would be having complaints about the SRL solvers interfering with the reflection solvers. Tbh, most people wouldn't even bother with using randoms if it meant they had to design their own AntiRandom framework.

R_FindNormalRandoms;
FindNormalRandoms;

After Reflection has solved a random, there is no random for SRL-OSR to solve, I don't see how they would be interfering with each other?

P.S. You should handle constructive criticism a bit better, I found your reputation comment quite childish.

Zyt3x
02-24-2014, 01:31 PM
Krazy_Meerkat; I think you're overreacting here. What exactly are your arguments? The last post was nothing but flame towards Frement.

Hoodz
02-24-2014, 01:32 PM
Krazy_Meerkat; I think you're overreacting here. What exactly are your points? The last post was nothing but flame towards Frement.

isn't frement overreacting in the first place..

Pakyakkistan
02-24-2014, 01:32 PM
http://www.emotiyou.com/galerie/tv/dessins-animes/futurama/farnsworth//201201311653CRP.gif
Good news everyone! As of 2 hours ago, I uploaded our first official AntiRandom support. I made solvers for the Mime and Forester randoms using reflection, we have detection using reflection for a few more. The way it works, is instead of calling FindNormalRandom; for randoms, you simply call R_SolveRandoms; and any randoms which aren't solved in reflection will use the SRL solvers.

Oh so wonderful. Declaring 1 procedure for randoms unstead of several. This also explains why I had to swap SetupSRL and SetupReflection in my scripts to get reflection working :P
Pakki thanks yews all

Then I find out I was supposed to be doing this the entire time - nothing to see here...

Zyt3x
02-24-2014, 01:39 PM
isn't frement overreacting in the first place..
As far as I can see, Frement has two posts in this thread; neither of which are flaming anyone and neither of which are worded in an aggressive tone.

Krazy_Meerkat
02-24-2014, 02:05 PM
As far as I can see, Frement has two posts in this thread; neither of which are flaming anyone and neither of which are worded in an aggressive tone.

Frement should've sent a PM. He posted his opinion on something he did not fully understand. I don't want any flaming on the forums or in this thread. But I also wouldn't like to be told what to do by someone who doesn't understand the situation..

Oh so wonderful. Declaring 1 procedure for randoms unstead of several. This also explains why I had to swap SetupSRL and SetupReflection in my scripts to get reflection working :P
Pakki thanks yews all

Then I find out I was supposed to be doing this the entire time - nothing to see here...
I'm glad you like it Pak, I'll certainly be working on solving more randoms with reflection. Considering this is the 1st revision with AntiRandoms, you can expect that we will add much more functionality to AntiRandoms.simba in time. It's quite rewarding to finally start using reflection solvers.

Frement
02-24-2014, 02:12 PM
Frement should've sent a PM. He posted his opinion on something he did not fully understand. I don't want any flaming on the forums or in this thread. But I also wouldn't like to be told what to do by someone who doesn't understand the situation..
"So quick to attack me frement, I voted yes for your [hidden] app." ~ This was the "childish" rep post of mine. I have nothing to hide. Now can we please stay on-topic in this thread.

Clearly my understanding of the situation is greater then yours, by replacing FindNormalRandoms with R_SolveRandoms in scripts will cause problems. Lets say a player dies, this random is not checked in your R_SolveRandoms, you disregarded this totally. And you are using R_CombatRandoms instead of SRL_CombatRandoms, but you haven't mentioned this at all, instead you just told to use R_SolveRandoms function, which will now cause combat scripts to run away from fights.

Krazy_Meerkat
02-24-2014, 03:03 PM
Clearly my understanding of the situation is a bit higher then yours, by replacing FindNormalRandoms with R_SolveRandoms in scripts will cause problems. Lets say a player dies, this random is not checked in your R_SolveRandoms, you disregarded this totally. And you are using R_CombatRandoms instead of SRL_CombatRandoms, but you haven't mentioned this at all, instead you just told to use R_SolveRandoms function, which will now cause combat scripts to run away from fights.
I discussed specifically including FindDead; with elfyyy and we both came to the conclusion that it causes a lot of problems. It's not hard to do a co-ordinate check anyway. Yes I have added our own boolean R_CombatRandoms for combat randoms (in the next revision I will be adding the reflection version of RunAway) The boolean is false by default and it would not run away at all (this feature is not complete, hence I did not mention it).
Calling R_SolveRandoms; then FindNormalRandoms; would waste memory and time by double-checking for randoms, it could possibly return a false positive and it seems very sloppy and lazy to do it that way.

Frement
02-24-2014, 03:12 PM
I discussed specifically including FindDead; with elfyyy and we both came to the conclusion that it causes a lot of problems. It's not hard to do a co-ordinate check anyway. Yes I have added our own boolean R_CombatRandoms for combat randoms (in the next revision I will be adding the reflection version of RunAway) The boolean is false by default and it would not run away at all (this feature is not complete, hence I did not mention it).
Calling R_SolveRandoms; then FindNormalRandoms; would waste memory and time by double-checking for randoms, it could possibly return a false positive and it seems very sloppy and lazy to do it that way.

The problem still exists, currently a script that worked before, if a player dies, the player is not set to false, because that random event is not searched, replacing FindNormalRandoms with R_SolveRandoms, in the event of players death, the script continues with the player that died. And I still don't understand why there is the need for another boolean? Why not use the one already used and provided by SRL-OSR include.

Krazy_Meerkat
02-24-2014, 03:20 PM
The problem still exists, currently a script that worked before, if a player dies, the player is not set to false, because that random event is not searched, replacing FindNormalRandoms with R_SolveRandoms, in the event of players death, the script continues with the player that died. And I still don't understand why there is the need for another boolean? Why not use the one already used and provided by SRL-OSR include.

Well I see the problem as, scripts with death-walking will fail if they are forced to logout on death. What is stopping you from calling FindDead; yourself? We can't please everyone, and I'm against forcing the FindDead; method on users.
I wanted to use the SRL combat randoms boolean, but I felt that it was just cleaner to use a seperate boolean.

Frement
02-24-2014, 03:31 PM
Well I see the problem as, scripts with death-walking will fail if they are forced to logout on death. What is stopping you from calling FindDead; yourself? We can't please everyone, and I'm against forcing the FindDead; method on users.
I wanted to use the SRL combat randoms boolean, but I felt that it was just cleaner to use a seperate boolean.

If you had read the function, you'd know there is a check, similar to SRL_CombatRandoms, it's called Reincarnate.

Reincarnate := True;

Frement
02-24-2014, 03:57 PM
Well I see the problem as, scripts with death-walking will fail if they are forced to logout on death. What is stopping you from calling FindDead; yourself?

You should really read the posts before you respond. Reincarnate is a boolean that will not logout the player or set inactive.

Nothing is stopping me from calling FindDead myself, but is that really the scripters job, if it belongs to antirandoms?

And I can't be wrong on my initial post, because it was an opinion, which still stands, why change the name of the function if it does almost exactly what it used to do, but more accurately?

Zaros
02-24-2014, 10:16 PM
Awesome job with the randoms, after reading the code that goes into solving those bad boys I am thoroughly impressed.

Not to jump in on this and take sides, but I like the fact that both of you are discussing the pros/cons of design choices out in the open and not in PM. It helps people such as myself who aren't intimately involved with development understand what certain things do and why (when documentation/commenting is sometimes scarce...). I found it interesting, and now my knowledge of how the antirandoms work is a little bit better! :)

Beyond that, I've read this entire thread a few times over at this point, and I'm very interested in learning how those hooks work (I have looked at the files too). At the very least, what all of those seemingly random variable names + integers actually mean--I read about javahacking as well, though I'm still not approved to actually join those forums yet. I'm not looking for someone to hold my hand, I'll gladly go research on my own, if there is a place to do so.

A few of the things I'd like to do are reminiscent of the old reflection clients that ended up being shut down; and yeah yeah I know, "most bots should be color here at villavu", etc. etc. But I see no reason to limit the capabilities to color; take for example the many monsters of security stronghold: the same EXACT colors as their surroundings. Sometimes color just can't do everything I want it to.

rj
02-24-2014, 10:30 PM
How about a
R_FindNonInventoryRandoms;
and R_FindNormalRandoms;

Obviously R_FindNormalRandoms would include R_FindNonInventoryRandoms;

Sk1nyNerd
02-24-2014, 10:48 PM
How about a
R_FindNonInventoryRandoms;
and R_FindNormalRandoms;

Obviously R_FindNormalRandoms would include R_FindNonInventoryRandoms;

i agree.

why dont you just merge the current solved osr randoms in color with the new solved randoms in reflection. remove and replace the randoms that are being upgraded. avoids the whole problem of calling both methods of random solving and can be done rather quickly

Frement
02-24-2014, 10:55 PM
How about a
R_FindNonInventoryRandoms;
and R_FindNormalRandoms;

Obviously R_FindNormalRandoms would include R_FindNonInventoryRandoms;

Careful, I almost started world war 3 because I suggested that.

rj
02-24-2014, 11:11 PM
i agree.

why dont you just merge the current solved osr randoms in color with the new solved randoms in reflection. remove and replace the randoms that are being upgraded. avoids the whole problem of calling both methods of random solving and can be done rather quickly

OSR and reflection should be separate but compatible with each other ie can use reflection && color together, that was if either of them break it won't take down the whole project

Sk1nyNerd
02-24-2014, 11:23 PM
OSR and reflection should be separate but compatible with each other ie can use reflection && color together, that was if either of them break it won't take down the whole project

i dont understand, are you infavor of what i said or is there a problem with what i said and that wont work??

Im saying put all of the current color solved randoms in the R_FindNormalRandoms so all you have to do is call R_FindNormalRandoms if you are using the reflection include

using R_FindNormalRandoms therefore completely eliminates the need to call FindNormalRandoms, no?

rj
02-24-2014, 11:44 PM
i dont understand, are you infavor of what i said or is there a problem with what i said and that wont work??

Im saying put all of the current color solved randoms in the R_FindNormalRandoms so all you have to do is call R_FindNormalRandoms if you are using the reflection include

using R_FindNormalRandoms therefore completely eliminates the need to call FindNormalRandoms, no?

Why put all the color randoms in R_FindNormalRandoms; the point of R_FindNormalRandoms; is to call reflection randoms, not color randoms. If we called the color randoms in the reflection randoms that would be misleading If one wanted to call both then they could simply do


procedure findAllRandoms;
begin
findNormalRandom;
R_FindNormalRandoms;
end;


Shouldn't be hard at all for somebody who is scripting

Sk1nyNerd
02-25-2014, 12:02 AM
Why put all the color randoms in R_FindNormalRandoms; the point of R_FindNormalRandoms; is to call reflection randoms, not color randoms. If we called the color randoms in the reflection randoms that would be misleading If one wanted to call both then they could simply do


procedure findAllRandoms;
begin
findNormalRandom;
R_FindNormalRandoms;
end;


Shouldn't be hard at all for somebody who is scripting

combine them to create one solving method for those using reflection until reflection has all the randoms solved. i dont see the problem IMO. but yes i agree you could do it that way too

Kyle
02-25-2014, 01:16 AM
Ok guys, this thread has really escalated quickly and took a turn that it really shouldn't have. It seems like to me that everyone was just trying to voice their opinion, some more strongly than others, but hopefully nobody meant anything mean by it. So I would definitely like to move past that little bit of drama and continue with our plans on the include and working on randoms! If anybody would like to help contribute or has any ideas, but doesn't feel like posting on this thread, we have a reflection chat on skype that you would be more than welcome to join. Just Pm me and I can add you to it!

With that being said, we are going to keep the R_FindRandoms in the same general format that it is right now. As Meerkat and Sk1nnyNerd pointed out, the most efficient way to do the antirandoms is to call the detectors and solvers of the reflection solvers we have, and then pass along the ones we don't have to SRL random solvers and detection. While making reflection randoms separate will definitely work, it is too inefficient as you are calling the detectors for the same randoms with both reflection and SRL's. Hopefully this will soon not matter as reflection will be able to solve the majority of them.

Now some of the other points that were brought up with setting variables and other pieces will definitely be considered as there were some great ideas mentioned!

So, if we can try to keep this thread civil, i'm sure we will be able to keep expanding the include and soon be able to solve all randoms! :)

Frement
02-25-2014, 07:25 AM
Why put all the color randoms in R_FindNormalRandoms; the point of R_FindNormalRandoms; is to call reflection randoms, not color randoms. If we called the color randoms in the reflection randoms that would be misleading If one wanted to call both then they could simply do


procedure findAllRandoms;
begin
findNormalRandom;
R_FindNormalRandoms;
end;


Shouldn't be hard at all for somebody who is scripting

R_FindNormalRandoms should be above FindNormalRandoms, because as a scripter I'd like to have reflection solve the randoms first, and if it can't solve something, then fall to color. With that function color would solve even the randoms that reflection should solve.

And I completely agree that color should not be used within reflection include.

masterBB
02-25-2014, 10:05 PM
{$IFDEF SRL5}//if srl osr has been included
{$IFDEF Lape} //if the interpreter is lape
function FindNormalRandom(): Boolean; override;
{$ELSE}
function R_FindNormalRandom(): Boolean;
{$ENDIF}
{$ENDIF}
begin

.. your code

{$IFDEF SRL5}//if srl osr has been included
{$IFDEF Lape} //if the interpreter is lape
inherited;
{$ENDIF}
{$ENDIF}
end;


You can even create a define like ONERANDOMDET or something similar people can define themselve. There are a thousands ways to solve this.

Kyle
02-25-2014, 10:26 PM
{$IFDEF SRL5}//if srl osr has been included
{$IFDEF Lape} //if the interpreter is lape
function FindNormalRandom(): Boolean; override;
{$ELSE}
function R_FindNormalRandom(): Boolean;
{$ENDIF}
{$ENDIF}
begin

.. your code

{$IFDEF SRL5}//if srl osr has been included
{$IFDEF Lape} //if the interpreter is lape
inherited;
{$ENDIF}
{$ENDIF}
end;


You can even create a define like ONERANDOMDET or something similar people can define themselve. There are a thousands ways to solve this.

Thanks for the thoughts!
But I do have to say that we are not trying to fix anything with the include.The way that it is currently is clearly the most efficient and fastest way to do it.
Any other way will involve calling the detectors of both reflection and srl. Which isn't a wise thing to do no matter what reason is stated to seperate them.
Once we have most solved though it won't matter!

Kyle
02-28-2014, 03:39 PM
So we just now pushed a huge update to the include that I know many of us have been waiting for this for a long time. We now have a 100% accurate TileToMs that can be set with offsets for height and sides of tiles. There is also Uptext and menu choosing in this update as well. In the MapWalk most of the file has changed. We now have mainscreen walking functions and some that walk with minimap and when it gets a set distance away, will use mainscreen, just like a human would.

I will add more detail to this and expand the guide later today, but I have to go to class and just wanted to give you guys a heads up.

Oh, we tried our best to keep function and parameters the same to avoid compiling errors, but a few did change, so if anyone has any problems you can just pm me or message me on skype and I should be able to help!

Pakyakkistan
02-28-2014, 03:58 PM
R_ChooseTile'x' anything gets an 'Out of range @ line 442' error for the Tiles section of the include. Has to do with the TIleToMS, assuming new changes to the TileToMS has changed some things. Will wait to see anything on this :eek:

Frement
02-28-2014, 04:03 PM
R_ChooseTIleOption gets an 'Out of range @ line 422' error for the Tiles section of the include. Will wait to see anything on this :eek:
Has to do with the TIleToMS

In Reflection.simba after line 212 there should be R_SetupCurves;

That causes the problem, you can add it in yourself for a fast fix.

Pakyakkistan
02-28-2014, 04:28 PM
In Reflection.simba after line 212 there should be R_SetupCurves;

That causes the problem, you can add it in yourself for a fast fix.

Thank you very much Frement!

Sk1nyNerd
03-02-2014, 11:19 PM
Can we get a variation of R_NearTile(Tile: TPoint; Distance: Integer): Boolean; that gets the current players standing tile and restricts the searching and finding of NPCs/Objects on the mainscreen and minimap to with in that distances radius?

This would allow for the player to stay in a however big area without ever having to check if its not within a distance and having to walk back a certain point because its only searching for things within that radius.

example: im in the middle of nowhere where there is a lot of trees and i only want to cut all the trees that are within 5 tiles of my current point.

with that example this function would most likely be called at the begining of the script, R_SetRadius(StartingTile: Tpoint; Radius: Integer);


i just want to be able to get my starting tile and restrict how far away i am clicking on NPC's/Objects. hope this makes sense ha thanks

Frement
03-02-2014, 11:22 PM
Can we get a variation of R_NearTile(Tile: TPoint; Distance: Integer): Boolean; that gets the current players standing tile and restricts the searching and finding of NPCs/Objects on the mainscreen and minimap to with in that distances radius?

This would allow for the player to stay in a however big area without ever having to check if its not within a distance and having to walk back a certain point because its only searching for things within that radius.

example: im in the middle of nowhere where there is a lot of trees and i only want to cut all the trees that are within 5 tiles of my current point.

with that example this function would most likely be called at the begining of the script, 'starting tile'


i just want to be able to get my starting tile and restrict how far away i am clicking on NPC's/Objects. hope this makes sense ha

That would be the logic that you as a script writer need to write, in my opinion.

Just detect your starting tile, search for NPC's/objects and sort them from your starting tile, and count the distance from that, then interact with them.

Sk1nyNerd
03-02-2014, 11:32 PM
That would be the logic that you as a script writer need to write, in my opinion.

Just detect your starting tile, search for NPC's/objects and sort them from your starting tile, and count the distance from that, then interact with them.

could but it would be more effcient than making TPA ATTPA and sorting functions every time imo. if you copy and paste it everytime you might as well make it a function

Kyle
03-02-2014, 11:35 PM
could but it would be more effcient than making TPA ATTPA and sorting functions every time imo. if you copy and paste it everytime you might as well make it a function

Well if we added something like that it would be doing the same thing just within the include lol. Frement is definitely right, anything this specific is best left to the scripter.

Sk1nyNerd
03-02-2014, 11:39 PM
Well if we added something like that it would be doing the same thing just within the include lol. Frement is definitely right, anything this specific is best left to the scripter.

alright lol just trying to simplify coding

Kyle
03-06-2014, 04:17 AM
Just commited a huge update to the include with the bulk of it being antirandoms! So please check out the tutorial and let us know of any problems with the solvers or if we could get an account that is stuck in a random!

Oh and Frement just added a couple Ground Item functions and I am wrapping up some Game Object functions! They will be added to the updater hopefully within the day!

EDIT: Just added Objects.simba and GroundItems.simba. Will add to tutorial tomorrow, i'm going to sleep now!

Pakyakkistan
03-06-2014, 11:11 AM
Just commited a huge update to the include with the bulk of it being antirandoms! So please check out the tutorial and let us know of any problems with the solvers or if we could get an account that is stuck in a random!

Oh and Frement just added a couple Ground Item functions and I am wrapping up some Game Object functions! They will be added to the updater hopefully within the day!

EDIT: Just added Objects.simba and GroundItems.simba. Will add to tutorial tomorrow, i'm going to sleep now!

*Heavy breathing*
Lookin' good! Liking the Objects and Items addition, will see what I can use this for next! Thanks all who working on the Reflection include!

Countan
03-06-2014, 12:08 PM
Great work guys, looking good!

Kyle
03-09-2014, 06:25 AM
We have been working on some documentation for the include lately and here's it so far: http://reflection.elfyyy.com/
Note: It's not complete yet and some comments are messed up, but I thought I might as well let some people at least see it how it is until its completely finished with :)

Pakyakkistan
03-09-2014, 07:50 AM
We have been working on some documentation for the include lately and here's it so far: http://reflection.elfyyy.com/
Note: It's not complete yet and some comments are messed up, but I thought I might as well let some people at least see it how it is until its completely finished with :)

Very nice, looking at it now. Fantastic work going on here!

samerdl
03-10-2014, 07:32 AM
Looks really good, glad you guys added some solvers to some of the unsolvable randoms :p.

Really liking this at the moment, i still script and use this but i almost never leave my guy alone, i also discovered something i never noticed before:

Reincarnate := true;
R_Reincarnate := true;

^ without those on each time i died my guy would just try to log out and mess up the script, ha, was i was confused.

edit1: only issue i got atm is that reflection commands are really heavy/slow on my scripts, r_findnormalrandoms is extremely slow :|, haven't tested any of the random solvers yet either, i will soon XD.


procedure findAllRandoms;
begin
R_FindNormalRandoms;
findNormalRandoms;
FindNonInventoryRandoms;
end;


This is my random detection command :), R_findnormalrandoms takes a bit long.. Findnormalrandoms is done instantly.

I am loving the distance from Tile command, its soooo helpful for me since i train in such a large area.

edit2: I am tying to make it so if i get any of the teleport randoms the solve will start R_Findnormalrandoms (ONLY if i get them) to avoid many precious seconds of delay from just constantly running the command.

I tried to copy paste the reflection demon file and rename it in the srl antirandoms didnt work, i tried to go to the srl file and just add r_findnormalrandoms and comment out everything else, didn't work when i added include antirandoms it gave me errors.

How can i make it so:



procedure findallrandoms;
begin
//condition here
Findnormalrandoms - if find demon/pete/any of the randoms the none reflection include cant solve then
r_findnoramlrandoms;
else
findandtalkto the rest of the randoms...
end;


How do i accomplish this easily?

Frement
03-10-2014, 12:25 PM
Looks really good, glad you guys added some solvers to some of the unsolvable randoms :p.

Really liking this at the moment, i still script and use this but i almost never leave my guy alone, i also discovered something i never noticed before:

Reincarnate := true;
R_Reincarnate := true;

^ without those on each time i died my guy would just try to log out and mess up the script, ha, was i was confused.

edit1: only issue i got atm is that reflection commands are really heavy/slow on my scripts, r_findnormalrandoms is extremely slow :|, haven't tested any of the random solvers yet either, i will soon XD.


procedure findAllRandoms;
begin
R_FindNormalRandoms;
findNormalRandoms;
FindNonInventoryRandoms;
end;


This is my random detection command :), R_findnormalrandoms takes a bit long.. Findnormalrandoms is done instantly.

I am loving the distance from Tile command, its soooo helpful for me since i train in such a large area.

edit2: I am tying to make it so if i get any of the teleport randoms the solve will start R_Findnormalrandoms (ONLY if i get them) to avoid many precious seconds of delay from just constantly running the command.

I tried to copy paste the reflection demon file and rename it in the srl antirandoms didnt work, i tried to go to the srl file and just add r_findnormalrandoms and comment out everything else, didn't work when i added include antirandoms it gave me errors.

How can i make it so:



procedure findallrandoms;
begin
//condition here
Findnormalrandoms - if find demon/pete/any of the randoms the none reflection include cant solve then
r_findnoramlrandoms;
else
findandtalkto the rest of the randoms...
end;


How do i accomplish this easily?

The reflection include will call color solvers automatically, you only need to call R_FindNormalRandoms or R_FNRWait.

Pakyakkistan
03-10-2014, 03:04 PM
The reflection include will call color solvers automatically, you only need to call R_FindNormalRandoms or R_FNRWait.

Is this the ONLY random solver that needs to be called within a script? Or are R_FindCombatRandom and R_FindTalk needed to be called alongside R_FindNormalRandoms?

Frement
03-10-2014, 03:13 PM
Is this the ONLY random solver that needs to be called within a script? Or are R_FindCombatRandom and R_FindTalk needed to be called alongside R_FindNormalRandoms?

R_FindNormalRandoms will call R_FindCombatRandoms (according to R_CombatRandoms) and R_FindTalk.

samerdl
03-10-2014, 04:24 PM
The reflection include will call color solvers automatically, you only need to call R_FindNormalRandoms or R_FNRWait.

Yeah but i don't wanna call the reflection anti because it has like a 15-20 second delay for me, it really slows down my script a lot since i call finding randoms every whee.

i want to call the findnormalrandoms with color and if its the teleport randoms (mordaut, prisonpete, drill demon etc) i don't want it to run the color solver i want it to call the reflection solver ONLY if it gets those randoms.

Perhaps something is wrong with simba for me, is it slow for you? or maybe its just the debugger is slow?

edit: how do you get rid of this annoying debugger, its annoying and just slows down everything (sorry to whoeverrrr made it!.)

Kyle
03-10-2014, 04:32 PM
Yeah but i don't wanna call the reflection anti because it has like a 15-20 second delay for me, it really slows down my script a lot since i call finding randoms every whee.

i want to call the findnormalrandoms with color and if its the teleport randoms (mordaut, prisonpete, drill demon etc) i don't want it to run the color solver i want it to call the reflection solver ONLY if it gets those randoms.

Perhaps something is wrong with simba for me, is it slow for you? or maybe its just the debugger is slow?

edit: how do you get rid of this annoying debugger, its annoying and just slows down everything (sorry to whoeverrrr made it!.)

I am honestly so beyond confused right now about what you're saying. Normal color FindNormalRandoms takes like 2-3 secs to call. R_FindNormalRandoms takes under 100ms, so there's gotta be something wrong with your script. Just marktime how long it takes to call.

Pakyakkistan
03-10-2014, 04:33 PM
Yeah but i don't wanna call the reflection anti because it has like a 15-20 second delay for me, it really slows down my script a lot since i call finding randoms every whee.

i want to call the findnormalrandoms with color and if its the teleport randoms (mordaut, prisonpete, drill demon etc) i don't want it to run the color solver i want it to call the reflection solver ONLY if it gets those randoms.

Perhaps something is wrong with simba for me, is it slow for you? or maybe its just the debugger is slow?

edit: how do you get rid of this annoying debugger, its annoying and just slows down everything (sorry to whoeverrrr made it!.)

If it slows you down, you may want to try restarting you Simba client, and the paired or sets of SMART clients as well. Sometimes memory load can occur during scripting and can lead to the delay. The reflection random solver calls the REFLECTION Random solvers FIRST and then it will solve using the SRL random solvers. So, unless it is not covered in the reflection include random solvers, it will be covered by reflection. You may also try using FNR_Wait as this will do both wait and check for randoms. Try moving around the random solvers. I have had problems with them slowing down my scripts in the past but I found it was more due to waits as well as excessive intent to solve randoms. And as far as the debug, i'm not to sure that can be changed since it is include based.

Edit: Elfyyy sneakin' in them ninja replys -:norris:

samerdl
03-10-2014, 06:27 PM
I am honestly so beyond confused right now about what you're saying. Normal color FindNormalRandoms takes like 2-3 secs to call. R_FindNormalRandoms takes under 100ms, so there's gotta be something wrong with your script. Just marktime how long it takes to call.

Its the debugger that's causing my slow down, not script/smart. How do i get rid of it, its this:

http://i57.tinypic.com/4hzjk.png

Seriously, why does it keep appearing!??

How do i make it never launch ever again when i start a script? each time i compile/run it launches, and r_find.. Takes a lot more than 100 MS!.

Have you guys figured out object clicking??

Pakyakkistan
03-10-2014, 06:34 PM
Its the debugger that's causing my slow down, not script/smart. How do i get rid of it, its this:

http://i57.tinypic.com/4hzjk.png

Seriously, why does it keep appearing!??

How do i make it never launch ever again when i start a script? each time i compile/run it launches, and r_find.. Takes a lot more than 100 MS!.

Have you guys figured out object clicking??

You click the [x] in the top right hand corner to close the window or that funky looking J thing(J thing may actually set it to hide in your toolbar I can't quite remember), one of those, and the debugger will go away and allow you to play your script without seeing the current state of it. You must have opened the debug console when you started the script. If it continues to pop-up I would suggest closing Simba and Smart completely and then re-opening. Maybe check settings to see if you have changed something that deals with the debug console? Debugging console shouldn't slow anything down tho... Hopefully that helps. If not I will try to re-create the problem you are having with the debug console

Solar
03-10-2014, 06:51 PM
You've probably clicked to the left of the script line numbers and made red X's appear. When you do this and run scripts, the debugger appears.

Pakyakkistan
03-10-2014, 07:22 PM
You've probably clicked to the left of the script line numbers and made red X's appear. When you do this and run scripts, the debugger appears.

Here comes Solar to save the day! Thanks Solar for getting an answer out there. I have been spending all this time trying to figure out why the debugger would pop up without calling the debug button... Totally forgot all about the line debugging stuff thing(what the heck you even call those red x's?)

samerdl
03-11-2014, 10:54 AM
You've probably clicked to the left of the script line numbers and made red X's appear. When you do this and run scripts, the debugger appears.

Yea this sorted it out, thnx a lot!

P1nky
03-11-2014, 12:21 PM
This maybe a off topic question, but why was Reflection taken out in the previous years for Runescape (SRL)?

How and why was it introduced to us (I remember being around when there was a thread posted about the development at first)?
Why did we use it for just for just a short-term period?
Why did we not use it before it was actually introduced to us?

Thanks!
-P1nky

Kyle
03-12-2014, 05:09 AM
Just added some more object functions, and now have all runescape objects in the include! :)
I'll update the guide tomorrow, but for now you can check out the docs http://reflection.elfyyy.com/Objects.html



This maybe a off topic question, but why was Reflection taken out in the previous years for Runescape (SRL)?

How and why was it introduced to us (I remember being around when there was a thread posted about the development at first)?

Mainly because Benland make SMART able to read client info

Why did we use it for just for just a short-term period?

The Bot nuke killed all reflection/injection for a while

Why did we not use it before it was actually introduced to us?

See #1

Thanks!
-P1nky

Pakyakkistan
03-12-2014, 04:44 PM
Just added some more object functions, and now have all runescape objects in the include! :)
I'll update the guide tomorrow, but for now you can check out the docs http://reflection.elfyyy.com/Objects.html

Why are some functions acclaimed 'not to be used in scripts'? It's not only here, just this was most prominent in the objects section, i've always been curious, figured now i'll ask. Are they meant to be more called within a function to return values for within scripts? Or used in separate occasions to get values?

Kyle
03-17-2014, 08:10 PM
Hey guys, sorry I haven't been working on the include much, I have been super busy with school lately and took a little break from scripting because of some tests. We noticed a few problems with R_InFight and thus with R_CombatRandoms and I have a fix for it which I will add later today.

If you guys find any bugs if you could please use this (https://code.google.com/p/osrreflection/issues/list) it will get emailed to me instantly and makes it much easier to work on and now that I have a bit more free time I should be able to fix them.



Why are some functions acclaimed 'not to be used in scripts'? It's not only here, just this was most prominent in the objects section, i've always been curious, figured now i'll ask. Are they meant to be more called within a function to return values for within scripts? Or used in separate occasions to get values?

Yeah, it is a function that is used within the include that is either useless to a scripter or would have no use. For example, for finding the specific objects we use an array of 103 tiles to find each object. A scripter wouldn't have much success determining which tile the object is at considering that the 0-103 just refers to the position of the tile within the local loaded region :)

Pakyakkistan
03-18-2014, 09:06 PM
Hey guys, sorry I haven't been working on the include much, I have been super busy with school lately and took a little break from scripting because of some tests. We noticed a few problems with R_InFight and thus with R_CombatRandoms and I have a fix for it which I will add later today.

If you guys find any bugs if you could please use this (https://code.google.com/p/osrreflection/issues/list) it will get emailed to me instantly and makes it much easier to work on and now that I have a bit more free time I should be able to fix them.


Yeah, it is a function that is used within the include that is either useless to a scripter or would have no use. For example, for finding the specific objects we use an array of 103 tiles to find each object. A scripter wouldn't have much success determining which tile the object is at considering that the 0-103 just refers to the position of the tile within the local loaded region :)

You work on it when you can man! I don't think anyone can complain about it, considering the amount of effort you have put forth so far, as well as others. Do what you can, i'm sure we'll all be looking forward to it when you get to it! Once again, and i'm sure it won't be the last time I say it, thanks!

Oh, and @ my previous question; makes sense now after I tried using them. LOL

Kyle
03-27-2014, 06:45 PM
Updated to Rev. 42. Ground items are not working atm, will post back when we fix :)

EDIT:Fixed :)

Frement
03-27-2014, 07:27 PM
Ground items are now fixed. Happy botting.

EDIT: An issue with R_ChooseOption has now been fixed.
EDIT2: An issue with R_GetTileHeight has now been fixed.

samerdl
03-29-2014, 09:59 AM
Thanks for updating the include, i really appreciate it.

I like the NPC clicking functions now, i was curious to know if you guys can show me an example for object clicking such as agility obstacles and bank booths :)?

Frement
03-29-2014, 10:35 AM
Thanks for updating the include, i really appreciate it.

I like the NPC clicking functions now, i was curious to know if you guys can show me an example for object clicking such as agility obstacles and bank booths :)?

A simple tile clicking function:
function F_OpenBank: Boolean;
var
Booth: TPoint;
begin
if (not LoggedIn) or (BankScreen) then
Exit;

//Varrock West: Point(3186, 3436)
//Lumbridge: Point(3208, 3221)
Booth := R_TileToMS(Point(3186, 3436));
MMouse(Booth.X, Booth.Y, 2, 2);
Sleep(100 + Random(100));
if (R_IsUpText('Bank Ba')) then begin
ClickMouse2(Mouse_Left);
end else begin
ClickMouse2(Mouse_Right);
Sleep(250 + Random(250));
R_ChooseOption('Bank Ba');
end;
Sleep(500 + Random(250));

if (PinScreen) then
InPin(Players[CurrentPlayer].Pin);

Result := WaitFunc(@BankScreen, 250, 2500);
Sleep(1000 + Random(250));
end;

samerdl
03-29-2014, 12:33 PM
A simple tile clicking function:
function F_OpenBank: Boolean;
var
Booth: TPoint;
begin
if (not LoggedIn) or (BankScreen) then
Exit;

//Varrock West: Point(3186, 3436)
//Lumbridge: Point(3208, 3221)
Booth := R_TileToMS(Point(3186, 3436));
MMouse(Booth.X, Booth.Y, 2, 2);
Sleep(100 + Random(100));
if (R_IsUpText('Bank Ba')) then begin
ClickMouse2(Mouse_Left);
end else begin
ClickMouse2(Mouse_Right);
Sleep(250 + Random(250));
R_ChooseOption('Bank Ba');
end;
Sleep(500 + Random(250));

if (PinScreen) then
InPin(Players[CurrentPlayer].Pin);

Result := WaitFunc(@BankScreen, 250, 2500);
Sleep(1000 + Random(250));
end;


Ah, i see there is no way to automatically grab object tiles - but to manually do them. Regardless its still awesome that you are able to click Objects! this makes Agility scripts very possible!.

Thanks!

Frement
03-29-2014, 12:35 PM
Ah, i see there is no way to automatically grab object tiles - but to manually do them. Regardless its still awesome that you are able to click Objects! this makes Agility scripts very possible!.

Thanks!

It is possible to get the objects, and the tile from that information.

function GetClosestRock: TPoint;
var
Objects: TRSObjectArray;
Rocks: TPointArray;
I, J: Integer;
begin
if (not LoggedIn) then
Exit;
Result := Point(-1, -1);
Objects := R_GetObjectDistance(OBJ_GAME, 20);
for I := 0 to high(Objects) do begin
if (InIntArray(Coals, Objects[I].ID)) then begin
Inc(J);
SetLength(Rocks, J);
Rocks[High(Rocks)] := Objects[I].Tile;
end;
end;
if (not (Length(Rocks) > 0)) then
Exit;
SortTPAFrom(Rocks, R_GetTileGlobal);
Result := Rocks[0];
end;

samerdl
03-31-2014, 12:43 PM
It is possible to get the objects, and the tile from that information.

function GetClosestRock: TPoint;
var
Objects: TRSObjectArray;
Rocks: TPointArray;
I, J: Integer;
begin
if (not LoggedIn) then
Exit;
Result := Point(-1, -1);
Objects := R_GetObjectDistance(OBJ_GAME, 20);
for I := 0 to high(Objects) do begin
if (InIntArray(Coals, Objects[I].ID)) then begin
Inc(J);
SetLength(Rocks, J);
Rocks[High(Rocks)] := Objects[I].Tile;
end;
end;
if (not (Length(Rocks) > 0)) then
Exit;
SortTPAFrom(Rocks, R_GetTileGlobal);
Result := Rocks[0];
end;

Couldn't exactly wrap my mind around this command but the one you posted above works perfectly!:



function Clickobject(Objpoint: tpoint; Uptext: TStringArray): Boolean;
var
Bp, Booth: TPoint;
begin
if (not LoggedIn) then
Exit;
if R_DistanceFromTile(Objpoint) > 3 then
begin
Bp.x := Objpoint.x + 1;
Bp.Y := Objpoint.y - 1;
R_WalkPath([Bp]);
// r_webwalk(bp)
//R_WalkPath([objpoint]);
waithumanclick2;
end;
if R_DistanceFromTile(Objpoint) < 5 then
begin
Booth := R_TileToMS(ObjPoint);
MMouse(Booth.X, Booth.Y, 2, 2);
Sleep(100 + Random(100));
if (R_IsUpTextMulti(Uptext)) then
begin
result := true;
end;
end;
end;

function MMouseObject(Objpoint: tpoint; Uptext: TStringArray): Boolean;
var
Booth: TPoint;
begin
if (not LoggedIn) then
Exit;
Booth := R_TileToMS(ObjPoint);
MMouse(Booth.X, Booth.Y, 2, 2);
Sleep(100 + Random(100));
if (R_IsUpTextMulti(Uptext)) then
begin
result := true;
end;
end;

function LocateNPC(Name, Uptext: string): boolean;
var
Bp,Tp: Tpoint;
NpcName: tnpc;
begin
if R_FindNpc(Name, NpcName) then
begin
if NpcName.InCombat then
exit;
Tp := NpcName.Tile;

if R_DistanceFromTile(Tp) > 3 then
begin
Bp.x := Tp.x + 1;
Bp.Y := Tp.y - 1;
R_WalkPath([Bp]);
waithumanclick2;
end;

if R_DistanceFromTile(tp) < 5 then
begin
Tp := R_TileToMs(Tp);
Mmouse(Tp.x, Tp.y, 0, 0);
if R_WaitUptext(Uptext, 200) then
begin
result := true;
end;
end;
end;
end;




The way i obtain the Tile position of the object/npc i want is by using Osbot's entity debugger feature, i.e this:

http://i57.tinypic.com/14sgms2.png

Works so easily & well, no hassle and i don't have to read through 3 lines of debugged info ^_^. Osbot/tribot both can be used to debug info for free!.

Now am more curious to know, would it be possible in the near future to solve all randoms using the reflection include?. Damn i love this too, its perfect for training at spots that don't have randoms/only have talk and no teleport randoms :D. Thnx a lot.

Frement
03-31-2014, 12:47 PM
Couldn't exactly wrap my mind around this command but the one you posted above works perfectly!:



function Clickobject(Objpoint: tpoint; Uptext: TStringArray): Boolean;
var
Bp, Booth: TPoint;
begin
if (not LoggedIn) then
Exit;
if R_DistanceFromTile(Objpoint) > 3 then
begin
Bp.x := Objpoint.x + 1;
Bp.Y := Objpoint.y - 1;
R_WalkPath([Bp]);
// r_webwalk(bp)
//R_WalkPath([objpoint]);
waithumanclick2;
end;
if R_DistanceFromTile(Objpoint) < 5 then
begin
Booth := R_TileToMS(ObjPoint);
MMouse(Booth.X, Booth.Y, 2, 2);
Sleep(100 + Random(100));
if (R_IsUpTextMulti(Uptext)) then
begin
result := true;
end;
end;
end;

function MMouseObject(Objpoint: tpoint; Uptext: TStringArray): Boolean;
var
Booth: TPoint;
begin
if (not LoggedIn) then
Exit;
Booth := R_TileToMS(ObjPoint);
MMouse(Booth.X, Booth.Y, 2, 2);
Sleep(100 + Random(100));
if (R_IsUpTextMulti(Uptext)) then
begin
result := true;
end;
end;

function LocateNPC(Name, Uptext: string): boolean;
var
Bp,Tp: Tpoint;
NpcName: tnpc;
begin
if R_FindNpc(Name, NpcName) then
begin
if NpcName.InCombat then
exit;
Tp := NpcName.Tile;

if R_DistanceFromTile(Tp) > 3 then
begin
Bp.x := Tp.x + 1;
Bp.Y := Tp.y - 1;
R_WalkPath([Bp]);
waithumanclick2;
end;

if R_DistanceFromTile(tp) < 5 then
begin
Tp := R_TileToMs(Tp);
Mmouse(Tp.x, Tp.y, 0, 0);
if R_WaitUptext(Uptext, 200) then
begin
result := true;
end;
end;
end;
end;




The way i obtain the Tile position of the object/npc i want is by using Osbot's entity debugger feature, i.e this:

http://i57.tinypic.com/14sgms2.png

Works so easily & well, no hassle and i don't have to read through 3 lines of debugged info ^_^. Osbot/tribot both can be used to debug info for free!.

So, what exactly is your question? Or does everything work good? :)

samerdl
03-31-2014, 12:48 PM
So, what exactly is your question? Or does everything work good? :)

dang you reply fast, look at the post i edited above.

And ye was just reporting back in :D

Frement
03-31-2014, 01:04 PM
dang you reply fast, look at the post i edited above.

And ye was just reporting back in :D

Solving all randoms is among the future goals. You might want to consider botting in PvP worlds (Fletching for example, Lumbridge yard is a protected zone and there is a bank chest there).

samerdl
03-31-2014, 01:45 PM
Solving all randoms is among the future goals. You might want to consider botting in PvP worlds (Fletching for example, Lumbridge yard is a protected zone and there is a bank chest there).

Never knew that, brilliant! wow.! WOW! WOW!.

Omg! ty!

vizzyy
04-01-2014, 12:08 AM
function findMollyControls: tpoint;
var
objects:trsobjectarray;
i:integer;
begin
result:=point(0,0);
objects:=R_GetAllObjects(0);
for i:=0 to high(objects) do
begin
if (objects[i].ID = 9337) then
begin
result:=objects[i].tile;
break;
end;
end;
end;

function paintSuspects(Text:string):boolean;
var
i:integer;
npcarray:tnpcArray;
begin
//Smart_Clearcanvas;
npcarray:=R_getallNpcs;
if(not (text = '')) then
//SMART_DrawTextEx(false,7,56,'UpChars07',text,clYel low);
for i:=0 to high(npcarray) do
begin
//SMART_DrawTextEx(false,R_Tiletoms(npcarray[i].tile).x,R_Tiletoms(npcarray[i].tile).y,'UpChars07',''+inttostr(npcarray[i].npcID),clYellow);
end;
end;

function findMollyClaw: tpoint;
var
objects:trsobjectarray;
i:integer;
begin
result:=point(0,0);
objects:=R_GetAllObjects(0);
for i:=0 to high(objects) do
begin
if (objects[i].ID = 9335) then
begin
result:=objects[i].tile;
break;
end;
end;
end;

function doClaw(npcID:integer): boolean; // Version 2 - Calculates X/Y together per iteration
var
left,right,up,down,finish,claw:tpoint;
suspects:tnpcarray;
target:tnpc;
x1,x2,x3,y1,y2,y3,i,a:integer;
begin
R_FindNpc(npcID,target);
up:=point(642,292);
down:=point(642,377);
left:=point(598,329);
right:=point(682,329);
finish:=point(700,425);
paintSuspects('Beginning Claw Phase...');
while(not aretalking) do
begin
R_FindNpc(npcID,target);
Claw:=FindMollyClaw;
if(aretalking) then
break;
x1:=target.Tile.x;
x2:=claw.x;
y1:=target.Tile.y;
y2:=claw.y;
while (not (x1 = x2) and not (y1 = y2)) do
begin
R_FindNpc(npcID,target);
Claw:=FindMollyClaw;
if((target.tile = Claw) or areTalking) then
break;
x1:=target.Tile.x;
x2:=Claw.x;
x3:=x1-x2;
if(round(abs(x3))>10) then
x3:=0;
y1:=target.Tile.y;
y2:=Claw.y;
y3:=y1-y2;
if(round(abs(y3))>10) then
y3:=0;
if(x2 > x1) then
begin
paintSuspects('Right - '+inttostr(round(abs(x3))));
for i:=1 to round(abs(x3)) do
mouse(right.x,right.y,3,3,true);
end;
if(x2 < x1) then
begin
paintSuspects('Left - '+inttostr(round(abs(x3))));
for i:=1 to round(abs(x3)) do
mouse(left.x,left.y,3,3,true);
end;
if(y3 < 0) then
begin
paintSuspects('Up - '+inttostr(round(abs(y3))));
for i:=1 to round(abs(y3)) do
mouse(up.x,up.y,3,3,true);
end;
if(y3 > 0) then
begin
paintSuspects('Down - '+inttostr(round(abs(y3))));
for i:=1 to round(abs(y3)) do
mouse(down.x,down.y,3,3,true);
end;
end;
mouse(finish.x,finish.y,3,3,true);
wait(randomrange(4000,6000));
if(aretalking) then
break;
end;
ClickContinueEx(true,true);
wait(randomrange(1000,2000));
finish:=R_gettileglobal;
R_BlindWalkMS(point(finish.x-5,finish.y+1));
while r_iswalking do
wait(500);
R_OpenDoor(point(finish.x-5,finish.y+1),'W');
while r_iswalking do
wait(500);
wait(randomrange(2000,3000));
end;

function applyConst(mollyid:integer;npcarray:TNPCarray):int eger;
var
i,j:integer;
mollyconstants:array of integer;
begin
mollyconstants:=[802,3087];
result:=0;
for i:=0 to high(npcarray) do
begin
for j:=0 to high(mollyconstants) do
begin
if((npcarray[i].npcid = (mollyid + mollyConstants[j])) or (npcarray[i].npcid = (mollyid - mollyConstants[j]))) then
begin
writeln(inttostr(npcarray[i].npcid));
result:=npcarray[i].npcid;
exit;
end;
end;
end;
end;

function mollyTwins: boolean ;
var
mollyID:integer;
molly:TNPC;
targets:tnpcarray;
begin
if(R_FindNpc('Molly',molly)) then
begin
paintSuspects('Molly Random Initiated...');
mollyID:=molly.NpcID;
writeln(mollyid);
MakeCompass('N');
wait(randomrange(2000,3000));
R_OpenDoor(point(molly.tile.x+5,molly.tile.y+2),'W ');
while r_iswalking do
wait(500);
ClickContinueEx(true,true);
wait(randomrange(900,1600));
ClickText('now','CharsNPC07',MCX1,MCY1,MCX2,MCY2,t rue);
wait(randomrange(500,600));
while aretalking do
ClickContinueEx(true,true);
wait(randomrange(1500,2000));
paintSuspects('Using Claw...');
mouse(R_TiletoMS(findMollyControls).x,R_TiletoMS(f indMollyControls).y,3,3,true);
while r_iswalking do
wait(500);
targets:=R_GetAllNpcs;

doClaw(applyConst(mollyid,targets));

R_FindNpc('Molly',molly);
mouse(R_TiletoMS(molly.tile).x,R_TiletoMS(molly.ti le).y,3,3,true);
while r_iswalking do
wait(1000);
while aretalking do
ClickContinueEx(true,true);
end;
end;

samerdl
04-01-2014, 01:08 PM
vizzyy, solver looks really good.

I like how you map the door/molly/claw, will give it a try when i get the random.

vizzyy
04-01-2014, 02:06 PM
vizzyy, solver looks really good.

I like how you map the door/molly/claw, will give it a try when i get the random.

Thanks! I did it that way because the molly random location moves around to several possible locations, which would break any sort of static tile references or if you try and detect the random with a simple withinPolygon sort of thing. Whereas molly's location is always in the same place relative to the door, so you can just find her and then offset it to the door. Same thing with the claw control panel.

Kyle
04-01-2014, 04:03 PM
Just pushed a new update. I've been doing a lot of work and made a bunch of changes with the antirandoms. It should now work with all of the talking and combat randoms other than Giles/Miles and the Sandwhich Lady. If a player gets one of those it will logout and make the player inactive.

I also changed the name to R_GetObject(s)Distance adding the "s" for proper grammar. So if you used this function previously you must add the "s" or it won't compile!

I added R_FindObjectDistance, this works the same as R_FindNpc. It will return as a boolean and save the closed object found as a TRSObject within the first parameter, making it easier to do object functions in scripts.

As always, please post any suggestions for new functions and any bugs please report either on this thread or here (https://code.google.com/p/osrreflection/issues/list)

rj
04-03-2014, 01:36 AM
Just pushed a new update. I've been doing a lot of work and made a bunch of changes with the antirandoms. It should now work with all of the talking and combat randoms other than Giles/Miles and the Sandwhich Lady. If a player gets one of those it will logout and make the player inactive.

I also changed the name to R_GetObject(s)Distance adding the "s" for proper grammar. So if you used this function previously you must add the "s" or it won't compile!

I added R_FindObjectDistance, this works the same as R_FindNpc. It will return as a boolean and save the closed object found as a TRSObject within the first parameter, making it easier to do object functions in scripts.

As always, please post any suggestions for new functions and any bugs please report either on this thread or here (https://code.google.com/p/osrreflection/issues/list)
Are the object hooks outdated or am I doing this wrong(most likely the case)


for i := 0 to 3 do
begin
objects := R_GetAllObjects(i);
writeln('test' + toStr(objects));
for k := 0 to high(objects) do
begin
pt := R_TileToMs(objects[k].tile);
if ((pt.x - 5) > 0) and ((pt.x - 5) < 515) and ((pt.y - 25) > 0) and ((pt.y - 25) < 337) then
begin
SMART_DrawText(pt.x - 5, pt.y - 25, 'smallchars07', toStr(objects[k].ID), 65280);
SMART_DrawCircle(false, pt, 1, false, 254);
end;
end;
end;

IT doesn't even reach the test writel -.-

was getting all the objects and it was taking hella long

Kyle
04-03-2014, 02:36 AM
Are the object hooks outdated or am I doing this wrong(most likely the case)


for i := 0 to 3 do
begin
objects := R_GetAllObjects(i);
writeln('test' + toStr(objects));
for k := 0 to high(objects) do
begin
pt := R_TileToMs(objects[k].tile);
if ((pt.x - 5) > 0) and ((pt.x - 5) < 515) and ((pt.y - 25) > 0) and ((pt.y - 25) < 337) then
begin
SMART_DrawText(pt.x - 5, pt.y - 25, 'smallchars07', toStr(objects[k].ID), 65280);
SMART_DrawCircle(false, pt, 1, false, 254);
end;
end;
end;

IT doesn't even reach the test writel -.-

was getting all the objects and it was taking hella long

Lol, Yeah, you definitely don't want to get all the objects haha.

Dgby714
04-03-2014, 05:17 AM
I was bored...

Should allow you to compile and run OSR+Reflection scripts in Lape... https://github.com/JohnPeel/osrreflection/commit/636a3806e7f4170a5d89237384bf61e91de25796

Brandon
04-03-2014, 03:27 PM
More Leaks. Be careful..


_Next := SmartGetFieldObject(SmartCurrentTarget, _Next, Node_next); // R_GetGroundItemsAt

Me := SmartGetFieldObject(SmartCurrentTarget, 0, client_player); // R_GetActorLoopCycle

TheRegion := SmartGetFieldObject(SmartCurrentTarget, 0, client_region); // R_GetGameObject
TheObjects := SmartGetFieldArrayObject(SmartCurrentTarget, Tile, SceneTile_worldObjects, i); // R_GetGameObject

TheRegion := SmartGetFieldObject(SmartCurrentTarget, 0, client_region); // R_GetWalLObject

TheRegion := SmartGetFieldObject(SmartCurrentTarget, 0, client_region); // R_GetFloorDecorationObject

TheRegion := SmartGetFieldObject(SmartCurrentTarget, 0, client_region); // R_GetBoundaryObject

Frement
04-03-2014, 03:31 PM
Nice catch @ R_GetGroundItemsAt. I had it previously as _Node so there is a SmartFreeObject for _Node, forgot to change to _Next :)

Brandon
04-03-2014, 03:40 PM
Nice catch @ R_GetGroundItemsAt. I had it previously as _Node so there is a SmartFreeObject for _Node, forgot to change to _Next :)

Thanks but:


SmartFreeObject(SmartCurrentTarget, _Next);
_Next := SmartGetFieldObject(SmartCurrentTarget, _Next, Node_next);


are the new changes? If so..

_Next is null because it was freed before the call to SmartGetFieldObject. So the call to SmartGetFieldObject that takes _Next is taking a nullptr.


The patch should be:

_Temp := _Next;
_Next := SmartGetFieldObject(SmartCurrentTarget, _Temp, Node_next);
SmartFreeObject(SmartCurrentTarget, _Temp);

Frement
04-03-2014, 03:43 PM
Brandon; thanks Mr. Eagle Eye :p

Xenobitz
04-03-2014, 06:24 PM
This seems like the most relevant place to post. Is there a way to grab the current world using reflection?

I want to write a antiban function to hop to random world if you end up on bot worlds (85-86). Jagex has recently started moving bots to these worlds to monitor them and ban them.

vizzyy
04-03-2014, 11:29 PM
This seems like the most relevant place to post. Is there a way to grab the current world using reflection?

I want to write a antiban function to hop to random world if you end up on bot worlds (85-86). Jagex has recently started moving bots to these worlds to monitor them and ban them.



if((CurrentWorld = 385) or (CurrentWorld = 386)) then
begin
logout;
Writeln('World is hot. GTFO.');
terminatescript;
end;

Xenobitz
04-11-2014, 07:01 PM
After updating Reflection the following code

R_WalkPath([Point(x, y), Point(x, y), Point(x, y)]);

throw the error


[Error] C:\Users\*\Simba\Scripts\***.simba(68:37): Type mismatch at line 68

It ran fine before the update. What gives?

Kyle
04-11-2014, 07:44 PM
After updating Reflection the following code

R_WalkPath([Point(x, y), Point(x, y), Point(x, y)]);

throw the error


[Error] C:\Users\*\Simba\Scripts\***.simba(68:37): Type mismatch at line 68

It ran fine before the update. What gives?

What you posted will work, nothing wrong with it. Probably is the line above throwing the error.

Xenobitz
04-12-2014, 12:43 AM
What you posted will work, nothing wrong with it. Probably is the line above throwing the error.

R_OpenDoor has become R_OpenDoorAtTile? Because that's the line above it

Frement
04-12-2014, 01:41 AM
R_OpenDoor has become R_OpenDoorAtTile? Because that's the line above it

That is most likely your type mismatch error.

Unfold
04-24-2014, 07:46 PM
I keep getting this, is this something with the hooks?

http://i.imgur.com/fxJHFBb.png

Kyle
04-24-2014, 07:58 PM
I keep getting this, is this something with the hooks?

http://i.imgur.com/fxJHFBb.png

No, it's not an error. I assume you are using something with a object or npc function, such as the antirandoms. This happens when searching for npc's and the index isn't valid and it tries to pull data from it.

Xenobitz
04-25-2014, 01:02 AM
Suddenly R_GetInv2 doesn't exist anymore.

but that's okay, because I backed up my custom function for getting the inventory...

But now that no longer works because R_GetWidget2 is also gone.

Is there somewhere where I can see what functions have been removed and what they've been replaced by? Because I've got like 23 custom scripts that are now broken in various ways and I'm not exactly having an easy time figuring out wtf is going on.

Kyle
04-25-2014, 01:05 AM
Suddenly R_GetInv2 doesn't exist anymore.

but that's okay, because I backed up my custom function for getting the inventory...

But now that no longer works because R_GetWidget2 is also gone.

Is there somewhere where I can see what functions have been removed and what they've been replaced by? Because I've got like 23 custom scripts that are now broken in various ways and I'm not exactly having an easy time figuring out wtf is going on.

If you honestly have 23 scripts that is pretty impressive. You must be badly mistaken, we have never had those functions in the include.

EDIT: The fact that they have number 2 after them would lead me to assume that they were give to you by someone? As we would of course never name a function like that in the include. Depending on the use it would just be named TheFunctionEx...

Xenobitz
04-25-2014, 01:10 AM
If you honestly have 23 scripts that is pretty impressive. You must be badly mistaken, we have never had those functions in the include.

I know I'm not mistaken...

R_GetInv2 was under "Player"

R_GetWidget2 was under "Misc"

As soon as I ran a script, reflection updated, and those functions no longer exist. I'm actually missing A LOT of functions from Reflection recently, but I do know for a fact that those two existed in the official include less than a week ago.

Let me re-install and see if that helps...

"The fact that they have number 2 after them would lead me to assume that they were give to you by someone? As we would of course never name a function like that in the include. Depending on the use it would just be named TheFunctionEx..."

Nope. I've never imported code from anyone but Reflection. Perhaps someone was testing those functions and that's why the have a 2 after them, then they removed it from the include?

EDIT2:
https://code.google.com/p/osrreflection/source/detail?r=4380974557bc43f99c1d0a0094780d44484882a2

There's the revision that removed all of the functions I was using. They DID exist. Now all I'm wondering is what was wrong with them/can you put them back in?

Kyle
04-25-2014, 01:35 AM
I know I'm not mistaken...

R_GetInv2 was under "Player"

R_GetWidget2 was under "Misc"

As soon as I ran a script, reflection updated, and those functions no longer exist. I'm actually missing A LOT of functions from Reflection recently, but I do know for a fact that those two existed in the official include less than a week ago.

Let me re-install and see if that helps...

"The fact that they have number 2 after them would lead me to assume that they were give to you by someone? As we would of course never name a function like that in the include. Depending on the use it would just be named TheFunctionEx..."

Nope. I've never imported code from anyone but Reflection. Perhaps someone was testing those functions and that's why the have a 2 after them, then they removed it from the include?

EDIT2:
https://code.google.com/p/osrreflection/source/detail?r=4380974557bc43f99c1d0a0094780d44484882a2

There's the revision that removed all of the functions I was using. They DID exist. Now all I'm wondering is what was wrong with them/can you put them back in?

Oh that's news to me lol. Have been busy with school lately. Well we are waiting on adding in widgets until they are completely done, but you can just add them to your scripts and they will work fine.

Cheddy
05-03-2014, 08:01 PM
Not to point out future problems.... But, I can't see a workaround at the minute. Simba currently has no function for invoking methods, and the likes of Items require a method to be invoked to get the composite. As of R44:

(II)Lad; 'getItemComposite' returns 'ej.i'
The only way around this is to either get a function in simba for invoking native RS methods...

Also, have you guys got widgets sorted yet, cause without injection getting the bounds is causing a lot of confusion

Frement
05-03-2014, 08:19 PM
Not to point out future problems.... But, I can't see a workaround at the minute. Simba currently has no function for invoking methods, and the likes of Items require a method to be invoked to get the composite. As of R44:

The only way around this is to either get a function in simba for invoking native RS methods...

Also, have you guys got widgets sorted yet, cause without injection getting the bounds is causing a lot of confusion

If I make it so the logic works for, lets say bank screen, the same logic wont work for inventory, equipment or anything else, and vice versa. I'm suing the widget bounds + position hooks.

And getItemComposite method caches the composites, and there are hooks for the caches, haven't had time to add that yet.

Got a theory how to get the widget positions to work? Because thats the only problem with them currently.

Cheddy
05-03-2014, 08:33 PM
In my bot I use:

int WidgetPosX = Widget.getRelativeX;
Widget parent = null;
while ((parent = Widget.getParent) != null){
WidgetPosX += parent.getRelativeX;
}
WidgetPosX += Widget.getX;

Chatbox has an offset of 24x20 and I don't know about bank.

I believe you can do it by using the widget boundsIndex as the identifier in the widgetXPositions array in the client as well :D

Cheddy
05-03-2014, 08:35 PM
And getItemComposite method caches the composites, and there are hooks for the caches, haven't had time to add that yet.

And I don't believe there are Widget cache hooks. Looked throughout the Javahacking logs and the client and can't see any :/
Do you want me to make any part of the api? I have a working java bot so I know how it all works =)

Frement
05-03-2014, 08:45 PM
And I don't believe there are Widget cache hooks. Looked throughout the Javahacking logs and the client and can't see any :/
Do you want me to make any part of the api? I have a working java bot so I know how it all works =)

Cache is ad.q and the size of it is 64.

And yes, by using the boundsIndex and widgetPositions it works for some, but fails for others.

Cheddy
05-03-2014, 08:49 PM
Ahhh, I was wrong, there is a config cache at ad.q :D Just found it in the method haha =)I don't know how it's used though =/

mv.visitFieldInsn(GETSTATIC, "ad", "q", "Lfs;"); <-- Thats the field

Cheddy
05-03-2014, 08:55 PM
The cache would be useless to me anyways: The only hooks I have for it are:

Cache identified as fs [Extends java/lang/Object]
---> HashTable 'getHashTable' returns 'fs.q'
---> CacheableNode 'getCacheableNode' returns 'fs.e'
---> Queue 'getQueue' returns 'fs.j'


I don't know how this is used to get an ItemDef but I assume it can be :D

Frement
05-03-2014, 09:00 PM
The cache would be useless to me anyways: The only hooks I have for it are:

Cache identified as fs [Extends java/lang/Object]
---> HashTable 'getHashTable' returns 'fs.q'
---> CacheableNode 'getCacheableNode' returns 'fs.e'
---> Queue 'getQueue' returns 'fs.j'


I don't know how this is used to get an ItemDef but I assume it can be :D

As ItemDefinition extends CacheableNode, you can get the fields of ItemDefinition from the CacheableNode. As the ItemDefinitionCache (ad.q) contains the cached item definitions.

EDIT: ad.aa * 2112439054 to get the ID of the item.

Cheddy
05-03-2014, 09:17 PM
So something like this would return the modelSizeX:

function R_getModelSizeX(): Integer;
itemCache, itemCacheableNode: Integer;
begin
itemCache := SmartGetFieldObject(SmartCurrentTarget, 0, Client_getItemCache);
itemCacheableNode := SmartGetFieldObject(SmartCurrentTarget, itemCache, Cache_getCacheableNode);
result := SmartGetFieldInt(SmartCurrentTarget,itemCacheableN ode , ItemComposite_getModelSizeX) * ItemComposite_getModelSizeX_Multiplier;
SmartFreeObject(SmartCurrentTarget, itemCache);
SmartFreeObject(SmartCurrentTarget, itemCacheableNode);
end;


That's using my hooks file: 23247

Frement
05-03-2014, 09:20 PM
So something like this would return the modelSizeX:

function R_getModelSizeX(): Integer;
itemCache, itemCacheableNode: Integer;
begin
itemCache := SmartGetFieldObject(SmartCurrentTarget, 0, Client_getItemCache);
itemCacheableNode := SmartGetFieldObject(SmartCurrentTarget, itemCache, Cache_getCacheableNode);
result := SmartGetFieldInt(SmartCurrentTarget,itemCacheableN ode , ItemComposite_getModelSizeX) * ItemComposite_getModelSizeX_Multiplier;
SmartFreeObject(SmartCurrentTarget, itemCache);
SmartFreeObject(SmartCurrentTarget, itemCacheableNode);
end;


That's using my hooks file: 23247

Yeah something like that.

Cheddy
05-03-2014, 09:23 PM
Do you want me to help with any api's, or hooks? I have 175 hooks atm on my Updater (Just don't really want to release it open source); however; I am currently working on a self updating hooks file. An app will run constantly checking whether RS has updated and if it has, it runs my analyser and will publish my hooks file. Just don't know where to put the file haha. Was kinda think pastebin, unless any of you guys know how to use the Java API for google drive; I hate web stuff and auth...

I'm happy to help out making the API though if you want

Krazy_Meerkat
05-04-2014, 11:48 AM
Do you want me to help with any api's, or hooks? I have 175 hooks atm on my Updater (Just don't really want to release it open source); however; I am currently working on a self updating hooks file. An app will run constantly checking whether RS has updated and if it has, it runs my analyser and will publish my hooks file. Just don't know where to put the file haha. Was kinda think pastebin, unless any of you guys know how to use the Java API for google drive; I hate web stuff and auth...

I'm happy to help out making the API though if you want

I've was working on a similar framework (the update-checker/hook-updater) using java servelets but it wasn't completed.. I think it was discussed that servers might be needed and we didn't want to overcomplicate things.. Something like that..

In all honesty, I'd really appreciate some help with hooks.. Add me on skype, fish.

tristen8878
05-04-2014, 02:44 PM
I've was working on a similar framework (the update-checker/hook-updater) using java servelets but it wasn't completed.. I think it was discussed that servers might be needed and we didn't want to overcomplicate things.. Something like that..

In all honesty, I'd really appreciate some help with hooks.. Add me on skype, fish.

I would like to help out with finding the hooks as I would like to learn more about how reflection works is it possible we could talk over skype sometime?

My skype is t2kftw

Cheddy
05-04-2014, 10:42 PM
I think I have most of the necessary hooks as such (Apart from login and game state/energy and weight break in 2 out of the 44 revs as well)

Cheddy
05-05-2014, 08:36 PM
Why is there no way to do spoilers on villavu?

Can a java app be initiated in simba and then the output parsed; as my auto updater will run from pastebin using the java pastebin api to put my latest log on pastebin as soon as rs updates. Then, in the reflection api, a java worker could be initiated just to use the pastebin api to get my latest post which would be the latest hooks. Completely flawless throughout revisions, and kept up to date as fast as RS. That is my idea...

Anyways, here is my simba output log (tell me if there are any hooks I should add):


{ 181 Hooks Found By Cheddys Beautiful Updater }

const
ReflectionRevision = 44;


{* Wall - 11 Hooks *}
Wall = 'de';
Wall_getFlags = 'u';
Wall_getFlags_Multiplier = 1787916463;
Wall_getHeight = 'j';
Wall_getHeight_Multiplier = -845646027;
Wall_getID = 'd';
Wall_getID_Multiplier = -533869271;
Wall_getOrientation = 'q';
Wall_getOrientation_Multiplier = -1464134821;
Wall_getPlane = 'e';
Wall_getPlane_Multiplier = -1486979233;
Wall_getRelativeY = 'm';
Wall_getRelativeY_Multiplier = 1140753665;
Wall_getBackupRenderable = 'a';
Wall_getRelativeX = 'z';
Wall_getRelativeX_Multiplier = -1087332817;
Wall_getY = 'k';
Wall_getY_Multiplier = 1499328943;
Wall_getX = 'i';
Wall_getX_Multiplier = -1891346871;
Wall_getRenderable = 'w';

{* SceneObject - 12 Hooks *}
SceneObject = 'cy';
SceneObject_getFlags = 'g';
SceneObject_getFlags_Multiplier = -1132466415;
SceneObject_getID = 't';
SceneObject_getID_Multiplier = -1146448229;
SceneObject_getOffsetX = 'w';
SceneObject_getOffsetX_Multiplier = 1869762125;
SceneObject_getOrientation = 'z';
SceneObject_getOrientation_Multiplier = 1308633513;
SceneObject_getPlane = 'e';
SceneObject_getPlane_Multiplier = 21115503;
SceneObject_getRelativeY = 'a';
SceneObject_getRelativeY_Multiplier = -1487550165;
SceneObject_getRelativeX = 'm';
SceneObject_getRelativeX_Multiplier = 1198689057;
SceneObject_getY = 'q';
SceneObject_getY_Multiplier = -1423235875;
SceneObject_getX = 'k';
SceneObject_getX_Multiplier = -587374085;
SceneObject_getRenderable = 'j';
SceneObject_getOffsetY = 'd';
SceneObject_getOffsetY_Multiplier = 64240557;
SceneObject_getZ = 'i';
SceneObject_getZ_Multiplier = 1833915461;

{* Model - 11 Hooks *}
Model = 'do';
Model_getVerticesLength = 'j';
Model_getVerticesLength_Multiplier = 1;
Model_getIndicesLength = 'a';
Model_getIndicesLength_Multiplier = 1;
Model_getIndicesX = 'd';
Model_getVerticesZ = 'w';
Model_getVerticesY = 'm';
Model_getVerticesX = 'z';
Model_getIndicesZ = 'p';
Model_getIndicesY = 'u';
Model_getTexturedIndicesY = 'g';
Model_getTexturedIndicesX = 't';
Model_getTexturedIndicesZ = 'o';

{* Widget - 22 Hooks *}
Widget = 'fl';
Widget_getID = 'p';
Widget_getID_Multiplier = 692329857;
Widget_getStackSizes = 'dw';
Widget_getParent = 'bc';
Widget_getContentIDs = 'dw';
Widget_getIndex = 't';
Widget_getIndex_Multiplier = -147122741;
Widget_getChildren = 'da';
Widget_getActions = 'bb';
Widget_getBoundsIndex = 'db';
Widget_getBoundsIndex_Multiplier = -1777308095;
Widget_getParentID = 'l';
Widget_getParentID_Multiplier = -1609096221;
Widget_getOpcodes = 'dk';
Widget_getText = 'bk';
Widget_getType = 'o';
Widget_getType_Multiplier = 644671717;
Widget_getHeight = 'r';
Widget_getHeight_Multiplier = 2108824679;
Widget_getRelativeY = 's';
Widget_getRelativeY_Multiplier = -1785434187;
Widget_getName = 'bu';
Widget_getRelativeX = 'f';
Widget_getRelativeX_Multiplier = 1417707275;
Widget_getY = 'x';
Widget_getY_Multiplier = 723086927;
Widget_getScrollX = 'h';
Widget_getScrollX_Multiplier = -1383540543;
Widget_getX = 'b';
Widget_getX_Multiplier = -2099276977;
Widget_getScrollY = 'v';
Widget_getScrollY_Multiplier = -634296339;
Widget_getActionType = 'g';
Widget_getActionType_Multiplier = 1615961513;
Widget_getWidth = 'y';
Widget_getWidth_Multiplier = 81943873;

{* Player - 2 Hooks *}
Player = 'k';
Player_getModel = 't';
Player_getName = 'e';

{* ObjectComposite - 2 Hooks *}
ObjectComposite = 'av';
ObjectComposite_getName = 'p';
ObjectComposite_getActions = 'al';

{* FloorDecoration - 6 Hooks *}
FloorDecoration = 'dk';
FloorDecoration_getFlags = 'z';
FloorDecoration_getFlags_Multiplier = 1675665355;
FloorDecoration_getID = 'j';
FloorDecoration_getID_Multiplier = -1581878055;
FloorDecoration_getPlane = 'e';
FloorDecoration_getPlane_Multiplier = -799417273;
FloorDecoration_getY = 'k';
FloorDecoration_getY_Multiplier = 1479624025;
FloorDecoration_getX = 'i';
FloorDecoration_getX_Multiplier = -1896711519;
FloorDecoration_getRenderable = 'q';

{* Region - 2 Hooks *}
Region = 'ci';
Region_getGroundObjects = 'a';
Region_getGroundTiles = 'z';

{* Renderable - 1 Hooks *}
Renderable = 'co';
Renderable_getHeight = 'bo';
Renderable_getHeight_Multiplier = -170689239;

{* Item - 2 Hooks *}
Item = 'c';
Item_getStackSize = 'i';
Item_getStackSize_Multiplier = 102750599;
Item_getID = 'e';
Item_getID_Multiplier = 1039571511;

{* CollisionMap - 5 Hooks *}
CollisionMap = 'ez';
CollisionMap_getFlags = 'ap';
CollisionMap_getHeight = 'ax';
CollisionMap_getHeight_Multiplier = 1527519115;
CollisionMap_getOffsetX = 'ao';
CollisionMap_getOffsetX_Multiplier = 1705137359;
CollisionMap_getWidth = 'v';
CollisionMap_getWidth_Multiplier = 407820043;
CollisionMap_getOffsetY = 'al';
CollisionMap_getOffsetY_Multiplier = -1859982265;

{* LinkedList - 2 Hooks *}
LinkedList = 'fj';
LinkedList_getHead = 'e';
LinkedList_getTail = 'i';

{* Queue - 1 Hooks *}
Queue = 'fw';
Queue_getHead = 'e';

{* NPCComposite - 2 Hooks *}
NPCComposite = 'aw';
NPCComposite_getName = 'z';
NPCComposite_getActions = 'y';

{* Client - 43 Hooks *}
Client = 'client';
Client_getMapScale = 'client.db';
Client_getMapScale_Multiplier = 441328543;
Client_getTileHeights = 'a.e';
Client_getMaxLevels = 'client.hg';
Client_getCameraYaw = 'co.fl';
Client_getCameraYaw_Multiplier = -881937579;
Client_getWidgetPositionsY = 'client.li';
Client_getCurrentLevels = 'client.hh';
Client_getWidgetPositionsX = 'client.lm';
Client_getMenuHeight = 'b.ho';
Client_getMenuHeight_Multiplier = -1286290847;
Client_getWidgetSettings = 'fp.k';
Client_getWeight = 'client.jk';
Client_getWeight_Multiplier = -1630380455;
Client_getWidgetHeights = 'client.lq';
Client_getNPCIndices = 'client.bi';
Client_getEnergy = 'client.jp';
Client_getEnergy_Multiplier = 1488134077;
Client_getWidgetWidths = 'client.lk';
Client_getMapAngle = 'client.fg';
Client_getMapAngle_Multiplier = -962793663;
Client_getLoginState = 'r.ak';
Client_getLoginState_Multiplier = -1221643161;
Client_getPlane = 'da.hx';
Client_getPlane_Multiplier = 2109014229;
Client_getBaseX = 'aq.cj';
Client_getBaseX_Multiplier = 798455051;
Client_getCollisionMaps = 'client.w';
Client_getLocalPlayers = 'client.ga';
Client_getBaseY = 'ez.cy';
Client_getBaseY_Multiplier = -316692777;
Client_getWidgets = 'fl.e';
Client_getMenuCount = 'client.iy';
Client_getMenuCount_Multiplier = -815878001;
Client_getRegion = 'i.dj';
Client_getMenuActions = 'client.in';
Client_getMapOffset = 'client.ds';
Client_getMapOffset_Multiplier = 1803949977;
Client_isMenuOpen = 'client.he';
Client_getCameraX = 'ad.fh';
Client_getCameraX_Multiplier = 1131536837;
Client_getCameraY = 'dp.fc';
Client_getCameraY_Multiplier = 1751854551;
Client_getCameraZ = 'cz.fd';
Client_getCameraZ_Multiplier = -1628910875;
Client_getTileSettings = 'a.i';
Client_getPassword = 'r.am';
Client_getMenuOptions = 'client.ig';
Client_getLocalPlayer = 'ba.hd';
Client_getPlayerSettings = 'fp.i';
Client_getExperiences = 'client.hc';
Client_getGameCycle = 'client.b';
Client_getGameCycle_Multiplier = -616118339;
Client_getCameraPitch = 'z.fv';
Client_getCameraPitch_Multiplier = -1469741367;
Client_getLocalNPCs = 'client.bc';
Client_getMenuWidth = 'client.ha';
Client_getMenuWidth_Multiplier = 54633017;
Client_getUsername = 'r.ae';
Client_getMenuX = 'dx.hw';
Client_getMenuX_Multiplier = -1475507675;
Client_getMenuY = 'bu.hz';
Client_getMenuY_Multiplier = -643638235;

{* NPC - 1 Hooks *}
NPC = 'v';
NPC_getComposite = 'e';

{* HashTable - 1 Hooks *}
HashTable = 'fu';
HashTable_getNodes = 'i';

{* Cache - 3 Hooks *}
Cache = 'fs';
Cache_getHashTable = 'q';
Cache_getCacheableNode = 'e';
Cache_getQueue = 'j';

{* StringStorage - 0 Hooks *}
StringStorage = 'eq';

{* Character - 16 Hooks *}
Character = 'ao';
Character_getAnimation = 'aj';
Character_getAnimation_Multiplier = -8049691;
Character_getInteractingIndex = 'at';
Character_getInteractingIndex_Multiplier = 1137839891;
Character_getOrientation = 'bn';
Character_getOrientation_Multiplier = -905161465;
Character_getHitCycles = 'aa';
Character_getQueueX = 'bb';
Character_getQueueY = 'bc';
Character_getPositionOffset = 'n';
Character_getPositionOffset_Multiplier = -372805568;
Character_getCycle = 'ad';
Character_getCycle_Multiplier = -720305353;
Character_isInSequence = 'l';
Character_getHealth = 'az';
Character_getHealth_Multiplier = -1554417177;
Character_getY = 'y';
Character_getY_Multiplier = -54698801;
Character_getMaxHealth = 'ar';
Character_getMaxHealth_Multiplier = 5200087;
Character_getX = 's';
Character_getX_Multiplier = -806469611;
Character_getOverheadText = 'av';
Character_getHitTypes = 'an';
Character_getHitDamages = 'ai';

{* CacheableNode - 2 Hooks *}
CacheableNode = 'fn';
CacheableNode_getPrevious = 'cg';
CacheableNode_getNext = 'cm';

{* Tile - 8 Hooks *}
Tile = 'cb';
Tile_getBoundary = 'm';
Tile_getPlane = 'q';
Tile_getPlane_Multiplier = 475110139;
Tile_getWall = 'w';
Tile_getY = 'k';
Tile_getY_Multiplier = 1611516503;
Tile_getX = 'i';
Tile_getX_Multiplier = -155726120;
Tile_getItemLayer = 'd';
Tile_getFloorDecoration = 'a';
Tile_getRSObjects = 'p';

{* Node - 3 Hooks *}
Node = 'fz';
Node_getPrevious = 'ef';
Node_getNext = 'ez';
Node_getUID = 'dh';

{* ItemLayer - 0 Hooks *}
ItemLayer = 'ca';

{* Stream - 2 Hooks *}
Stream = 'dl';
Stream_getPayload = 'q';
Stream_getOffset = 'j';
Stream_getOffset_Multiplier = -1034986483;

{* Boundary - 9 Hooks *}
Boundary = 'ct';
Boundary_getFlags = 'a';
Boundary_getFlags_Multiplier = 1812654487;
Boundary_getID = 'w';
Boundary_getID_Multiplier = -1260769565;
Boundary_getOrientation = 'q';
Boundary_getOrientation_Multiplier = 1252588833;
Boundary_getPlane = 'e';
Boundary_getPlane_Multiplier = -1828307743;
Boundary_getBackupRenderable = 'm';
Boundary_getAlternativeOrientation = 'j';
Boundary_getAlternativeOrientation_Multiplier = 1782006995;
Boundary_getY = 'k';
Boundary_getY_Multiplier = 1722243715;
Boundary_getX = 'i';
Boundary_getX_Multiplier = 71420443;
Boundary_getRenderable = 'z';

{* Canvas - 1 Hooks *}
Canvas = 'bi';
Canvas_getComponent = 'e';

{* Mouse - 2 Hooks *}
Mouse = 'bo';
Mouse_getY = 'bo.z';
Mouse_getY_Multiplier = 233265727;
Mouse_getX = 'bo.j';
Mouse_getX_Multiplier = -199027589;

{* ItemComposite - 9 Hooks *}
ItemComposite = 'ad';
ItemComposite_isMembers = 'l';
ItemComposite_getGroundActions = 'n';
ItemComposite_getModelColours = 'u';
ItemComposite_getName = 'd';
ItemComposite_getWidgetActions = 'h';
ItemComposite_getModelSizeZ = 'at';
ItemComposite_getModelSizeZ_Multiplier = -1442018873;
ItemComposite_getNewModelColours = 'p';
ItemComposite_getModelSizeX = 'az';
ItemComposite_getModelSizeX_Multiplier = 450862007;
ItemComposite_getModelSizeY = 'ar';
ItemComposite_getModelSizeY_Multiplier = 493612761;

rj
05-05-2014, 09:58 PM
@185 fish1328; you could save the output to a file and have simba parse it, I believe Brandon; posted a parser somewhere

Brandon
05-05-2014, 10:05 PM
@185 fish1328; you could save the output to a file and have simba parse it, I believe Brandon; posted a parser somewhere


I don't remember where it is.. I gave elfy the source a long time ago. That specific one only parsed hooks stored in JSON format. The other parser is somewhere on some thread and worked for n3ss3s parser and the last one I have no clue where that is. Stuck on some thread in the abyss.

It's safe to say I lost them all and have no idea where they are lol..

Cheddy
05-06-2014, 06:13 AM
Why does it need parsed? It is already in simba constant format :D

Cheddy
05-06-2014, 06:58 PM
@Robert. That Was from the output file ;)

Xenobitz
05-08-2014, 07:05 PM
Any ETA on the updated hooks? I'm willing to help in any way I can

Cheddy
05-08-2014, 08:26 PM
I have them; they just won't work with the current api unless you want to rename them; won't take too long, current api doesn't use many hooks yet =)

P.s. If anyone wants to invite me to the reflection team, feel free to do so ;)
Here's the file in case you don't know how to copy and paste:
23272


{ 183 Hooks Found By Cheddys Beautiful Updater }

const
ReflectionRevision = 45;


{* Boundary - 9 Hooks *}
Boundary = 'bc';
Boundary_getAlternativeOrientation = 'e';
Boundary_getAlternativeOrientation_Multiplier = -1789243751;
Boundary_getBackupRenderable = 'l';
Boundary_getFlags = 'j';
Boundary_getFlags_Multiplier = -128108901;
Boundary_getID = 'v';
Boundary_getID_Multiplier = 872134335;
Boundary_getOrientation = 'z';
Boundary_getOrientation_Multiplier = -1569104233;
Boundary_getPlane = 'n';
Boundary_getPlane_Multiplier = -1179126483;
Boundary_getRenderable = 'a';
Boundary_getX = 'u';
Boundary_getX_Multiplier = -509136167;
Boundary_getY = 't';
Boundary_getY_Multiplier = -1853854939;

{* Cache - 3 Hooks *}
Cache = 'fc';
Cache_getCacheableNode = 'z';
Cache_getHashTable = 't';
Cache_getQueue = 'e';

{* CacheableNode - 2 Hooks *}
CacheableNode = 'fb';
CacheableNode_getNext = 'co';
CacheableNode_getPrevious = 'cl';

{* Canvas - 1 Hooks *}
Canvas = 'di';
Canvas_getComponent = 'z';

{* Character - 18 Hooks *}
Character = 'ai';
Character_getAnimation = 'ay';
Character_getAnimation_Multiplier = 2085431123;
Character_getCycle = 'am';
Character_getCycle_Multiplier = -836843363;
Character_getHealth = 'az';
Character_getHealth_Multiplier = 992112634;
Character_getHitCycles = 'ap';
Character_getHitDamages = 'ao';
Character_getHitTypes = 'aj';
Character_getInteractingIndex = 'ab';
Character_getInteractingIndex_Multiplier = 1501622561;
Character_getMaxHealth = 'aa';
Character_getMaxHealth_Multiplier = 63791007;
Character_getOrientation = 'bb';
Character_getOrientation_Multiplier = -1322793871;
Character_getOverheadText = 'ar';
Character_getPositionOffset = 'w';
Character_getPositionOffset_Multiplier = 393526336;
Character_getQueueLength = 'bk';
Character_getQueueLength_Multiplier = -1617203777;
Character_getQueueTraversed = 'bm';
Character_getQueueX = 'be';
Character_getQueueY = 'bv';
Character_getX = 'h';
Character_getX_Multiplier = 964999791;
Character_getY = 'c';
Character_getY_Multiplier = -891686403;
Character_isInSequence = 'r';

{* Client - 45 Hooks *}
Client = 'client';
Client_getBaseX = 'u.c';
Client_getBaseX_Multiplier = -891686403;
Client_getBaseY = 'u.h';
Client_getBaseY_Multiplier = 964999791;
Client_getCameraPitch = 'aj.fg';
Client_getCameraPitch_Multiplier = -1887817443;
Client_getCameraX = 'x.fv';
Client_getCameraX_Multiplier = 2128126559;
Client_getCameraY = 'bo.fz';
Client_getCameraY_Multiplier = -1423421689;
Client_getCameraYaw = 'cb.fh';
Client_getCameraYaw_Multiplier = -625598461;
Client_getCameraZ = 'dd.fi';
Client_getCameraZ_Multiplier = 1952424259;
Client_getCollisionMaps = 'client.w';
Client_getCurrentLevels = 'client.hw';
Client_getEnergy = 'client.jn';
Client_getEnergy_Multiplier = -2135323093;
Client_getExperiences = 'client.hh';
Client_getGameCycle = 'client.m';
Client_getGameCycle_Multiplier = -111418237;
Client_getLocalNPCs = 'client.bd';
Client_getLocalPlayer = 'g.hq';
Client_getLocalPlayers = 'client.gb';
Client_getLoginState = 's.ac';
Client_getLoginState_Multiplier = -847061727;
Client_getMapAngle = 'client.fu';
Client_getMapAngle_Multiplier = -95364135;
Client_getMapOffset = 'client.df';
Client_getMapOffset_Multiplier = 1191082061;
Client_getMapScale = 'client.db';
Client_getMapScale_Multiplier = 457986691;
Client_getMaxLevels = 'client.hk';
Client_getMenuActions = 'client.id';
Client_getMenuCount = 'client.in';
Client_getMenuCount_Multiplier = 1033279235;
Client_getMenuHeight = 'ck.ic';
Client_getMenuHeight_Multiplier = -741401925;
Client_getMenuOptions = 'client.iy';
Client_getMenuWidth = 'ao.if';
Client_getMenuWidth_Multiplier = 2066528025;
Client_getMenuX = 'ci.hn';
Client_getMenuX_Multiplier = -381870177;
Client_getMenuY = 'bm.he';
Client_getMenuY_Multiplier = -1572072739;
Client_getMouseX = 'de.t';
Client_getMouseX_Multiplier = 428556319;
Client_getMouseY = 'de.e';
Client_getMouseY_Multiplier = 418756057;
Client_getNPCIndices = 'client.bs';
Client_getPassword = 's.ax';
Client_getPlane = 'z.ho';
Client_getPlane_Multiplier = 1699826579;
Client_getPlayerSettings = 'ey.n';
Client_getRegion = 'dw.dk';
Client_getTileHeights = 'a.z';
Client_getTileSettings = 'a.n';
Client_getUsername = 's.ah';
Client_getWeight = 'client.jt';
Client_getWeight_Multiplier = -753412451;
Client_getWidgetHeights = 'client.ly';
Client_getWidgetPositionsX = 'client.lv';
Client_getWidgetPositionsY = 'client.lj';
Client_getWidgets = 'ex.z';
Client_getWidgetSettings = 'ey.u';
Client_getWidgetWidths = 'client.li';
Client_isMenuOpen = 'client.hs';

{* CollisionMap - 5 Hooks *}
CollisionMap = 'gq';
CollisionMap_getFlags = 'ai';
CollisionMap_getHeight = 'ag';
CollisionMap_getHeight_Multiplier = 1553284005;
CollisionMap_getOffsetX = 'ad';
CollisionMap_getOffsetX_Multiplier = -1570421329;
CollisionMap_getOffsetY = 'ak';
CollisionMap_getOffsetY_Multiplier = 510568457;
CollisionMap_getWidth = 's';
CollisionMap_getWidth_Multiplier = 242648881;

{* FloorDecoration - 6 Hooks *}
FloorDecoration = 'cz';
FloorDecoration_getFlags = 'a';
FloorDecoration_getFlags_Multiplier = 315535681;
FloorDecoration_getID = 'e';
FloorDecoration_getID_Multiplier = 2016050653;
FloorDecoration_getPlane = 'n';
FloorDecoration_getPlane_Multiplier = -1840379531;
FloorDecoration_getRenderable = 'z';
FloorDecoration_getX = 'u';
FloorDecoration_getX_Multiplier = -1806270363;
FloorDecoration_getY = 't';
FloorDecoration_getY_Multiplier = -1420091543;

{* HashTable - 1 Hooks *}
HashTable = 'fq';
HashTable_getNodes = 'n';

{* Item - 2 Hooks *}
Item = 'r';
Item_getID = 'z';
Item_getID_Multiplier = 761498115;
Item_getStackSize = 'n';
Item_getStackSize_Multiplier = -1756343239;

{* ItemComposite - 9 Hooks *}
ItemComposite = 'az';
ItemComposite_getGroundActions = 'w';
ItemComposite_getModelColours = 'g';
ItemComposite_getModelSizeX = 'az';
ItemComposite_getModelSizeX_Multiplier = -2034207305;
ItemComposite_getModelSizeY = 'aa';
ItemComposite_getModelSizeY_Multiplier = 459861729;
ItemComposite_getModelSizeZ = 'ab';
ItemComposite_getModelSizeZ_Multiplier = -101111487;
ItemComposite_getName = 'k';
ItemComposite_getNewModelColours = 'd';
ItemComposite_getWidgetActions = 'p';
ItemComposite_isMembers = 'r';

{* ItemLayer - 0 Hooks *}
ItemLayer = 'ci';

{* LinkedList - 2 Hooks *}
LinkedList = 'fr';
LinkedList_getHead = 'z';
LinkedList_getTail = 'n';

{* Model - 11 Hooks *}
Model = 'cp';
Model_getIndicesLength = 'j';
Model_getIndicesLength_Multiplier = 1;
Model_getIndicesX = 'k';
Model_getIndicesY = 'g';
Model_getIndicesZ = 'd';
Model_getTexturedIndicesX = 'b';
Model_getTexturedIndicesY = 'i';
Model_getTexturedIndicesZ = 'o';
Model_getVerticesLength = 'e';
Model_getVerticesLength_Multiplier = 1;
Model_getVerticesX = 'a';
Model_getVerticesY = 'l';
Model_getVerticesZ = 'v';

{* Mouse - 0 Hooks *}
Mouse = 'de';

{* Node - 3 Hooks *}
Node = 'fs';
Node_getNext = 'ek';
Node_getPrevious = 'ez';
Node_getUID = 'df';

{* NPC - 1 Hooks *}
NPC = 'ad';
NPC_getComposite = 'z';

{* NPCComposite - 2 Hooks *}
NPCComposite = 'as';
NPCComposite_getActions = 'h';
NPCComposite_getName = 'a';

{* ObjectComposite - 2 Hooks *}
ObjectComposite = 'ar';
ObjectComposite_getActions = 'ak';
ObjectComposite_getName = 'd';

{* Player - 2 Hooks *}
Player = 'u';
Player_getModel = 'b';
Player_getName = 'z';

{* Queue - 1 Hooks *}
Queue = 'fl';
Queue_getHead = 'z';

{* Region - 2 Hooks *}
Region = 'bd';
Region_getGroundObjects = 'j';
Region_getGroundTiles = 'a';

{* Renderable - 1 Hooks *}
Renderable = 'bm';
Renderable_getHeight = 'bs';
Renderable_getHeight_Multiplier = -1778196667;

{* SceneObject - 12 Hooks *}
SceneObject = 'cc';
SceneObject_getFlags = 'i';
SceneObject_getFlags_Multiplier = 1707018495;
SceneObject_getID = 'b';
SceneObject_getID_Multiplier = 1474827417;
SceneObject_getOffsetX = 'v';
SceneObject_getOffsetX_Multiplier = 910785039;
SceneObject_getOffsetY = 'k';
SceneObject_getOffsetY_Multiplier = 1755899889;
SceneObject_getOrientation = 'a';
SceneObject_getOrientation_Multiplier = -1156896027;
SceneObject_getPlane = 'n';
SceneObject_getPlane_Multiplier = -318176933;
SceneObject_getRelativeX = 'l';
SceneObject_getRelativeX_Multiplier = -794643159;
SceneObject_getRelativeY = 'j';
SceneObject_getRelativeY_Multiplier = -1187590837;
SceneObject_getRenderable = 'z';
SceneObject_getX = 't';
SceneObject_getX_Multiplier = -195861307;
SceneObject_getY = 'e';
SceneObject_getY_Multiplier = 1185481681;
SceneObject_getZ = 'u';
SceneObject_getZ_Multiplier = -1182061875;

{* Stream - 2 Hooks *}
Stream = 'cj';
Stream_getOffset = 'n';
Stream_getOffset_Multiplier = -175947521;
Stream_getPayload = 'z';

{* StringStorage - 0 Hooks *}
StringStorage = 'ee';

{* Tile - 8 Hooks *}
Tile = 'cb';
Tile_getBoundary = 'l';
Tile_getFloorDecoration = 'j';
Tile_getItemLayer = 'k';
Tile_getPlane = 'z';
Tile_getPlane_Multiplier = -1148374097;
Tile_getRSObjects = 'd';
Tile_getWall = 'v';
Tile_getX = 'u';
Tile_getX_Multiplier = -656129177;
Tile_getY = 't';
Tile_getY_Multiplier = 801749763;

{* Wall - 11 Hooks *}
Wall = 'ck';
Wall_getBackupRenderable = 'j';
Wall_getFlags = 'g';
Wall_getFlags_Multiplier = 140266705;
Wall_getHeight = 'e';
Wall_getHeight_Multiplier = 1253283997;
Wall_getID = 'k';
Wall_getID_Multiplier = 1851785047;
Wall_getOrientation = 'z';
Wall_getOrientation_Multiplier = -917699129;
Wall_getPlane = 'n';
Wall_getPlane_Multiplier = 2135188485;
Wall_getRelativeX = 'a';
Wall_getRelativeX_Multiplier = -629665309;
Wall_getRelativeY = 'l';
Wall_getRelativeY_Multiplier = 2147404953;
Wall_getRenderable = 'v';
Wall_getX = 'u';
Wall_getX_Multiplier = 1263795633;
Wall_getY = 't';
Wall_getY_Multiplier = 221600917;

{* Widget - 22 Hooks *}
Widget = 'ex';
Widget_getActions = 'bv';
Widget_getActionType = 'i';
Widget_getActionType_Multiplier = 1676832791;
Widget_getBoundsIndex = 'da';
Widget_getBoundsIndex_Multiplier = 1202228047;
Widget_getChildren = 'du';
Widget_getContentIDs = 'dy';
Widget_getHeight = 'h';
Widget_getHeight_Multiplier = -148818029;
Widget_getID = 'd';
Widget_getID_Multiplier = -1885388699;
Widget_getIndex = 'b';
Widget_getIndex_Multiplier = -592757985;
Widget_getName = 'bk';
Widget_getOpcodes = 'dq';
Widget_getParent = 'be';
Widget_getParentID = 'r';
Widget_getParentID_Multiplier = -982521697;
Widget_getRelativeX = 'c';
Widget_getRelativeX_Multiplier = 1235716305;
Widget_getRelativeY = 'q';
Widget_getRelativeY_Multiplier = -1983070073;
Widget_getScrollX = 'p';
Widget_getScrollX_Multiplier = 448947735;
Widget_getScrollY = 's';
Widget_getScrollY_Multiplier = -789061205;
Widget_getStackSizes = 'dk';
Widget_getText = 'bi';
Widget_getType = 'o';
Widget_getType_Multiplier = 2117159009;
Widget_getWidth = 'y';
Widget_getWidth_Multiplier = 342406379;
Widget_getX = 'x';
Widget_getX_Multiplier = -119692555;
Widget_getY = 'f';
Widget_getY_Multiplier = 81714451;

Xenobitz
05-08-2014, 10:38 PM
I have them; they just won't work with the current api unless you want to rename them; won't take too long, current api doesn't use many hooks yet =)

P.s. If anyone wants to invite me to the reflection team, feel free to do so ;)
Here's the file in case you don't know how to copy and paste:
23272


{ 183 Hooks Found By Cheddys Beautiful Updater }

const
ReflectionRevision = 45;


{* Boundary - 9 Hooks *}
Boundary = 'bc';
Boundary_getAlternativeOrientation = 'e';
Boundary_getAlternativeOrientation_Multiplier = -1789243751;
Boundary_getBackupRenderable = 'l';
Boundary_getFlags = 'j';
Boundary_getFlags_Multiplier = -128108901;
Boundary_getID = 'v';
Boundary_getID_Multiplier = 872134335;
Boundary_getOrientation = 'z';
Boundary_getOrientation_Multiplier = -1569104233;
Boundary_getPlane = 'n';
Boundary_getPlane_Multiplier = -1179126483;
Boundary_getRenderable = 'a';
Boundary_getX = 'u';
Boundary_getX_Multiplier = -509136167;
Boundary_getY = 't';
Boundary_getY_Multiplier = -1853854939;

{* Cache - 3 Hooks *}
Cache = 'fc';
Cache_getCacheableNode = 'z';
Cache_getHashTable = 't';
Cache_getQueue = 'e';

{* CacheableNode - 2 Hooks *}
CacheableNode = 'fb';
CacheableNode_getNext = 'co';
CacheableNode_getPrevious = 'cl';

{* Canvas - 1 Hooks *}
Canvas = 'di';
Canvas_getComponent = 'z';

{* Character - 18 Hooks *}
Character = 'ai';
Character_getAnimation = 'ay';
Character_getAnimation_Multiplier = 2085431123;
Character_getCycle = 'am';
Character_getCycle_Multiplier = -836843363;
Character_getHealth = 'az';
Character_getHealth_Multiplier = 992112634;
Character_getHitCycles = 'ap';
Character_getHitDamages = 'ao';
Character_getHitTypes = 'aj';
Character_getInteractingIndex = 'ab';
Character_getInteractingIndex_Multiplier = 1501622561;
Character_getMaxHealth = 'aa';
Character_getMaxHealth_Multiplier = 63791007;
Character_getOrientation = 'bb';
Character_getOrientation_Multiplier = -1322793871;
Character_getOverheadText = 'ar';
Character_getPositionOffset = 'w';
Character_getPositionOffset_Multiplier = 393526336;
Character_getQueueLength = 'bk';
Character_getQueueLength_Multiplier = -1617203777;
Character_getQueueTraversed = 'bm';
Character_getQueueX = 'be';
Character_getQueueY = 'bv';
Character_getX = 'h';
Character_getX_Multiplier = 964999791;
Character_getY = 'c';
Character_getY_Multiplier = -891686403;
Character_isInSequence = 'r';

{* Client - 45 Hooks *}
Client = 'client';
Client_getBaseX = 'u.c';
Client_getBaseX_Multiplier = -891686403;
Client_getBaseY = 'u.h';
Client_getBaseY_Multiplier = 964999791;
Client_getCameraPitch = 'aj.fg';
Client_getCameraPitch_Multiplier = -1887817443;
Client_getCameraX = 'x.fv';
Client_getCameraX_Multiplier = 2128126559;
Client_getCameraY = 'bo.fz';
Client_getCameraY_Multiplier = -1423421689;
Client_getCameraYaw = 'cb.fh';
Client_getCameraYaw_Multiplier = -625598461;
Client_getCameraZ = 'dd.fi';
Client_getCameraZ_Multiplier = 1952424259;
Client_getCollisionMaps = 'client.w';
Client_getCurrentLevels = 'client.hw';
Client_getEnergy = 'client.jn';
Client_getEnergy_Multiplier = -2135323093;
Client_getExperiences = 'client.hh';
Client_getGameCycle = 'client.m';
Client_getGameCycle_Multiplier = -111418237;
Client_getLocalNPCs = 'client.bd';
Client_getLocalPlayer = 'g.hq';
Client_getLocalPlayers = 'client.gb';
Client_getLoginState = 's.ac';
Client_getLoginState_Multiplier = -847061727;
Client_getMapAngle = 'client.fu';
Client_getMapAngle_Multiplier = -95364135;
Client_getMapOffset = 'client.df';
Client_getMapOffset_Multiplier = 1191082061;
Client_getMapScale = 'client.db';
Client_getMapScale_Multiplier = 457986691;
Client_getMaxLevels = 'client.hk';
Client_getMenuActions = 'client.id';
Client_getMenuCount = 'client.in';
Client_getMenuCount_Multiplier = 1033279235;
Client_getMenuHeight = 'ck.ic';
Client_getMenuHeight_Multiplier = -741401925;
Client_getMenuOptions = 'client.iy';
Client_getMenuWidth = 'ao.if';
Client_getMenuWidth_Multiplier = 2066528025;
Client_getMenuX = 'ci.hn';
Client_getMenuX_Multiplier = -381870177;
Client_getMenuY = 'bm.he';
Client_getMenuY_Multiplier = -1572072739;
Client_getMouseX = 'de.t';
Client_getMouseX_Multiplier = 428556319;
Client_getMouseY = 'de.e';
Client_getMouseY_Multiplier = 418756057;
Client_getNPCIndices = 'client.bs';
Client_getPassword = 's.ax';
Client_getPlane = 'z.ho';
Client_getPlane_Multiplier = 1699826579;
Client_getPlayerSettings = 'ey.n';
Client_getRegion = 'dw.dk';
Client_getTileHeights = 'a.z';
Client_getTileSettings = 'a.n';
Client_getUsername = 's.ah';
Client_getWeight = 'client.jt';
Client_getWeight_Multiplier = -753412451;
Client_getWidgetHeights = 'client.ly';
Client_getWidgetPositionsX = 'client.lv';
Client_getWidgetPositionsY = 'client.lj';
Client_getWidgets = 'ex.z';
Client_getWidgetSettings = 'ey.u';
Client_getWidgetWidths = 'client.li';
Client_isMenuOpen = 'client.hs';

{* CollisionMap - 5 Hooks *}
CollisionMap = 'gq';
CollisionMap_getFlags = 'ai';
CollisionMap_getHeight = 'ag';
CollisionMap_getHeight_Multiplier = 1553284005;
CollisionMap_getOffsetX = 'ad';
CollisionMap_getOffsetX_Multiplier = -1570421329;
CollisionMap_getOffsetY = 'ak';
CollisionMap_getOffsetY_Multiplier = 510568457;
CollisionMap_getWidth = 's';
CollisionMap_getWidth_Multiplier = 242648881;

{* FloorDecoration - 6 Hooks *}
FloorDecoration = 'cz';
FloorDecoration_getFlags = 'a';
FloorDecoration_getFlags_Multiplier = 315535681;
FloorDecoration_getID = 'e';
FloorDecoration_getID_Multiplier = 2016050653;
FloorDecoration_getPlane = 'n';
FloorDecoration_getPlane_Multiplier = -1840379531;
FloorDecoration_getRenderable = 'z';
FloorDecoration_getX = 'u';
FloorDecoration_getX_Multiplier = -1806270363;
FloorDecoration_getY = 't';
FloorDecoration_getY_Multiplier = -1420091543;

{* HashTable - 1 Hooks *}
HashTable = 'fq';
HashTable_getNodes = 'n';

{* Item - 2 Hooks *}
Item = 'r';
Item_getID = 'z';
Item_getID_Multiplier = 761498115;
Item_getStackSize = 'n';
Item_getStackSize_Multiplier = -1756343239;

{* ItemComposite - 9 Hooks *}
ItemComposite = 'az';
ItemComposite_getGroundActions = 'w';
ItemComposite_getModelColours = 'g';
ItemComposite_getModelSizeX = 'az';
ItemComposite_getModelSizeX_Multiplier = -2034207305;
ItemComposite_getModelSizeY = 'aa';
ItemComposite_getModelSizeY_Multiplier = 459861729;
ItemComposite_getModelSizeZ = 'ab';
ItemComposite_getModelSizeZ_Multiplier = -101111487;
ItemComposite_getName = 'k';
ItemComposite_getNewModelColours = 'd';
ItemComposite_getWidgetActions = 'p';
ItemComposite_isMembers = 'r';

{* ItemLayer - 0 Hooks *}
ItemLayer = 'ci';

{* LinkedList - 2 Hooks *}
LinkedList = 'fr';
LinkedList_getHead = 'z';
LinkedList_getTail = 'n';

{* Model - 11 Hooks *}
Model = 'cp';
Model_getIndicesLength = 'j';
Model_getIndicesLength_Multiplier = 1;
Model_getIndicesX = 'k';
Model_getIndicesY = 'g';
Model_getIndicesZ = 'd';
Model_getTexturedIndicesX = 'b';
Model_getTexturedIndicesY = 'i';
Model_getTexturedIndicesZ = 'o';
Model_getVerticesLength = 'e';
Model_getVerticesLength_Multiplier = 1;
Model_getVerticesX = 'a';
Model_getVerticesY = 'l';
Model_getVerticesZ = 'v';

{* Mouse - 0 Hooks *}
Mouse = 'de';

{* Node - 3 Hooks *}
Node = 'fs';
Node_getNext = 'ek';
Node_getPrevious = 'ez';
Node_getUID = 'df';

{* NPC - 1 Hooks *}
NPC = 'ad';
NPC_getComposite = 'z';

{* NPCComposite - 2 Hooks *}
NPCComposite = 'as';
NPCComposite_getActions = 'h';
NPCComposite_getName = 'a';

{* ObjectComposite - 2 Hooks *}
ObjectComposite = 'ar';
ObjectComposite_getActions = 'ak';
ObjectComposite_getName = 'd';

{* Player - 2 Hooks *}
Player = 'u';
Player_getModel = 'b';
Player_getName = 'z';

{* Queue - 1 Hooks *}
Queue = 'fl';
Queue_getHead = 'z';

{* Region - 2 Hooks *}
Region = 'bd';
Region_getGroundObjects = 'j';
Region_getGroundTiles = 'a';

{* Renderable - 1 Hooks *}
Renderable = 'bm';
Renderable_getHeight = 'bs';
Renderable_getHeight_Multiplier = -1778196667;

{* SceneObject - 12 Hooks *}
SceneObject = 'cc';
SceneObject_getFlags = 'i';
SceneObject_getFlags_Multiplier = 1707018495;
SceneObject_getID = 'b';
SceneObject_getID_Multiplier = 1474827417;
SceneObject_getOffsetX = 'v';
SceneObject_getOffsetX_Multiplier = 910785039;
SceneObject_getOffsetY = 'k';
SceneObject_getOffsetY_Multiplier = 1755899889;
SceneObject_getOrientation = 'a';
SceneObject_getOrientation_Multiplier = -1156896027;
SceneObject_getPlane = 'n';
SceneObject_getPlane_Multiplier = -318176933;
SceneObject_getRelativeX = 'l';
SceneObject_getRelativeX_Multiplier = -794643159;
SceneObject_getRelativeY = 'j';
SceneObject_getRelativeY_Multiplier = -1187590837;
SceneObject_getRenderable = 'z';
SceneObject_getX = 't';
SceneObject_getX_Multiplier = -195861307;
SceneObject_getY = 'e';
SceneObject_getY_Multiplier = 1185481681;
SceneObject_getZ = 'u';
SceneObject_getZ_Multiplier = -1182061875;

{* Stream - 2 Hooks *}
Stream = 'cj';
Stream_getOffset = 'n';
Stream_getOffset_Multiplier = -175947521;
Stream_getPayload = 'z';

{* StringStorage - 0 Hooks *}
StringStorage = 'ee';

{* Tile - 8 Hooks *}
Tile = 'cb';
Tile_getBoundary = 'l';
Tile_getFloorDecoration = 'j';
Tile_getItemLayer = 'k';
Tile_getPlane = 'z';
Tile_getPlane_Multiplier = -1148374097;
Tile_getRSObjects = 'd';
Tile_getWall = 'v';
Tile_getX = 'u';
Tile_getX_Multiplier = -656129177;
Tile_getY = 't';
Tile_getY_Multiplier = 801749763;

{* Wall - 11 Hooks *}
Wall = 'ck';
Wall_getBackupRenderable = 'j';
Wall_getFlags = 'g';
Wall_getFlags_Multiplier = 140266705;
Wall_getHeight = 'e';
Wall_getHeight_Multiplier = 1253283997;
Wall_getID = 'k';
Wall_getID_Multiplier = 1851785047;
Wall_getOrientation = 'z';
Wall_getOrientation_Multiplier = -917699129;
Wall_getPlane = 'n';
Wall_getPlane_Multiplier = 2135188485;
Wall_getRelativeX = 'a';
Wall_getRelativeX_Multiplier = -629665309;
Wall_getRelativeY = 'l';
Wall_getRelativeY_Multiplier = 2147404953;
Wall_getRenderable = 'v';
Wall_getX = 'u';
Wall_getX_Multiplier = 1263795633;
Wall_getY = 't';
Wall_getY_Multiplier = 221600917;

{* Widget - 22 Hooks *}
Widget = 'ex';
Widget_getActions = 'bv';
Widget_getActionType = 'i';
Widget_getActionType_Multiplier = 1676832791;
Widget_getBoundsIndex = 'da';
Widget_getBoundsIndex_Multiplier = 1202228047;
Widget_getChildren = 'du';
Widget_getContentIDs = 'dy';
Widget_getHeight = 'h';
Widget_getHeight_Multiplier = -148818029;
Widget_getID = 'd';
Widget_getID_Multiplier = -1885388699;
Widget_getIndex = 'b';
Widget_getIndex_Multiplier = -592757985;
Widget_getName = 'bk';
Widget_getOpcodes = 'dq';
Widget_getParent = 'be';
Widget_getParentID = 'r';
Widget_getParentID_Multiplier = -982521697;
Widget_getRelativeX = 'c';
Widget_getRelativeX_Multiplier = 1235716305;
Widget_getRelativeY = 'q';
Widget_getRelativeY_Multiplier = -1983070073;
Widget_getScrollX = 'p';
Widget_getScrollX_Multiplier = 448947735;
Widget_getScrollY = 's';
Widget_getScrollY_Multiplier = -789061205;
Widget_getStackSizes = 'dk';
Widget_getText = 'bi';
Widget_getType = 'o';
Widget_getType_Multiplier = 2117159009;
Widget_getWidth = 'y';
Widget_getWidth_Multiplier = 342406379;
Widget_getX = 'x';
Widget_getX_Multiplier = -119692555;
Widget_getY = 'f';
Widget_getY_Multiplier = 81714451;


I've started to rename them, but unfortunately some are completely different names I don't even recognize.

Why not modify your updater to output with simba's reflection names? Or even just make a quick table so we go through and replace them with the correct names?

This is my only day off of work this week and I really wanted to script, but this is obviously getting in the way and I don't have much experience with updating hooks.

samerdl
05-09-2014, 12:04 AM
Would love to use your updated revision fish1328, but as Xenobitz pointed out, it gets confusing when we don't what goes where :(.

My scripts are still running as they both run on color & Bitmap fail safes while reflection is down, i'll wait till hooks get updated again so i can use R_GetSkillExp for instant and continuous experience tracking ;)

Krazy_Meerkat
05-09-2014, 05:12 AM
I just pushed a hook update, let me know if any are incorrect. Also, cheddy I believe your client_loginstate was incorrect.. A couple of others were strange too (your baseX/Y is the same as your CharacterX/Y).. I ended up using JH logs to fix the broken hooks when they came back online, but thank you for the help :) Always good to see someone else at SRL with an updater

Xenobitz
05-09-2014, 06:06 AM
I just pushed a hook update, let me know if any are incorrect. Also, cheddy I believe your client_loginstate was incorrect.. A couple of others were strange too (your baseX/Y is the same as your CharacterX/Y).. I ended up using JH logs to fix the broken hooks when they came back online, but thank you for the help :) Always good to see someone else at SRL with an updater

I don't know which hook is incorrect but the following code is not working:

begin
if R_FindNpc('Martin', Martin) then // Loads the record for Martin.
begin
Tp := Martin.Tile; //Get Martin tile location
Tp := R_TileToMs(Tp);
Mmouse(Tp.x, Tp.y, 10, 25);
ClickMouse2(Mouse_Right);
Wait(RandomRange(111, 555));
R_ChooseOption('Pick');
//R_FindNormalRandoms;
Antiban;
//Wait(RandomRange(55555, 77777));
end;
end;

Cheddy
05-09-2014, 06:33 AM
That's because my character x and why are flipped as well :/ Just noticed that. And thanks Meerkat for pointing out baseXY, don't know what happened there :S

Frement
05-09-2014, 07:36 AM
I don't know which hook is incorrect but the following code is not working:

begin
if R_FindNpc('Martin', Martin) then // Loads the record for Martin.
begin
Tp := Martin.Tile; //Get Martin tile location
Tp := R_TileToMs(Tp);
Mmouse(Tp.x, Tp.y, 10, 25);
ClickMouse2(Mouse_Right);
Wait(RandomRange(111, 555));
R_ChooseOption('Pick');
//R_FindNormalRandoms;
Antiban;
//Wait(RandomRange(55555, 77777));
end;
end;

What part of the code is not working?

samerdl
05-09-2014, 08:16 AM
I don't remember where it is.. I gave elfy the source a long time ago. That specific one only parsed hooks stored in JSON format. The other parser is somewhere on some thread and worked for n3ss3s parser and the last one I have no clue where that is. Stuck on some thread in the abyss.

It's safe to say I lost them all and have no idea where they are lol..

It's here (http://villavu.com/forum/showthread.php?t=105915&p=1266057#post1266057), it's quite useful too.

edit: Map walking is inverted, The X is placed as Y and Y is placed as X, that's why its not working (gota re-invert them).

edit2: eh, something is not working here with map walking.

Cheddy
05-09-2014, 03:12 PM
It's not working cause if you used my hooks to fix that. For some reason my character XY hooks were flipped which would cause your walking path to be 1/actual path :-D

Krazy_Meerkat
05-09-2014, 03:27 PM
I updated the hooks just before, the local XY were flipped yes (those were nearly the only hooks I took from your log though lol).. Also some of the client menu multi's were a bit messed up, that was my bad though.. Anyway, the include should auto-update.. Try your script again Xeno

Cheddy
05-09-2014, 04:25 PM
Says a lot for my updater :D
Thanks for pointing it out though. That and baseX/Y (and the other usual unstable ones) were the only ones I believe that broke ;)

Also, just out of OCD; why is no image appearing for you retired developer / reflection developer status?

Xenobitz
05-09-2014, 04:40 PM
I updated the hooks just before, the local XY were flipped yes (those were nearly the only hooks I took from your log though lol).. Also some of the client menu multi's were a bit messed up, that was my bad though.. Anyway, the include should auto-update.. Try your script again Xeno


procedure thieveFarmer;
var
Martin: TNPC;
Tp : Tpoint;
begin
if R_FindNpc('Martin', Martin) then // Loads the record for Martin.
begin
Writeln('Found Martin');
Tp := Martin.Tile; //Get Martin tile location
Writeln(Tp);
Tp := R_TileToMs(Tp);
Writeln(Tp);
Mmouse(Tp.x, Tp.y, 10, 25);
Writeln('Moved Mouse');
ClickMouse2(Mouse_Right);
Writeln('Right Clicked');
//Wait(RandomRange(111, 777));
R_ChooseOption('Pick');
Writeln('Chose option Pick');
//R_FindNormalRandoms;
Antiban;
//Wait(RandomRange(55555, 77777));
end;
end;

Returns:

Reflection succesfully setup!
Found Martin
(3074, 3259)
(183, 106)
*About 15-30 seconds later*
Moved Mouse
Right Clicked

It's only managed to accurately click the target once, and even then it didn't manage to select "Pick"

Cheddy
05-09-2014, 05:12 PM
Do we not have model clicking methods yet?

Krazy_Meerkat
05-09-2014, 05:17 PM
It's only managed to accurately click the target once, and even then it didn't manage to select "Pick"

Ok, I've updated the client menu width multiplier. R_ChooseOption is working fine for me, so maybe that was the problem..

@Ched no model functions yet, they've been discussed though.. Idk what is up with the broken pics on my profile.. They were working the other day :p

Xenobitz
05-09-2014, 05:44 PM
Ok, I've updated the client menu width multiplier. R_ChooseOption is working fine for me, so maybe that was the problem..

@Ched no model functions yet, they've been discussed though.. Idk what is up with the broken pics on my profile.. They were working the other day :p

Everything is working just fine now :D

Cheddy
05-09-2014, 06:13 PM
Currently testing my new auto hook updater :D

So far it seems to be working; basically it checks for newer hooks every 20 mins then auto posts them to an unlisted pastebin paste.

Another program I made then automatically downloads the pastebin paste.

Here the current paste: will be deleted when newer hooks are published: http://pastebin.com/0XBzUYrN

Cheddy
05-09-2014, 06:50 PM
Want me to make a clone of my analyser with simba's hook names? (Some of the hooks names used by simba currently are incorrect (That's just me being pernickety))

Xenobitz
05-09-2014, 07:18 PM
Want me to make a clone of my analyser with simba's hook names? (Some of the hooks names used by simba currently are incorrect (That's just me being pernickety))

Yes please! And if you could post the source of your analyzer or at least give to to a reflection dev, that would be awesome!

Cheddy
05-09-2014, 08:11 PM
I could give the reflection devs the source of my hook file getter which is all you would need to get stable hooks?

rj
05-10-2014, 04:47 PM
I'm trying to load OSRS, what is the main class? is it client?

Cheddy
05-10-2014, 11:13 PM
Yes. client is the main class :/ It's in the page source:

document.write('<app'); document.write('let ');
document.write('name=oldscape ');
document.write('id=game ');
document.write('width="765px" ');
document.write('height="503px" ');
document.write('alt="For assistance please visit the FAQ page" ');
document.write('archive=gamepack_2326039.jar ');
document.write('code=client.class '); <-- What you're looking for
document.write('mayscript>');

Cheddy
05-15-2014, 10:05 AM
Before anyone asks, you want them early; convert the names yourself; that way it's survival of the knowledgeable:


{ 183 Hooks Found By Cheddys Beautiful Updater }

const
ReflectionRevision = 46;


{* Boundary - 9 Hooks *}
Boundary = 'bl';
Boundary_getAlternativeOrientation = 'r';
Boundary_getAlternativeOrientation_Multiplier = 878897951;
Boundary_getBackupRenderable = 'f';
Boundary_getFlags = 'w';
Boundary_getFlags_Multiplier = 428515879;
Boundary_getID = 'a';
Boundary_getID_Multiplier = 1175294235;
Boundary_getOrientation = 'g';
Boundary_getOrientation_Multiplier = 1692995081;
Boundary_getPlane = 'm';
Boundary_getPlane_Multiplier = 537728251;
Boundary_getRenderable = 'i';
Boundary_getX = 'k';
Boundary_getX_Multiplier = 1248089959;
Boundary_getY = 'y';
Boundary_getY_Multiplier = -2144067125;

{* Cache - 3 Hooks *}
Cache = 'fl';
Cache_getCacheableNode = 'm';
Cache_getHashTable = 'g';
Cache_getQueue = 'r';

{* CacheableNode - 2 Hooks *}
CacheableNode = 'fw';
CacheableNode_getNext = 'ce';
CacheableNode_getPrevious = 'cc';

{* Canvas - 1 Hooks *}
Canvas = 'dy';
Canvas_getComponent = 'm';

{* Character - 18 Hooks *}
Character = 'ah';
Character_getAnimation = 'at';
Character_getAnimation_Multiplier = -987249045;
Character_getCycle = 'aa';
Character_getCycle_Multiplier = -903763677;
Character_getHealth = 'ag';
Character_getHealth_Multiplier = 366156561;
Character_getHitCycles = 'au';
Character_getHitDamages = 'ar';
Character_getHitTypes = 'an';
Character_getInteractingIndex = 'ap';
Character_getInteractingIndex_Multiplier = -1411100029;
Character_getMaxHealth = 'al';
Character_getMaxHealth_Multiplier = -1254081241;
Character_getOrientation = 'bb';
Character_getOrientation_Multiplier = -97860779;
Character_getOverheadText = 'ad';
Character_getPositionOffset = 'x';
Character_getPositionOffset_Multiplier = 2067851072;
Character_getQueueLength = 'bg';
Character_getQueueLength_Multiplier = 1023989505;
Character_getQueueTraversed = 'by';
Character_getQueueX = 'bh';
Character_getQueueY = 'bs';
Character_getX = 'b';
Character_getX_Multiplier = -144649247;
Character_getY = 's';
Character_getY_Multiplier = -1433463973;
Character_isInSequence = 'h';

{* ClassData - 3 Hooks *}
ClassData = 'fc';
ClassData_getBytes = 'm';
ClassData_getFields = 'i';
ClassData_getMethods = 'a';

{* Client - 45 Hooks *}
Client = 'client';
Client_getBaseX = 'c.cf';
Client_getBaseX_Multiplier = -1162454639;
Client_getBaseY = 'd.cn';
Client_getBaseY_Multiplier = -1263914291;
Client_getCameraPitch = 'ee.fq';
Client_getCameraPitch_Multiplier = 1296111999;
Client_getCameraX = 'bl.fd';
Client_getCameraX_Multiplier = 2106337695;
Client_getCameraY = 'ev.fi';
Client_getCameraY_Multiplier = 1365371889;
Client_getCameraYaw = 'ca.fa';
Client_getCameraYaw_Multiplier = -1426034441;
Client_getCameraZ = 'p.fo';
Client_getCameraZ_Multiplier = 1646692925;
Client_getCollisionMaps = 'client.w';
Client_getCurrentLevels = 'client.hz';
Client_getEnergy = 'client.jg';
Client_getEnergy_Multiplier = 889103707;
Client_getExperiences = 'client.hn';
Client_getGameCycle = 'client.l';
Client_getGameCycle_Multiplier = 757363207;
Client_getLocalNPCs = 'client.by';
Client_getLocalPlayer = 'ar.hv';
Client_getLocalPlayers = 'client.gt';
Client_getLoginState = 'z.ao';
Client_getLoginState_Multiplier = -698784443;
Client_getMapAngle = 'client.fm';
Client_getMapAngle_Multiplier = -610665599;
Client_getMapOffset = 'client.dm';
Client_getMapOffset_Multiplier = 1833616307;
Client_getMapScale = 'client.dq';
Client_getMapScale_Multiplier = 525754767;
Client_getMaxLevels = 'client.hk';
Client_getMenuActions = 'client.iv';
Client_getMenuCount = 'client.ie';
Client_getMenuCount_Multiplier = -1155973213;
Client_getMenuHeight = 't.ih';
Client_getMenuHeight_Multiplier = -1506214785;
Client_getMenuOptions = 'client.im';
Client_getMenuWidth = 't.ic';
Client_getMenuWidth_Multiplier = 36520921;
Client_getMenuX = 'ad.he';
Client_getMenuX_Multiplier = -374280439;
Client_getMenuY = 'ex.hf';
Client_getMenuY_Multiplier = -670697279;
Client_getMouseX = 'dh.i';
Client_getMouseX_Multiplier = -76465873;
Client_getMouseY = 'dh.f';
Client_getMouseY_Multiplier = 1127942147;
Client_getNPCIndices = 'client.bn';
Client_getPassword = 'z.am';
Client_getPlane = 'cy.hy';
Client_getPlane_Multiplier = 1145527365;
Client_getPlayerSettings = 'ed.k';
Client_getRegion = 'af.dx';
Client_getTileHeights = 'i.m';
Client_getTileSettings = 'i.k';
Client_getUsername = 'z.af';
Client_getWeight = 'client.jx';
Client_getWeight_Multiplier = -802060825;
Client_getWidgetHeights = 'client.li';
Client_getWidgetPositionsX = 'client.lk';
Client_getWidgetPositionsY = 'client.lu';
Client_getWidgets = 'en.m';
Client_getWidgetSettings = 'ed.y';
Client_getWidgetWidths = 'client.la';
Client_isMenuOpen = 'client.hx';

{* CollisionMap - 5 Hooks *}
CollisionMap = 'gk';
CollisionMap_getFlags = 'ah';
CollisionMap_getHeight = 'az';
CollisionMap_getHeight_Multiplier = -1653449499;
CollisionMap_getOffsetX = 'av';
CollisionMap_getOffsetX_Multiplier = 1170085725;
CollisionMap_getOffsetY = 'ay';
CollisionMap_getOffsetY_Multiplier = -1160330439;
CollisionMap_getWidth = 'z';
CollisionMap_getWidth_Multiplier = -447423095;

{* FloorDecoration - 6 Hooks *}
FloorDecoration = 'cg';
FloorDecoration_getFlags = 'i';
FloorDecoration_getFlags_Multiplier = -463581871;
FloorDecoration_getID = 'm';
FloorDecoration_getID_Multiplier = -1640610119;
FloorDecoration_getPlane = 'k';
FloorDecoration_getPlane_Multiplier = 487658173;
FloorDecoration_getRenderable = 'r';
FloorDecoration_getX = 'y';
FloorDecoration_getX_Multiplier = 1611962413;
FloorDecoration_getY = 'g';
FloorDecoration_getY_Multiplier = 1246673317;

{* HashTable - 1 Hooks *}
HashTable = 'fn';
HashTable_getNodes = 'k';

{* Item - 2 Hooks *}
Item = 'h';
Item_getID = 'm';
Item_getID_Multiplier = 316261629;
Item_getStackSize = 'k';
Item_getStackSize_Multiplier = -1901397839;

{* ItemComposite - 9 Hooks *}
ItemComposite = 'ag';
ItemComposite_getGroundActions = 'x';
ItemComposite_getModelColours = 'j';
ItemComposite_getModelSizeX = 'ag';
ItemComposite_getModelSizeX_Multiplier = -843896607;
ItemComposite_getModelSizeY = 'al';
ItemComposite_getModelSizeY_Multiplier = 896903307;
ItemComposite_getModelSizeZ = 'ap';
ItemComposite_getModelSizeZ_Multiplier = -1998631057;
ItemComposite_getName = 'u';
ItemComposite_getNewModelColours = 'q';
ItemComposite_getWidgetActions = 'e';
ItemComposite_isMembers = 'h';

{* ItemLayer - 0 Hooks *}
ItemLayer = 'cr';

{* LinkedList - 2 Hooks *}
LinkedList = 'fj';
LinkedList_getHead = 'm';
LinkedList_getTail = 'k';

{* Model - 11 Hooks *}
Model = 'cl';
Model_getIndicesLength = 'w';
Model_getIndicesLength_Multiplier = 1;
Model_getIndicesX = 'u';
Model_getIndicesY = 'd';
Model_getIndicesZ = 't';
Model_getTexturedIndicesX = 'j';
Model_getTexturedIndicesY = 'q';
Model_getTexturedIndicesZ = 'p';
Model_getVerticesLength = 'r';
Model_getVerticesLength_Multiplier = 1;
Model_getVerticesX = 'i';
Model_getVerticesY = 'f';
Model_getVerticesZ = 'a';

{* Mouse - 0 Hooks *}
Mouse = 'dh';

{* Node - 3 Hooks *}
Node = 'fv';
Node_getNext = 'el';
Node_getPrevious = 'ev';
Node_getUID = 'dm';

{* NPC - 1 Hooks *}
NPC = 'av';
NPC_getComposite = 'm';

{* NPCComposite - 2 Hooks *}
NPCComposite = 'aj';
NPCComposite_getActions = 's';
NPCComposite_getName = 'i';

{* ObjectComposite - 2 Hooks *}
ObjectComposite = 'ad';
ObjectComposite_getActions = 'ay';
ObjectComposite_getName = 't';

{* Player - 2 Hooks *}
Player = 'y';
Player_getModel = 'j';
Player_getName = 'm';

{* Queue - 1 Hooks *}
Queue = 'fk';
Queue_getHead = 'm';

{* Region - 2 Hooks *}
Region = 'bf';
Region_getGroundObjects = 'w';
Region_getGroundTiles = 'i';

{* Renderable - 1 Hooks *}
Renderable = 'by';
Renderable_getHeight = 'bn';
Renderable_getHeight_Multiplier = -918006507;

{* SceneObject - 12 Hooks *}
SceneObject = 'cm';
SceneObject_getFlags = 'q';
SceneObject_getFlags_Multiplier = 663882311;
SceneObject_getID = 'j';
SceneObject_getID_Multiplier = 757497189;
SceneObject_getOffsetX = 'a';
SceneObject_getOffsetX_Multiplier = 22763543;
SceneObject_getOffsetY = 'u';
SceneObject_getOffsetY_Multiplier = -922442193;
SceneObject_getOrientation = 'm';
SceneObject_getOrientation_Multiplier = -1857050261;
SceneObject_getPlane = 'k';
SceneObject_getPlane_Multiplier = -1836423125;
SceneObject_getRelativeX = 'f';
SceneObject_getRelativeX_Multiplier = -148031823;
SceneObject_getRelativeY = 'w';
SceneObject_getRelativeY_Multiplier = 1905208669;
SceneObject_getRenderable = 'i';
SceneObject_getX = 'g';
SceneObject_getX_Multiplier = -2106446677;
SceneObject_getY = 'r';
SceneObject_getY_Multiplier = 723724807;
SceneObject_getZ = 'y';
SceneObject_getZ_Multiplier = 1994552379;

{* Stream - 2 Hooks *}
Stream = 'cb';
Stream_getOffset = 'k';
Stream_getOffset_Multiplier = 1480117179;
Stream_getPayload = 'm';

{* StringStorage - 0 Hooks *}
StringStorage = 'ew';

{* Tile - 8 Hooks *}
Tile = 'co';
Tile_getBoundary = 'f';
Tile_getFloorDecoration = 'w';
Tile_getItemLayer = 'u';
Tile_getPlane = 'g';
Tile_getPlane_Multiplier = -337992821;
Tile_getRSObjects = 't';
Tile_getWall = 'a';
Tile_getX = 'k';
Tile_getX_Multiplier = 2059486343;
Tile_getY = 'y';
Tile_getY_Multiplier = 526136011;

{* Wall - 11 Hooks *}
Wall = 'cd';
Wall_getBackupRenderable = 'w';
Wall_getFlags = 'd';
Wall_getFlags_Multiplier = 114114809;
Wall_getHeight = 'r';
Wall_getHeight_Multiplier = -1014346113;
Wall_getID = 'u';
Wall_getID_Multiplier = -994040553;
Wall_getOrientation = 'g';
Wall_getOrientation_Multiplier = 2135341269;
Wall_getPlane = 'm';
Wall_getPlane_Multiplier = -551771509;
Wall_getRelativeX = 'i';
Wall_getRelativeX_Multiplier = -249528601;
Wall_getRelativeY = 'f';
Wall_getRelativeY_Multiplier = 2116893411;
Wall_getRenderable = 'a';
Wall_getX = 'k';
Wall_getX_Multiplier = -1106286073;
Wall_getY = 'y';
Wall_getY_Multiplier = 1321086657;

{* Widget - 19 Hooks *}
Widget = 'en';
Widget_getActions = 'bh';
Widget_getActionType = 'az';
Widget_getActionType_Multiplier = -1709127761;
Widget_getChildren = 'dv';
Widget_getContentIDs = 'dp';
Widget_getHeight = 's';
Widget_getHeight_Multiplier = 1697801853;
Widget_getID = 'j';
Widget_getID_Multiplier = -1488818977;
Widget_getIndex = 'q';
Widget_getIndex_Multiplier = 347670461;
Widget_getName = 'dw';
Widget_getOpcodes = 'db';
Widget_getParent = 'bs';
Widget_getParentID = 'h';
Widget_getParentID_Multiplier = -1641357523;
Widget_getRelativeX = 'y';
Widget_getRelativeX_Multiplier = -1058953831;
Widget_getRelativeY = 'b';
Widget_getRelativeY_Multiplier = -966193979;
Widget_getScrollX = 'e';
Widget_getScrollX_Multiplier = 1128880447;
Widget_getScrollY = 'z';
Widget_getScrollY_Multiplier = -1728529749;
Widget_getType = 'av';
Widget_getType_Multiplier = -1508524803;
Widget_getWidth = 'o';
Widget_getWidth_Multiplier = -95915675;
Widget_getX = 'l';
Widget_getX_Multiplier = 1623658099;
Widget_getY = 'c';
Widget_getY_Multiplier = 2050654873;

samerdl
05-15-2014, 10:27 AM
Great update today but broke the hooks.

edit: That's a great post fish1328, but why not post the hooks in the name format the current reflection dev's are using - why re-invent the wheel?.
It's not like OSRS is going to be around & updated for another year so i am not personally worried about the knowledge disappearing from the database.
Anyway, personally.. I don't have time right now to go through each name and update + some of the hooks use different names than the ones we have so am confused as to where they should be used (like actorX and so on), i just took the main things such as tiles and updated that.

Good work nonetheless ;)

Krazy_Meerkat
05-15-2014, 12:56 PM
New hooks are up, the include should update automatically.

samerdl
05-15-2014, 04:43 PM
New hooks are up, the include should update automatically.

Thanks for updating the include, really appreciate all the work you put into this project - love it, without reflection my progress would of been much slower on OSRS over the course of the past two months :p.

Right now it's all working great, just a small bug with R_GetClientLoopCycle & R_GetActorLoopCycle, for me its registering r_underattack and r_isinfight as true at all times, to solve that i simply commented it out of my script:


function isinfight: boolean;
begin
result := (SRL_InFight) // or (R_infight) or (R_UnderAttack)
end;


I like to use the SRL & reflection includes for all of my tasks :) and now i can go back to training - once am done with combat & mage in the upcoming week and half i'll be posting two scripts for OSRS which aren't too bad but probably won't help too many people :blushing:.

rj
05-16-2014, 12:08 AM
Thanks for updating the include, really appreciate all the work you put into this project - love it, without reflection my progress would of been much slower on OSRS over the course of the past two months :p.

Right now it's all working great, just a small bug with R_GetClientLoopCycle & R_GetActorLoopCycle, for me its registering r_underattack and r_isinfight as true at all times, to solve that i simply commented it out of my script:


function isinfight: boolean;
begin
result := (SRL_InFight) // or (R_infight) or (R_UnderAttack)
end;


I like to use the SRL & reflection includes for all of my tasks :) and now i can go back to training - once am done with combat & mage in the upcoming week and half i'll be posting two scripts for OSRS which aren't too bad but probably won't help too many people :blushing:.

Why not just use

SRL_InFight

Instead of creating a function that's going to return the same thing :p

samerdl
05-16-2014, 07:45 AM
Why not just use

SRL_InFight

Instead of creating a function that's going to return the same thing :p

I usually use R_Underattack, R_IsinCOmbat and SRL_InFight, i donno i just like feeling i have enough fail safes :)

Frement
05-16-2014, 09:48 AM
R_InFight is now fixed.

ineedbot
05-17-2014, 10:54 PM
Nicee. Really going to make scripts run ALOT better! Scripting with purely color is difficult lol.

Tonekray
05-18-2014, 04:59 PM
I'm not too sure if anyone here knows already, but finding objects under OBJ_GAME returns nothing. I guess because of a broken hook? I thought I'd just let someone here know in case it wasn't known already.

Cheddy
05-18-2014, 05:27 PM
Yeh, by the looks of it all the object hooks/boundary/wall etc are all wrong!

My current hooks file which I use with simba is here:
http://pastebin.com/1apg1uYJ

(If you want to use these; you'll have to have some understanding of the RS Object Tree. I have my own version of the API ;D)

ineedbot
05-18-2014, 06:54 PM
Yeh, by the looks of it all the object hooks/boundary/wall etc are all wrong!

My current hooks file which I use with simba is here:
http://pastebin.com/UgiNh9vt

(If you want to use these; you'll have to have some understanding of the RS Object Tree. I have my own version of the API ;D)

Hey thanks! I took a look at your hooks, did some comparing, and now I got game objects showing up!
http://i61.tinypic.com/2val66q.png

All I changed was 'WorldObject' from 'c' to 'cm' and 'SceneTile_worldObjects' from 'w' to 't'.

Cheddy
05-18-2014, 07:07 PM
Hey thanks! I took a look at your hooks, did some comparing, and now I got game objects showing up!
http://i61.tinypic.com/2val66q.png

All I changed was 'WorldObject' from 'c' to 'cm' and 'SceneTile_worldObjects' from 'w' to 't'.
You got the hang of it ;)

Grunt
05-19-2014, 01:28 AM
>.< did u change ur pastein code?

Cheddy
05-19-2014, 05:29 AM
Should be there :-D
EDIT: I gave the devs a quick program I made to autodownload the hooks. No reply yet but here is again:
http://pastebin.com/1apg1uYJ

Grunt
05-20-2014, 05:40 AM
ah, thanks. I am new to reflection, I followed all the guides that i could find. But how did u get smart to show the hooks id? Why can't i get any interactable game objects with R_getallobjects?

Cheddy
05-20-2014, 06:33 AM
Wrong hooks with the include, check mine and convert if you can ;-) Update the region hooks and the tile and scene/world object hooks. I've got exams all this week but will try and help :-) Will do more next week

Grunt
05-20-2014, 08:28 AM
thanks man, i got it. Your hooks work, u got to write a guide how u did it. Break it down for us laymens. =p
how did u get hooks to show in smart?

Cheddy
05-20-2014, 03:33 PM
thanks man, i got it. Your hooks work, u got to write a guide how u did it. Break it down for us laymens. =p
how did u get hooks to show in smart?
http://docs.villavu.com/srl-5/paintsmart.html#smart-drawdots

Then just paint the on screen coordinates of the objects using R_WorldToScreen/R_TileToScreen (I haven't used any of it yet ;))

Grunt
05-21-2014, 05:02 AM
is it just me or did the hooks stop working?
edit:I am such noob >.< , it looks like the hooks file autoupdated and reversed my changes

Nebula
05-21-2014, 05:05 AM
is it just me or did the hooks stop working?

workin good for me right now.

test something easy like writeln(r_getallnpcs) while near some npcs and see if it returns some st00fs

samerdl
05-22-2014, 03:36 PM
Game got updated today (good update imo).

However, hooks are outdated now :-(.

Nebula
05-22-2014, 06:55 PM
Reflection got updated but NPC functions dont seem to work... R_GetAllNPCs and r_GetNPC() don't.

Cheddy
05-22-2014, 09:06 PM
In case you need these again; R47 Hooks:
http://pastebin.com/YimEJKSw

Nebula
05-22-2014, 09:19 PM
I AM JESUS

ALL HAIL ME

I found what is broken in hooks.simba that makes npcs not work.


SOLUTION WILL BE REVEALED AFTER A MINUMUM OF 3 PEOPLE HAVE POSTED "ALL HAIL NEBULA" ON THIS THREAD


I pmed the solution to myself so that if someone posts the fix before 3 people say all hail nebula, I have proof that I actually had the fix all along.


edit: kk i dont really care and im not a dick so:

C:\Simba\Includes\SRL-OSR\SRL\Reflection\Core\Hooks.simba

line 246

'client.gw' -> 'client.bp'

all hails are still appreciated tho

Krazy_Meerkat
05-23-2014, 06:21 AM
Thanks for posting that fix, Nebula.

Updated the include with the correct client loopcycle multiplier and npc index hook.

Cheddy
05-23-2014, 01:35 PM
Uh oh, spaghetti-ohs; it appears most of the objects/wall/boundary/floor classes and hooks are wrong again; here are the correct ones:

WorldObject = 'ci';
FloorDecorationObject = 'cr';

{*BoundaryObject*}
BoundaryObject = 'ca';
BoundaryObject_Get_x = 'p';
BoundaryObject_Get_y = 'a';
BoundaryObject_plane = 'e';
BoundaryObject_orientation = 'g';
BoundaryObject_hash = 't';

{*BoundaryObject Multipliers*}
BoundaryObject_Get_x_Multiplier = 1565892751;
BoundaryObject_Get_y_Multiplier = 1411135407;
BoundaryObject_plane_Multiplier = 570380847;
BoundaryObject_orientation_Multiplier = -1888160489;
BoundaryObject_hash_Multiplier = -1313887037;

{*WallObject*}
WallObject = 'cz';
WallObject_hash = 'f';
WallObject_orientation = 'g';

{*WallObject Multipliers*}
WallObject_hash_Multiplier = 2002814215;
WallObject_orientation_Multiplier = 108416551;

Krazy_Meerkat
05-24-2014, 01:23 AM
Ah ok, that would be why elfyyy's pc script is not behaving properly.. He used some of the boundary object functions..
Thanks for posting that fish, I've added it to our hooks.. Get on skype later so we can talk about these hooks

hakishakataki
05-25-2014, 03:26 AM
I am getting this error on all reflection scripts.

[Error] C:\Simba\Includes\SRL-OSR\SRL\Reflection\Core\Misc.simba(194:63): Unknown identifier 'client_settings' at line 195
Compiling failed.

I have pm'd a few people and no one knows what it is so far.

Cheddy
05-25-2014, 08:08 AM
Have you got the latest hooks? It's telling you that the field "client_settings" is missing

Krazy_Meerkat
05-25-2014, 01:25 PM
Try downloading it again, the version at https://code.google.com/p/osrreflection/source/browse/
Post again if the problem persists.

Update: Added R_InventoryRandoms Boolean to control SRL's 'Rewards' Inv-tabbing.
R_PrayerRandoms Boolean to handle the Zombie bone-burying combat random.
Both are set to false by default.

Eduard
05-27-2014, 12:39 PM
It's down again?

P1nky
05-27-2014, 12:46 PM
It's down again?

F2P servers have been released, may have caused it?

Cheddy
05-27-2014, 01:44 PM
Hence hooks changed :D

Actually 2 new revisions today. Up to R49 now!

My pastebin: http://pastebin.com/n5mFfSxn

And my simba named hooks file which will fix your problems (copy into C:\Simba\Includes\SRL-OSR\SRL\Reflection\Core\Hooks.simba):

{ 187 Hooks Found By Cheddys Beautiful Updater }

const
ReflectionRevision = '49';


{* BoundaryObject - 9 Hooks *}
BoundaryObject = 'cl';
BoundaryObject_AlternativeOrientation = 'l';
BoundaryObject_AlternativeOrientation_Multiplier = 1389124145;
BoundaryObject_BackupRenderable = 'a';
BoundaryObject_Flags = 'r';
BoundaryObject_Flags_Multiplier = -621404059;
BoundaryObject_Hash = 'x';
BoundaryObject_Hash_Multiplier = 174051663;
BoundaryObject_Orientation = 'v';
BoundaryObject_Orientation_Multiplier = 695777807;
BoundaryObject_Plane = 'y';
BoundaryObject_Plane_Multiplier = -1114608285;
BoundaryObject_Renderable = 'g';
BoundaryObject_Get_X = 'u';
BoundaryObject_Get_X_Multiplier = 1452391039;
BoundaryObject_Get_Y = 'k';
BoundaryObject_Get_Y_Multiplier = -949838095;

{* Cache - 3 Hooks *}
Cache = 'fx';
Cache_CacheableNode = 'y';
Cache_HashTable = 'v';
Cache_Queue = 'l';

{* CacheableNode - 2 Hooks *}
CacheableNode = 'ft';
CacheableNode_Next = 'cr';
CacheableNode_Previous = 'cl';

{* Canvas - 1 Hooks *}
Canvas = 'dc';
Canvas_Component = 'u';

{* Actor - 18 Hooks *}
Actor = 'ai';
Actor_Animation = 'an';
Actor_Animation_Multiplier = -772673237;
Actor_CombatCycle = 'ae';
Actor_CombatCycle_Multiplier = 738616745;
Actor_Health = 'at';
Actor_Health_Multiplier = 664073677;
Actor_HitCycles = 'ap';
Actor_HitDamages = 'ac';
Actor_HitTypes = 'aj';
Actor_InteractingIndex = 'aw';
Actor_InteractingIndex_Multiplier = 974088395;
Actor_MaxHealth = 'as';
Actor_MaxHealth_Multiplier = 1495817743;
Actor_Orientation = 'bi';
Actor_Orientation_Multiplier = -692156845;
Actor_ActiveText = 'ai';
Actor_PositionOffset = 'd';
Actor_PositionOffset_Multiplier = 1931324096;
Actor_PathLength = 'bk';
Actor_PathLength_Multiplier = 1333577889;
Actor_PathTraversed = 'bj';
Actor_PathX = 'bg';
Actor_PathY = 'bs';
Actor_LocalX = 'b';
Actor_LocalX_Multiplier = -115581019;
Actor_LocalY = 'i';
Actor_LocalY_Multiplier = 1862326073;
Actor_isInSequence = 'ab';

{* ClassData - 3 Hooks *}
ClassData = 'gn';
ClassData_Bytes = 'x';
ClassData_Fields = 'l';
ClassData_Methods = 'a';

{* Client - 46 Hooks *}
Client = 'client';
Client_BaseX = 'ae.co';
Client_BaseX_Multiplier = -75820169;
Client_BaseY = 'ak.cv';
Client_BaseY_Multiplier = 1363071411;
Client_CameraPitch = 'ct.fy';
Client_CameraPitch_Multiplier = 978451045;
Client_CameraX = 'w.fv';
Client_CameraX_Multiplier = 579382229;
Client_CameraY = 'cp.fw';
Client_CameraY_Multiplier = 201905125;
Client_CameraYaw = 'br.fk';
Client_CameraYaw_Multiplier = 875492681;
Client_CameraZ = 'i.fl';
Client_CameraZ_Multiplier = 282686931;
Client_CollisionMaps = 'client.w';
Client_Levels = 'client.hz';
Client_Run_Energy = 'client.jt';
Client_Run_Energy_Multiplier = -1148693389;
Client_Experiences = 'client.hv';
Client_LoopCycle = 'client.j';
Client_LoopCycle_Multiplier = -1554219467;
Client_GroundItems = 'client.hp';
Client_NPCs = 'client.bj';
Client_Player = 'cg.hb';
Client_Players = 'client.gq';
Client_Login_State = 'al.ah';
Client_Login_State_Multiplier = 1080992083;
Client_CompassAngle = 'client.fd';
Client_CompassAngle_Multiplier = 188773915;
Client_Map_Offset = 'client.dj';
Client_Map_Offset_Multiplier = 100607273;
Client_Map_Scale = 'client.dl';
Client_Map_Scale_Multiplier = 275005369;
Client_Real_Levels = 'client.hq';
Client_MenuActions = 'client.iu';
Client_MenuCount = 'client.ii';
Client_MenuCount_Multiplier = -779437725;
Client_MenuHeight = 'br.io';
Client_MenuHeight_Multiplier = -834841965;
Client_MenuOptions = 'client.iv';
Client_MenuWidth = 'cg.iy';
Client_MenuWidth_Multiplier = -1155881505;
Client_MenuX = 'aa.ht';
Client_MenuX_Multiplier = 1487758909;
Client_MenuY = 'm.hg';
Client_MenuY_Multiplier = -329146929;
Client_MouseX = 'dr.g';
Client_MouseX_Multiplier = -476633551;
Client_MouseY = 'dr.a';
Client_MouseY_Multiplier = 1607741335;
Client_NPCIndices = 'client.bx';
Client_Password = 'al.ax';
Client_Plane = 'v.hd';
Client_Plane_Multiplier = -946619189;
Client_Settings = 'et.u';
Client_Region = 'k.dg';
Client_GroundHeights = 'g.y';
Client_GroundSettings = 'g.u';
Client_Username = 'al.ag';
Client_Weight = 'client.jn';
Client_Weight_Multiplier = -2075744581;
Client_WidgetHeights = 'client.lm';
Client_WidgetPositionsX = 'client.lr';
Client_WidgetPositionsY = 'client.lp';
Client_Widgets = 'ee.u';
Client_WidgetSettings = 'et.k';
Client_WidgetWidths = 'client.ll';
Client_isMenuOpen = 'client.hy';

{* CollisionMap - 5 Hooks *}
CollisionMap = 'gx';
CollisionMap_Flags = 'aa';
CollisionMap_Height = 'av';
CollisionMap_Height_Multiplier = 519861409;
CollisionMap_OffsetX = 'al';
CollisionMap_OffsetX_Multiplier = 571754825;
CollisionMap_OffsetY = 'aq';
CollisionMap_OffsetY_Multiplier = 44134315;
CollisionMap_Width = 'e';
CollisionMap_Width_Multiplier = 1360578593;

{* FloorDecorationObject - 6 Hooks *}
FloorDecorationObject = 'ct';
FloorDecorationObject_Flags = 'g';
FloorDecorationObject_Flags_Multiplier = -380911001;
FloorDecorationObject_Hash = 'l';
FloorDecorationObject_Hash_Multiplier = 197400825;
FloorDecorationObject_Plane = 'y';
FloorDecorationObject_Plane_Multiplier = 554106865;
FloorDecorationObject_Renderable = 'v';
FloorDecorationObject_Get_X = 'u';
FloorDecorationObject_Get_X_Multiplier = 149257185;
FloorDecorationObject_Get_Y = 'k';
FloorDecorationObject_Get_Y_Multiplier = 1639278273;

{* HashTable - 1 Hooks *}
HashTable = 'fr';
HashTable_Nodes = 'u';

{* Item - 2 Hooks *}
Item = 'z';
Item_ID = 'y';
Item_ID_Multiplier = 320823979;
Item_StackSize = 'u';
Item_StackSize_Multiplier = 1770558897;

{* ItemDefinition - 9 Hooks *}
ItemDefinition = 'aw';
ItemDefinition_GroundActions = 'd';
ItemDefinition_ModelColours = 'c';
ItemDefinition_ModelSizeX = 'ae';
ItemDefinition_ModelSizeX_Multiplier = -1056598195;
ItemDefinition_ModelSizeY = 'at';
ItemDefinition_ModelSizeY_Multiplier = 1855279859;
ItemDefinition_ModelSizeZ = 'as';
ItemDefinition_ModelSizeZ_Multiplier = 855806131;
ItemDefinition_Name = 'w';
ItemDefinition_NewModelColours = 'f';
ItemDefinition_InventoryActions = 'z';
ItemDefinition_isMembers = 'q';

{* ItemLayer - 0 Hooks *}
ItemLayer = 'cw';

{* LinkedList - 2 Hooks *}
LinkedList = 'fn';
LinkedList_Head = 'y';
LinkedList_Tail = 'u';

{* Model - 11 Hooks *}
Model = 'cz';
Model_IndicesLength = 'r';
Model_IndicesLength_Multiplier = 1;
Model_IndicesX = 'w';
Model_IndicesY = 'c';
Model_IndicesZ = 'f';
Model_TexturedIndicesX = 'o';
Model_TexturedIndicesY = 'p';
Model_TexturedIndicesZ = 'n';
Model_VerticesLength = 'l';
Model_VerticesLength_Multiplier = 1;
Model_VerticesX = 'g';
Model_VerticesY = 'a';
Model_VerticesZ = 'x';

{* Mouse - 0 Hooks *}
Mouse = 'dr';

{* Node - 3 Hooks *}
Node = 'gw';
Node_Next = 'el';
Node_Previous = 'eg';
Node_UID = 'dj';

{* NPC - 1 Hooks *}
NPC = 'aa';
NPC_Definition = 'y';

{* NPCDefinition - 2 Hooks *}
NPCDefinition = 'ag';
NPCDefinition_Actions = 'i';
NPCDefinition_Name = 'g';

{* ObjectDefinition - 2 Hooks *}
ObjectDefinition = 'ax';
ObjectDefinition_Actions = 'aq';
ObjectDefinition_Name = 'f';

{* Player - 2 Hooks *}
Player = 'k';
Player_Model = 'o';
Player_Name = 'y';

{* Queue - 1 Hooks *}
Queue = 'fh';
Queue_Head = 'y';

{* Region - 2 Hooks *}
Region = 'ch';
Region_SceneObjects = 'r';
Region_SceneTiles = 'g';

{* Renderable - 1 Hooks *}
Renderable = 'bx';
Renderable_Height = 'ch';
Renderable_Height_Multiplier = 1402043673;

{* WorldObject - 12 Hooks *}
WorldObject = 'cg';
WorldObject_Flags = 'p';
WorldObject_Flags_Multiplier = 393169573;
WorldObject_Hash = 'o';
WorldObject_Hash_Multiplier = -21271879;
WorldObject_OffsetX = 'x';
WorldObject_OffsetX_Multiplier = -1588899007;
WorldObject_OffsetY = 'w';
WorldObject_OffsetY_Multiplier = -2043804879;
WorldObject_Orientation = 'g';
WorldObject_Orientation_Multiplier = -1453061613;
WorldObject_Plane = 'y';
WorldObject_Plane_Multiplier = -1717297035;
WorldObject_RelativeX = 'a';
WorldObject_RelativeX_Multiplier = -728627441;
WorldObject_RelativeY = 'r';
WorldObject_RelativeY_Multiplier = -1348670663;
WorldObject_Renderable = 'l';
WorldObject_Get_X = 'k';
WorldObject_Get_X_Multiplier = -646487517;
WorldObject_Get_Y = 'v';
WorldObject_Get_Y_Multiplier = -1750598391;
WorldObject_Height = 'u';
WorldObject_Height_Multiplier = -280590169;

{* Stream - 2 Hooks *}
Stream = 'do';
Stream_Offset = 'u';
Stream_Offset_Multiplier = -1798397783;
Stream_Payload = 'y';

{* StringStorage - 0 Hooks *}
StringStorage = 'ea';

{* SceneTile - 8 Hooks *}
SceneTile = 'cj';
SceneTile_BoundaryObject = 'a';
SceneTile_FloorDecorationObject = 'r';
SceneTile_ItemLayer = 'w';
SceneTile_Plane = 'v';
SceneTile_Plane_Multiplier = -2059823675;
SceneTile_WorldObjects = 'f';
SceneTile_WallObject = 'x';
SceneTile_X = 'u';
SceneTile_X_Multiplier = 337201943;
SceneTile_Y = 'k';
SceneTile_Y_Multiplier = -977894799;

{* WallObject - 11 Hooks *}
WallObject = 'cs';
WallObject_BackupRenderable = 'r';
WallObject_Flags = 'c';
WallObject_Flags_Multiplier = -1188332199;
WallObject_Height = 'l';
WallObject_Height_Multiplier = -526074127;
WallObject_Hash = 'w';
WallObject_Hash_Multiplier = 2123129033;
WallObject_Orientation = 'v';
WallObject_Orientation_Multiplier = 1590020931;
WallObject_Plane = 'y';
WallObject_Plane_Multiplier = 976837181;
WallObject_RelativeX = 'g';
WallObject_RelativeX_Multiplier = -1417347255;
WallObject_RelativeY = 'a';
WallObject_RelativeY_Multiplier = -2079324505;
WallObject_Renderable = 'x';
WallObject_X = 'u';
WallObject_X_Multiplier = -603169993;
WallObject_Y = 'k';
WallObject_Y_Multiplier = -1149723161;

{* Widget - 22 Hooks *}
Widget = 'ee';
Widget_Actions = 'bk';
Widget_ActionType = 'm';
Widget_ActionType_Multiplier = 639658035;
Widget_BoundsIndex = 'dr';
Widget_BoundsIndex_Multiplier = 1921174117;
Widget_Children = 'dz';
Widget_ContentIDs = 'dv';
Widget_Height = 'h';
Widget_Height_Multiplier = 23827733;
Widget_ID = 'q';
Widget_ID_Multiplier = -2071686887;
Widget_Index = 'n';
Widget_Index_Multiplier = 277826827;
Widget_Name = 'be';
Widget_Opcodes = 'dk';
Widget_Parent = 'bg';
Widget_ParentID = 'p';
Widget_ParentID_Multiplier = 1568667015;
Widget_RelativeX = 'y';
Widget_RelativeX_Multiplier = 934982983;
Widget_RelativeY = 'b';
Widget_RelativeY_Multiplier = -839109755;
Widget_ScrollX = 'z';
Widget_ScrollX_Multiplier = 1125536823;
Widget_ScrollY = 'e';
Widget_ScrollY_Multiplier = -297447859;
Widget_StackSizes = 'dg';
Widget_Text = 'ba';
Widget_Type = 's';
Widget_Type_Multiplier = -1142912813;
Widget_Width = 'i';
Widget_Width_Multiplier = 1320459303;
Widget_X = 'j';
Widget_X_Multiplier = -79782867;
Widget_Y = 'x';
Widget_Y_Multiplier = -395318811;

Cheddy
05-27-2014, 01:46 PM
That hooks file does however lack the following fields compared to the usual hooks file so any scripts using the following will break using mine until meerkat updates the official ones:

TODO

NPCDefinition_ID
NPCDefinition_Level
PlayerDefinition_Appearence
PlayerDefinition_AppearenceIndices
Player_Level
Player_Definition

samerdl
05-27-2014, 01:55 PM
Ty for the hook info fish1328, sadly i can't get it to compile with my include - SRL'S unofficial include use different names for the hooks

[Error] D:\Files\programs\Simba\Includes\SRL-OSR\SRL\Reflection\Core\Misc.simba(321:52): Unknown identifier 'client_menuCount' at line 321
Compiling failed.

Why not change names to make em similar to the one's in the existing include & work with the team :)? you're obviously very talented and love to contribute (i know you don't use simba often) we need all da help we can get ;)

Cheddy
05-27-2014, 02:11 PM
I did change the naming :D Obviously not fully correctly though :/ Will fix immediately :D
Edit: that doesn't make sense. The client_menucount field is in the hooks I posted there :-) Make sure it didn't autoupdate to the old hooks ;-)

Cheddy
05-27-2014, 02:13 PM
Simba isn't case sensitive with variable names is it?

Turpinator
05-27-2014, 02:24 PM
Simba isn't case sensitive with variable names is it?
correct, it is not case sensitive.

Cheddy
05-27-2014, 02:51 PM
Just copy and paste the hooks I gave over the ones that are in the hooks file and hopefully that should work. I havn't tested myself though ;-)